|
Chapter |
Page |
Erratum |
** |
|
1 |
11 |
The following text/code is incorrect:
2. You need....
add
LD_ASSUME_KERNEL=2.25
It should read:
add
LD_ASSUME_KERNEL=2.2.5
|
Y |
|
1 |
13 |
In the sidebar marked CAUTION near the bottom of the page, the phrase "IPX/SX networks" should be "IPX/SPX networks" to be exactly correct. |
N |
|
1 |
17 |
Under the heading "Windows 9x, ME, and XP Home" the first sentence states "Windows 9x, ME, and XP Home do not support services." While true for Windows 9x and ME, it is not true of XP Home.
- Change the heading to "Windows 9x and ME"
- Change the text to "Windows 9x and ME do not support services."
|
N |
|
2 |
33 |
The following text/code is incorrect in the third bullet under "Locating the HOSTS file":
o On Windows 95/98/ME/XP/Server2003, the HOSTS file is located in C:\Windows
It should read:
o On Windows XP/Server2003, the HOSTS file is located in C:\Windows\system32.
- On Windows 95/98/ME, look in c:\Windows.
|
Y |
|
Chapter |
Page |
Erratum |
** |
|
7 |
98 |
The example API category which states:
"Database Security (e.g. isc_attach_database())"
should be:
"Database Security (e.g. isc_add_user())" |
Y |
|
8 |
117 |
Under the heading "Pre-Defined Date Literals", the second sentence of the intro reads
"In dialect 1, the strings can be used directly; in dialect 3, they must be cast to type."
It should be changed to read
In legacy SQL, the strings could be used directly; in both dialects of Firebird, they must be cast to type in most situations."
Beneath Table 8-2, add the sentence:
"Any attempt to use a date literal in an expression without casting will cause an exception." |
Y |
|
8 |
118 |
The first sentence reads
"In a dialect 1 database, this statement returns exact server time:"
Change this to
"In legacy SQL, this statement would return exact server time:"
Change the sentence
"In a dialect 3 database, the date literal must be cast as a TIMESTAMP type:"
to
"In Firebird, the date literal must be cast as a TIMESTAMP type:"
The lead-in to the next example reads:
"This UPDATE statement sets a date column to server time plus one day in dialect 1:"
Change this (note MULTIPLE changes here) to
"Firebird still allows date literals to be used alone as the argument in UPDATE and INSERT statements and search criteria. This UPDATE statement sets a date column to server date plus one day:"
(Keep the current code example as-is).
[[continued...]]
The next body sentence reads:
"Here's the same operation in dialect 3, with casting;"
Change this to:
"In Firebird, using date literals in expressions will cause an exception. A clause such as <inline code> SET UPDATE_DATE = 'TODAY' + 1</inline code> will not work. Such expressions must be explicitly cast:"
Then, in the succeeding code example, the second line reads:
"SET UPDATE_DATE = CAST('TOMORROW' AS DATE) "
Change this to
"SET UPDATE_DATE = CAST('TODAY' AS DATE) + 1" |
Y |
|
Chapter |
Page |
Erratum |
|
|
9 |
131 |
On the last example there is a closing parenthesis missing. It should read as follows:
SELECT GEN_ID(AGenerator, (
(SELECT GEN_ID(AGenerator, 0) from RDB$DATABASE) * - 1))
from RDB$DATABASE;
|
Y |
|
9 |
139 |
The heading for the sidebar at the top of the page, "Numeric Input and Exponents" has somehow gotten the special format that was used for the expert topics. The whole sidebar should have the proper sidebar format to be consistent with all of the other sidebars in the book. |
Y |
|
10 |
146 |
In Table 10-3: For the year 98 row, 2998 should be 2098. |
Y |
|
10 |
147 |
The following text/code is incomplete:
For example, the date literal.....because there is no month 14.
It should read:
For example, the date literal.....because there is no month 14. However, 'CCYY/MM/DD' is accepted: '2004/12/31' will be interpreted as "31 December 2004". |
Y |
|
10 |
157 |
In Table 10.10. EXTRACT() Arguments, limits for YEARDAY appear as 1-366. Should be 0-365. |
N |
|
12 |
187 |
Under the heading "Defining Arrays, the sentence "For example, the following statement defines both a regular character column and ..."
This is inconsistent with the example shown. Change this part of the sentence so it reads sentence "For example, the following statement defines a 64-bit integer column and ..." |
Y |
|
Chapter |
Page |
Erratum |
|
|
14 |
221 |
The last sentence of "TIP" section reads
"Ensure that all DML statements are committed before introducing any DML."
It should read :
"Ensure that all DDL statements are committed before introducing any DML." |
Y |
|
14 |
226 |
Script example in centre of page will not work because CREATE DATABASE arguments are in incorrect order.
The example code reads:
SET SQL DIALECT 3;
CREATE DATABASE 'd:\databases\MyDatabase.fdb'
PAGE_SIZE 8192
DEFAULT CHARACTER SET ISO8859_1
USER 'SYSDBA' PASSWORD 'masterkey';
It should be changed to:
SET SQL DIALECT 3;
CREATE DATABASE 'd:\databases\MyDatabase.fdb'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 8192
DEFAULT CHARACTER SET ISO8859_1 ;
|
N |
|
16 |
290 |
The ALTER TABLE syntax pattern near the top of the page reads
ALTER TABLE name DROP colname [, colname ...];
It should read
ALTER TABLE name DROP colname [, DROP colname ...];
|
N |
|
18 |
338 |
Halfway down table 18-3, the second sentence for the Description for the entry "Next transaction" reads
"The difference between the oldest active transaction and the next transaction determines when database sweeping occurs."
It should read :
"The difference between the oldest active transaction and the oldest snapshot transaction determines when database sweeping occurs."
|
Y |
|
Chapter |
Page |
Erratum |
|
|
21 |
420 |
Under minor heading "Arguments", it reads:
"WEEKDAY extracts the day of the week (having Sunday = 1, Monday = 2, and so on)..."
The phrase should read:
"WEEKDAY extracts the day of the week (having Sunday = 0, Monday = 1, and so on)..." |
N |
|
22 |
466 |
Near top of page, the code sample that reads:
SELECT ...
WHERE PARENT_COUNTRY = 'AU' OR 1=1
should be
SELECT ...
WHERE PARENT_COUNTRY = 'AU' OR 1=0
|
Y |
|
31 |
644 |
Under "Syntax":
[DECLARE VARIABLE variable datatype;...]
should read:
[DECLARE [VARIABLE] variable datatype;...]
since the keyword VARIABLE is optional.
|
Y |
|
32 |
667
668
|
Figure 32.1 (text in graphic) 'MY_EXCEPTION' should read 'EXCEPTION MY_EXCEPTION'.
However, this is the wrong graphic, it seems Fig. 32.2. was plugged in there during production, since it is correct in the last proofs eyeballed by the author. Following is the correct 2794f3201.bmp:
(cont.) Figure 32.2, same error as was described for the (wrong) Fig. 32-1, corrected in 2 places (2794f3202.bmp)
|
Y |
|
32 |
669 |
Beneath heading "The WHEN Statement" the passage between "A WHEN statement takes the form" and the paragraph starting with "<compound-statement> is one statement..." should be completely replaced with:
WHEN [EXCEPTION] <exception> DO <compound-statement>
where the EXCEPTION keyword is required for user-defined exceptions and <exception> can be any one of the following:
<exception-name> | GDSCODE code | SQLCODE code | ANY
|
Y |
|
Chapter |
Page |
Erratum |
|
|
32 |
684 |
The following text under the heading "Using POST_EVENT" is incorrect:
The parameter, event_name, can be....with a numeral. Event names are restricted to 15 characters.
It should read:
The parameter, event_name, can be....with a numeral. Event names are restricted to 64 characters. |
Y |
|
35 |
719 |
In the section headed Granting Privileges (that starts on P.718) an item is missing from the syntax pattern given in the line
<privilege> = INSERT | DELETE | etc.
Insert the symbol SELECT into the group so that line reads:
<privilege> = SELECT | INSERT | DELETE |
UPDATE [(column [,column [,...]] ) ] |
REFERENCES [(column [,column [,...]] ) ] | EXECUTE
|
N |
|
38 |
819 |
in table 38-1, in the "SWITCH" column, the following is incorrect:
-pa[ssword] password
It should read
-pas[sword] password
|
Y |
|
38 |
819, 824 |
In the "SWITCH" column of both tables, the following is incorrect:
-v[erbose]
should read
-v[erify]
|
Y |
|
38 |
819, 824 |
In each table, in the "Effect" text for the –y switch, the references to "the –v[erbose] switch" should be corrected to "the –v[erify switch]". |
Y |
|
38 |
824 |
In table 38-2, in the "SWITCH" column, the following is incorrect:
-p[age_size] n
It should read
-pa[ge_size] n
[[ ... continued ... ]]
and pa[ssword] should be –pas[sword]
The leading hyphen is missing here, too.
|
Y |
|
Chapter |
Page |
Erratum |
|
|
38 |
826 |
Under the heading "Single Volume Backup to Mulitple-Volume Database" the examples are wrong.
Replace the POSIX example with the following:
.gbak -c /backups/stocks.fbk data/stocks_trial.fdb 500000
/data/stocks/stocks_trial.fd1 -user SYSDBA –password millp0nd
-v -y /logs/backups/stocks_r.20040703.log
Replace the Windows example with :
.gbak -c e:\backups\stocks.fbk d:\data\stocks_trial.fdb 500000
d:\data\stocks\stocks_trial.fd1 -user SYSDBA -password millp0nd
-v -y e:\logs\backups\stocks_r.20040703.log
|
Y |
|
38 |
828 |
Under the heading "Using gbak with the Firebird Service Manager, the following is incorrect:
When you run gbak with the -service_mgr switch....
It should read
When you run gbak with the -service switch.... |
Y |
|
38 |
829 |
Under the heading "Using gbak with the Firebird Service Manager, the following code sample is incorrect:
gbak -b -se hotchicken:service_mgr
hotchicken:d:\data\stocks.fdb
f:\backups\stocks.20040705.fbk
-v -y f:\backups\logs\stocks.20040715.log
It should read:
gbak -b -se hotchicken:service_mgr
d:\data\stocks.fdb
f:\backups\stocks.20040705.fbk
-v -y f:\backups\logs\stocks.20040715.log
|
Y |
| |
|
|
|
|
39 |
839 |
Section "Shutting down a database"
The gbak utility is improperly referenced (twice) as the means of shutting down and restarting a database. This should be the gfix utility instead. |
Y |
|
Chapter |
Page |
Erratum |
|
|
39 |
841 |
Section "Qualifying Arguments"
The second example reads
gfix -sh -f 800
Because gfix has two switches starting with the letter 'f', this example will cause an error. It should read
gfix -sh -force 800
|
N |
|
39 |
843 |
The following text/code is incorrect:
Under the heading "Changing the Database Dialect", the abbreviation for the gfix -sql_dialect switch is wrong in both places it is used:
gfix -s[ql_dialect] n db_name
should read
gfix -sql[_dialect] n db_name
and, beneath it:
./gfix -s 3 /data/accounts.fdb
should read
./gfix -sql 3 /data/accounts.fdb
|
Y |
|
40 |
860 |
In Table 40-1, the following text is incorrect:
Prints out the lock table header block....lock resource type that you want to report on. Refer to Table 40-10 for the numbers.
It should read:
Prints out the lock table header block....lock resource type that you want to report on. Refer to Table 40-5 for the numbers. |
Y |
|
Appx I |
|
On a few pages, "Linux" is misspelt as "Linus".
* Page 887 (IB_UDF)
* Page 891 (FBUDF)
* Page 892 (FBUDF) |
Y |