Errata

Practical PostgreSQL

Errata for Practical PostgreSQL

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted By Date submitted Date corrected
Printed
Page 44
Second line

The word "stAtes" should be written as "stAtEs" in order to
match the code example that follows.

Anonymous   
Printed
Page 74
Second paragraph from the bottom

The text "using the ISO format as instructed" should refer
to the "SQL" format.

Anonymous   
Printed
Page 76
Table 3-20

The format "01:24:11.112" appears to be detailed to milliseconds, not microseconds as the description indicates.

AUTHOR: Correct, and fixed in the source.

Anonymous   
Printed
Page 78
Table 3-22

Same probleem as Table 3-20. Should be "milliseconds". Also on second line from
bottom of page..

Anonymous   
Printed
Page 80
Table 3-23, last 3 constants

Is midnight at the beginning or the end of each of these days? The description could be either. (As screwed
up as is a lot of the military, they don't stamp anything as midnight because
of this).

AUTHOR: To PostgreSQL, at least, "midnight" is the beginning of a day. To
make this unambiguous I have modified the sources to read:

today
Midnight, at the beginning of the current day

tomorrow
Midnight, at the beginning of the day after the current day

yesterday
Midnight, at the beginning of the day before the current day

Anonymous   
Printed
Page 99
Syntax diagram for ALTER TABLE

The placeholder "table" is used in the syntax diagram
whereas the subseqent list describing the syntax elements
refers to "table_name". The same placeholder should have
been used in both places. The "table_name" in the list
refers to the "table" element in the syntax diagram.

Anonymous   
Printed
Page 110
IN PRINT: Near top, sub-section labeled "table_name" [italics]

"The name of the table you are copying."

SHOULD BE:
"The name of the table you are copying to."

Anonymous   
Printed
Page 114
The 2nd item from the bottom

In "[ ASC | DESC | USING operator ]" the word operator
serves as a placeholder for a user-supplied value and should
have been italicized to indicate that it is a placeholder.

Anonymous   
Printed
Page 128

"ON" description. The first sentence is a duplicate of the "source2" description. Was that intentional?

AUTHOR: Typo covered in previous errata.

Anonymous   
Printed
Page 129
Example 4-37, upper half

My memory has the authors table as having a column named as "id". Is this example expecting the name to be "author_id"?

AUTHOR: This is actually an application of a column alias. The sentence
immediately following the example explains this:

"The first SELECT statement in Example 4-37 assigns the alias of author_id
to the first colums in the authors table (which is actually named id)."

Anonymous   
Printed
Page 132
Third sentence

Currently the third sentence reads:

This is because the query focuses on titles from the
books table that have ISBN numbers, and not those
editions having ISBN numbers that do not correspond
to titles.

A better phrasing might be:

This is because the query selects titles from the books
table regardless of whether or not they match editions
having ISBN numbers.

Anonymous   
Printed
Page 142
Second paragraph, Second sentence

In the book, this sentence reads:

By grouping in parentheses each of the queries
involved between a UNION, EXCEPT, or EXCEPT clause,
the returned result sets from the sub-queries are
compared, as demonstrated in Example 4-49.

The word EXCEPT is repeated twice. The sentence should have
mentioned UNION, INTERSECT, OR EXCEPT.

Anonymous   
Printed
Page 164
fourth line from the bottom

The word "the" in "...not just "the" sequence..." should
have been written as "The" in order to matche Example 5-6.

Anonymous   
Printed
Page 174
1-3 lines of Table 5-8

The font of "value::type", "value[index]", and "table.column" in
the Usage column should be constant width italic because
value, type, table, and column are all user-specified
elements.

Anonymous   
Printed
Page 193
Syntax for the octet_length() function

The syntax diagram shows char_length(s); it should show
octet_length(s).

Anonymous   
Printed
Page 200
1st paragraph, 2nd line

The text says that the upper() function lowercases text.
That is incorrect. upper() will uppercase text, as its name
implies.

