]> begriffs open source - ai-pg/blob - full-docs/txt/release-18.txt
Convert HTML docs to more streamlined TXT
[ai-pg] / full-docs / txt / release-18.txt
1
2 E.1. Release 18 #
3
4    E.1.1. Overview
5    E.1.2. Migration to Version 18
6    E.1.3. Changes
7    E.1.4. Acknowledgments
8
9    Release date: 2025-09-25
10
11 E.1.1. Overview #
12
13    PostgreSQL 18 contains many new features and enhancements, including:
14      * An asynchronous I/O (AIO) subsystem that can improve performance of
15        sequential scans, bitmap heap scans, vacuums, and other operations.
16      * pg_upgrade now retains optimizer statistics.
17      * Support for "skip scan" lookups that allow using multicolumn B-tree
18        indexes in more cases.
19      * uuidv7() function for generating timestamp-ordered UUIDs.
20      * Virtual generated columns that compute their values during read
21        operations. This is now the default for generated columns.
22      * OAuth authentication support.
23      * OLD and NEW support for RETURNING clauses in INSERT, UPDATE,
24        DELETE, and MERGE commands.
25      * Temporal constraints, or constraints over ranges, for PRIMARY KEY,
26        UNIQUE, and FOREIGN KEY constraints.
27
28    The above items and other new features of PostgreSQL 18 are explained
29    in more detail in the sections below.
30
31 E.1.2. Migration to Version 18 #
32
33    A dump/restore using pg_dumpall or use of pg_upgrade or logical
34    replication is required for those wishing to migrate data from any
35    previous release. See Section 18.6 for general information on migrating
36    to new major releases.
37
38    Version 18 contains a number of changes that may affect compatibility
39    with previous releases. Observe the following incompatibilities:
40      * Change initdb default to enable data checksums (Greg Sabino
41        Mullane) §
42        Checksums can be disabled with the new initdb option
43        --no-data-checksums. pg_upgrade requires matching cluster checksum
44        settings, so this new option can be useful to upgrade non-checksum
45        old clusters.
46      * Change time zone abbreviation handling (Tom Lane) §
47        The system will now favor the current session's time zone
48        abbreviations before checking the server variable
49        timezone_abbreviations. Previously timezone_abbreviations was
50        checked first.
51      * Deprecate MD5 password authentication (Nathan Bossart) §
52        Support for MD5 passwords will be removed in a future major version
53        release. CREATE ROLE and ALTER ROLE now emit deprecation warnings
54        when setting MD5 passwords. These warnings can be disabled by
55        setting the md5_password_warnings parameter to off.
56      * Change VACUUM and ANALYZE to process the inheritance children of a
57        parent (Michael Harris) §
58        The previous behavior can be performed by using the new ONLY
59        option.
60      * Prevent COPY FROM from treating \. as an end-of-file marker when
61        reading CSV files (Daniel Vérité, Tom Lane) § §
62        psql will still treat \. as an end-of-file marker when reading CSV
63        files from STDIN. Older psql clients connecting to PostgreSQL 18
64        servers might experience \copy problems. This release also enforces
65        that \. must appear alone on a line.
66      * Disallow unlogged partitioned tables (Michael Paquier) §
67        Previously ALTER TABLE SET [UN]LOGGED did nothing, and the creation
68        of an unlogged partitioned table did not cause its children to be
69        unlogged.
70      * Execute AFTER triggers as the role that was active when trigger
71        events were queued (Laurenz Albe) §
72        Previously such triggers were run as the role that was active at
73        trigger execution time (e.g., at COMMIT). This is significant for
74        cases where the role is changed between queue time and transaction
75        commit.
76      * Remove non-functional support for rule privileges in GRANT/REVOKE
77        (Fujii Masao) §
78        These have been non-functional since PostgreSQL 8.2.
79      * Remove column pg_backend_memory_contexts.parent (Melih Mutlu) §
80        This is no longer needed since pg_backend_memory_contexts.path was
81        added.
82      * Change pg_backend_memory_contexts.level and
83        pg_log_backend_memory_contexts() to be one-based (Melih Mutlu,
84        Atsushi Torikoshi, David Rowley, Fujii Masao) § § §
85        These were previously zero-based.
86      * Change full text search to use the default collation provider of
87        the cluster to read configuration files and dictionaries, rather
88        than always using libc (Peter Eisentraut) §
89        Clusters that default to non-libc collation providers (e.g., ICU,
90        builtin) that behave differently than libc for characters processed
91        by LC_CTYPE could observe changes in behavior of some full-text
92        search functions, as well as the pg_trgm extension. When upgrading
93        such clusters using pg_upgrade, it is recommended to reindex all
94        indexes related to full-text search and pg_trgm after the upgrade.
95
96 E.1.3. Changes #
97
98    Below you will find a detailed account of the changes between
99    PostgreSQL 18 and the previous major release.
100
101 E.1.3.1. Server #
102
103 E.1.3.1.1. Optimizer #
104
105      * Automatically remove some unnecessary table self-joins (Andrey
106        Lepikhov, Alexander Kuzmenkov, Alexander Korotkov, Alena Rybakina)
107        §
108        This optimization can be disabled using server variable
109        enable_self_join_elimination.
110      * Convert some IN (VALUES ...) to x = ANY ... for better optimizer
111        statistics (Alena Rybakina, Andrei Lepikhov) §
112      * Allow transforming OR-clauses to arrays for faster index processing
113        (Alexander Korotkov, Andrey Lepikhov) §
114      * Speed up the processing of INTERSECT, EXCEPT, window aggregates,
115        and view column aliases (Tom Lane, David Rowley) § § § §
116      * Allow the keys of SELECT DISTINCT to be internally reordered to
117        avoid sorting (Richard Guo) §
118        This optimization can be disabled using enable_distinct_reordering.
119      * Ignore GROUP BY columns that are functionally dependent on other
120        columns (Zhang Mingli, Jian He, David Rowley) §
121        If a GROUP BY clause includes all columns of a unique index, as
122        well as other columns of the same table, those other columns are
123        redundant and can be dropped from the grouping. This was already
124        true for non-deferred primary keys.
125      * Allow some HAVING clauses on GROUPING SETS to be pushed to WHERE
126        clauses (Richard Guo) § § § §
127        This allows earlier row filtering. This release also fixes some
128        GROUPING SETS queries that used to return incorrect results.
129      * Improve row estimates for generate_series() using numeric and
130        timestamp values (David Rowley, Song Jinzhou) § §
131      * Allow the optimizer to use Right Semi Join plans (Richard Guo) §
132        Semi-joins are used when needing to find if there is at least one
133        match.
134      * Allow merge joins to use incremental sorts (Richard Guo) §
135      * Improve the efficiency of planning queries accessing many
136        partitions (Ashutosh Bapat, Yuya Watari, David Rowley) § §
137      * Allow partitionwise joins in more cases, and reduce its memory
138        usage (Richard Guo, Tom Lane, Ashutosh Bapat) § §
139      * Improve cost estimates of partition queries (Nikita Malakhov,
140        Andrei Lepikhov) §
141      * Improve SQL-language function plan caching (Alexander Pyhalov, Tom
142        Lane) § §
143      * Improve handling of disabled optimizer features (Robert Haas) §
144
145 E.1.3.1.2. Indexes #
146
147      * Allow skip scans of btree indexes (Peter Geoghegan) § §
148        This allows multi-column btree indexes to be used in more cases
149        such as when there are no restrictions on the first or early
150        indexed columns (or there are non-equality ones), and there are
151        useful restrictions on later indexed columns.
152      * Allow non-btree unique indexes to be used as partition keys and in
153        materialized views (Mark Dilger) § §
154        The index type must still support equality.
155      * Allow GIN indexes to be created in parallel (Tomas Vondra, Matthias
156        van de Meent) §
157      * Allow values to be sorted to speed range-type GiST and btree index
158        builds (Bernd Helmle) §
159
160 E.1.3.1.3. General Performance #
161
162      * Add an asynchronous I/O subsystem (Andres Freund, Thomas Munro,
163        Nazir Bilal Yavuz, Melanie Plageman) § § § § § § § § § § §
164        This feature allows backends to queue multiple read requests, which
165        allows for more efficient sequential scans, bitmap heap scans,
166        vacuums, etc. This is enabled by server variable io_method, with
167        server variables io_combine_limit and io_max_combine_limit added to
168        control it. This also enables effective_io_concurrency and
169        maintenance_io_concurrency values greater than zero for systems
170        without fadvise() support. The new system view pg_aios shows the
171        file handles being used for asynchronous I/O.
172      * Improve the locking performance of queries that access many
173        relations (Tomas Vondra) §
174      * Improve the performance and reduce memory usage of hash joins and
175        GROUP BY (David Rowley, Jeff Davis) § § § § §
176        This also improves hash set operations used by EXCEPT, and hash
177        lookups of subplan values.
178      * Allow normal vacuums to freeze some pages, even though they are
179        all-visible (Melanie Plageman) § §
180        This reduces the overhead of later full-relation freezing. The
181        aggressiveness of this can be controlled by server variable and
182        per-table setting vacuum_max_eager_freeze_failure_rate. Previously
183        vacuum never processed all-visible pages until freezing was
184        required.
185      * Add server variable vacuum_truncate to control file truncation
186        during VACUUM (Nathan Bossart, Gurjeet Singh) §
187        A storage-level parameter with the same name and behavior already
188        existed.
189      * Increase server variables effective_io_concurrency's and
190        maintenance_io_concurrency's default values to 16 (Melanie
191        Plageman) § §
192        This more accurately reflects modern hardware.
193
194 E.1.3.1.4. Monitoring #
195
196      * Increase the logging granularity of server variable log_connections
197        (Melanie Plageman) §
198        This server variable was previously only boolean, which is still
199        supported.
200      * Add log_connections option to report the duration of connection
201        stages (Melanie Plageman) §
202      * Add log_line_prefix escape %L to output the client IP address (Greg
203        Sabino Mullane) §
204      * Add server variable log_lock_failures to log lock acquisition
205        failures (Yuki Seino, Fujii Masao) § §
206        Specifically it reports SELECT ... NOWAIT lock failures.
207      * Modify pg_stat_all_tables and its variants to report the time spent
208        in VACUUM, ANALYZE, and their automatic variants (Sami Imseih) §
209        The new columns are total_vacuum_time, total_autovacuum_time,
210        total_analyze_time, and total_autoanalyze_time.
211      * Add delay time reporting to VACUUM and ANALYZE (Bertrand Drouvot,
212        Nathan Bossart) § §
213        This information appears in the server log, the system views
214        pg_stat_progress_vacuum and pg_stat_progress_analyze, and the
215        output of VACUUM and ANALYZE when in VERBOSE mode; tracking must be
216        enabled with the server variable track_cost_delay_timing.
217      * Add WAL, CPU, and average read statistics output to ANALYZE VERBOSE
218        (Anthonin Bonnefoy) § §
219      * Add full WAL buffer count to VACUUM/ANALYZE (VERBOSE) and
220        autovacuum log output (Bertrand Drouvot) §
221      * Add per-backend I/O statistics reporting (Bertrand Drouvot) § §
222        The statistics are accessed via pg_stat_get_backend_io().
223        Per-backend I/O statistics can be cleared via
224        pg_stat_reset_backend_stats().
225      * Add pg_stat_io columns to report I/O activity in bytes (Nazir Bilal
226        Yavuz) §
227        The new columns are read_bytes, write_bytes, and extend_bytes. The
228        op_bytes column, which always equaled BLCKSZ, has been removed.
229      * Add WAL I/O activity rows to pg_stat_io (Nazir Bilal Yavuz,
230        Bertrand Drouvot, Michael Paquier) § § §
231        This includes WAL receiver activity and a wait event for such
232        writes.
233      * Change server variable track_wal_io_timing to control tracking WAL
234        timing in pg_stat_io instead of pg_stat_wal (Bertrand Drouvot) §
235      * Remove read/sync columns from pg_stat_wal (Bertrand Drouvot) § §
236        This removes columns wal_write, wal_sync, wal_write_time, and
237        wal_sync_time.
238      * Add function pg_stat_get_backend_wal() to return per-backend WAL
239        statistics (Bertrand Drouvot) §
240        Per-backend WAL statistics can be cleared via
241        pg_stat_reset_backend_stats().
242      * Add function pg_ls_summariesdir() to specifically list the contents
243        of PGDATA/pg_wal/summaries (Yushi Ogiwara) §
244      * Add column pg_stat_checkpointer.num_done to report the number of
245        completed checkpoints (Anton A. Melnikov) §
246        Columns num_timed and num_requested count both completed and
247        skipped checkpoints.
248      * Add column pg_stat_checkpointer.slru_written to report SLRU buffers
249        written (Nitin Jadhav) §
250        Also, modify the checkpoint server log message to report separate
251        shared buffer and SLRU buffer values.
252      * Add columns to pg_stat_database to report parallel worker activity
253        (Benoit Lobréau) §
254        The new columns are parallel_workers_to_launch and
255        parallel_workers_launched.
256      * Have query id computation of constant lists consider only the first
257        and last constants (Dmitry Dolgov, Sami Imseih) § § §
258        Jumbling is used by pg_stat_statements.
259      * Adjust query id computations to group together queries using the
260        same relation name (Michael Paquier, Sami Imseih) §
261        This is true even if the tables in different schemas have different
262        column names.
263      * Add column pg_backend_memory_contexts.type to report the type of
264        memory context (David Rowley) §
265      * Add column pg_backend_memory_contexts.path to show memory context
266        parents (Melih Mutlu) §
267
268 E.1.3.1.5. Privileges #
269
270      * Add function pg_get_acl() to retrieve database access control
271        details (Joel Jacobson) § §
272      * Add function has_largeobject_privilege() to check large object
273        privileges (Yugo Nagata) §
274      * Allow ALTER DEFAULT PRIVILEGES to define large object default
275        privileges (Takatsuka Haruka, Yugo Nagata, Laurenz Albe) §
276      * Add predefined role pg_signal_autovacuum_worker (Kirill Reshke) §
277        This allows sending signals to autovacuum workers.
278
279 E.1.3.1.6. Server Configuration #
280
281      * Add support for the OAuth authentication method (Jacob Champion,
282        Daniel Gustafsson, Thomas Munro) §
283        This adds an oauth authentication method to pg_hba.conf, libpq
284        OAuth options, a server variable oauth_validator_libraries to load
285        token validation libraries, and a configure flag --with-libcurl to
286        add the required compile-time libraries.
287      * Add server variable ssl_tls13_ciphers to allow specification of
288        multiple colon-separated TLSv1.3 cipher suites (Erica Zhang, Daniel
289        Gustafsson) §
290      * Change server variable ssl_groups's default to include elliptic
291        curve X25519 (Daniel Gustafsson, Jacob Champion) §
292      * Rename server variable ssl_ecdh_curve to ssl_groups and allow
293        multiple colon-separated ECDH curves to be specified (Erica Zhang,
294        Daniel Gustafsson) §
295        The previous name still works.
296      * Make cancel request keys 256 bits (Heikki Linnakangas, Jelte
297        Fennema-Nio) § §
298        This is only possible when the server and client support wire
299        protocol version 3.2, introduced in this release.
300      * Add server variable autovacuum_worker_slots to specify the maximum
301        number of background workers (Nathan Bossart) §
302        With this variable set, autovacuum_max_workers can be adjusted at
303        runtime up to this maximum without a server restart.
304      * Allow specification of the fixed number of dead tuples that will
305        trigger an autovacuum (Nathan Bossart, Frédéric Yhuel) §
306        The server variable is autovacuum_vacuum_max_threshold. Percentages
307        are still used for triggering.
308      * Change server variable max_files_per_process to limit only files
309        opened by a backend (Andres Freund) §
310        Previously files opened by the postmaster were also counted toward
311        this limit.
312      * Add server variable num_os_semaphores to report the required number
313        of semaphores (Nathan Bossart) §
314        This is useful for operating system configuration.
315      * Add server variable extension_control_path to specify the location
316        of extension control files (Peter Eisentraut, Matheus Alcantara) §
317        §
318
319 E.1.3.1.7. Streaming Replication and Recovery #
320
321      * Allow inactive replication slots to be automatically invalidated
322        using server variable idle_replication_slot_timeout (Nisha Moond,
323        Bharath Rupireddy) §
324      * Add server variable max_active_replication_origins to control the
325        maximum active replication origins (Euler Taveira) §
326        This was previously controlled by max_replication_slots, but this
327        new setting allows a higher origin count in cases where fewer slots
328        are required.
329
330 E.1.3.1.8. Logical Replication #
331
332      * Allow the values of generated columns to be logically replicated
333        (Shubham Khanna, Vignesh C, Zhijie Hou, Shlok Kyal, Peter Smith) §
334        § § §
335        If the publication specifies a column list, all specified columns,
336        generated and non-generated, are published. Without a specified
337        column list, publication option publish_generated_columns controls
338        whether generated columns are published. Previously generated
339        columns were not replicated and the subscriber had to compute the
340        values if possible; this is particularly useful for non-PostgreSQL
341        subscribers which lack such a capability.
342      * Change the default CREATE SUBSCRIPTION streaming option from off to
343        parallel (Vignesh C) §
344      * Allow ALTER SUBSCRIPTION to change the replication slot's two-phase
345        commit behavior (Hayato Kuroda, Ajin Cherian, Amit Kapila, Zhijie
346        Hou) § §
347      * Log conflicts while applying logical replication changes (Zhijie
348        Hou, Nisha Moond) § § § § §
349        Also report in new columns of pg_stat_subscription_stats.
350
351 E.1.3.2. Utility Commands #
352
353      * Allow generated columns to be virtual, and make them the default
354        (Peter Eisentraut, Jian He, Richard Guo, Dean Rasheed) § § §
355        Virtual generated columns generate their values when the columns
356        are read, not written. The write behavior can still be specified
357        via the STORED option.
358      * Add OLD/NEW support to RETURNING in DML queries (Dean Rasheed) §
359        Previously RETURNING only returned new values for INSERT and
360        UPDATE, and old values for DELETE; MERGE would return the
361        appropriate value for the internal query executed. This new syntax
362        allows the RETURNING list of INSERT/UPDATE/DELETE/MERGE to
363        explicitly return old and new values by using the special aliases
364        old and new. These aliases can be renamed to avoid identifier
365        conflicts.
366      * Allow foreign tables to be created like existing local tables
367        (Zhang Mingli) §
368        The syntax is CREATE FOREIGN TABLE ... LIKE.
369      * Allow LIKE with nondeterministic collations (Peter Eisentraut) §
370      * Allow text position search functions with nondeterministic
371        collations (Peter Eisentraut) §
372        These used to generate an error.
373      * Add builtin collation provider PG_UNICODE_FAST (Jeff Davis) §
374        This locale supports case mapping, but sorts in code point order,
375        not natural language order.
376      * Allow VACUUM and ANALYZE to process partitioned tables without
377        processing their children (Michael Harris) §
378        This is enabled with the new ONLY option. This is useful since
379        autovacuum does not process partitioned tables, just its children.
380      * Add functions to modify per-relation and per-column optimizer
381        statistics (Corey Huinker) § § §
382        The functions are pg_restore_relation_stats(),
383        pg_restore_attribute_stats(), pg_clear_relation_stats(), and
384        pg_clear_attribute_stats().
385      * Add server variable file_copy_method to control the file copying
386        method (Nazir Bilal Yavuz) §
387        This controls whether CREATE DATABASE ... STRATEGY=FILE_COPY and
388        ALTER DATABASE ... SET TABLESPACE uses file copy or clone.
389
390 E.1.3.2.1. Constraints #
391
392      * Allow the specification of non-overlapping PRIMARY KEY, UNIQUE, and
393        foreign key constraints (Paul A. Jungwirth) § §
394        This is specified by WITHOUT OVERLAPS for PRIMARY KEY and UNIQUE,
395        and by PERIOD for foreign keys, all applied to the last specified
396        column.
397      * Allow CHECK and foreign key constraints to be specified as NOT
398        ENFORCED (Amul Sul) § §
399        This also adds column pg_constraint.conenforced.
400      * Require primary/foreign key relationships to use either
401        deterministic collations or the the same nondeterministic
402        collations (Peter Eisentraut) §
403        The restore of a pg_dump, also used by pg_upgrade, will fail if
404        these requirements are not met; schema changes must be made for
405        these upgrade methods to succeed.
406      * Store column NOT NULL specifications in pg_constraint (Álvaro
407        Herrera, Bernd Helmle) § §
408        This allows names to be specified for NOT NULL constraint. This
409        also adds NOT NULL constraints to foreign tables and NOT NULL
410        inheritance control to local tables.
411      * Allow ALTER TABLE to set the NOT VALID attribute of NOT NULL
412        constraints (Rushabh Lathia, Jian He) §
413      * Allow modification of the inheritability of NOT NULL constraints
414        (Suraj Kharage, Álvaro Herrera) § §
415        The syntax is ALTER TABLE ... ALTER CONSTRAINT ... [NO] INHERIT.
416      * Allow NOT VALID foreign key constraints on partitioned tables (Amul
417        Sul) §
418      * Allow dropping of constraints ONLY on partitioned tables (Álvaro
419        Herrera) §
420        This was previously erroneously prohibited.
421
422 E.1.3.2.2. COPY #
423
424      * Add REJECT_LIMIT to control the number of invalid rows COPY FROM
425        can ignore (Atsushi Torikoshi) §
426        This is available when ON_ERROR = 'ignore'.
427      * Allow COPY TO to copy rows from populated materialized views (Jian
428        He) §
429      * Add COPY LOG_VERBOSITY level silent to suppress log output of
430        ignored rows (Atsushi Torikoshi) §
431        This new level suppresses output for discarded input rows when
432        on_error = 'ignore'.
433      * Disallow COPY FREEZE on foreign tables (Nathan Bossart) §
434        Previously, the COPY worked but the FREEZE was ignored, so disallow
435        this command.
436
437 E.1.3.2.3. EXPLAIN #
438
439      * Automatically include BUFFERS output in EXPLAIN ANALYZE (Guillaume
440        Lelarge, David Rowley) §
441      * Add full WAL buffer count to EXPLAIN (WAL) output (Bertrand
442        Drouvot) §
443      * In EXPLAIN ANALYZE, report the number of index lookups used per
444        index scan node (Peter Geoghegan) §
445      * Modify EXPLAIN to output fractional row counts (Ibrar Ahmed, Ilia
446        Evdokimov, Robert Haas) § §
447      * Add memory and disk usage details to Material, Window Aggregate,
448        and common table expression nodes to EXPLAIN output (David Rowley,
449        Tatsuo Ishii) § § § §
450      * Add details about window function arguments to EXPLAIN output (Tom
451        Lane) §
452      * Add Parallel Bitmap Heap Scan worker cache statistics to EXPLAIN
453        ANALYZE (David Geier, Heikki Linnakangas, Donghang Lin, Alena
454        Rybakina, David Rowley) §
455      * Indicate disabled nodes in EXPLAIN ANALYZE output (Robert Haas,
456        David Rowley, Laurenz Albe) § § §
457
458 E.1.3.3. Data Types #
459
460      * Improve Unicode full case mapping and conversion (Jeff Davis) § §
461        This adds the ability to do conditional and title case mapping, and
462        case map single characters to multiple characters.
463      * Allow jsonb null values to be cast to scalar types as NULL (Tom
464        Lane) §
465        Previously such casts generated an error.
466      * Add optional parameter to json{b}_strip_nulls to allow removal of
467        null array elements (Florents Tselai) §
468      * Add function array_sort() which sorts an array's first dimension
469        (Junwang Zhao, Jian He) §
470      * Add function array_reverse() which reverses an array's first
471        dimension (Aleksander Alekseev) §
472      * Add function reverse() to reverse bytea bytes (Aleksander Alekseev)
473        §
474      * Allow casting between integer types and bytea (Aleksander Alekseev)
475        §
476        The integer values are stored as bytea two's complement values.
477      * Update Unicode data to Unicode 16.0.0 (Peter Eisentraut) §
478      * Add full text search stemming for Estonian (Tom Lane) §
479      * Improve the XML error codes to more closely match the SQL standard
480        (Tom Lane) §
481        These errors are reported via SQLSTATE.
482
483 E.1.3.4. Functions #
484
485      * Add function casefold() to allow for more sophisticated
486        case-insensitive matching (Jeff Davis) §
487        This allows more accurate comparisons, i.e., a character can have
488        multiple upper or lower case equivalents, or upper or lower case
489        conversion changes the number of characters.
490      * Allow MIN()/MAX() aggregates on arrays and composite types
491        (Aleksander Alekseev, Marat Buharov) § §
492      * Add a WEEK option to EXTRACT() (Tom Lane) §
493      * Improve the output EXTRACT(QUARTER ...) for negative values (Tom
494        Lane) §
495      * Add roman numeral support to to_number() (Hunaid Sohail) §
496        This is accessed via the RN pattern.
497      * Add UUID version 7 generation function uuidv7() (Andrey Borodin) §
498        This UUID value is temporally sortable. Function alias uuidv4() has
499        been added to explicitly generate version 4 UUIDs.
500      * Add functions crc32() and crc32c() to compute CRC values
501        (Aleksander Alekseev) §
502      * Add math functions gamma() and lgamma() (Dean Rasheed) §
503      * Allow => syntax for named cursor arguments in PL/pgSQL (Pavel
504        Stehule) §
505        We previously only accepted :=.
506      * Allow
507        regexp_match[es]()/regexp_like()/regexp_replace()/regexp_count()/re
508        gexp_instr()/regexp_substr()/regexp_split_to_table()/regexp_split_t
509        o_array() to use named arguments (Jian He) §
510
511 E.1.3.5. libpq #
512
513      * Add function PQfullProtocolVersion() to report the full, including
514        minor, protocol version number (Jacob Champion, Jelte Fennema-Nio)
515        §
516      * Add libpq connection parameters and environment variables to
517        specify the minimum and maximum acceptable protocol version for
518        connections (Jelte Fennema-Nio) § §
519      * Report search_path changes to the client (Alexander Kukushkin,
520        Jelte Fennema-Nio, Tomas Vondra) § §
521      * Add PQtrace() output for all message types, including
522        authentication (Jelte Fennema-Nio) § § § § §
523      * Add libpq connection parameter sslkeylogfile which dumps out SSL
524        key material (Abhishek Chanda, Daniel Gustafsson) §
525        This is useful for debugging.
526      * Modify some libpq function signatures to use int64_t (Thomas Munro)
527        §
528        These previously used pg_int64, which is now deprecated.
529
530 E.1.3.6. psql #
531
532      * Allow psql to parse, bind, and close named prepared statements
533        (Anthonin Bonnefoy, Michael Paquier) § §
534        This is accomplished with new commands \parse, \bind_named, and
535        \close_prepared.
536      * Add psql backslash commands to allowing issuance of pipeline
537        queries (Anthonin Bonnefoy) § § §
538        The new commands are \startpipeline, \syncpipeline, \sendpipeline,
539        \endpipeline, \flushrequest, \flush, and \getresults.
540      * Allow adding pipeline status to the psql prompt and add related
541        state variables (Anthonin Bonnefoy) §
542        The new prompt character is %P and the new psql variables are
543        PIPELINE_SYNC_COUNT, PIPELINE_COMMAND_COUNT, and
544        PIPELINE_RESULT_COUNT.
545      * Allow adding the connection service name to the psql prompt or
546        access it via psql variable (Michael Banck) §
547      * Add psql option to use expanded mode on all list commands (Dean
548        Rasheed) §
549        Adding backslash suffix x enables this.
550      * Change psql's \conninfo to use tabular format and include more
551        information (Álvaro Herrera, Maiquel Grassi, Hunaid Sohail) §
552      * Add function's leakproof indicator to psql's \df+, \do+, \dAo+, and
553        \dC+ outputs (Yugo Nagata) §
554      * Add access method details for partitioned relations in \dP+ (Justin
555        Pryzby) §
556      * Add default_version to the psql \dx extension output (Magnus
557        Hagander) §
558      * Add psql variable WATCH_INTERVAL to set the default \watch wait
559        time (Daniel Gustafsson) §
560
561 E.1.3.7. Server Applications #
562
563      * Change initdb to default to enabling checksums (Greg Sabino
564        Mullane) § §
565        The new initdb option --no-data-checksums disables checksums.
566      * Add initdb option --no-sync-data-files to avoid syncing heap/index
567        files (Nathan Bossart) §
568        initdb option --no-sync is still available to avoid syncing any
569        files.
570      * Add vacuumdb option --missing-stats-only to compute only missing
571        optimizer statistics (Corey Huinker, Nathan Bossart) § §
572        This option can only be run by superusers and can only be used with
573        options --analyze-only and --analyze-in-stages.
574      * Add pg_combinebackup option -k/--link to enable hard linking
575        (Israel Barth Rubio, Robert Haas) §
576        Only some files can be hard linked. This should not be used if the
577        backups will be used independently.
578      * Allow pg_verifybackup to verify tar-format backups (Amul Sul) §
579      * If pg_rewind's --source-server specifies a database name, use it in
580        --write-recovery-conf output (Masahiko Sawada) §
581      * Add pg_resetwal option --char-signedness to change the default char
582        signedness (Masahiko Sawada) §
583
584 E.1.3.7.1. pg_dump/pg_dumpall/pg_restore #
585
586      * Add pg_dump option --statistics (Jeff Davis) § §
587      * Add pg_dump and pg_dumpall option --sequence-data to dump sequence
588        data that would normally be excluded (Nathan Bossart) § §
589      * Add pg_dump, pg_dumpall, and pg_restore options --statistics-only,
590        --no-statistics, --no-data, and --no-schema (Corey Huinker, Jeff
591        Davis) §
592      * Add option --no-policies to disable row level security policy
593        processing in pg_dump, pg_dumpall, pg_restore (Nikolay Samokhvalov)
594        §
595        This is useful for migrating to systems with different policies.
596
597 E.1.3.7.2. pg_upgrade #
598
599      * Allow pg_upgrade to preserve optimizer statistics (Corey Huinker,
600        Jeff Davis, Nathan Bossart) § § § §
601        Extended statistics are not preserved. Also add pg_upgrade option
602        --no-statistics to disable statistics preservation.
603      * Allow pg_upgrade to process database checks in parallel (Nathan
604        Bossart) § § § § § § § § § § §
605        This is controlled by the existing --jobs option.
606      * Add pg_upgrade option --swap to swap directories rather than copy,
607        clone, or link files (Nathan Bossart) §
608        This mode is potentially the fastest.
609      * Add pg_upgrade option --set-char-signedness to set the default char
610        signedness of new cluster (Masahiko Sawada) § §
611        This is to handle cases where a pre-PostgreSQL 18 cluster's default
612        CPU signedness does not match the new cluster.
613
614 E.1.3.7.3. Logical Replication Applications #
615
616      * Add pg_createsubscriber option --all to create logical replicas for
617        all databases (Shubham Khanna) §
618      * Add pg_createsubscriber option --clean to remove publications
619        (Shubham Khanna) § §
620      * Add pg_createsubscriber option --enable-two-phase to enable
621        prepared transactions (Shubham Khanna) §
622      * Add pg_recvlogical option --enable-failover to specify failover
623        slots (Hayato Kuroda) §
624        Also add option --enable-two-phase as a synonym for --two-phase,
625        and deprecate the latter.
626      * Allow pg_recvlogical --drop-slot to work without --dbname (Hayato
627        Kuroda) §
628
629 E.1.3.8. Source Code #
630
631      * Separate the loading and running of injection points (Michael
632        Paquier, Heikki Linnakangas) § §
633        Injection points can now be created, but not run, via
634        INJECTION_POINT_LOAD(), and such injection points can be run via
635        INJECTION_POINT_CACHED().
636      * Support runtime arguments in injection points (Michael Paquier) §
637      * Allow inline injection point test code with
638        IS_INJECTION_POINT_ATTACHED() (Heikki Linnakangas) §
639      * Improve the performance of processing long JSON strings using SIMD
640        (Single Instruction Multiple Data) (David Rowley) §
641      * Speed up CRC32C calculations using x86 AVX-512 instructions
642        (Raghuveer Devulapalli, Paul Amonson) §
643      * Add ARM Neon and SVE CPU intrinsics for popcount (integer bit
644        counting) (Chiranmoy Bhattacharya, Devanga Susmitha, Rama Malladi)
645        § §
646      * Improve the speed of numeric multiplication and division (Joel
647        Jacobson, Dean Rasheed) § § § §
648      * Add configure option --with-libnuma to enable NUMA awareness (Jakub
649        Wartak, Bertrand Drouvot) § § §
650        The function pg_numa_available() reports on NUMA awareness, and
651        system views pg_shmem_allocations_numa and pg_buffercache_numa
652        which report on shared memory distribution across NUMA nodes.
653      * Add TOAST table to pg_index to allow for very large expression
654        indexes (Nathan Bossart) §
655      * Remove column pg_attribute.attcacheoff (David Rowley) §
656      * Add column pg_class.relallfrozen (Melanie Plageman) §
657      * Add amgettreeheight, amconsistentequality, and amconsistentordering
658        to the index access method API (Mark Dilger) § §
659      * Add GiST support function stratnum() (Paul A. Jungwirth) §
660      * Record the default CPU signedness of char in pg_controldata
661        (Masahiko Sawada) §
662      * Add support for Python "Limited API" in PL/Python (Peter
663        Eisentraut) § §
664        This helps prevent problems caused by Python 3.x version
665        mismatches.
666      * Change the minimum supported Python version to 3.6.8 (Jacob
667        Champion) §
668      * Remove support for OpenSSL versions older than 1.1.1 (Daniel
669        Gustafsson) § §
670      * If LLVM is enabled, require version 14 or later (Thomas Munro) §
671      * Add macro PG_MODULE_MAGIC_EXT to allow extensions to report their
672        name and version (Andrei Lepikhov) §
673        This information can be access via the new function
674        pg_get_loaded_modules().
675      * Document that SPI_connect()/SPI_connect_ext() always returns
676        success (SPI_OK_CONNECT) (Stepan Neretin) §
677        Errors are always reported via ereport().
678      * Add documentation section about API and ABI compatibility (David
679        Wheeler, Peter Eisentraut) §
680      * Remove the experimental designation of Meson builds on Windows
681        (Aleksander Alekseev) §
682      * Remove configure options --disable-spinlocks and --disable-atomics
683        (Thomas Munro) § §
684        Thirty-two-bit atomic operations are now required.
685      * Remove support for the HPPA/PA-RISC architecture (Tom Lane) §
686
687 E.1.3.9. Additional Modules #
688
689      * Add extension pg_logicalinspect to inspect logical snapshots
690        (Bertrand Drouvot) §
691      * Add extension pg_overexplain which adds debug details to EXPLAIN
692        output (Robert Haas) §
693      * Add output columns to postgres_fdw_get_connections() (Hayato
694        Kuroda, Sagar Dilip Shedge) § § § §
695        New output column used_in_xact indicates if the foreign data
696        wrapper is being used by a current transaction, closed indicates if
697        it is closed, user_name indicates the user name, and
698        remote_backend_pid indicates the remote backend process identifier.
699      * Allow SCRAM authentication from the client to be passed to
700        postgres_fdw servers (Matheus Alcantara, Peter Eisentraut) §
701        This avoids storing postgres_fdw authentication information in the
702        database, and is enabled with the postgres_fdw
703        use_scram_passthrough connection option. libpq uses new connection
704        parameters scram_client_key and scram_server_key.
705      * Allow SCRAM authentication from the client to be passed to dblink
706        servers (Matheus Alcantara) §
707      * Add on_error and log_verbosity options to file_fdw (Atsushi
708        Torikoshi) §
709        These control how file_fdw handles and reports invalid file rows.
710      * Add reject_limit to control the number of invalid rows file_fdw can
711        ignore (Atsushi Torikoshi) §
712        This is active when ON_ERROR = 'ignore'.
713      * Add configurable variable min_password_length to passwordcheck
714        (Emanuele Musella, Maurizio Boriani) §
715        This controls the minimum password length.
716      * Have pgbench report the number of failed, retried, or skipped
717        transactions in per-script reports (Yugo Nagata) §
718      * Add isn server variable weak to control invalid check digit
719        acceptance (Viktor Holmberg) §
720        This was previously only controlled by function isn_weak().
721      * Allow values to be sorted to speed btree_gist index builds (Bernd
722        Helmle, Andrey Borodin) §
723      * Add amcheck check function gin_index_check() to verify GIN indexes
724        (Grigory Kryachko, Heikki Linnakangas, Andrey Borodin) §
725      * Add functions pg_buffercache_evict_relation() and
726        pg_buffercache_evict_all() to evict unpinned shared buffers (Nazir
727        Bilal Yavuz) §
728        The existing function pg_buffercache_evict() now returns the buffer
729        flush status.
730      * Allow extensions to install custom EXPLAIN options (Robert Haas,
731        Sami Imseih) § § §
732      * Allow extensions to use the server's cumulative statistics API
733        (Michael Paquier) § §
734
735 E.1.3.9.1. pg_stat_statements #
736
737      * Allow the queries of CREATE TABLE AS and DECLARE to be tracked by
738        pg_stat_statements (Anthonin Bonnefoy) §
739        They are also now assigned query ids.
740      * Allow the parameterization of SET values in pg_stat_statements
741        (Greg Sabino Mullane, Michael Paquier) §
742        This reduces the bloat caused by SET statements with differing
743        constants.
744      * Add pg_stat_statements columns to report parallel activity
745        (Guillaume Lelarge) §
746        The new columns are parallel_workers_to_launch and
747        parallel_workers_launched.
748      * Add pg_stat_statements.wal_buffers_full to report full WAL buffers
749        (Bertrand Drouvot) §
750
751 E.1.3.9.2. pgcrypto #
752
753      * Add pgcrypto algorithms sha256crypt and sha512crypt (Bernd Helmle)
754        §
755      * Add CFB mode to pgcrypto encryption and decryption (Umar Hayat) §
756      * Add function fips_mode() to report the server's FIPS mode (Daniel
757        Gustafsson) §
758      * Add pgcrypto server variable builtin_crypto_enabled to allow
759        disabling builtin non-FIPS mode cryptographic functions (Daniel
760        Gustafsson, Joe Conway) §
761        This is useful for guaranteeing FIPS mode behavior.
762
763 E.1.4. Acknowledgments #
764
765    The following individuals (in alphabetical order) have contributed to
766    this release as patch authors, committers, reviewers, testers, or
767    reporters of issues.
768    Abhishek Chanda
769    Adam Guo
770    Adam Rauch
771    Aidar Imamov
772    Ajin Cherian
773    Alastair Turner
774    Alec Cozens
775    Aleksander Alekseev
776    Alena Rybakina
777    Alex Friedman
778    Alex Richman
779    Alexander Alehin
780    Alexander Borisov
781    Alexander Korotkov
782    Alexander Kozhemyakin
783    Alexander Kukushkin
784    Alexander Kuzmenkov
785    Alexander Kuznetsov
786    Alexander Lakhin
787    Alexander Pyhalov
788    Alexandra Wang
789    Alexey Dvoichenkov
790    Alexey Makhmutov
791    Alexey Shishkin
792    Ali Akbar
793    Álvaro Herrera
794    Álvaro Mongil
795    Amit Kapila
796    Amit Langote
797    Amul Sul
798    Andreas Karlsson
799    Andreas Scherbaum
800    Andreas Ulbrich
801    Andrei Lepikhov
802    Andres Freund
803    Andrew
804    Andrew Bille
805    Andrew Dunstan
806    Andrew Jackson
807    Andrew Kane
808    Andrew Watkins
809    Andrey Borodin
810    Andrey Chudnovsky
811    Andrey Rachitskiy
812    Andrey Rudometov
813    Andy Alsup
814    Andy Fan
815    Anthonin Bonnefoy
816    Anthony Hsu
817    Anthony Leung
818    Anton Melnikov
819    Anton Voloshin
820    Antonin Houska
821    Antti Lampinen
822    Arseniy Mukhin
823    Artur Zakirov
824    Arun Thirupathi
825    Ashutosh Bapat
826    Asphator
827    Atsushi Torikoshi
828    Avi Weinberg
829    Aya Iwata
830    Ayush Tiwari
831    Ayush Vatsa
832    Bastien Roucariès
833    Ben Peachey Higdon
834    Benoit Lobréau
835    Bernd Helmle
836    Bernd Reiß
837    Bernhard Wiedemann
838    Bertrand Drouvot
839    Bertrand Mamasam
840    Bharath Rupireddy
841    Bogdan Grigorenko
842    Boyu Yang
843    Braulio Fdo Gonzalez
844    Bruce Momjian
845    Bykov Ivan
846    Cameron Vogt
847    Cary Huang
848    Cédric Villemain
849    Cees van Zeeland
850    ChangAo Chen
851    Chao Li
852    Chapman Flack
853    Charles Samborski
854    Chengwen Wu
855    Chengxi Sun
856    Chiranmoy Bhattacharya
857    Chris Gooch
858    Christian Charukiewicz
859    Christoph Berg
860    Christophe Courtois
861    Christopher Inokuchi
862    Clemens Ruck
863    Corey Huinker
864    Craig Milhiser
865    Crisp Lee
866    Dagfinn Ilmari Mannsåker
867    Daniel Elishakov
868    Daniel Gustafsson
869    Daniel Vérité
870    Daniel Westermann
871    Daniele Varrazzo
872    Daniil Davydov
873    Daria Shanina
874    Dave Cramer
875    Dave Page
876    David Benjamin
877    David Christensen
878    David Fiedler
879    David G. Johnston
880    David Geier
881    David Rowley
882    David Steele
883    David Wheeler
884    David Zhang
885    Davinder Singh
886    Dean Rasheed
887    Devanga Susmitha
888    Devrim Gündüz
889    Dian Fay
890    Dilip Kumar
891    Dimitrios Apostolou
892    Dipesh Dhameliya
893    Dmitrii Bondar
894    Dmitry Dolgov
895    Dmitry Koval
896    Dmitry Kovalenko
897    Dmitry Yurichev
898    Dominique Devienne
899    Donghang Lin
900    Dorjpalam Batbaatar
901    Drew Callahan
902    Duncan Sands
903    Dwayne Towell
904    Dzmitry Jachnik
905    Egor Chindyaskin
906    Egor Rogov
907    Emanuel Ionescu
908    Emanuele Musella
909    Emre Hasegeli
910    Eric Cyr
911    Erica Zhang
912    Erik Nordström
913    Erik Rijkers
914    Erik Wienhold
915    Erki Eessaar
916    Ethan Mertz
917    Etienne LAFARGE
918    Etsuro Fujita
919    Euler Taveira
920    Evan Si
921    Evgeniy Gorbanev
922    Fabio R. Sluzala
923    Fabrízio de Royes Mello
924    Feike Steenbergen
925    Feliphe Pozzer
926    Felix
927    Fire Emerald
928    Florents Tselai
929    Francesco Degrassi
930    Frank Streitzig
931    Frédéric Yhuel
932    Fredrik Widlert
933    Gabriele Bartolini
934    Gavin Panella
935    Geoff Winkless
936    George MacKerron
937    Gilles Darold
938    Grant Gryczan
939    Greg Burd
940    Greg Sabino Mullane
941    Greg Stark
942    Grigory Kryachko
943    Guillaume Lelarge
944    Gunnar Morling
945    Gunnar Wagner
946    Gurjeet Singh
947    Haifang Wang
948    Hajime Matsunaga
949    Hamid Akhtar
950    Hannu Krosing
951    Hari Krishna Sunder
952    Haruka Takatsuka
953    Hayato Kuroda
954    Heikki Linnakangas
955    Hironobu Suzuki
956    Holger Jakobs
957    Hubert Lubaczewski
958    Hugo Dubois
959    Hugo Zhang
960    Hunaid Sohail
961    Hywel Carver
962    Ian Barwick
963    Ibrar Ahmed
964    Igor Gnatyuk
965    Igor Korot
966    Ilia Evdokimov
967    Ilya Gladyshev
968    Ilyasov Ian
969    Imran Zaheer
970    Isaac Morland
971    Israel Barth Rubio
972    Ivan Kush
973    Jacob Brazeal
974    Jacob Champion
975    Jaime Casanova
976    Jakob Egger
977    Jakub Wartak
978    James Coleman
979    James Hunter
980    Jan Behrens
981    Japin Li
982    Jason Smith
983    Jayesh Dehankar
984    Jeevan Chalke
985    Jeff Davis
986    Jehan-Guillaume de Rorthais
987    Jelte Fennema-Nio
988    Jian He
989    Jianghua Yang
990    Jiao Shuntian
991    Jim Jones
992    Jim Nasby
993    Jingtang Zhang
994    Jingzhou Fu
995    Joe Conway
996    Joel Jacobson
997    John Hutchins
998    John Naylor
999    Jonathan Katz
1000    Jorge Solórzano
1001    José Villanova
1002    Josef Šimánek
1003    Joseph Koshakow
1004    Julien Rouhaud
1005    Junwang Zhao
1006    Justin Pryzby
1007    Kaido Vaikla
1008    Kaimeh
1009    Karina Litskevich
1010    Karthik S
1011    Kartyshov Ivan
1012    Kashif Zeeshan
1013    Keisuke Kuroda
1014    Kevin Hale Boyes
1015    Kevin K Biju
1016    Kirill Reshke
1017    Kirill Zdornyy
1018    Koen De Groote
1019    Koichi Suzuki
1020    Koki Nakamura
1021    Konstantin Knizhnik
1022    Kouhei Sutou
1023    Kuntal Ghosh
1024    Kyotaro Horiguchi
1025    Lakshmi Narayana Velayudam
1026    Lars Kanis
1027    Laurence Parry
1028    Laurenz Albe
1029    Lele Gaifax
1030    Li Yong
1031    Lilian Ontowhee
1032    Lingbin Meng
1033    Luboslav Špilák
1034    Luca Vallisa
1035    Lukas Fittl
1036    Maciek Sakrejda
1037    Magnus Hagander
1038    Mahendra Singh Thalor
1039    Mahendrakar Srinivasarao
1040    Maiquel Grassi
1041    Maksim Korotkov
1042    Maksim Melnikov
1043    Man Zeng
1044    Marat Buharov
1045    Marc Balmer
1046    Marco Nenciarini
1047    Marcos Pegoraro
1048    Marina Polyakova
1049    Mark Callaghan
1050    Mark Dilger
1051    Marlene Brandstaetter
1052    Marlene Reiterer
1053    Martin Rakhmanov
1054    Masahiko Sawada
1055    Masahiro Ikeda
1056    Masao Fujii
1057    Mason Mackaman
1058    Mat Arye
1059    Matheus Alcantara
1060    Mats Kindahl
1061    Matthew Gabeler-Lee
1062    Matthew Kim
1063    Matthew Sterrett
1064    Matthew Woodcraft
1065    Matthias van de Meent
1066    Matthieu Denais
1067    Maurizio Boriani
1068    Max Johnson
1069    Max Madden
1070    Maxim Boguk
1071    Maxim Orlov
1072    Maximilian Chrzan
1073    Melanie Plageman
1074    Melih Mutlu
1075    Mert Alev
1076    Michael Banck
1077    Michael Bondarenko
1078    Michael Christofides
1079    Michael Guissine
1080    Michael Harris
1081    Michaël Paquier
1082    Michail Nikolaev
1083    Michal Kleczek
1084    Michel Pelletier
1085    Mikaël Gourlaouen
1086    Mikhail Gribkov
1087    Mikhail Kot
1088    Milosz Chmura
1089    Muralikrishna Bandaru
1090    Murat Efendioglu
1091    Mutaamba Maasha
1092    Naeem Akhter
1093    Nat Makarevitch
1094    Nathan Bossart
1095    Navneet Kumar
1096    Nazir Bilal Yavuz
1097    Neil Conway
1098    Niccolò Fei
1099    Nick Davies
1100    Nicolas Maus
1101    Niek Brasa
1102    Nikhil Raj
1103    Nikita
1104    Nikita Kalinin
1105    Nikita Malakhov
1106    Nikolay Samokhvalov
1107    Nikolay Shaplov
1108    Nisha Moond
1109    Nitin Jadhav
1110    Nitin Motiani
1111    Noah Misch
1112    Noboru Saito
1113    Noriyoshi Shinoda
1114    Ole Peder Brandtzæg
1115    Oleg Sibiryakov
1116    Oleg Tselebrovskiy
1117    Olleg Samoylov
1118    Onder Kalaci
1119    Ondrej Navratil
1120    Patrick Stählin
1121    Paul Amonson
1122    Paul Jungwirth
1123    Paul Ramsey
1124    Pavel Borisov
1125    Pavel Luzanov
1126    Pavel Nekrasov
1127    Pavel Stehule
1128    Peter Eisentraut
1129    Peter Geoghegan
1130    Peter Mittere
1131    Peter Smith
1132    Phil Eaton
1133    Philipp Salvisberg
1134    Philippe Beaudoin
1135    Pierre Giraud
1136    Pixian Shi
1137    Polina Bungina
1138    Przemyslaw Sztoch
1139    Quynh Tran
1140    Rafia Sabih
1141    Raghuveer Devulapalli
1142    Rahila Syed
1143    Rama Malladi
1144    Ran Benita
1145    Ranier Vilela
1146    Renan Alves Fonseca
1147    Richard Guo
1148    Richard Neill
1149    Rintaro Ikeda
1150    Robert Haas
1151    Robert Treat
1152    Robins Tharakan
1153    Roman Zharkov
1154    Ronald Cruz
1155    Ronan Dunklau
1156    Rui Zhao
1157    Rushabh Lathia
1158    Rustam Allakov
1159    Ryo Kanbayashi
1160    Ryohei Takahashi
1161    RyotaK
1162    Sagar Dilip Shedge
1163    Salvatore Dipietro
1164    Sam Gabrielsson
1165    Sam James
1166    Sameer Kumar
1167    Sami Imseih
1168    Samuel Thibault
1169    Satyanarayana Narlapuram
1170    Sebastian Skalacki
1171    Senglee Choi
1172    Sergei Kornilov
1173    Sergey Belyashov
1174    Sergey Dudoladov
1175    Sergey Prokhorenko
1176    Sergey Sargsyan
1177    Sergey Soloviev
1178    Sergey Tatarintsev
1179    Shaik Mohammad Mujeeb
1180    Shawn McCoy
1181    Shenhao Wang
1182    Shihao Zhong
1183    Shinya Kato
1184    Shlok Kyal
1185    Shubham Khanna
1186    Shveta Malik
1187    Simon Riggs
1188    Smolkin Grigory
1189    Sofia Kopikova
1190    Song Hongyu
1191    Song Jinzhou
1192    Soumyadeep Chakraborty
1193    Sravan Kumar
1194    Srinath Reddy
1195    Stan Hu
1196    Stepan Neretin
1197    Stephen Fewer
1198    Stephen Frost
1199    Steve Chavez
1200    Steven Niu
1201    Suraj Kharage
1202    Sven Klemm
1203    Takamichi Osumi
1204    Takeshi Ideriha
1205    Tatsuo Ishii
1206    Ted Yu
1207    Tels
1208    Tender Wang
1209    Teodor Sigaev
1210    Thom Brown
1211    Thomas Baehler
1212    Thomas Krennwallner
1213    Thomas Munro
1214    Tim Wood
1215    Timur Magomedov
1216    Tobias Wendorff
1217    Todd Cook
1218    Tofig Aliev
1219    Tom Lane
1220    Tomas Vondra
1221    Tomasz Rybak
1222    Tomasz Szypowski
1223    Torsten Foertsch
1224    Toshi Harada
1225    Tristan Partin
1226    Triveni N
1227    Umar Hayat
1228    Vallimaharajan G
1229    Vasya Boytsov
1230    Victor Yegorov
1231    Vignesh C
1232    Viktor Holmberg
1233    Vinícius Abrahão
1234    Vinod Sridharan
1235    Virender Singla
1236    Vitaly Davydov
1237    Vladlen Popolitov
1238    Vladyslav Nebozhyn
1239    Walid Ibrahim
1240    Webbo Han
1241    Wenhui Qiu
1242    Will Mortensen
1243    Will Storey
1244    Wolfgang Walther
1245    Xin Zhang
1246    Xing Guo
1247    Xuneng Zhou
1248    Yan Chengpen
1249    Yang Lei
1250    Yaroslav Saburov
1251    Yaroslav Syrytsia
1252    Yasir Hussain
1253    Yasuo Honda
1254    Yogesh Sharma
1255    Yonghao Lee
1256    Yoran Heling
1257    Yu Liang
1258    Yugo Nagata
1259    Yuhang Qiu
1260    Yuki Seino
1261    Yura Sokolov
1262    Yurii Rashkovskii
1263    Yushi Ogiwara
1264    Yusuke Sugie
1265    Yuta Katsuragi
1266    Yuto Sasaki
1267    Yuuki Fujii
1268    Yuya Watari
1269    Zane Duffield
1270    Zeyuan Hu
1271    Zhang Mingli
1272    Zhihong Yu
1273    Zhijie Hou
1274    Zsolt Parragi