| | 38 | <para> |
|---|
| | 39 | The release notes contain the significant changes in each |
|---|
| | 40 | <productname>PostgreSQL</> release, with major features and migration |
|---|
| | 41 | issues listed at the top. The release notes do not contain changes |
|---|
| | 42 | that affect only a few users or changes that are internal and therefore not |
|---|
| | 43 | user-visible. For example, the optimizer is improved in almost every |
|---|
| | 44 | release, but the improvements are usually observed by users as simply |
|---|
| | 45 | faster queries. |
|---|
| | 46 | </para> |
|---|
| | 47 | |
|---|
| | 48 | <para> |
|---|
| | 49 | A complete list of changes for each release can be obtained by |
|---|
| | 50 | viewing the <link linkend="cvs">CVS</link> logs for each release. |
|---|
| | 51 | The <ulink |
|---|
| | 52 | url="http://archives.postgresql.org/pgsql-committers/">pgsql-committers |
|---|
| | 53 | email list</ulink> contains all source code changes as well. There is also |
|---|
| | 54 | a <ulink url="http://developer.postgresql.org/cvsweb.cgi/pgsql/">web |
|---|
| | 55 | interface</ulink> that shows changes to specific files. |
|---|
| | 56 | <!-- we need a file containing the CVS logs for each release, and something |
|---|
| | 57 | like the SVN web interface that groups commits but has branches --> |
|---|
| | 58 | </para> |
|---|
| | 59 | |
|---|
| | 60 | <para> |
|---|
| | 61 | The name appearing next to each item represents the major developer for |
|---|
| | 62 | that item. Of course all changes involve community discussion and patch |
|---|
| | 63 | review, so each item is truly a community effort. |
|---|
| | 64 | </para> |
|---|
| | 65 | |
|---|
| | 66 | <sect1 id="release-8-0-16"> |
|---|
| | 67 | <title>Release 8.0.16</title> |
|---|
| | 68 | |
|---|
| | 69 | <note> |
|---|
| | 70 | <title>Release date</title> |
|---|
| | 71 | <simpara>2008-06-09</simpara> |
|---|
| | 72 | </note> |
|---|
| | 73 | |
|---|
| | 74 | <para> |
|---|
| | 75 | This release contains a variety of fixes from 8.0.15. |
|---|
| | 76 | For information about new features in the 8.0 major release, see |
|---|
| | 77 | <xref linkend="release-8-0">. |
|---|
| | 78 | </para> |
|---|
| | 79 | |
|---|
| | 80 | <sect2> |
|---|
| | 81 | <title>Migration to Version 8.0.16</title> |
|---|
| | 82 | |
|---|
| | 83 | <para> |
|---|
| | 84 | A dump/restore is not required for those running 8.0.X. |
|---|
| | 85 | However, if you are upgrading from a version earlier than 8.0.6, |
|---|
| | 86 | see the release notes for 8.0.6. |
|---|
| | 87 | </para> |
|---|
| | 88 | |
|---|
| | 89 | </sect2> |
|---|
| | 90 | |
|---|
| | 91 | <sect2> |
|---|
| | 92 | <title>Changes</title> |
|---|
| | 93 | |
|---|
| | 94 | <itemizedlist> |
|---|
| | 95 | |
|---|
| | 96 | <listitem> |
|---|
| | 97 | <para> |
|---|
| | 98 | Fix <command>ALTER TABLE ADD COLUMN ... PRIMARY KEY</> so that the new |
|---|
| | 99 | column is correctly checked to see if it's been initialized to all |
|---|
| | 100 | non-nulls (Brendan Jurd) |
|---|
| | 101 | </para> |
|---|
| | 102 | |
|---|
| | 103 | <para> |
|---|
| | 104 | Previous versions neglected to check this requirement at all. |
|---|
| | 105 | </para> |
|---|
| | 106 | </listitem> |
|---|
| | 107 | |
|---|
| | 108 | <listitem> |
|---|
| | 109 | <para> |
|---|
| | 110 | Fix possible <command>CREATE TABLE</command> failure when inheriting the |
|---|
| | 111 | <quote>same</quote> constraint from multiple parent relations that |
|---|
| | 112 | inherited that constraint from a common ancestor (Tom) |
|---|
| | 113 | </para> |
|---|
| | 114 | </listitem> |
|---|
| | 115 | |
|---|
| | 116 | <listitem> |
|---|
| | 117 | <para> |
|---|
| | 118 | Fix conversions between ISO-8859-5 and other encodings to handle |
|---|
| | 119 | Cyrillic <quote>Yo</quote> characters (<literal>e</literal> and <literal>E</literal> with |
|---|
| | 120 | two dots) (Sergey Burladyan) |
|---|
| | 121 | </para> |
|---|
| | 122 | </listitem> |
|---|
| | 123 | |
|---|
| | 124 | <listitem> |
|---|
| | 125 | <para> |
|---|
| | 126 | Fix a few datatype input functions |
|---|
| | 127 | that were allowing unused bytes in their results to contain |
|---|
| | 128 | uninitialized, unpredictable values (Tom) |
|---|
| | 129 | </para> |
|---|
| | 130 | |
|---|
| | 131 | <para> |
|---|
| | 132 | This could lead to failures in which two apparently identical literal |
|---|
| | 133 | values were not seen as equal, resulting in the parser complaining |
|---|
| | 134 | about unmatched <literal>ORDER BY</literal> and <literal>DISTINCT</literal> |
|---|
| | 135 | expressions. |
|---|
| | 136 | </para> |
|---|
| | 137 | </listitem> |
|---|
| | 138 | |
|---|
| | 139 | <listitem> |
|---|
| | 140 | <para> |
|---|
| | 141 | Fix a corner case in regular-expression substring matching |
|---|
| | 142 | (<literal>substring(<replaceable>string</replaceable> from |
|---|
| | 143 | <replaceable>pattern</replaceable>)</literal>) (Tom) |
|---|
| | 144 | </para> |
|---|
| | 145 | |
|---|
| | 146 | <para> |
|---|
| | 147 | The problem occurs when there is a match to the pattern overall but |
|---|
| | 148 | the user has specified a parenthesized subexpression and that |
|---|
| | 149 | subexpression hasn't got a match. An example is |
|---|
| | 150 | <literal>substring('foo' from 'foo(bar)?')</literal>. |
|---|
| | 151 | This should return NULL, since <literal>(bar)</literal> isn't matched, but |
|---|
| | 152 | it was mistakenly returning the whole-pattern match instead (ie, |
|---|
| | 153 | <literal>foo</literal>). |
|---|
| | 154 | </para> |
|---|
| | 155 | </listitem> |
|---|
| | 156 | |
|---|
| | 157 | <listitem> |
|---|
| | 158 | <para> |
|---|
| | 159 | Update time zone data files to <application>tzdata</application> release 2008c (for |
|---|
| | 160 | DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba, |
|---|
| | 161 | Argentina/San_Luis, and Chile) |
|---|
| | 162 | </para> |
|---|
| | 163 | </listitem> |
|---|
| | 164 | |
|---|
| | 165 | <listitem> |
|---|
| | 166 | <para> |
|---|
| | 167 | Fix incorrect result from <application>ecpg</application>'s |
|---|
| | 168 | <function>PGTYPEStimestamp_sub()</function> function (Michael) |
|---|
| | 169 | </para> |
|---|
| | 170 | </listitem> |
|---|
| | 171 | |
|---|
| | 172 | <listitem> |
|---|
| | 173 | <para> |
|---|
| | 174 | Fix core dump in <filename>contrib/xml2</filename>'s |
|---|
| | 175 | <function>xpath_table()</function> function when the input query returns a |
|---|
| | 176 | NULL value (Tom) |
|---|
| | 177 | </para> |
|---|
| | 178 | </listitem> |
|---|
| | 179 | |
|---|
| | 180 | <listitem> |
|---|
| | 181 | <para> |
|---|
| | 182 | Fix <filename>contrib/xml2</filename>'s makefile to not override |
|---|
| | 183 | <literal>CFLAGS</literal> (Tom) |
|---|
| | 184 | </para> |
|---|
| | 185 | </listitem> |
|---|
| | 186 | |
|---|
| | 187 | <listitem> |
|---|
| | 188 | <para> |
|---|
| | 189 | Fix <literal>DatumGetBool</literal> macro to not fail with <application>gcc</application> |
|---|
| | 190 | 4.3 (Tom) |
|---|
| | 191 | </para> |
|---|
| | 192 | |
|---|
| | 193 | <para> |
|---|
| | 194 | This problem affects <quote>old style</quote> (V0) C functions that |
|---|
| | 195 | return boolean. The fix is already in 8.3, but the need to |
|---|
| | 196 | back-patch it was not realized at the time. |
|---|
| | 197 | </para> |
|---|
| | 198 | </listitem> |
|---|
| | 199 | |
|---|
| | 200 | <listitem> |
|---|
| | 201 | <para> |
|---|
| | 202 | Fix longstanding <command>LISTEN</command>/<command>NOTIFY</command> |
|---|
| | 203 | race condition (Tom) |
|---|
| | 204 | </para> |
|---|
| | 205 | |
|---|
| | 206 | <para> |
|---|
| | 207 | In rare cases a session that had just executed a |
|---|
| | 208 | <command>LISTEN</command> might not get a notification, even though |
|---|
| | 209 | one would be expected because the concurrent transaction executing |
|---|
| | 210 | <command>NOTIFY</command> was observed to commit later. |
|---|
| | 211 | </para> |
|---|
| | 212 | |
|---|
| | 213 | <para> |
|---|
| | 214 | A side effect of the fix is that a transaction that has executed |
|---|
| | 215 | a not-yet-committed <command>LISTEN</command> command will not see any |
|---|
| | 216 | row in <structname>pg_listener</structname> for the <command>LISTEN</command>, |
|---|
| | 217 | should it choose to look; formerly it would have. This behavior |
|---|
| | 218 | was never documented one way or the other, but it is possible that |
|---|
| | 219 | some applications depend on the old behavior. |
|---|
| | 220 | </para> |
|---|
| | 221 | </listitem> |
|---|
| | 222 | |
|---|
| | 223 | <listitem> |
|---|
| | 224 | <para> |
|---|
| | 225 | Fix rare crash when an error occurs during a query using a hash index |
|---|
| | 226 | (Heikki) |
|---|
| | 227 | </para> |
|---|
| | 228 | </listitem> |
|---|
| | 229 | |
|---|
| | 230 | <listitem> |
|---|
| | 231 | <para> |
|---|
| | 232 | Fix input of datetime values for February 29 in years BC (Tom) |
|---|
| | 233 | </para> |
|---|
| | 234 | |
|---|
| | 235 | <para> |
|---|
| | 236 | The former coding was mistaken about which years were leap years. |
|---|
| | 237 | </para> |
|---|
| | 238 | </listitem> |
|---|
| | 239 | |
|---|
| | 240 | <listitem> |
|---|
| | 241 | <para> |
|---|
| | 242 | Fix <quote>unrecognized node type</quote> error in some variants of |
|---|
| | 243 | <command>ALTER OWNER</command> (Tom) |
|---|
| | 244 | </para> |
|---|
| | 245 | </listitem> |
|---|
| | 246 | |
|---|
| | 247 | <listitem> |
|---|
| | 248 | <para> |
|---|
| | 249 | Fix <application>pg_ctl</application> to correctly extract the postmaster's port |
|---|
| | 250 | number from command-line options (Itagaki Takahiro, Tom) |
|---|
| | 251 | </para> |
|---|
| | 252 | |
|---|
| | 253 | <para> |
|---|
| | 254 | Previously, <literal>pg_ctl start -w</literal> could try to contact the |
|---|
| | 255 | postmaster on the wrong port, leading to bogus reports of startup |
|---|
| | 256 | failure. |
|---|
| | 257 | </para> |
|---|
| | 258 | </listitem> |
|---|
| | 259 | |
|---|
| | 260 | <listitem> |
|---|
| | 261 | <para> |
|---|
| | 262 | Use <option>-fwrapv</option> to defend against possible misoptimization |
|---|
| | 263 | in recent <application>gcc</application> versions (Tom) |
|---|
| | 264 | </para> |
|---|
| | 265 | |
|---|
| | 266 | <para> |
|---|
| | 267 | This is known to be necessary when building <productname>PostgreSQL</productname> |
|---|
| | 268 | with <application>gcc</application> 4.3 or later. |
|---|
| | 269 | </para> |
|---|
| | 270 | </listitem> |
|---|
| | 271 | |
|---|
| | 272 | <listitem> |
|---|
| | 273 | <para> |
|---|
| | 274 | Fix display of constant expressions in <literal>ORDER BY</literal> |
|---|
| | 275 | and <literal>GROUP BY</literal> (Tom) |
|---|
| | 276 | </para> |
|---|
| | 277 | |
|---|
| | 278 | <para> |
|---|
| | 279 | An explictly casted constant would be shown incorrectly. This could |
|---|
| | 280 | for example lead to corruption of a view definition during |
|---|
| | 281 | dump and reload. |
|---|
| | 282 | </para> |
|---|
| | 283 | </listitem> |
|---|
| | 284 | |
|---|
| | 285 | <listitem> |
|---|
| | 286 | <para> |
|---|
| | 287 | Fix <application>libpq</application> to handle NOTICE messages correctly |
|---|
| | 288 | during COPY OUT (Tom) |
|---|
| | 289 | </para> |
|---|
| | 290 | |
|---|
| | 291 | <para> |
|---|
| | 292 | This failure has only been observed to occur when a user-defined |
|---|
| | 293 | datatype's output routine issues a NOTICE, but there is no |
|---|
| | 294 | guarantee it couldn't happen due to other causes. |
|---|
| | 295 | </para> |
|---|
| | 296 | </listitem> |
|---|
| | 297 | |
|---|
| | 298 | </itemizedlist> |
|---|
| | 299 | |
|---|
| | 300 | </sect2> |
|---|
| | 301 | </sect1> |
|---|
| | 302 | |
|---|
| | 4258 | <sect1 id="release-7-4-20"> |
|---|
| | 4259 | <title>Release 7.4.20</title> |
|---|
| | 4260 | |
|---|
| | 4261 | <note> |
|---|
| | 4262 | <title>Release date</title> |
|---|
| | 4263 | <simpara>2008-06-09</simpara> |
|---|
| | 4264 | </note> |
|---|
| | 4265 | |
|---|
| | 4266 | <para> |
|---|
| | 4267 | This release contains a variety of fixes from 7.4.19. |
|---|
| | 4268 | For information about new features in the 7.4 major release, see |
|---|
| | 4269 | <xref linkend="release-7-4">. |
|---|
| | 4270 | </para> |
|---|
| | 4271 | |
|---|
| | 4272 | <sect2> |
|---|
| | 4273 | <title>Migration to Version 7.4.20</title> |
|---|
| | 4274 | |
|---|
| | 4275 | <para> |
|---|
| | 4276 | A dump/restore is not required for those running 7.4.X. |
|---|
| | 4277 | However, if you are upgrading from a version earlier than 7.4.11, |
|---|
| | 4278 | see the release notes for 7.4.11. |
|---|
| | 4279 | </para> |
|---|
| | 4280 | |
|---|
| | 4281 | </sect2> |
|---|
| | 4282 | |
|---|
| | 4283 | <sect2> |
|---|
| | 4284 | <title>Changes</title> |
|---|
| | 4285 | |
|---|
| | 4286 | <itemizedlist> |
|---|
| | 4287 | |
|---|
| | 4288 | <listitem> |
|---|
| | 4289 | <para> |
|---|
| | 4290 | Fix conversions between ISO-8859-5 and other encodings to handle |
|---|
| | 4291 | Cyrillic <quote>Yo</> characters (<literal>e</> and <literal>E</> with |
|---|
| | 4292 | two dots) (Sergey Burladyan) |
|---|
| | 4293 | </para> |
|---|
| | 4294 | </listitem> |
|---|
| | 4295 | |
|---|
| | 4296 | <listitem> |
|---|
| | 4297 | <para> |
|---|
| | 4298 | Fix a few datatype input functions |
|---|
| | 4299 | that were allowing unused bytes in their results to contain |
|---|
| | 4300 | uninitialized, unpredictable values (Tom) |
|---|
| | 4301 | </para> |
|---|
| | 4302 | |
|---|
| | 4303 | <para> |
|---|
| | 4304 | This could lead to failures in which two apparently identical literal |
|---|
| | 4305 | values were not seen as equal, resulting in the parser complaining |
|---|
| | 4306 | about unmatched <literal>ORDER BY</> and <literal>DISTINCT</> |
|---|
| | 4307 | expressions. |
|---|
| | 4308 | </para> |
|---|
| | 4309 | </listitem> |
|---|
| | 4310 | |
|---|
| | 4311 | <listitem> |
|---|
| | 4312 | <para> |
|---|
| | 4313 | Fix a corner case in regular-expression substring matching |
|---|
| | 4314 | (<literal>substring(<replaceable>string</> from |
|---|
| | 4315 | <replaceable>pattern</>)</literal>) (Tom) |
|---|
| | 4316 | </para> |
|---|
| | 4317 | |
|---|
| | 4318 | <para> |
|---|
| | 4319 | The problem occurs when there is a match to the pattern overall but |
|---|
| | 4320 | the user has specified a parenthesized subexpression and that |
|---|
| | 4321 | subexpression hasn't got a match. An example is |
|---|
| | 4322 | <literal>substring('foo' from 'foo(bar)?')</>. |
|---|
| | 4323 | This should return NULL, since <literal>(bar)</> isn't matched, but |
|---|
| | 4324 | it was mistakenly returning the whole-pattern match instead (ie, |
|---|
| | 4325 | <literal>foo</>). |
|---|
| | 4326 | </para> |
|---|
| | 4327 | </listitem> |
|---|
| | 4328 | |
|---|
| | 4329 | <listitem> |
|---|
| | 4330 | <para> |
|---|
| | 4331 | Fix incorrect result from <application>ecpg</>'s |
|---|
| | 4332 | <function>PGTYPEStimestamp_sub()</> function (Michael) |
|---|
| | 4333 | </para> |
|---|
| | 4334 | </listitem> |
|---|
| | 4335 | |
|---|
| | 4336 | <listitem> |
|---|
| | 4337 | <para> |
|---|
| | 4338 | Fix <literal>DatumGetBool</> macro to not fail with <application>gcc</> |
|---|
| | 4339 | 4.3 (Tom) |
|---|
| | 4340 | </para> |
|---|
| | 4341 | |
|---|
| | 4342 | <para> |
|---|
| | 4343 | This problem affects <quote>old style</> (V0) C functions that |
|---|
| | 4344 | return boolean. The fix is already in 8.3, but the need to |
|---|
| | 4345 | back-patch it was not realized at the time. |
|---|
| | 4346 | </para> |
|---|
| | 4347 | </listitem> |
|---|
| | 4348 | |
|---|
| | 4349 | <listitem> |
|---|
| | 4350 | <para> |
|---|
| | 4351 | Fix longstanding <command>LISTEN</>/<command>NOTIFY</> |
|---|
| | 4352 | race condition (Tom) |
|---|
| | 4353 | </para> |
|---|
| | 4354 | |
|---|
| | 4355 | <para> |
|---|
| | 4356 | In rare cases a session that had just executed a |
|---|
| | 4357 | <command>LISTEN</> might not get a notification, even though |
|---|
| | 4358 | one would be expected because the concurrent transaction executing |
|---|
| | 4359 | <command>NOTIFY</> was observed to commit later. |
|---|
| | 4360 | </para> |
|---|
| | 4361 | |
|---|
| | 4362 | <para> |
|---|
| | 4363 | A side effect of the fix is that a transaction that has executed |
|---|
| | 4364 | a not-yet-committed <command>LISTEN</> command will not see any |
|---|
| | 4365 | row in <structname>pg_listener</> for the <command>LISTEN</>, |
|---|
| | 4366 | should it choose to look; formerly it would have. This behavior |
|---|
| | 4367 | was never documented one way or the other, but it is possible that |
|---|
| | 4368 | some applications depend on the old behavior. |
|---|
| | 4369 | </para> |
|---|
| | 4370 | </listitem> |
|---|
| | 4371 | |
|---|
| | 4372 | <listitem> |
|---|
| | 4373 | <para> |
|---|
| | 4374 | Fix display of constant expressions in <literal>ORDER BY</> |
|---|
| | 4375 | and <literal>GROUP BY</> (Tom) |
|---|
| | 4376 | </para> |
|---|
| | 4377 | |
|---|
| | 4378 | <para> |
|---|
| | 4379 | An explictly casted constant would be shown incorrectly. This could |
|---|
| | 4380 | for example lead to corruption of a view definition during |
|---|
| | 4381 | dump and reload. |
|---|
| | 4382 | </para> |
|---|
| | 4383 | </listitem> |
|---|
| | 4384 | |
|---|
| | 4385 | <listitem> |
|---|
| | 4386 | <para> |
|---|
| | 4387 | Fix <application>libpq</> to handle NOTICE messages correctly |
|---|
| | 4388 | during COPY OUT (Tom) |
|---|
| | 4389 | </para> |
|---|
| | 4390 | |
|---|
| | 4391 | <para> |
|---|
| | 4392 | This failure has only been observed to occur when a user-defined |
|---|
| | 4393 | datatype's output routine issues a NOTICE, but there is no |
|---|
| | 4394 | guarantee it couldn't happen due to other causes. |
|---|
| | 4395 | </para> |
|---|
| | 4396 | </listitem> |
|---|
| | 4397 | |
|---|
| | 4398 | </itemizedlist> |
|---|
| | 4399 | |
|---|
| | 4400 | </sect2> |
|---|
| | 4401 | </sect1> |
|---|
| | 4402 | |
|---|