| | 70 | <sect1 id="release-8-3-2"> |
|---|
| | 71 | <title>Release 8.3.2</title> |
|---|
| | 72 | |
|---|
| | 73 | <note> |
|---|
| | 74 | <title>Release date</title> |
|---|
| | 75 | <simpara>2008-06-09</simpara> |
|---|
| | 76 | </note> |
|---|
| | 77 | |
|---|
| | 78 | <para> |
|---|
| | 79 | This release contains a variety of fixes from 8.3.1. |
|---|
| | 80 | For information about new features in the 8.3 major release, see |
|---|
| | 81 | <xref linkend="release-8-3"/>. |
|---|
| | 82 | </para> |
|---|
| | 83 | |
|---|
| | 84 | <sect2> |
|---|
| | 85 | <title>Migration to Version 8.3.2</title> |
|---|
| | 86 | |
|---|
| | 87 | <para> |
|---|
| | 88 | A dump/restore is not required for those running 8.3.X. |
|---|
| | 89 | However, if you are upgrading from a version earlier than 8.3.1, |
|---|
| | 90 | see the release notes for 8.3.1. |
|---|
| | 91 | </para> |
|---|
| | 92 | |
|---|
| | 93 | </sect2> |
|---|
| | 94 | |
|---|
| | 95 | <sect2> |
|---|
| | 96 | <title>Changes</title> |
|---|
| | 97 | |
|---|
| | 98 | <itemizedlist> |
|---|
| | 99 | |
|---|
| | 100 | <listitem> |
|---|
| | 101 | <para> |
|---|
| | 102 | Fix <literal>ERRORDATA_STACK_SIZE exceeded</literal> crash that |
|---|
| | 103 | occurred on Windows when using UTF-8 database encoding and a different |
|---|
| | 104 | client encoding (Tom) |
|---|
| | 105 | </para> |
|---|
| | 106 | </listitem> |
|---|
| | 107 | |
|---|
| | 108 | <listitem> |
|---|
| | 109 | <para> |
|---|
| | 110 | Fix incorrect archive truncation point calculation for the |
|---|
| | 111 | <literal>%r</literal> macro in <varname>recovery_command</varname> parameters |
|---|
| | 112 | (Simon) |
|---|
| | 113 | </para> |
|---|
| | 114 | |
|---|
| | 115 | <para> |
|---|
| | 116 | This could lead to data loss if a warm-standby script relied on |
|---|
| | 117 | <literal>%r</literal> to decide when to throw away WAL segment files. |
|---|
| | 118 | </para> |
|---|
| | 119 | </listitem> |
|---|
| | 120 | |
|---|
| | 121 | <listitem> |
|---|
| | 122 | <para> |
|---|
| | 123 | Fix <command>ALTER TABLE ADD COLUMN ... PRIMARY KEY</command> so that the new |
|---|
| | 124 | column is correctly checked to see if it's been initialized to all |
|---|
| | 125 | non-nulls (Brendan Jurd) |
|---|
| | 126 | </para> |
|---|
| | 127 | |
|---|
| | 128 | <para> |
|---|
| | 129 | Previous versions neglected to check this requirement at all. |
|---|
| | 130 | </para> |
|---|
| | 131 | </listitem> |
|---|
| | 132 | |
|---|
| | 133 | <listitem> |
|---|
| | 134 | <para> |
|---|
| | 135 | Fix <command>REASSIGN OWNED</command> so that it works on procedural |
|---|
| | 136 | languages too (Alvaro) |
|---|
| | 137 | </para> |
|---|
| | 138 | </listitem> |
|---|
| | 139 | |
|---|
| | 140 | <listitem> |
|---|
| | 141 | <para> |
|---|
| | 142 | Fix problems with <command>SELECT FOR UPDATE/SHARE</command> occurring as a |
|---|
| | 143 | subquery in a query with a non-<command>SELECT</command> top-level operation |
|---|
| | 144 | (Tom) |
|---|
| | 145 | </para> |
|---|
| | 146 | </listitem> |
|---|
| | 147 | |
|---|
| | 148 | <listitem> |
|---|
| | 149 | <para> |
|---|
| | 150 | Fix possible <command>CREATE TABLE</command> failure when inheriting the |
|---|
| | 151 | <quote>same</quote> constraint from multiple parent relations that |
|---|
| | 152 | inherited that constraint from a common ancestor (Tom) |
|---|
| | 153 | </para> |
|---|
| | 154 | </listitem> |
|---|
| | 155 | |
|---|
| | 156 | <listitem> |
|---|
| | 157 | <para> |
|---|
| | 158 | Fix <function>pg_get_ruledef()</function> to show the alias, if any, attached |
|---|
| | 159 | to the target table of an <command>UPDATE</command> or <command>DELETE</command> |
|---|
| | 160 | (Tom) |
|---|
| | 161 | </para> |
|---|
| | 162 | </listitem> |
|---|
| | 163 | |
|---|
| | 164 | <listitem> |
|---|
| | 165 | <para> |
|---|
| | 166 | Restore the pre-8.3 behavior that an out-of-range block number in a |
|---|
| | 167 | TID being used in a TidScan plan results in silently not matching any |
|---|
| | 168 | rows (Tom) |
|---|
| | 169 | </para> |
|---|
| | 170 | |
|---|
| | 171 | <para> |
|---|
| | 172 | 8.3.0 and 8.3.1 threw an error instead. |
|---|
| | 173 | </para> |
|---|
| | 174 | </listitem> |
|---|
| | 175 | |
|---|
| | 176 | <listitem> |
|---|
| | 177 | <para> |
|---|
| | 178 | Fix GIN bug that could result in a <literal>too many LWLocks |
|---|
| | 179 | taken</literal> failure (Teodor) |
|---|
| | 180 | </para> |
|---|
| | 181 | </listitem> |
|---|
| | 182 | |
|---|
| | 183 | <listitem> |
|---|
| | 184 | <para> |
|---|
| | 185 | Fix broken GiST comparison function for <type>tsquery</type> (Teodor) |
|---|
| | 186 | </para> |
|---|
| | 187 | </listitem> |
|---|
| | 188 | |
|---|
| | 189 | <listitem> |
|---|
| | 190 | <para> |
|---|
| | 191 | Fix <function>tsvector_update_trigger()</function> and <function>ts_stat()</function> |
|---|
| | 192 | to accept domains over the types they expect to work with (Tom) |
|---|
| | 193 | </para> |
|---|
| | 194 | </listitem> |
|---|
| | 195 | |
|---|
| | 196 | <listitem> |
|---|
| | 197 | <para> |
|---|
| | 198 | Fix failure to support enum data types as foreign keys (Tom) |
|---|
| | 199 | </para> |
|---|
| | 200 | </listitem> |
|---|
| | 201 | |
|---|
| | 202 | <listitem> |
|---|
| | 203 | <para> |
|---|
| | 204 | Avoid possible crash when decompressing corrupted data |
|---|
| | 205 | (Zdenek Kotala) |
|---|
| | 206 | </para> |
|---|
| | 207 | </listitem> |
|---|
| | 208 | |
|---|
| | 209 | <listitem> |
|---|
| | 210 | <para> |
|---|
| | 211 | Fix race conditions between delayed unlinks and <command>DROP |
|---|
| | 212 | DATABASE</command> (Heikki) |
|---|
| | 213 | </para> |
|---|
| | 214 | |
|---|
| | 215 | <para> |
|---|
| | 216 | In the worst case this could result in deleting a newly created table |
|---|
| | 217 | in a new database that happened to get the same OID as the |
|---|
| | 218 | recently-dropped one; but of course that is an extremely |
|---|
| | 219 | low-probability scenario. |
|---|
| | 220 | </para> |
|---|
| | 221 | </listitem> |
|---|
| | 222 | |
|---|
| | 223 | <listitem> |
|---|
| | 224 | <para> |
|---|
| | 225 | Repair two places where SIGTERM exit of a backend could leave corrupted |
|---|
| | 226 | state in shared memory (Tom) |
|---|
| | 227 | </para> |
|---|
| | 228 | |
|---|
| | 229 | <para> |
|---|
| | 230 | Neither case is very important if SIGTERM is used to shut down the |
|---|
| | 231 | whole database cluster together, but there was a problem if someone |
|---|
| | 232 | tried to SIGTERM individual backends. |
|---|
| | 233 | </para> |
|---|
| | 234 | </listitem> |
|---|
| | 235 | |
|---|
| | 236 | <listitem> |
|---|
| | 237 | <para> |
|---|
| | 238 | Fix possible crash due to incorrect plan generated for an |
|---|
| | 239 | <literal><replaceable>x</replaceable> IN (SELECT <replaceable>y</replaceable> |
|---|
| | 240 | FROM ...)</literal> clause when <replaceable>x</replaceable> and <replaceable>y</replaceable> |
|---|
| | 241 | have different data types; and make sure the behavior is semantically |
|---|
| | 242 | correct when the conversion from <replaceable>y</replaceable>'s type to |
|---|
| | 243 | <replaceable>x</replaceable>'s type is lossy (Tom) |
|---|
| | 244 | </para> |
|---|
| | 245 | </listitem> |
|---|
| | 246 | |
|---|
| | 247 | <listitem> |
|---|
| | 248 | <para> |
|---|
| | 249 | Fix oversight that prevented the planner from substituting known Param |
|---|
| | 250 | values as if they were constants (Tom) |
|---|
| | 251 | </para> |
|---|
| | 252 | |
|---|
| | 253 | <para> |
|---|
| | 254 | This mistake partially disabled optimization of unnamed |
|---|
| | 255 | extended-Query statements in 8.3.0 and 8.3.1: in particular the |
|---|
| | 256 | LIKE-to-indexscan optimization would never be applied if the LIKE |
|---|
| | 257 | pattern was passed as a parameter, and constraint exclusion |
|---|
| | 258 | depending on a parameter value didn't work either. |
|---|
| | 259 | </para> |
|---|
| | 260 | </listitem> |
|---|
| | 261 | |
|---|
| | 262 | <listitem> |
|---|
| | 263 | <para> |
|---|
| | 264 | Fix planner failure when an indexable <function>MIN</function> or |
|---|
| | 265 | <function>MAX</function> aggregate is used with <literal>DISTINCT</literal> or |
|---|
| | 266 | <literal>ORDER BY</literal> (Tom) |
|---|
| | 267 | </para> |
|---|
| | 268 | </listitem> |
|---|
| | 269 | |
|---|
| | 270 | <listitem> |
|---|
| | 271 | <para> |
|---|
| | 272 | Fix planner to ensure it never uses a <quote>physical tlist</quote> for a |
|---|
| | 273 | plan node that is feeding a Sort node (Tom) |
|---|
| | 274 | </para> |
|---|
| | 275 | |
|---|
| | 276 | <para> |
|---|
| | 277 | This led to the sort having to push around more data than it really |
|---|
| | 278 | needed to, since unused column values were included in the sorted |
|---|
| | 279 | data. |
|---|
| | 280 | </para> |
|---|
| | 281 | </listitem> |
|---|
| | 282 | |
|---|
| | 283 | <listitem> |
|---|
| | 284 | <para> |
|---|
| | 285 | Avoid unnecessary copying of query strings (Tom) |
|---|
| | 286 | </para> |
|---|
| | 287 | |
|---|
| | 288 | <para> |
|---|
| | 289 | This fixes a performance problem introduced in 8.3.0 when a very large |
|---|
| | 290 | number of commands are submitted as a single query string. |
|---|
| | 291 | </para> |
|---|
| | 292 | </listitem> |
|---|
| | 293 | |
|---|
| | 294 | <listitem> |
|---|
| | 295 | <para> |
|---|
| | 296 | Make <function>TransactionIdIsCurrentTransactionId()</function> use binary |
|---|
| | 297 | search instead of linear search when checking child-transaction XIDs |
|---|
| | 298 | (Heikki) |
|---|
| | 299 | </para> |
|---|
| | 300 | |
|---|
| | 301 | <para> |
|---|
| | 302 | This fixes some cases in which 8.3.0 was significantly |
|---|
| | 303 | slower than earlier releases. |
|---|
| | 304 | </para> |
|---|
| | 305 | </listitem> |
|---|
| | 306 | |
|---|
| | 307 | <listitem> |
|---|
| | 308 | <para> |
|---|
| | 309 | Fix conversions between ISO-8859-5 and other encodings to handle |
|---|
| | 310 | Cyrillic <quote>Yo</quote> characters (<literal>e</literal> and <literal>E</literal> with |
|---|
| | 311 | two dots) (Sergey Burladyan) |
|---|
| | 312 | </para> |
|---|
| | 313 | </listitem> |
|---|
| | 314 | |
|---|
| | 315 | <listitem> |
|---|
| | 316 | <para> |
|---|
| | 317 | Fix several datatype input functions, notably <function>array_in()</function>, |
|---|
| | 318 | that were allowing unused bytes in their results to contain |
|---|
| | 319 | uninitialized, unpredictable values (Tom) |
|---|
| | 320 | </para> |
|---|
| | 321 | |
|---|
| | 322 | <para> |
|---|
| | 323 | This could lead to failures in which two apparently identical literal |
|---|
| | 324 | values were not seen as equal, resulting in the parser complaining |
|---|
| | 325 | about unmatched <literal>ORDER BY</literal> and <literal>DISTINCT</literal> |
|---|
| | 326 | expressions. |
|---|
| | 327 | </para> |
|---|
| | 328 | </listitem> |
|---|
| | 329 | |
|---|
| | 330 | <listitem> |
|---|
| | 331 | <para> |
|---|
| | 332 | Fix a corner case in regular-expression substring matching |
|---|
| | 333 | (<literal>substring(<replaceable>string</replaceable> from |
|---|
| | 334 | <replaceable>pattern</replaceable>)</literal>) (Tom) |
|---|
| | 335 | </para> |
|---|
| | 336 | |
|---|
| | 337 | <para> |
|---|
| | 338 | The problem occurs when there is a match to the pattern overall but |
|---|
| | 339 | the user has specified a parenthesized subexpression and that |
|---|
| | 340 | subexpression hasn't got a match. An example is |
|---|
| | 341 | <literal>substring('foo' from 'foo(bar)?')</literal>. |
|---|
| | 342 | This should return NULL, since <literal>(bar)</literal> isn't matched, but |
|---|
| | 343 | it was mistakenly returning the whole-pattern match instead (ie, |
|---|
| | 344 | <literal>foo</literal>). |
|---|
| | 345 | </para> |
|---|
| | 346 | </listitem> |
|---|
| | 347 | |
|---|
| | 348 | <listitem> |
|---|
| | 349 | <para> |
|---|
| | 350 | Prevent cancellation of an auto-vacuum that was launched to prevent |
|---|
| | 351 | XID wraparound (Alvaro) |
|---|
| | 352 | </para> |
|---|
| | 353 | </listitem> |
|---|
| | 354 | |
|---|
| | 355 | <listitem> |
|---|
| | 356 | <para> |
|---|
| | 357 | Improve <command>ANALYZE</command>'s handling of in-doubt tuples (those |
|---|
| | 358 | inserted or deleted by a not-yet-committed transaction) so that the |
|---|
| | 359 | counts it reports to the stats collector are more likely to be correct |
|---|
| | 360 | (Pavan Deolasee) |
|---|
| | 361 | </para> |
|---|
| | 362 | </listitem> |
|---|
| | 363 | |
|---|
| | 364 | <listitem> |
|---|
| | 365 | <para> |
|---|
| | 366 | Fix <application>initdb</application> to reject a relative path for its |
|---|
| | 367 | <literal>--xlogdir</literal> (<literal>-X</literal>) option (Tom) |
|---|
| | 368 | </para> |
|---|
| | 369 | </listitem> |
|---|
| | 370 | |
|---|
| | 371 | <listitem> |
|---|
| | 372 | <para> |
|---|
| | 373 | Make <application>psql</application> print tab characters as an appropriate |
|---|
| | 374 | number of spaces, rather than <literal>\x09</literal> as was done in |
|---|
| | 375 | 8.3.0 and 8.3.1 (Bruce) |
|---|
| | 376 | </para> |
|---|
| | 377 | </listitem> |
|---|
| | 378 | |
|---|
| | 379 | <listitem> |
|---|
| | 380 | <para> |
|---|
| | 381 | Update time zone data files to <application>tzdata</application> release 2008c (for |
|---|
| | 382 | DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba, and |
|---|
| | 383 | Argentina/San_Luis) |
|---|
| | 384 | </para> |
|---|
| | 385 | </listitem> |
|---|
| | 386 | |
|---|
| | 387 | <listitem> |
|---|
| | 388 | <para> |
|---|
| | 389 | Add <function>ECPGget_PGconn()</function> function to |
|---|
| | 390 | <application>ecpglib</application> (Michael) |
|---|
| | 391 | </para> |
|---|
| | 392 | </listitem> |
|---|
| | 393 | |
|---|
| | 394 | <listitem> |
|---|
| | 395 | <para> |
|---|
| | 396 | Fix incorrect result from <application>ecpg</application>'s |
|---|
| | 397 | <function>PGTYPEStimestamp_sub()</function> function (Michael) |
|---|
| | 398 | </para> |
|---|
| | 399 | </listitem> |
|---|
| | 400 | |
|---|
| | 401 | <listitem> |
|---|
| | 402 | <para> |
|---|
| | 403 | Fix handling of continuation line markers in <application>ecpg</application> |
|---|
| | 404 | (Michael) |
|---|
| | 405 | </para> |
|---|
| | 406 | </listitem> |
|---|
| | 407 | |
|---|
| | 408 | <listitem> |
|---|
| | 409 | <para> |
|---|
| | 410 | Fix possible crashes in <filename>contrib/cube</filename> functions (Tom) |
|---|
| | 411 | </para> |
|---|
| | 412 | </listitem> |
|---|
| | 413 | |
|---|
| | 414 | <listitem> |
|---|
| | 415 | <para> |
|---|
| | 416 | Fix core dump in <filename>contrib/xml2</filename>'s |
|---|
| | 417 | <function>xpath_table()</function> function when the input query returns a |
|---|
| | 418 | NULL value (Tom) |
|---|
| | 419 | </para> |
|---|
| | 420 | </listitem> |
|---|
| | 421 | |
|---|
| | 422 | <listitem> |
|---|
| | 423 | <para> |
|---|
| | 424 | Fix <filename>contrib/xml2</filename>'s makefile to not override |
|---|
| | 425 | <literal>CFLAGS</literal>, and make it auto-configure properly for |
|---|
| | 426 | <application>libxslt</application> present or not (Tom) |
|---|
| | 427 | </para> |
|---|
| | 428 | </listitem> |
|---|
| | 429 | |
|---|
| | 430 | </itemizedlist> |
|---|
| | 431 | |
|---|
| | 432 | </sect2> |
|---|
| | 433 | </sect1> |
|---|
| | 434 | |
|---|
| | 3354 | <sect1 id="release-8-2-8"> |
|---|
| | 3355 | <title>Release 8.2.8</title> |
|---|
| | 3356 | |
|---|
| | 3357 | <note> |
|---|
| | 3358 | <title>Release date</title> |
|---|
| | 3359 | <simpara>2008-06-09</simpara> |
|---|
| | 3360 | </note> |
|---|
| | 3361 | |
|---|
| | 3362 | <para> |
|---|
| | 3363 | This release contains a variety of fixes from 8.2.7. |
|---|
| | 3364 | For information about new features in the 8.2 major release, see |
|---|
| | 3365 | <xref linkend="release-8-2"/>. |
|---|
| | 3366 | </para> |
|---|
| | 3367 | |
|---|
| | 3368 | <sect2> |
|---|
| | 3369 | <title>Migration to Version 8.2.8</title> |
|---|
| | 3370 | |
|---|
| | 3371 | <para> |
|---|
| | 3372 | A dump/restore is not required for those running 8.2.X. |
|---|
| | 3373 | However, if you are upgrading from a version earlier than 8.2.7, |
|---|
| | 3374 | see the release notes for 8.2.7. |
|---|
| | 3375 | </para> |
|---|
| | 3376 | |
|---|
| | 3377 | </sect2> |
|---|
| | 3378 | |
|---|
| | 3379 | <sect2> |
|---|
| | 3380 | <title>Changes</title> |
|---|
| | 3381 | |
|---|
| | 3382 | <itemizedlist> |
|---|
| | 3383 | |
|---|
| | 3384 | <listitem> |
|---|
| | 3385 | <para> |
|---|
| | 3386 | Fix <literal>ERRORDATA_STACK_SIZE exceeded</literal> crash that |
|---|
| | 3387 | occurred on Windows when using UTF-8 database encoding and a different |
|---|
| | 3388 | client encoding (Tom) |
|---|
| | 3389 | </para> |
|---|
| | 3390 | </listitem> |
|---|
| | 3391 | |
|---|
| | 3392 | <listitem> |
|---|
| | 3393 | <para> |
|---|
| | 3394 | Fix <command>ALTER TABLE ADD COLUMN ... PRIMARY KEY</command> so that the new |
|---|
| | 3395 | column is correctly checked to see if it's been initialized to all |
|---|
| | 3396 | non-nulls (Brendan Jurd) |
|---|
| | 3397 | </para> |
|---|
| | 3398 | |
|---|
| | 3399 | <para> |
|---|
| | 3400 | Previous versions neglected to check this requirement at all. |
|---|
| | 3401 | </para> |
|---|
| | 3402 | </listitem> |
|---|
| | 3403 | |
|---|
| | 3404 | <listitem> |
|---|
| | 3405 | <para> |
|---|
| | 3406 | Fix possible <command>CREATE TABLE</command> failure when inheriting the |
|---|
| | 3407 | <quote>same</quote> constraint from multiple parent relations that |
|---|
| | 3408 | inherited that constraint from a common ancestor (Tom) |
|---|
| | 3409 | </para> |
|---|
| | 3410 | </listitem> |
|---|
| | 3411 | |
|---|
| | 3412 | <listitem> |
|---|
| | 3413 | <para> |
|---|
| | 3414 | Fix <function>pg_get_ruledef()</function> to show the alias, if any, attached |
|---|
| | 3415 | to the target table of an <command>UPDATE</command> or <command>DELETE</command> |
|---|
| | 3416 | (Tom) |
|---|
| | 3417 | </para> |
|---|
| | 3418 | </listitem> |
|---|
| | 3419 | |
|---|
| | 3420 | <listitem> |
|---|
| | 3421 | <para> |
|---|
| | 3422 | Fix GIN bug that could result in a <literal>too many LWLocks |
|---|
| | 3423 | taken</literal> failure (Teodor) |
|---|
| | 3424 | </para> |
|---|
| | 3425 | </listitem> |
|---|
| | 3426 | |
|---|
| | 3427 | <listitem> |
|---|
| | 3428 | <para> |
|---|
| | 3429 | Avoid possible crash when decompressing corrupted data |
|---|
| | 3430 | (Zdenek Kotala) |
|---|
| | 3431 | </para> |
|---|
| | 3432 | </listitem> |
|---|
| | 3433 | |
|---|
| | 3434 | <listitem> |
|---|
| | 3435 | <para> |
|---|
| | 3436 | Repair two places where SIGTERM exit of a backend could leave corrupted |
|---|
| | 3437 | state in shared memory (Tom) |
|---|
| | 3438 | </para> |
|---|
| | 3439 | |
|---|
| | 3440 | <para> |
|---|
| | 3441 | Neither case is very important if SIGTERM is used to shut down the |
|---|
| | 3442 | whole database cluster together, but there was a problem if someone |
|---|
| | 3443 | tried to SIGTERM individual backends. |
|---|
| | 3444 | </para> |
|---|
| | 3445 | </listitem> |
|---|
| | 3446 | |
|---|
| | 3447 | <listitem> |
|---|
| | 3448 | <para> |
|---|
| | 3449 | Fix conversions between ISO-8859-5 and other encodings to handle |
|---|
| | 3450 | Cyrillic <quote>Yo</quote> characters (<literal>e</literal> and <literal>E</literal> with |
|---|
| | 3451 | two dots) (Sergey Burladyan) |
|---|
| | 3452 | </para> |
|---|
| | 3453 | </listitem> |
|---|
| | 3454 | |
|---|
| | 3455 | <listitem> |
|---|
| | 3456 | <para> |
|---|
| | 3457 | Fix several datatype input functions, notably <function>array_in()</function>, |
|---|
| | 3458 | that were allowing unused bytes in their results to contain |
|---|
| | 3459 | uninitialized, unpredictable values (Tom) |
|---|
| | 3460 | </para> |
|---|
| | 3461 | |
|---|
| | 3462 | <para> |
|---|
| | 3463 | This could lead to failures in which two apparently identical literal |
|---|
| | 3464 | values were not seen as equal, resulting in the parser complaining |
|---|
| | 3465 | about unmatched <literal>ORDER BY</literal> and <literal>DISTINCT</literal> |
|---|
| | 3466 | expressions. |
|---|
| | 3467 | </para> |
|---|
| | 3468 | </listitem> |
|---|
| | 3469 | |
|---|
| | 3470 | <listitem> |
|---|
| | 3471 | <para> |
|---|
| | 3472 | Fix a corner case in regular-expression substring matching |
|---|
| | 3473 | (<literal>substring(<replaceable>string</replaceable> from |
|---|
| | 3474 | <replaceable>pattern</replaceable>)</literal>) (Tom) |
|---|
| | 3475 | </para> |
|---|
| | 3476 | |
|---|
| | 3477 | <para> |
|---|
| | 3478 | The problem occurs when there is a match to the pattern overall but |
|---|
| | 3479 | the user has specified a parenthesized subexpression and that |
|---|
| | 3480 | subexpression hasn't got a match. An example is |
|---|
| | 3481 | <literal>substring('foo' from 'foo(bar)?')</literalv>. |
|---|
| | 3482 | This should return NULL, since <literal>(bar)</literal> isn't matched, but |
|---|
| | 3483 | it was mistakenly returning the whole-pattern match instead (ie, |
|---|
| | 3484 | <literal>foo</literal>). |
|---|
| | 3485 | </para> |
|---|
| | 3486 | </listitem> |
|---|
| | 3487 | |
|---|
| | 3488 | <listitem> |
|---|
| | 3489 | <para> |
|---|
| | 3490 | Update time zone data files to <application>tzdata</application> release 2008c (for |
|---|
| | 3491 | DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba, and |
|---|
| | 3492 | Argentina/San_Luis) |
|---|
| | 3493 | </para> |
|---|
| | 3494 | </listitem> |
|---|
| | 3495 | |
|---|
| | 3496 | <listitem> |
|---|
| | 3497 | <para> |
|---|
| | 3498 | Fix incorrect result from <application>ecpg</application>'s |
|---|
| | 3499 | <function>PGTYPEStimestamp_sub()</function> function (Michael) |
|---|
| | 3500 | </para> |
|---|
| | 3501 | </listitem> |
|---|
| | 3502 | |
|---|
| | 3503 | <listitem> |
|---|
| | 3504 | <para> |
|---|
| | 3505 | Fix broken GiST comparison function for <filename>contrib/tsearch2</filename>'s |
|---|
| | 3506 | <type>tsquery</type> type (Teodor) |
|---|
| | 3507 | </para> |
|---|
| | 3508 | </listitem> |
|---|
| | 3509 | |
|---|
| | 3510 | <listitem> |
|---|
| | 3511 | <para> |
|---|
| | 3512 | Fix possible crashes in <filename>contrib/cube</filename> functions (Tom) |
|---|
| | 3513 | </para> |
|---|
| | 3514 | </listitem> |
|---|
| | 3515 | |
|---|
| | 3516 | <listitem> |
|---|
| | 3517 | <para> |
|---|
| | 3518 | Fix core dump in <filename>contrib/xml2</filename>'s |
|---|
| | 3519 | <function>xpath_table()</function> function when the input query returns a |
|---|
| | 3520 | NULL value (Tom) |
|---|
| | 3521 | </para> |
|---|
| | 3522 | </listitem> |
|---|
| | 3523 | |
|---|
| | 3524 | <listitem> |
|---|
| | 3525 | <para> |
|---|
| | 3526 | Fix <filename>contrib/xml2</filename>'s makefile to not override |
|---|
| | 3527 | <literal>CFLAGS</literal> (Tom) |
|---|
| | 3528 | </para> |
|---|
| | 3529 | </listitem> |
|---|
| | 3530 | |
|---|
| | 3531 | <listitem> |
|---|
| | 3532 | <para> |
|---|
| | 3533 | Fix <literal>DatumGetBool</literal> macro to not fail with <application>gcc</application> |
|---|
| | 3534 | 4.3 (Tom) |
|---|
| | 3535 | </para> |
|---|
| | 3536 | |
|---|
| | 3537 | <para> |
|---|
| | 3538 | This problem affects <quote>old style</quote> (V0) C functions that |
|---|
| | 3539 | return boolean. The fix is already in 8.3, but the need to |
|---|
| | 3540 | back-patch it was not realized at the time. |
|---|
| | 3541 | </para> |
|---|
| | 3542 | </listitem> |
|---|
| | 3543 | |
|---|
| | 3544 | </itemizedlist> |
|---|
| | 3545 | |
|---|
| | 3546 | </sect2> |
|---|
| | 3547 | </sect1> |
|---|
| | 3548 | |
|---|
| | 7413 | <sect1 id="release-8-1-12"> |
|---|
| | 7414 | <title>Release 8.1.12</title> |
|---|
| | 7415 | |
|---|
| | 7416 | <note> |
|---|
| | 7417 | <title>Release date</title> |
|---|
| | 7418 | <simpara>2008-06-09</simpara> |
|---|
| | 7419 | </note> |
|---|
| | 7420 | |
|---|
| | 7421 | <para> |
|---|
| | 7422 | This release contains a variety of fixes from 8.1.11. |
|---|
| | 7423 | For information about new features in the 8.1 major release, see |
|---|
| | 7424 | <xref linkend="release-8-1"/>. |
|---|
| | 7425 | </para> |
|---|
| | 7426 | |
|---|
| | 7427 | <sect2> |
|---|
| | 7428 | <title>Migration to Version 8.1.12</title> |
|---|
| | 7429 | |
|---|
| | 7430 | <para> |
|---|
| | 7431 | A dump/restore is not required for those running 8.1.X. |
|---|
| | 7432 | However, if you are upgrading from a version earlier than 8.1.2, |
|---|
| | 7433 | see the release notes for 8.1.2. |
|---|
| | 7434 | </para> |
|---|
| | 7435 | |
|---|
| | 7436 | </sect2> |
|---|
| | 7437 | |
|---|
| | 7438 | <sect2> |
|---|
| | 7439 | <title>Changes</title> |
|---|
| | 7440 | |
|---|
| | 7441 | <itemizedlist> |
|---|
| | 7442 | |
|---|
| | 7443 | <listitem> |
|---|
| | 7444 | <para> |
|---|
| | 7445 | Fix <command>ALTER TABLE ADD COLUMN ... PRIMARY KEY</command> so that the new |
|---|
| | 7446 | column is correctly checked to see if it's been initialized to all |
|---|
| | 7447 | non-nulls (Brendan Jurd) |
|---|
| | 7448 | </para> |
|---|
| | 7449 | |
|---|
| | 7450 | <para> |
|---|
| | 7451 | Previous versions neglected to check this requirement at all. |
|---|
| | 7452 | </para> |
|---|
| | 7453 | </listitem> |
|---|
| | 7454 | |
|---|
| | 7455 | <listitem> |
|---|
| | 7456 | <para> |
|---|
| | 7457 | Fix possible <command>CREATE TABLE</command> failure when inheriting the |
|---|
| | 7458 | <quote>same</quote> constraint from multiple parent relations that |
|---|
| | 7459 | inherited that constraint from a common ancestor (Tom) |
|---|
| | 7460 | </para> |
|---|
| | 7461 | </listitem> |
|---|
| | 7462 | |
|---|
| | 7463 | <listitem> |
|---|
| | 7464 | <para> |
|---|
| | 7465 | Fix conversions between ISO-8859-5 and other encodings to handle |
|---|
| | 7466 | Cyrillic <quote>Yo</quote> characters (<literal>e</literal> and <literal>E</literal> with |
|---|
| | 7467 | two dots) (Sergey Burladyan) |
|---|
| | 7468 | </para> |
|---|
| | 7469 | </listitem> |
|---|
| | 7470 | |
|---|
| | 7471 | <listitem> |
|---|
| | 7472 | <para> |
|---|
| | 7473 | Fix a few datatype input functions |
|---|
| | 7474 | that were allowing unused bytes in their results to contain |
|---|
| | 7475 | uninitialized, unpredictable values (Tom) |
|---|
| | 7476 | </para> |
|---|
| | 7477 | |
|---|
| | 7478 | <para> |
|---|
| | 7479 | This could lead to failures in which two apparently identical literal |
|---|
| | 7480 | values were not seen as equal, resulting in the parser complaining |
|---|
| | 7481 | about unmatched <literal>ORDER BY</literal> and <literal>DISTINCT</literal> |
|---|
| | 7482 | expressions. |
|---|
| | 7483 | </para> |
|---|
| | 7484 | </listitem> |
|---|
| | 7485 | |
|---|
| | 7486 | <listitem> |
|---|
| | 7487 | <para> |
|---|
| | 7488 | Fix a corner case in regular-expression substring matching |
|---|
| | 7489 | (<literal>substring(<replaceable>string</replaceable> from |
|---|
| | 7490 | <replaceable>pattern</replaceable>)</literal>) (Tom) |
|---|
| | 7491 | </para> |
|---|
| | 7492 | |
|---|
| | 7493 | <para> |
|---|
| | 7494 | The problem occurs when there is a match to the pattern overall but |
|---|
| | 7495 | the user has specified a parenthesized subexpression and that |
|---|
| | 7496 | subexpression hasn't got a match. An example is |
|---|
| | 7497 | <literal>substring('foo' from 'foo(bar)?')</literal>. |
|---|
| | 7498 | This should return NULL, since <literal>(bar)</literal> isn't matched, but |
|---|
| | 7499 | it was mistakenly returning the whole-pattern match instead (ie, |
|---|
| | 7500 | <literal>foo</literal>). |
|---|
| | 7501 | </para> |
|---|
| | 7502 | </listitem> |
|---|
| | 7503 | |
|---|
| | 7504 | <listitem> |
|---|
| | 7505 | <para> |
|---|
| | 7506 | Update time zone data files to <application>tzdata</application> release 2008c (for |
|---|
| | 7507 | DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba, |
|---|
| | 7508 | Argentina/San_Luis, and Chile) |
|---|
| | 7509 | </para> |
|---|
| | 7510 | </listitem> |
|---|
| | 7511 | |
|---|
| | 7512 | <listitem> |
|---|
| | 7513 | <para> |
|---|
| | 7514 | Fix incorrect result from <application>ecpg</application>'s |
|---|
| | 7515 | <function>PGTYPEStimestamp_sub()</function> function (Michael) |
|---|
| | 7516 | </para> |
|---|
| | 7517 | </listitem> |
|---|
| | 7518 | |
|---|
| | 7519 | <listitem> |
|---|
| | 7520 | <para> |
|---|
| | 7521 | Fix core dump in <filename>contrib/xml2</filename>'s |
|---|
| | 7522 | <function>xpath_table()</function> function when the input query returns a |
|---|
| | 7523 | NULL value (Tom) |
|---|
| | 7524 | </para> |
|---|
| | 7525 | </listitem> |
|---|
| | 7526 | |
|---|
| | 7527 | <listitem> |
|---|
| | 7528 | <para> |
|---|
| | 7529 | Fix <filename>contrib/xml2</filename>'s makefile to not override |
|---|
| | 7530 | <literal>CFLAGS</literal> (Tom) |
|---|
| | 7531 | </para> |
|---|
| | 7532 | </listitem> |
|---|
| | 7533 | |
|---|
| | 7534 | <listitem> |
|---|
| | 7535 | <para> |
|---|
| | 7536 | Fix <literal>DatumGetBool</literal> macro to not fail with <application>gcc</application> |
|---|
| | 7537 | 4.3 (Tom) |
|---|
| | 7538 | </para> |
|---|
| | 7539 | |
|---|
| | 7540 | <para> |
|---|
| | 7541 | This problem affects <quote>old style</quote> (V0) C functions that |
|---|
| | 7542 | return boolean. The fix is already in 8.3, but the need to |
|---|
| | 7543 | back-patch it was not realized at the time. |
|---|
| | 7544 | </para> |
|---|
| | 7545 | </listitem> |
|---|
| | 7546 | |
|---|
| | 7547 | <listitem> |
|---|
| | 7548 | <para> |
|---|
| | 7549 | Fix longstanding <command>LISTEN</command>/<command>NOTIFY</command> |
|---|
| | 7550 | race condition (Tom) |
|---|
| | 7551 | </para> |
|---|
| | 7552 | |
|---|
| | 7553 | <para> |
|---|
| | 7554 | In rare cases a session that had just executed a |
|---|
| | 7555 | <command>LISTEN</command> might not get a notification, even though |
|---|
| | 7556 | one would be expected because the concurrent transaction executing |
|---|
| | 7557 | <command>NOTIFY</command> was observed to commit later. |
|---|
| | 7558 | </para> |
|---|
| | 7559 | |
|---|
| | 7560 | <para> |
|---|
| | 7561 | A side effect of the fix is that a transaction that has executed |
|---|
| | 7562 | a not-yet-committed <command>LISTEN</command> command will not see any |
|---|
| | 7563 | row in <structname>pg_listener</structname> for the <command>LISTEN</command>, |
|---|
| | 7564 | should it choose to look; formerly it would have. This behavior |
|---|
| | 7565 | was never documented one way or the other, but it is possible that |
|---|
| | 7566 | some applications depend on the old behavior. |
|---|
| | 7567 | </para> |
|---|
| | 7568 | </listitem> |
|---|
| | 7569 | |
|---|
| | 7570 | <listitem> |
|---|
| | 7571 | <para> |
|---|
| | 7572 | Disallow <command>LISTEN</command> and <command>UNLISTEN</command> within a |
|---|
| | 7573 | prepared transaction (Tom) |
|---|
| | 7574 | </para> |
|---|
| | 7575 | |
|---|
| | 7576 | <para> |
|---|
| | 7577 | This was formerly allowed but trying to do it had various unpleasant |
|---|
| | 7578 | consequences, notably that the originating backend could not exit |
|---|
| | 7579 | as long as an <command>UNLISTEN</command> remained uncommitted. |
|---|
| | 7580 | </para> |
|---|
| | 7581 | </listitem> |
|---|
| | 7582 | |
|---|
| | 7583 | <listitem> |
|---|
| | 7584 | <para> |
|---|
| | 7585 | Fix rare crash when an error occurs during a query using a hash index |
|---|
| | 7586 | (Heikki) |
|---|
| | 7587 | </para> |
|---|
| | 7588 | </listitem> |
|---|
| | 7589 | |
|---|
| | 7590 | <listitem> |
|---|
| | 7591 | <para> |
|---|
| | 7592 | Fix input of datetime values for February 29 in years BC (Tom) |
|---|
| | 7593 | </para> |
|---|
| | 7594 | |
|---|
| | 7595 | <para> |
|---|
| | 7596 | The former coding was mistaken about which years were leap years. |
|---|
| | 7597 | </para> |
|---|
| | 7598 | </listitem> |
|---|
| | 7599 | |
|---|
| | 7600 | <listitem> |
|---|
| | 7601 | <para> |
|---|
| | 7602 | Fix <quote>unrecognized node type</quote> error in some variants of |
|---|
| | 7603 | <command>ALTER OWNER</command> (Tom) |
|---|
| | 7604 | </para> |
|---|
| | 7605 | </listitem> |
|---|
| | 7606 | |
|---|
| | 7607 | <listitem> |
|---|
| | 7608 | <para> |
|---|
| | 7609 | Fix <application>pg_ctl</application> to correctly extract the postmaster's port |
|---|
| | 7610 | number from command-line options (Itagaki Takahiro, Tom) |
|---|
| | 7611 | </para> |
|---|
| | 7612 | |
|---|
| | 7613 | <para> |
|---|
| | 7614 | Previously, <literal>pg_ctl start -w</literal> could try to contact the |
|---|
| | 7615 | postmaster on the wrong port, leading to bogus reports of startup |
|---|
| | 7616 | failure. |
|---|
| | 7617 | </para> |
|---|
| | 7618 | </listitem> |
|---|
| | 7619 | |
|---|
| | 7620 | <listitem> |
|---|
| | 7621 | <para> |
|---|
| | 7622 | Use <option>-fwrapv</option> to defend against possible misoptimization |
|---|
| | 7623 | in recent <application>gcc</application> versions (Tom) |
|---|
| | 7624 | </para> |
|---|
| | 7625 | |
|---|
| | 7626 | <para> |
|---|
| | 7627 | This is known to be necessary when building <productname>PostgreSQL</productname> |
|---|
| | 7628 | with <application>gcc</application> 4.3 or later. |
|---|
| | 7629 | </para> |
|---|
| | 7630 | </listitem> |
|---|
| | 7631 | |
|---|
| | 7632 | <listitem> |
|---|
| | 7633 | <para> |
|---|
| | 7634 | Fix display of constant expressions in <literal>ORDER BY</literal> |
|---|
| | 7635 | and <literal>GROUP BY</literal> (Tom) |
|---|
| | 7636 | </para> |
|---|
| | 7637 | |
|---|
| | 7638 | <para> |
|---|
| | 7639 | An explictly casted constant would be shown incorrectly. This could |
|---|
| | 7640 | for example lead to corruption of a view definition during |
|---|
| | 7641 | dump and reload. |
|---|
| | 7642 | </para> |
|---|
| | 7643 | </listitem> |
|---|
| | 7644 | |
|---|
| | 7645 | <listitem> |
|---|
| | 7646 | <para> |
|---|
| | 7647 | Fix <application>libpq</application> to handle NOTICE messages correctly |
|---|
| | 7648 | during COPY OUT (Tom) |
|---|
| | 7649 | </para> |
|---|
| | 7650 | |
|---|
| | 7651 | <para> |
|---|
| | 7652 | This failure has only been observed to occur when a user-defined |
|---|
| | 7653 | datatype's output routine issues a NOTICE, but there is no |
|---|
| | 7654 | guarantee it couldn't happen due to other causes. |
|---|
| | 7655 | </para> |
|---|
| | 7656 | </listitem> |
|---|
| | 7657 | |
|---|
| | 7658 | </itemizedlist> |
|---|
| | 7659 | |
|---|
| | 7660 | </sect2> |
|---|
| | 7661 | </sect1> |
|---|
| | 7662 | |
|---|