| | 38 | |
|---|
| | 39 | <para> |
|---|
| | 40 | The release notes contain the significant changes in each |
|---|
| | 41 | <productname>PostgreSQL</productname> release, with major features and migration |
|---|
| | 42 | issues listed at the top. The release notes do not contain changes |
|---|
| | 43 | that affect only a few users or changes that are internal and therefore not |
|---|
| | 44 | user-visible. For example, the optimizer is improved in almost every |
|---|
| | 45 | release, but the improvements are usually observed by users as simply |
|---|
| | 46 | faster queries. |
|---|
| | 47 | </para> |
|---|
| | 48 | |
|---|
| | 49 | <para> |
|---|
| | 50 | A complete list of changes for each release can be obtained by |
|---|
| | 51 | viewing the <link linkend="cvs">CVS</link> logs for each release. |
|---|
| | 52 | The <ulink |
|---|
| | 53 | url="http://archives.postgresql.org/pgsql-committers/">pgsql-committers |
|---|
| | 54 | email list</ulink> contains all source code changes as well. There is also |
|---|
| | 55 | a <ulink url="http://developer.postgresql.org/cvsweb.cgi/pgsql/">web |
|---|
| | 56 | interface</ulink> that shows changes to specific files. |
|---|
| | 57 | <!-- we need a file containing the CVS logs for each release, and something |
|---|
| | 58 | like the SVN web interface that groups commits but has branches --> |
|---|
| | 59 | </para> |
|---|
| | 60 | |
|---|
| | 61 | <para> |
|---|
| | 62 | The name appearing next to each item represents the major developer for |
|---|
| | 63 | that item. Of course all changes involve community discussion and patch |
|---|
| | 64 | review, so each item is truly a community effort. |
|---|
| | 65 | </para> |
|---|
| | 66 | |
|---|
| | 67 | <sect1 id="release-8-2-7"> |
|---|
| | 68 | <title>Release 8.2.7</title> |
|---|
| | 69 | |
|---|
| | 70 | <note> |
|---|
| | 71 | <title>Release date</title> |
|---|
| | 72 | <simpara>2008-03-17</simpara> |
|---|
| | 73 | </note> |
|---|
| | 74 | |
|---|
| | 75 | <para> |
|---|
| | 76 | This release contains a variety of fixes from 8.2.6. |
|---|
| | 77 | </para> |
|---|
| | 78 | |
|---|
| | 79 | <sect2> |
|---|
| | 80 | <title>Migration to Version 8.2.7</title> |
|---|
| | 81 | |
|---|
| | 82 | <para> |
|---|
| | 83 | A dump/restore is not required for those running 8.2.X. |
|---|
| | 84 | However, you might need to <command>REINDEX</command> indexes on textual |
|---|
| | 85 | columns after updating, if you are affected by the Windows locale |
|---|
| | 86 | issue described below. |
|---|
| | 87 | </para> |
|---|
| | 88 | |
|---|
| | 89 | </sect2> |
|---|
| | 90 | |
|---|
| | 91 | <sect2> |
|---|
| | 92 | <title>Changes</title> |
|---|
| | 93 | |
|---|
| | 94 | <itemizedlist> |
|---|
| | 95 | |
|---|
| | 96 | <listitem> |
|---|
| | 97 | <para> |
|---|
| | 98 | Fix character string comparison for Windows locales that consider |
|---|
| | 99 | different character combinations as equal (Tom) |
|---|
| | 100 | </para> |
|---|
| | 101 | |
|---|
| | 102 | <para> |
|---|
| | 103 | This fix applies only on Windows and only when using UTF-8 |
|---|
| | 104 | database encoding. The same fix was made for all other cases |
|---|
| | 105 | over two years ago, but Windows with UTF-8 uses a separate code |
|---|
| | 106 | path that was not updated. If you are using a locale that |
|---|
| | 107 | considers some non-identical strings as equal, you may need to |
|---|
| | 108 | <command>REINDEX</command> to fix existing indexes on textual columns. |
|---|
| | 109 | </para> |
|---|
| | 110 | </listitem> |
|---|
| | 111 | |
|---|
| | 112 | <listitem> |
|---|
| | 113 | <para> |
|---|
| | 114 | Repair potential deadlock between concurrent <command>VACUUM FULL</command> |
|---|
| | 115 | operations on different system catalogs (Tom) |
|---|
| | 116 | </para> |
|---|
| | 117 | </listitem> |
|---|
| | 118 | |
|---|
| | 119 | <listitem> |
|---|
| | 120 | <para> |
|---|
| | 121 | Fix longstanding <command>LISTEN</command>/<command>NOTIFY</command> |
|---|
| | 122 | race condition (Tom) |
|---|
| | 123 | </para> |
|---|
| | 124 | |
|---|
| | 125 | <para> |
|---|
| | 126 | In rare cases a session that had just executed a |
|---|
| | 127 | <command>LISTEN</command> might not get a notification, even though |
|---|
| | 128 | one would be expected because the concurrent transaction executing |
|---|
| | 129 | <command>NOTIFY</command> was observed to commit later. |
|---|
| | 130 | </para> |
|---|
| | 131 | |
|---|
| | 132 | <para> |
|---|
| | 133 | A side effect of the fix is that a transaction that has executed |
|---|
| | 134 | a not-yet-committed <command>LISTEN</command> command will not see any |
|---|
| | 135 | row in <structname>pg_listener</command> for the <command>LISTEN</command>, |
|---|
| | 136 | should it choose to look; formerly it would have. This behavior |
|---|
| | 137 | was never documented one way or the other, but it is possible that |
|---|
| | 138 | some applications depend on the old behavior. |
|---|
| | 139 | </para> |
|---|
| | 140 | </listitem> |
|---|
| | 141 | |
|---|
| | 142 | <listitem> |
|---|
| | 143 | <para> |
|---|
| | 144 | Disallow <command>LISTEN</command> and <command>UNLISTEN</command> within a |
|---|
| | 145 | prepared transaction (Tom) |
|---|
| | 146 | </para> |
|---|
| | 147 | |
|---|
| | 148 | <para> |
|---|
| | 149 | This was formerly allowed but trying to do it had various unpleasant |
|---|
| | 150 | consequences, notably that the originating backend could not exit |
|---|
| | 151 | as long as an <command>UNLISTEN</command> remained uncommitted. |
|---|
| | 152 | </para> |
|---|
| | 153 | </listitem> |
|---|
| | 154 | |
|---|
| | 155 | <listitem> |
|---|
| | 156 | <para> |
|---|
| | 157 | Disallow dropping a temporary table within a |
|---|
| | 158 | prepared transaction (Heikki) |
|---|
| | 159 | </para> |
|---|
| | 160 | |
|---|
| | 161 | <para> |
|---|
| | 162 | This was correctly disallowed by 8.1, but the check was inadvertently |
|---|
| | 163 | broken in 8.2. |
|---|
| | 164 | </para> |
|---|
| | 165 | </listitem> |
|---|
| | 166 | |
|---|
| | 167 | <listitem> |
|---|
| | 168 | <para> |
|---|
| | 169 | Fix rare crash when an error occurs during a query using a hash index |
|---|
| | 170 | (Heikki) |
|---|
| | 171 | </para> |
|---|
| | 172 | </listitem> |
|---|
| | 173 | |
|---|
| | 174 | <listitem> |
|---|
| | 175 | <para> |
|---|
| | 176 | Fix memory leaks in certain usages of set-returning functions (Neil) |
|---|
| | 177 | </para> |
|---|
| | 178 | </listitem> |
|---|
| | 179 | |
|---|
| | 180 | <listitem> |
|---|
| | 181 | <para> |
|---|
| | 182 | Fix input of datetime values for February 29 in years BC (Tom) |
|---|
| | 183 | </para> |
|---|
| | 184 | |
|---|
| | 185 | <para> |
|---|
| | 186 | The former coding was mistaken about which years were leap years. |
|---|
| | 187 | </para> |
|---|
| | 188 | </listitem> |
|---|
| | 189 | |
|---|
| | 190 | <listitem> |
|---|
| | 191 | <para> |
|---|
| | 192 | Fix <quote>unrecognized node type</quote> error in some variants of |
|---|
| | 193 | <command>ALTER OWNER</command> (Tom) |
|---|
| | 194 | </para> |
|---|
| | 195 | </listitem> |
|---|
| | 196 | |
|---|
| | 197 | <listitem> |
|---|
| | 198 | <para> |
|---|
| | 199 | Ensure <structname>pg_stat_activity</structname>.<structfield>waiting</structfield> flag |
|---|
| | 200 | is cleared when a lock wait is aborted (Tom) |
|---|
| | 201 | </para> |
|---|
| | 202 | </listitem> |
|---|
| | 203 | |
|---|
| | 204 | <listitem> |
|---|
| | 205 | <para> |
|---|
| | 206 | Fix handling of process permissions on Windows Vista (Dave, Magnus) |
|---|
| | 207 | </para> |
|---|
| | 208 | |
|---|
| | 209 | <para> |
|---|
| | 210 | In particular, this fix allows starting the server as the Administrator |
|---|
| | 211 | user. |
|---|
| | 212 | </para> |
|---|
| | 213 | </listitem> |
|---|
| | 214 | |
|---|
| | 215 | <listitem> |
|---|
| | 216 | <para> |
|---|
| | 217 | Update time zone data files to <application>tzdata</application> release 2008a |
|---|
| | 218 | (in particular, recent Chile changes); adjust timezone abbreviation |
|---|
| | 219 | <literal>VET</literal> (Venezuela) to mean UTC-4:30, not UTC-4:00 (Tom) |
|---|
| | 220 | </para> |
|---|
| | 221 | </listitem> |
|---|
| | 222 | |
|---|
| | 223 | <listitem> |
|---|
| | 224 | <para> |
|---|
| | 225 | Fix <application>pg_ctl</application> to correctly extract the postmaster's port |
|---|
| | 226 | number from command-line options (Itagaki Takahiro, Tom) |
|---|
| | 227 | </para> |
|---|
| | 228 | |
|---|
| | 229 | <para> |
|---|
| | 230 | Previously, <literal>pg_ctl start -w</literal> could try to contact the |
|---|
| | 231 | postmaster on the wrong port, leading to bogus reports of startup |
|---|
| | 232 | failure. |
|---|
| | 233 | </para> |
|---|
| | 234 | </listitem> |
|---|
| | 235 | |
|---|
| | 236 | <listitem> |
|---|
| | 237 | <para> |
|---|
| | 238 | Use <option>-fwrapv</option> to defend against possible misoptimization |
|---|
| | 239 | in recent <application>gcc</application> versions (Tom) |
|---|
| | 240 | </para> |
|---|
| | 241 | |
|---|
| | 242 | <para> |
|---|
| | 243 | This is known to be necessary when building <productname>PostgreSQL</productname> |
|---|
| | 244 | with <application>gcc</application> 4.3 or later. |
|---|
| | 245 | </para> |
|---|
| | 246 | </listitem> |
|---|
| | 247 | |
|---|
| | 248 | |
|---|
| | 249 | <listitem> |
|---|
| | 250 | <para> |
|---|
| | 251 | Correctly enforce <varname>statement_timeout</varname> values longer |
|---|
| | 252 | than <literal>INT_MAX</literal> microseconds (about 35 minutes) (Tom) |
|---|
| | 253 | </para> |
|---|
| | 254 | |
|---|
| | 255 | <para> |
|---|
| | 256 | This bug affects only builds with <option>--enable-integer-datetimes</option>. |
|---|
| | 257 | </para> |
|---|
| | 258 | </listitem> |
|---|
| | 259 | |
|---|
| | 260 | <listitem> |
|---|
| | 261 | <para> |
|---|
| | 262 | Fix <quote>unexpected PARAM_SUBLINK ID</quote> planner error when |
|---|
| | 263 | constant-folding simplifies a sub-select (Tom) |
|---|
| | 264 | </para> |
|---|
| | 265 | </listitem> |
|---|
| | 266 | |
|---|
| | 267 | <listitem> |
|---|
| | 268 | <para> |
|---|
| | 269 | Fix logical errors in constraint-exclusion handling of <literal>IS |
|---|
| | 270 | NULL</literal> and <literal>NOT</literal> expressions (Tom) |
|---|
| | 271 | </para> |
|---|
| | 272 | |
|---|
| | 273 | <para> |
|---|
| | 274 | The planner would sometimes exclude partitions that should not |
|---|
| | 275 | have been excluded because of the possibility of NULL results. |
|---|
| | 276 | </para> |
|---|
| | 277 | </listitem> |
|---|
| | 278 | |
|---|
| | 279 | <listitem> |
|---|
| | 280 | <para> |
|---|
| | 281 | Fix another cause of <quote>failed to build any N-way joins</quote> |
|---|
| | 282 | planner errors (Tom) |
|---|
| | 283 | </para> |
|---|
| | 284 | |
|---|
| | 285 | <para> |
|---|
| | 286 | This could happen in cases where a clauseless join needed to be |
|---|
| | 287 | forced before a join clause could be exploited. |
|---|
| | 288 | </para> |
|---|
| | 289 | </listitem> |
|---|
| | 290 | |
|---|
| | 291 | <listitem> |
|---|
| | 292 | <para> |
|---|
| | 293 | Fix incorrect constant propagation in outer-join planning (Tom) |
|---|
| | 294 | </para> |
|---|
| | 295 | |
|---|
| | 296 | <para> |
|---|
| | 297 | The planner could sometimes incorrectly conclude that a variable |
|---|
| | 298 | could be constrained to be equal to a constant, leading |
|---|
| | 299 | to wrong query results. |
|---|
| | 300 | </para> |
|---|
| | 301 | </listitem> |
|---|
| | 302 | |
|---|
| | 303 | <listitem> |
|---|
| | 304 | <para> |
|---|
| | 305 | Fix display of constant expressions in <literal>ORDER BY</literal> |
|---|
| | 306 | and <literal>GROUP BY</literal> (Tom) |
|---|
| | 307 | </para> |
|---|
| | 308 | |
|---|
| | 309 | <para> |
|---|
| | 310 | An explictly casted constant would be shown incorrectly. This could |
|---|
| | 311 | for example lead to corruption of a view definition during |
|---|
| | 312 | dump and reload. |
|---|
| | 313 | </para> |
|---|
| | 314 | </listitem> |
|---|
| | 315 | |
|---|
| | 316 | <listitem> |
|---|
| | 317 | <para> |
|---|
| | 318 | Fix <application>libpq</application> to handle NOTICE messages correctly |
|---|
| | 319 | during COPY OUT (Tom) |
|---|
| | 320 | </para> |
|---|
| | 321 | |
|---|
| | 322 | <para> |
|---|
| | 323 | This failure has only been observed to occur when a user-defined |
|---|
| | 324 | datatype's output routine issues a NOTICE, but there is no |
|---|
| | 325 | guaranteee it couldn't happen due to other causes. |
|---|
| | 326 | </para> |
|---|
| | 327 | </listitem> |
|---|
| | 328 | |
|---|
| | 329 | </itemizedlist> |
|---|
| | 330 | |
|---|
| | 331 | </sect2> |
|---|
| | 332 | </sect1> |
|---|