1
1
<!--
2
- $Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.219 2003/10/29 20:38:19 momjian Exp $
2
+ $Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.220 2003/10/29 22:54:01 momjian Exp $
3
3
-->
4
4
5
5
<appendix id="release">
6
6
<title>Release Notes</title>
7
7
8
- <sect1 id="release-devel ">
8
+ <sect1 id="release-7-4 ">
9
9
<title>Release 7.4</title>
10
10
11
11
<sect2><title>Overview</title>
@@ -26,33 +26,103 @@ $Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.219 2003/10/29 20:38:19 mo
26
26
</footnote>
27
27
</para>
28
28
29
- <para> Improved GROUP BY processing by using hash buckets</para>
29
+ <para> Improved GROUP BY processing by using hash buckets
30
+ <footnote>
31
+ <para>
32
+ In previous releases, GROUP BY totals were accumulated by
33
+ sequentially scanning the list of groups looking for a match;
34
+ the 7.4 code places GROUP BY values in hash buckets so the
35
+ proper match can be found much quicker. This is particularly
36
+ significant in speeding up queries that have a large
37
+ number of distinct GROUP BY values.
38
+ </para>
39
+ </footnote>
40
+ </para>
30
41
31
- <para> New multi-key hash join capability</para>
42
+ <para> New multi-key hash join capability
43
+ <footnote>
44
+ <para>
45
+ In previous releases, hash joins could only occur on single-column
46
+ joins. This release allows multi-column hash joins.
47
+ </para>
48
+ </footnote>
49
+ </para>
32
50
33
- <para> ANSI joins are now better optimized</para>
51
+ <para> ANSI joins are now better optimized
52
+ <footnote>
53
+ <para>
54
+ Prior releases evaluated ANSI join syntax only in the order
55
+ specified by the query; 7.4 allows full optimization of
56
+ queries using ANSI join syntax, meaning the optimizer considers
57
+ all possible join orderings and chooses the most efficient.
58
+ </para>
59
+ </footnote>
60
+ </para>
34
61
35
- <para> Faster and more powerful regular expression code</para>
62
+ <para> Faster and more powerful regular expression code
63
+ <footnote>
64
+ <para>
65
+ The entire regular expression module has been replaced with a new
66
+ version by Henry Spencer, originally written for TCL. The code
67
+ greatly improves performance and supports several flavors
68
+ of regular expressions.
69
+ </para>
70
+ </footnote>
71
+ </para>
36
72
37
- <para> Function-inlining for simple SQL functions</para></glossdef>
73
+ <para> Function-inlining for simple SQL functions
74
+ <footnote>
75
+ <para>
76
+ Simple SQL functions can now be inlined by including their SQL
77
+ in the main query. This improves performance by preventing
78
+ repeated calls to the SQL function --- this allows simple
79
+ SQL functions to behave like macros.
80
+ </para>
81
+ </footnote>
82
+ </para></glossdef>
38
83
</glossentry>
39
84
40
85
<glossentry> <glossterm> IPv6</glossterm>
41
86
42
87
<glossdef><para> Full support for IPv6 connections and IPv6 address
43
- data types</para></glossdef>
88
+ data types
89
+ <footnote>
90
+ <para>
91
+ Prior releases allowed only IPv6 connections and IP data types only
92
+ supported IPv4 addresses. This release adds full IPv6 support in
93
+ both of these areas.
94
+ </para>
95
+ </footnote>
96
+ </para></glossdef>
44
97
</glossentry>
45
98
46
99
<glossentry><glossterm> SSL</glossterm>
47
100
48
101
<glossdef><para> Major improvements in SSL performance and
49
- reliability</para></glossdef>
102
+ reliability
103
+ <footnote>
104
+ <para>
105
+ Several people very familiar with the SSL API have overhauled our
106
+ SSL code to improve SSL key negotiation and error recovery.
107
+ </para>
108
+ </footnote>
109
+ </para></glossdef>
50
110
</glossentry>
51
111
52
112
<glossentry><glossterm> Index Growth Prevention</glossterm>
53
113
54
114
<glossdef><para> Allow free space map to efficiently reuse empty index
55
- pages, and other free space management improvements.</para></glossdef>
115
+ pages, and other free space management improvements.
116
+ <footnote>
117
+ <para>
118
+ In prior releases, index pages that were left empty because of
119
+ deleted rows could only be reused by rows with index values similar
120
+ to the original rows indexed on that page. In 7.4, VACUUM records
121
+ empty index pages and allows them to be used for any future index
122
+ rows.
123
+ </para>
124
+ </footnote>
125
+ </para></glossdef>
56
126
</glossentry>
57
127
58
128
<glossentry><glossterm> Standards Compliance</glossterm>
@@ -83,17 +153,40 @@ reporting verbosity, and cleaner startup packets.</para></glossdef>
83
153
<glossentry><glossterm> Threads</glossterm>
84
154
85
155
<glossdef><para> libpq and ecpg are now fully thread-safe with
86
- --enable-thread-safety</para></glossdef>
156
+ --enable-thread-safety
157
+ <footnote>
158
+ <para>
159
+ While prior libpq releases already supported threads, this release
160
+ improves thread safety by fixing some non-thread-safe code that
161
+ was used in the database connection routines.
162
+ </para>
163
+ </footnote>
164
+ </para></glossdef>
87
165
</glossentry>
88
166
89
167
<glossentry><glossterm> Contrib</glossterm>
90
168
91
169
<glossdef><para> New version of full text indexing (tsearch2)</para>
92
170
93
- <para> New autovacuum tool</para>
171
+ <para> New autovacuum tool
172
+ <footnote>
173
+ <para>
174
+ This new tool monitors the database statistics tables for
175
+ INSERT/UPDATE/DELETE activity and automatically vacuums tables when
176
+ needed.
177
+ </para>
178
+ </footnote>
179
+ </para>
94
180
95
181
<para> Array handling has been improved and moved into the main
96
- server</para></glossdef>
182
+ server
183
+ <footnote>
184
+ <para>
185
+ Many array limitations have been removed and they behave more like
186
+ fully-supported data types.
187
+ </para>
188
+ </footnote>
189
+ </para></glossdef>
97
190
</glossentry>
98
191
</glosslist></para></sect2>
99
192
@@ -105,30 +198,98 @@ required for those wishing to migrate data from any previous release.</para>
105
198
<para> Observe the following incompatibilities:
106
199
<itemizedlist>
107
200
<listitem><para> The server-side autocommit setting was removed and reimplemented
108
- in client applications and languages.</para></listitem>
201
+ in client applications and languages.
202
+ <footnote>
203
+ <para>
204
+ Server-side autocommit was causing too many problems with
205
+ languages and applications that wanted to control their own
206
+ autocommit behavior so autocommit was removed from the server
207
+ and added to individual client API's as appropriate.
208
+ </para>
209
+ </footnote>
210
+ </para></listitem>
109
211
<listitem><para> Error message wording has changed substantially in this release,
110
212
and error codes have been added.</para></listitem>
111
213
<listitem><para> ANSI inner joins may behave differently because they are now better optimized</para></listitem>
112
- <listitem><para> A number of server variables have been renamed for clarity</para></listitem>
113
- <listitem><para> MOVE/FETCH 0 now does nothing</para></listitem>
214
+ <listitem><para> A number of server variables have been renamed for
215
+ clarity, primarily those related to logging</para></listitem>
216
+ <listitem><para> MOVE/FETCH 0 now does nothing
217
+ <footnote>
218
+ <para>
219
+ In prior releases, FETCH 0 would fetch all remaining rows, and
220
+ MOVE 0 would move to the end of the cursor.
221
+ </para>
222
+ </footnote>
223
+ </para></listitem>
114
224
<listitem><para> MOVE/FETCH now returns the actual number of rows moved/fetched, or zero
115
- if at the beginning/end of the cursor</para></listitem>
116
- <listitem><para> COPY now can process carriage-return/line-feed and carriage-return
117
- terminated files. Literal carriage-returns and line-feeds are no
225
+ if at the beginning/end of the cursor
226
+ <footnote>
227
+ <para>
228
+ Prior releases would return the tuple count passed to the
229
+ command, not the actual number of rows FETCHed or MOVEd.
230
+ </para>
231
+ </footnote>
232
+ </para></listitem>
233
+ <listitem><para> COPY now can process carriage-return and
234
+ carriage-return/line-feed end-of-line terminated files.</para></listitem>
235
+ <listitem><para>Literal carriage-returns and line-feeds are no
118
236
longer accepted as data values; use \r and \n instead.</para></listitem>
119
237
<listitem><para> Trailing spaces are now trimmed when converting
120
238
from <type>CHAR(n)</type> to
121
239
<type>VARCHAR(n)</type> / <type>TEXT</type></para></listitem>
122
240
<listitem><para> <function>FLOAT(p)</function> now measures 'p' in bits, not digits</para></listitem>
123
- <listitem><para> Ambiguous date values now must match the ordering specified by DateStyle</para></listitem>
241
+ <listitem><para> Ambiguous date values now must match the ordering specified by DateStyle
242
+ <footnote>
243
+ <para>
244
+ In prior releases, a date of <literal>10/20/03</> was
245
+ interpreted as a date in October even if the
246
+ <varname>DateStyle</> specified the day should be first. In
247
+ 7.4, <varname>DateStyle</> is honored when converting such
248
+ values and will throw an error if the date is invalid for the
249
+ current <varname>DateStyle</>.
250
+ </para>
251
+ </footnote>
252
+ </para></listitem>
124
253
<listitem><para> The <function>oidrand()</function>, <function>oidsrand()</function>,
125
- and <function>userfntest()</function> functions have been removed.</para></listitem>
254
+ and <function>userfntest()</function> functions have been removed.
255
+ <footnote>
256
+ <para>
257
+ These functions were determined to be no longer useful.
258
+ </para>
259
+ </footnote>
260
+ </para></listitem>
126
261
<listitem><para> <literal>'now'</literal> will no longer work as a column default; <function>now()</> or
127
- <function>CURRENT_TIMESTAMP</> should be used instead</para></listitem>
262
+ <function>CURRENT_TIMESTAMP</> should be used instead
263
+ <footnote>
264
+ <para>
265
+ In prior releases, there was special code so the string
266
+ <literal>'now'</literal> was interpreted at
267
+ <command>INSERT</> time and not at table creation time, but
268
+ this work around didn't cover all cases. Release 7.4
269
+ now requires that defaults be defined properly using the
270
+ <function>now()</> or the special value
271
+ <function>CURRENT_TIMESTAMP</>. These will work in all
272
+ situations.
273
+ </para>
274
+ </footnote>
275
+ </para></listitem>
128
276
<listitem><para> <literal>'today'</literal> will no longer work as a column default; <function>CURRENT_DATE</>
129
- should be used instead</para></listitem>
277
+ should be used instead
278
+ <footnote>
279
+ <para>
280
+ Same description as above.
281
+ </para>
282
+ </footnote>
283
+ </para></listitem>
130
284
<listitem><para> Dollar sign (<literal>$</>) is no longer allowed in operator names</para></listitem>
131
- <listitem><para> Dollar sign (<literal>$</>) can be a non-first character in identifiers</para></listitem>
285
+ <listitem><para> Dollar sign (<literal>$</>) can be a non-first character in identifiers
286
+ <footnote>
287
+ <para>
288
+ This was done to improve compatibility with other database
289
+ systems.
290
+ </para>
291
+ </footnote>
292
+ </para></listitem>
132
293
</itemizedlist></para></sect2>
133
294
134
295
<sect2> <title> Changes </title>
@@ -137,7 +298,13 @@ required for those wishing to migrate data from any previous release.</para>
137
298
<itemizedlist>
138
299
<listitem><para>Allow IPv6 server connections (Nigel Kukard, Johan Jordaan, Bruce, Tom, Kurt
139
300
Roeckx, Andrew Dunstan)</para></listitem>
140
- <listitem><para>Fix SSL to handle errors cleanly (Nathan Mueller)</para></listitem>
301
+ <listitem><para>Fix SSL to handle errors cleanly (Nathan Mueller)
302
+ <footnote>
303
+ <para>
304
+ In prior releases,
305
+ </para>
306
+ </footnote>
307
+ </para></listitem>
141
308
<listitem><para>SSL protocol security and performance improvements (Sean Chittenden)</para></listitem>
142
309
<listitem><para>Print lock information when a deadlock is detected (Tom)</para></listitem>
143
310
<listitem><para>Update <filename>/tmp</filename> socket mod. times regularly to avoid their removal (Tom)</para></listitem>
0 commit comments