Known errata are listed by printing date below. If you find a mistake that is not listed below, please report it by filling in the errata reporting form!
The date of printing is written on the backside of the first sheet ("copyright page") on the bottom right.

Printing Page Paragraph Description
2012-11-15, 2012-07-13 47 3(2x), 4 "full- text search"
2012-11-15, 2012-07-13 2 1 "…for the reason simple reason that there…"
2012-11-15, 2012-07-13 3 1 "…is stored in a database block…" (missing 'a')
2012-07-13 3 last …column
2)… (poorly placed line break)
2012-11-15, 2012-07-13 5 last "…greater than or equal to (>=) than the search term (57)."
2012-07-13 6 2 “degenerated index (wrong closing quote).
2012-07-13 6 3 “57 (wrong closing quotes, 2 times).
2012-11-15, 2012-07-13 7 4 "Databases exposeexpoit this concept…"
2012-11-15, 2012-07-13 8 3 "This is the fall back operation…" (was: 'fall back')
2012-11-15, 2012-07-13 12 5 "…into account,that is, the SUBSIDARY_ID…" (em-dash instead of comma, missing comma)
2012-11-15, 2012-07-13 13 1 "…the database can use an INDEX RANGEUNQIUE SCAN…"
2012-11-15, 2012-07-13 14 4 "two-column index" (hyphen missing, two times)
2012-11-15, 2012-07-13 15 2
SELECT <INDEX SPALTENLISTECOLUMN LIST> 
  FROM <TABELLETABLE>  
 ORDER BY <INDEX SPALTENLISTECOLUMN LIST>
 FETCH FIRST 100 ROWS ONLY;
2013-09-09, 2013-03-03, 2012-11-15, 2012-07-13 16 1 "how to choose the column order so it can support as many SQL queriesbe used as often as possible."
2012-11-15, 2012-07-13 16 5 "two-index solution" and "single-index solution" (missing hypens)
2012-11-15, 2012-07-13 18 1 "…considered two only two SQL statements."
2012-11-15, 2012-07-13 18 2 "—regardless ifof whether…" "…it is the optimizer's job…" (ampersand missing)
2012-11-15, 2012-07-13 18 4 "Cost-bBased Ooptimizers (CBO)…and calculates a cost value…"
2012-11-15, 2012-07-13 18 5 "Rule-bBased Ooptimizers (RBO)…"
2012-11-15, 2012-07-13 19 1 "…as the cause for…"
2012-11-15, 2012-07-13 20 6 "…operation IdID 2…"
2012-11-15, 2012-07-13 21 2 "…one for each employees…"
2012-11-15, 2012-07-13 22 1 "…(again, see Example…" (missing comma)
2012-11-15, 2012-07-13 24, 25-27, 28, 31 (various) "function-based index[es|ing]" (missing hypen, generally)
2012-11-15, 2012-07-13 25 last "right-hand side" (missing hyphen)
2013-09-09, 2013-03-03, 2012-11-15, 2012-07-13 27 4 "Statistics for function-based indexes and multi-column statistics…"
"The so-called “extended statistics” on expressions and column groups…"
2012-11-15, 2012-07-13 28 2 "updateing"
2012-11-15, 2012-07-13 29 6 "…42-year-old…" (hyphens missing)
2012-11-15, 2012-07-13 30 last "…42-year-old…" (hyphens missing)
2012-11-15, 2012-07-13 31 1 "Over-Indexing" (hyphen missing).
2012-11-15, 2012-07-13 31 2 "…case-insensitive…" (hyphen missing)
2012-11-15, 2012-07-13 31 4 "We could,…, but that meanswould mean…"
2012-11-15, 2012-07-13 31 4 "…the same function throughout your application."
2012-11-15, 2012-07-13 32 1 "This section covers a topic that is skipped in most SQL textbooks;: " (colon instead of semicolon)
2013-09-09, 2013-03-03, 2012-11-15, 2012-07-13 34 4 "Column histograms only make senseare most useful…"
2013-09-09, 2013-03-03, 2012-11-15, 2012-07-13 34 5 "For columns with uniform distribution, it is often sufficient…"
2012-07-13 35 2 Database vendors try to solve… (missing word).
2012-11-15, 2012-07-13 35 4 "Unevenly distributed status codes…" (missing 's')
2012-11-15, 2012-07-13 35 penultimate "…if in of doubt…"
2012-11-15, 2012-07-13 36-38 multiple "Without bind parameters."
"WithUsing a bind parameter."
2012-11-15, 2012-07-13 37 5 "See: Programming the Perl DBI."
2012-11-15, 2012-07-13 38 6 "…an at symbol…" (missing quotes)
2013-09-09, 2013-03-03, 2012-11-15, 2012-07-13 39 1