Anonymous   
Printed
Page 236
The paragraph under the "Modifying the prompt"

heading, second sentence(middle of the page);
The first reference to Example 6-7 in this paragraph should
really reference Table 6-2.

Anonymous   
Printed
Page 253
Syntax for column constraints

In the third line of the syntax, the word "table" is a
placeholder for a value that you supply, and so should have
been italicized.

Anonymous   
Printed
Page 253
Second paragraph from bottom, last sentence

The term "constraint_name", which is rendered as
constant-width text, should also have been italicized
because it is a placeholder.

Anonymous   
Printed
Page 255
"ON UPDATE action" list item

The word "action" is a placeholder and should have been
italicized.

Anonymous   
Printed
Page 257
Second line

The word "table" in the table constraint syntax is a
placeholder and should have been italicized.

Anonymous   
Printed
Page 265
Last paragraph, third sentence

The "author" in "author_and_titles" should be plural.
"authors_and_titles" is the column created in Example 7-17.

Anonymous   
Printed
Page 276
Example 7-31

The INSERT statement should use 107 for the customer ID
number, not 221 as the book currently shows.

Anonymous   
Printed
Page 278
Third paragraph

"sequence_name", "where sequence_name is the name of the
sequence..." should be italicized because it marks a
sequence name that you must supply when you issue the
command in the example that follows.

Anonymous   
Printed
Page 308
3rd paragraph

In the first line of the hostssl description there is a typo, it says
"...entry is user..."
it should say
".. entry is used..."

Anonymous   
Printed
Page 313
3rd paragraph, last sentence

The text refers to the file pga_hba.conf.
The correct filename is pg.hba.conf.

Anonymous   
Printed
Page 314
2nd line

The first line of the first full paragraph on the page
should refer to the "trust method", not to the "trusted
method".

Anonymous   
Printed
Page 337
The code block(middle of the page)

The first two lines of the code block need equal signs (=)
as follows:

initdb [ -D dbdir | --pgdata=dbdir ]
[ -i sysid | --sysid=sysid ]

Anonymous   
Printed
Page 372
middle of the page

In VALID UNTIL 'infinity', the word infinity is a keyword
and thus should not be italicized.

Anonymous   
Printed
Page 375
Example 10-5

The font of the strings "newuser"(2nd line), and "n"(end
of the 3rd and the 4th line) should be bold because they
represent user-input.

Anonymous   
Printed
Page 393
Example 11-4

$ createlang plpgsql -U manager booktown
should read
$ createlang -U manager plpgsql booktown

Anonymous   
Printed
Page 401
Example 11-13

The comment about the declaration of the variable named
"ten" should state that the default value of that variable
is 10, not that it is 100.

Anonymous   
Printed
Page 415
3rd line from the bottom

Example 11-39 shows the result of the in_stock() function,
not the check_stock() function.

Anonymous   
Printed
Page 417
NOTE near top of page

The note should refer to Example 11-40, not 11-38.

Anonymous   
Printed
Page 419
3rd paragraph, 3rd sentence

Shouldn't the first word be "The" instead of "Th"?

AUTHOR: Yes, that's a typo. This is fixed in the SGML sources.

Anonymous   
Printed
Page 419

IN PRINT: Same paragraph, last sentence: Shouldn't the keyword in the parenthesis be "EXIT" instead of "ELSE"? I understood EXIT leaves the
loop, so not having one will cause an infinite loop.

AUTHOR: That's correct, also fixed in SGML sources.

Anonymous   
Printed
Page 423
Example 11-45

The function being created should not have a "2" at the end
of the name. The correct function name is
"extract_all_titles".

Anonymous   
Printed
Page 430
1st paragraph, 2nd sentence

The check_shipment_addition trigger function is called
*before* an INSERT or UPDATE operation, not after as the
book states.

Anonymous   
Printed
Page 614
2nd column

"E" index items missing..

Anonymous