"…or autoforced parametrization (SQL Server)".

2012-11-15, 2012-07-13 40 4 "The start and stop conditions isare…"
2013-09-09, 2013-03-03, 2012-11-15, 2012-07-13 40 4 "…if a second columns becomes involved:"
2012-11-15, 2012-07-13 40 last "The ordering of SUBSIDIARY_ID it is…"
2012-11-15, 2012-07-13 41 last "…is sorted according to the second column,the date of birthso there is…"
2012-07-13 43 4 "…the database tells us how…" (missing 's')
2012-11-15, 2012-07-13 44 6 "…specify the upper and lower bounds into a single condition:"
2012-11-15, 2012-07-13 45 1 "…that can be indexed very well, but others can not."
2012-11-15, 2012-07-13 45 4 "…two predicates types…"
2012-11-15, 2012-07-13 45 4 "…as an access predicate; (2) the other characters as a filter predicate."
2012-11-15, 2012-07-13 46 2, last "…as an access predicate."
2012-11-15, 2012-07-13 46 3 "non-matching"
2012-11-15, 2012-07-13 47 2 "…has to guess ifwhether or notor not."
2012-07-13 48 last "…at the beginning of the search term…"
2013-09-09, 2013-03-03, 2012-11-15, 2012-07-13 49 1 "is it better to havecreate one index for each column…"
2012-07-13 49 6 "chess board" "chessboard" (Merriam-Webster)
2013-09-09, 2013-03-03, 2012-11-15, 2012-07-13 50 6 "The bBy far the geatest weakness…"
2012-07-13 50 last "…are almost unusable for…"
2012-11-15, 2012-07-13 51 7 "two-column index" (missing hyphen)
2013-09-09, 2013-03-03, 2012-11-15, 2012-07-13 54 4
CREATE INDEX idx
          ON tbl (A, B, C, ...)
       WHERE A IS NOT NULL
       ANDOR B IS NOT NULL
       ANDOR C IS NOT NULL
2013-09-09, 2013-03-03, 2012-11-15, 2012-07-13 54 5 "Consider the EMP_DOPB…"
2013-09-09, 2013-03-03, 2012-11-15, 2012-07-13 55 last "…to find all records where DATE_OF_BIRTH IS NULL."
2012-07-13 62 3 "…yesterday's sales." (ampersand missing)
2012-11-15, 2012-07-13 62, 66 4,10 "INVTERVAL"
2013-09-09, 2013-03-03, 2012-11-15, 2012-07-13 68 1 "That is unusual, but not a problem as long as you always treat them like strings:Although it is a very bad practice, it does not automatically render an index useless if you consistently treat it as string:"
2013-09-09, 2013-03-03, 2012-11-15, 2012-07-13 68 5 "TheAlthough some database must performyield an error (e.g. PostgreSQL) many database just add an implicit conversion due to the type mismatch."
2013-09-09, 2013-03-03, 2012-11-15, 2012-07-13 75 4

"The “adaptive” approach is to run everything as usual and log the execution times. If one execution runs much slower than the others, the optimizer takes note of the bind values used for this execution. The next time the statement is executed using these values the optimizer creates a customized execution plan using these bind values. That means that one execution must run slow before the second execution can benefit from a customized execution plan."

"Further, the optimizer peeks the bind parameters and stores their estimated selectivity along with the execution plan. When the cache is subsequently accessed, the selectivity of the current bind values must fall within the selectivity ranges of a cached execution plan to be reused. Otherwise the optimizer creates a new execution plan and compares it against the already cached execution plans for this query. If there is already such an execution plan, the database replaces it with a new execution plan that also covers the selectivity estimates of the current bind values. If not, it caches a new execution plan variant for this query — along with the selectivity estimates, of course."

2013-09-09, 2013-03-03, 2012-11-15, 2012-07-13 76 2 "…query hints…"
2012-07-13 82 3 "…the cost values reflects the speed difference,…'
2013-03-03, 2012-11-15, 2012-07-13 86 3 "…—as it might be the case it in your development environment—…"
2012-07-13 87 1 "More often thatn not…"
2012-07-13 87 3 "… new car models consistently going twice as fast…"
2012-07-13 88 last

"…because with additional complexity more latencies accumulate."

"…because the additional complexity might accumulate more latencies."

2012-07-13 90 2 "…storage technology that uses no…" (missing 's')
2012-11-15, 2012-07-13 97 4 query.where(queryBuilder.like(
2013-03-03, 2012-11-15, 2012-07-13 105 7 "Another option is to loadfor loading only selected columns it so it usesis to use data transport objects…"
2013-03-03, 2012-11-15, 2012-07-13 105 7 "JP-QL"
2012-07-13 106 4 "…fetch all employee details via prefetch…"
2012-11-15, 2012-07-13 112 3 "Index Filter-Predicates Used Intentionally"
2012-07-13 115 penultimate "…can be usesd as access predicates…"
2013-03-03, 2012-11-15, 2012-07-13 120 4 "…add to the indexd to support…"
2012-07-13 124 Fig 5.2 Figure shows dates in the year 2011, although text refers to 2012.
2013-03-03, 2012-11-15, 2012-07-13 133 4 "…aligning the index entries according to the table order…"
2013-03-03, 2012-11-15, 2012-07-13 143 1 "…used for this functions…"
2012-11-15, 2012-07-13 152 5 OR "SALE_ID"<TO_NUMBER(:SALE_DATE:SALE_ID))
2013-09-09, 2013-03-03, 2012-11-15, 2012-07-13 152-153 last/first "That means that the database readsinspects a few entries from the previous page again, but drops them immediately."
2012-11-15, 2012-07-13 153 6 "HwereWhere"
2012-07-13 159 1 "It supports data manipulation as well." (missing 's')
2012-07-13 163 3 “deleted (Wrong closing quote).
2013-09-09, 2013-03-03, 2012-11-15, 2012-07-13 166 last Added a warning:
"The explain plan for command does not necessarily create the same execution plan as though it would when executing the statement."
(The second edition of the book might show how to cope with that)
2012-07-13 171 1 "Predicate Information" (wrong quotes)
2013-09-09, 2013-03-03, 2012-11-15, 2012-07-13 172 7 "Although the statement has to specify an actual value for the bind parameter, the value is not used for query planning because the planning was already done during the prepare call."
" Up till PostgreSQL 9.1, the execution plan was already created with the prepare call and could therefore not consider the actual values provided with execute. Since PostgreSQL 9.2 the creation of the execution plan is postponed until execution and thus can consider the actual values for the bind parameters. "
2013-09-09, 2013-03-03, 2012-11-15, 2012-07-13 172 last "In this case, the optimizer considers the actual values during query planning so the execution is different then when using bind parameters. If you usehas always considered the actual values during query planning. If you use PostgreSQL 9.1 or earlier and bind parameters in your program,…"
2012-07-13 178 5 “Index Cond (wrong closing quote)
2012-11-15, 2012-07-13 178 5 "—regardless ifof whether…"
2012-07-13 180 3 "hover" (wrong quotes)
2012-07-13 188 6 "join type""access type" (wrong quotes).
2012-11-15, 2012-07-13 188 6 "The meaning of the type values are is described…"
2012-07-13 189 5 "Using Index""using index ONLY" (wrong quotes).
2012-07-13 190 2 “using filesort