Fecha de lanzamiento: 25 de septiembre de 2025
PostgreSQL 18 contiene muchas características nuevas y mejoras, incluyendo:
Un subsistema de E/S asíncrona (AIO) que puede mejorar el rendimiento de los escaneos secuenciales, escaneos de mapas de bits de heap (bitmap heap scans), vacuums y otras operaciones.
pg_upgrade ahora retiene las estadísticas del optimizador.
Soporte para búsquedas "skip scan" que permiten utilizar índices B-tree multicolumna en más casos.
La función uuidv7()
para generar UUIDs ordenados por marca de tiempo.
Columnas generadas virtuales que calculan sus valores durante las operaciones de lectura. Este es ahora el comportamiento por defecto para las columnas generadas.
Soporte para autenticación OAuth.
Soporte de OLD y NEW para cláusulas
RETURNING
en los comandos INSERT, UPDATE,
DELETE y MERGE.
Restricciones temporales, o restricciones sobre rangos, para las restricciones PRIMARY KEY, UNIQUE y FOREIGN KEY.
Los elementos anteriores y otras nuevas características de PostgreSQL 18 se explican con más detalle en las secciones siguientes.
Se requiere un dump/restore utilizando pg_dumpall, el uso de pg_upgrade o replicación lógica para aquellos que deseen migrar datos desde cualquier versión anterior. Consulte Section 18.6 para obtener información general sobre la migración a nuevas versiones principales (major releases).
La versión 18 contiene una serie de cambios que pueden afectar la compatibilidad con versiones anteriores. Observe las siguientes incompatibilidades:
Cambia el comportamiento por defecto de initdb para habilitar las sumas de comprobación (data checksums) (Greg Sabino Mullane) §
Las sumas de comprobación se pueden deshabilitar con la
nueva opción de initdb
--no-data-checksums. pg_upgrade
requiere que coincida la configuración de las sumas de comprobación de los clústeres, por lo que esta nueva opción puede
ser útil para actualizar clústeres antiguos que no las tengan habilitadas.
Cambia el manejo de abreviaturas de zonas horarias (Tom Lane) §
El sistema ahora priorizará las abreviaturas de zona horaria de la sesión
actual antes de verificar la variable de servidor
timezone_abbreviations. Anteriormente
se verificaba primero timezone_abbreviations.
Declara obsoleta (deprecate) la autenticación por contraseñas MD5 (Nathan Bossart) §
El soporte para contraseñas MD5 se eliminará en una futura versión
principal. CREATE ROLE y ALTER ROLE ahora emiten advertencias de obsolescencia al
establecer contraseñas MD5. Estas advertencias se pueden deshabilitar estableciendo
el parámetro md5_password_warnings a
off.
Cambia VACUUM y ANALYZE para procesar los hijos de herencia de un padre (Michael Harris) §
El comportamiento anterior se puede realizar utilizando la nueva
opción ONLY.
Evita que COPY FROM
trate \. como un marcador de fin de archivo al
leer archivos CSV (Daniel Vérité, Tom Lane)
§
§
psql seguirá tratando
\. como un marcador de fin de archivo al leer
archivos CSV desde STDIN.
Los clientes psql más antiguos que se conecten a
servidores PostgreSQL 18 podrían experimentar problemas con \copy.
Esta versión también impone que \.
debe aparecer solo en una línea.
Desautoriza tablas particionadas no registradas (unlogged partitioned tables) (Michael Paquier) §
Anteriormente, ALTER TABLE SET
[UN]LOGGED no hacía nada, y la creación de una
tabla particionada no registrada no causaba que sus hijas fueran no registradas.
Ejecuta disparadores (triggers) AFTER como el rol que estaba activo cuando
los eventos del disparador fueron encolados (Laurenz Albe)
§
Anteriormente, tales disparadores se ejecutaban como el rol que estaba activo al momento de la ejecución del disparador (por ejemplo, en un COMMIT). Esto es significativo para los casos en que el rol cambia entre el momento de encolar y la confirmación (commit) de la transacción.
Elimina el soporte no funcional para privilegios de reglas en GRANT y REVOKE (Fujii Masao) §
Estos no han sido funcionales desde PostgreSQL 8.2.
Elimina la columna parent de pg_backend_memory_contexts
(Melih Mutlu)
§
Esto ya no es necesario dado que se añadió
pg_backend_memory_contexts.path.
Cambia
pg_backend_memory_contexts.level
y pg_log_backend_memory_contexts()
para que se basen en uno (one-based) (Melih Mutlu, Atsushi Torikoshi, David Rowley,
Fujii Masao)
§
§
§
Anteriormente, estos se basaban en cero (zero-based).
Cambia la búsqueda de texto completo (FTS) para usar el proveedor de colación por defecto del clúster para leer archivos de configuración y diccionarios, en lugar de utilizar siempre libc (Peter Eisentraut) §
Los clústeres que usan por defecto proveedores de colación distintos de libc (por ejemplo, ICU, builtin) y que se comportan de forma diferente a libc para los caracteres procesados por LC_CTYPE podrían experimentar cambios en el comportamiento de algunas funciones de búsqueda de texto completo, así como en la extensión pg_trgm. Al actualizar tales clústeres utilizando pg_upgrade, se recomienda reindexar todos los índices relacionados con la búsqueda de texto completo y pg_trgm después de la actualización.
A continuación encontrará un relato detallado de los cambios entre PostgreSQL 18 y la versión principal anterior.
Elimina automáticamente algunas autouniones (self-joins) innecesarias de tablas (Andrey Lepikhov, Alexander Kuzmenkov, Alexander Korotkov, Alena Rybakina) §
Esta optimización se puede desactivar usando la variable de servidor enable_self_join_elimination.
Convierte algunas expresiones IN (VALUES
...) a x = ANY ... para obtener mejores
estadísticas del optimizador (Alena Rybakina, Andrei Lepikhov)
§
Permite transformar cláusulas OR
a arreglos para un procesamiento de índices más rápido (Alexander Korotkov, Andrey
Lepikhov)
§
Acelera el procesamiento de INTERSECT,
EXCEPT, agregaciones de ventana, y alias de columnas de vista (Tom Lane,
David Rowley)
§
§
§
§
Permite que las claves de SELECT
DISTINCT se reordenen internamente para evitar el ordenamiento
(Richard Guo)
§
Esta optimización se puede desactivar usando enable_distinct_reordering.
Ignora las columnas GROUP BY
que dependen funcionalmente de otras columnas (Zhang
Mingli, Jian He, David Rowley)
§
Si una cláusula GROUP BY incluye todas las columnas de
un índice único, así como otras columnas de la misma tabla, esas
otras columnas son redundantes y pueden eliminarse de la agrupación.
Esto ya era así para las claves primarias no diferidas.
Permite que algunas cláusulas HAVING
en GROUPING
SETS se inserten (pushdown) en las cláusulas WHERE
(Richard Guo)
§
§
§
§
Esto permite filtrar las filas antes. Esta versión también corrige algunas
consultas de GROUPING SETS que solían devolver
resultados incorrectos.
Mejora las estimaciones de filas para generate_series()
usando valores numeric
y timestamp
(David Rowley, Song Jinzhou)
§
§
Permite al optimizador usar planes de tipo Right Semi Join
(Richard Guo)
§
Las semi-joins se utilizan cuando se necesita averiguar si hay al menos una coincidencia.
Permite que las uniones de mezcla (merge joins) utilicen ordenamientos incrementales (incremental sorts) (Richard Guo) §
Mejora la eficiencia en la planificación de consultas que acceden a muchas particiones (Ashutosh Bapat, Yuya Watari, David Rowley) § §
Permite uniones basadas en particiones (partitionwise joins) en más casos, y reduce su uso de memoria (Richard Guo, Tom Lane, Ashutosh Bapat) § §
Mejora las estimaciones de costos de consultas de particiones (Nikita Malakhov, Andrei Lepikhov) §
Mejora el almacenamiento en caché de planes (plan caching) de funciones en lenguaje SQL (Alexander Pyhalov, Tom Lane) § §
Mejora el manejo de características desactivadas del optimizador (Robert Haas) §
Permite búsquedas con salto (skip scans) en índices btree (Peter Geoghegan) § §
Esto permite usar índices btree multicolumna en más casos, como cuando no hay restricciones en las primeras columnas indexadas (o hay restricciones que no son de igualdad) y existen restricciones útiles en las columnas indexadas posteriores.
Permite usar índices únicos que no sean btree como claves de partición y en vistas materializadas (Mark Dilger) § §
El tipo de índice aún debe soportar la igualdad.
Permite que los índices GIN se
creen en paralelo (Tomas Vondra, Matthias van de Meent)
§
Permite ordenar valores para acelerar las construcciones de índices GiST y btree de tipos de rango (Bernd Helmle) §
Añade un subsistema de E/S asíncrona (Andres Freund, Thomas Munro, Nazir Bilal Yavuz, Melanie Plageman) § § § § § § § § § § §
Esta característica permite que los backends pongan en cola múltiples solicitudes de lectura,
lo que permite escaneos secuenciales, escaneos de mapa de bits del montículo (bitmap heap scans),
vacuums, etc., más eficientes. Esto se habilita mediante la variable de servidor
io_method, y se agregaron las variables de servidor io_combine_limit y io_max_combine_limit para controlarlo.
Esto también permite valores de effective_io_concurrency
y maintenance_io_concurrency mayores que cero en sistemas sin
soporte para fadvise(). La nueva vista del sistema pg_aios
muestra los descriptores de archivos que se están utilizando para la E/S asíncrona.
Mejora el rendimiento de los bloqueos de consultas que acceden a muchas relaciones (Tomas Vondra) §
Mejora el rendimiento y reduce el uso de memoria de las uniones hash (hash joins) y
GROUP BY
(David Rowley, Jeff Davis)
§
§
§
§
§
Esto también mejora las operaciones de conjuntos hash utilizadas por EXCEPT, y las búsquedas hash
de valores de subplanes.
Permite que los vacuums normales congelen algunas páginas, aunque estén totalmente visibles (all-visible) (Melanie Plageman) § §
Esto reduce la sobrecarga del congelamiento posterior de relaciones completas. La agresividad de esto se puede controlar mediante la variable de servidor y el ajuste por tabla vacuum_max_eager_freeze_failure_rate. Anteriormente, vacuum nunca procesaba páginas totalmente visibles hasta que se requería el congelamiento.
Añade la variable de servidor vacuum_truncate para controlar el truncamiento de archivos durante VACUUM (Nathan Bossart, Gurjeet Singh) §
Ya existía un parámetro a nivel de almacenamiento con el mismo nombre y comportamiento.
Incrementa los valores por defecto de las variables de servidor effective_io_concurrency y maintenance_io_concurrency a 16 (Melanie Plageman) § §
Esto refleja con mayor precisión el hardware moderno.
Aumenta la granularidad del registro de la variable de servidor log_connections (Melanie Plageman) §
Esta variable de servidor antes era solo booleana, lo cual sigue siendo soportado.
Añade la opción log_connections para informar sobre la duración
de las etapas de la conexión (Melanie Plageman)
§
Añade el escape %L en log_line_prefix
para mostrar la dirección IP del cliente (Greg Sabino Mullane)
§
Añade la variable de servidor log_lock_failures para registrar los fallos en la adquisición de bloqueos (Yuki Seino, Fujii Masao) § §
Específicamente, informa sobre los fallos de bloqueo en consultas SELECT
... NOWAIT.
Modifica pg_stat_all_tables
y sus variantes para reportar el tiempo dedicado a VACUUM, ANALYZE y sus variantes
automáticas (Sami Imseih)
§
Las nuevas columnas son total_vacuum_time,
total_autovacuum_time,
total_analyze_time y
total_autoanalyze_time.
Añade el informe del tiempo de retraso a VACUUM and ANALYZE (Bertrand Drouvot, Nathan Bossart) § §
Esta información aparece en el registro del servidor (log), las vistas del sistema pg_stat_progress_vacuum
y pg_stat_progress_analyze,
y en la salida de VACUUM y ANALYZE cuando están en modo VERBOSE;
el seguimiento debe estar habilitado con la variable de servidor track_cost_delay_timing.
Añade la salida de estadísticas de promedio de lectura, WAL y
CPU a ANALYZE VERBOSE
(Anthonin Bonnefoy)
§
§
Añade el conteo de búferes de WAL llenos a la salida del registro de
VACUUM/ANALYZE (VERBOSE)
y autovacuum (Bertrand Drouvot)
§
Añade el informe de estadísticas de E/S por backend (Bertrand Drouvot) § §
Se accede a las estadísticas a través de pg_stat_get_backend_io().
Las estadísticas de E/S por backend se pueden restablecer mediante pg_stat_reset_backend_stats().
Añade columnas a pg_stat_io
para reportar la actividad de E/S en bytes (Nazir Bilal Yavuz)
§
Las nuevas columnas son read_bytes,
write_bytes y
extend_bytes. Se ha eliminado la columna
op_bytes, que siempre equivalía a
BLCKSZ.
Añade filas de actividad de E/S de WAL a
pg_stat_io (Nazir Bilal Yavuz, Bertrand
Drouvot, Michael Paquier)
§
§
§
Esto incluye la actividad del receptor de WAL y un evento de espera para dichas escrituras.
Cambia la variable de servidor track_wal_io_timing
para controlar el seguimiento de los tiempos de E/S de WAL
en pg_stat_io en lugar de pg_stat_wal
(Bertrand Drouvot)
§
Elimina las columnas de lectura y sincronización (read/sync) de pg_stat_wal
(Bertrand Drouvot)
§
§
Esto elimina las columnas wal_write,
wal_sync,
wal_write_time y
wal_sync_time.
Añade la función pg_stat_get_backend_wal()
para devolver estadísticas de WAL por backend (Bertrand
Drouvot)
§
Las estadísticas de WAL por backend se pueden restablecer mediante pg_stat_reset_backend_stats().
Añade la función pg_ls_summariesdir()
para listar específicamente el contenido de PGDATA/pg_wal/summaries
(Yushi Ogiwara)
§
Añade la columna pg_stat_checkpointer.num_done
para informar sobre el número de puntos de control (checkpoints) completados (Anton A. Melnikov)
§
Las columnas num_timed y
num_requested cuentan tanto los puntos de control
completados como los omitidos.
Añade la columna
pg_stat_checkpointer.slru_written
para informar sobre los búferes SLRU escritos (Nitin Jadhav)
§
También modifica el mensaje de registro del servidor sobre el punto de control para reportar valores separados de búferes compartidos (shared buffers) y búferes SLRU.
Añade columnas a pg_stat_database
para informar sobre la actividad de los trabajadores en paralelo (parallel workers) (Benoit Lobréau)
§
Las nuevas columnas son
parallel_workers_to_launch y
parallel_workers_launched.
Hace que el cálculo del ID de consulta (query id) para listas de constantes considere solo la primera y última constantes (Dmitry Dolgov, Sami Imseih) § § §
El desordenamiento (jumbling) es utilizado por pg_stat_statements.
Ajusta el cálculo del ID de consulta para agrupar las consultas que utilicen el mismo nombre de relación (Michael Paquier, Sami Imseih) §
Esto es así incluso si las tablas en diferentes esquemas tienen diferentes nombres de columnas.
Añade la columna pg_backend_memory_contexts.type
para informar el tipo de contexto de memoria (David Rowley)
§
Añade la columna
pg_backend_memory_contexts.path
para mostrar los padres del contexto de memoria (Melih Mutlu)
§
Añade la función pg_get_acl()
para recuperar detalles de control de acceso de la base de datos (Joel Jacobson)
§
§
Añade la función has_largeobject_privilege()
para verificar privilegios de objetos grandes (Yugo Nagata)
§
Permite a ALTER DEFAULT PRIVILEGES definir privilegios por defecto para objetos grandes (Takatsuka Haruka, Yugo Nagata, Laurenz Albe) §
Añade el rol predefinido pg_signal_autovacuum_worker
(Kirill Reshke)
§
Esto permite enviar señales a los trabajadores de autovacuum.
Añade soporte para el método de autenticación OAuth (Jacob Champion, Daniel Gustafsson, Thomas Munro) §
Esto añade un método de autenticación oauth a pg_hba.conf,
opciones de OAuth para libpq, una variable de servidor oauth_validator_libraries para cargar
bibliotecas de validación de tokens, y una opción de configure --with-libcurl
para añadir las bibliotecas requeridas en tiempo de compilación.
Añade la variable de servidor ssl_tls13_ciphers para permitir la especificación de múltiples suites de cifrado TLSv1.3 separadas por dos puntos (Erica Zhang, Daniel Gustafsson) §
Cambia el valor por defecto de la variable de servidor ssl_groups para incluir la curva elíptica X25519 (Daniel Gustafsson, Jacob Champion) §
Renombra la variable de servidor ssl_ecdh_curve a ssl_groups y permite especificar múltiples curvas
ECDH separadas por dos puntos (Erica Zhang,
Daniel Gustafsson)
§
El nombre anterior sigue funcionando.
Hace que las claves de solicitud de cancelación sean de 256 bits (Heikki Linnakangas, Jelte Fennema-Nio) § §
Esto solo es posible cuando el servidor y el cliente soportan la versión 3.2 del protocolo de comunicación (wire protocol), introducida en esta versión.
Añade la variable de servidor autovacuum_worker_slots para especificar el número máximo de trabajadores de fondo (background workers) (Nathan Bossart) §
Con esta variable configurada, autovacuum_max_workers se puede ajustar en tiempo de ejecución hasta este máximo sin necesidad de reiniciar el servidor.
Permite especificar el número fijo de tuplas muertas que activará un autovacuum (Nathan Bossart, Frédéric Yhuel) §
La variable de servidor es autovacuum_vacuum_max_threshold. Aún se utilizan porcentajes para la activación.
Cambia la variable de servidor max_files_per_process para limitar solo los archivos abiertos por un backend (Andres Freund) §
Anteriormente, los archivos abiertos por el postmaster también contaban para este límite.
Añade la variable de servidor num_os_semaphores para informar el número requerido de semáforos (Nathan Bossart) §
Esto es útil para la configuración del sistema operativo.
Añade la variable de servidor extension_control_path para especificar la ubicación de los archivos de control de extensiones (Peter Eisentraut, Matheus Alcantara) § §
Permite que los slots de replicación inactivos se invaliden automáticamente usando la variable de servidor idle_replication_slot_timeout (Nisha Moond, Bharath Rupireddy) §
Añade la variable de servidor max_active_replication_origins para controlar el máximo de orígenes de replicación activos (Euler Taveira) §
Esto antes estaba controlado por max_replication_slots, pero este nuevo ajuste permite un conteo de orígenes mayor en casos donde se requieren menos slots.
Permite que los valores de las columnas generadas (generated columns) se repliquen lógicamente (Shubham Khanna, Vignesh C, Zhijie Hou, Shlok Kyal, Peter Smith) § § § §
Si la publicación especifica una lista de columnas, todas las columnas
especificadas, tanto generadas como no generadas, se publican.
Sin una lista de columnas especificada, la opción de publicación
publish_generated_columns controla si las
columnas generadas se publican. Anteriormente las columnas generadas
no se replicaban y el suscriptor tenía que calcular los valores
si era posible; esto es particularmente útil para suscriptores
ajenos a PostgreSQL que carecen de tal capacidad.
Cambia la opción por defecto de transmisión (streaming) en CREATE SUBSCRIPTION
de off a parallel
(Vignesh C)
§
Permite a ALTER SUBSCRIPTION cambiar el comportamiento de confirmación en dos fases (two-phase commit) del slot de replicación (Hayato Kuroda, Ajin Cherian, Amit Kapila, Zhijie Hou) § §
Registra los conflictos al aplicar cambios de replicación lógica (Zhijie Hou, Nisha Moond) § § § § §
También informa sobre estos en las nuevas columnas de pg_stat_subscription_stats.
Permite que las columnas generadas sean virtuales, y las hace la opción por defecto (Peter Eisentraut, Jian He, Richard Guo, Dean Rasheed) § § §
Las columnas generadas virtuales generan sus valores cuando se leen
las columnas, no cuando se escriben. El comportamiento de escritura aún se puede especificar
mediante la opción STORED.
Añade soporte para OLD/NEW a RETURNING en
consultas DML (Dean Rasheed)
§
Anteriormente, RETURNING solo devolvía nuevos valores para
INSERT y UPDATE, y valores antiguos
para DELETE; MERGE
devolvía el valor adecuado según la consulta interna ejecutada.
Esta nueva sintaxis permite que la lista RETURNING de
INSERT/UPDATE/DELETE/MERGE
devuelva explícitamente valores antiguos y nuevos utilizando los alias especiales
old y new. Estos alias
se pueden renombrar para evitar conflictos con otros identificadores.
Permite crear tablas extranjeras (foreign tables) de manera similar a las tablas locales existentes (Zhang Mingli) §
La sintaxis es CREATE
FOREIGN TABLE ... LIKE.
Permite LIKE
con ordenaciones no deterministas
(nondeterministic collations) (Peter Eisentraut)
§
Permite funciones de búsqueda de posición de texto con ordenaciones no deterministas (Peter Eisentraut) §
Anteriormente, estas generaban un error.
Añade el proveedor de ordenación integrado PG_UNICODE_FAST
(Jeff Davis)
§
Esta configuración regional (locale) soporta el mapeo de mayúsculas y minúsculas (case mapping), pero ordena en el orden de puntos de código (code point), no en el orden del lenguaje natural.
Permite que VACUUM y ANALYZE procesen tablas particionadas sin procesar sus hijos (Michael Harris) §
Esto se habilita con la nueva opción ONLY. Esto es
útil ya que autovacuum no procesa tablas particionadas, solo
sus hijos.
Añade funciones para modificar las estadísticas del optimizador por relación y por columna (Corey Huinker) § § §
Las funciones son pg_restore_relation_stats(),
pg_restore_attribute_stats(),
pg_clear_relation_stats() y
pg_clear_attribute_stats().
Añade la variable de servidor file_copy_method para controlar el método de copia de archivos (Nazir Bilal Yavuz) §
Esto controla si CREATE DATABASE
... STRATEGY=FILE_COPY y ALTER DATABASE ... SET
TABLESPACE utilizan copia o clonación de archivos.
Permite la especificación de restricciones PRIMARY
KEY,
UNIQUE y
claves extranjeras (foreign keys)
temporales sin superposición (Paul A. Jungwirth)
§
§
Esto se especifica con WITHOUT OVERLAPS para
PRIMARY KEY and UNIQUE, y con
PERIOD para claves extranjeras, todos aplicados a la última
columna especificada.
Permite que las restricciones CHECK
y de clave
extranjera se especifiquen como NOT
ENFORCED (Amul Sul)
§
§
Esto también añade la columna pg_constraint.conenforced.
Requiere que las relaciones de clave primaria/extranjera utilicen ordenaciones deterministas o las mismas ordenaciones no deterministas (Peter Eisentraut) §
La restauración de un pg_dump, también utilizado por pg_upgrade, fallará si no se cumplen estos requisitos; se deben realizar cambios en el esquema para que estos métodos de actualización tengan éxito.
Almacena las especificaciones NOT
NULL de las columnas en pg_constraint
(Álvaro Herrera, Bernd Helmle)
§
§
Esto permite especificar nombres para la restricción NOT NULL.
También añade restricciones NOT NULL a tablas extranjeras
y control de herencia de NOT NULL a tablas locales.
Permite a ALTER TABLE establecer el atributo NOT
VALID de las restricciones NOT NULL
(Rushabh Lathia, Jian He)
§
Permite modificar la heredabilidad de las restricciones NOT
NULL (Suraj Kharage, Álvaro Herrera)
§
§
La sintaxis es ALTER TABLE
... ALTER CONSTRAINT ... [NO] INHERIT.
Permite restricciones de clave extranjera NOT VALID en
tablas particionadas (Amul Sul)
§
Permite eliminar
restricciones usando ONLY en tablas particionadas
(Álvaro Herrera)
§
Esto estaba anteriormente prohibido por error.
Añade REJECT_LIMIT para controlar el número de filas inválidas
que COPY FROM puede ignorar (Atsushi Torikoshi)
§
Esto está disponible cuando ON_ERROR = 'ignore'.
Permite a COPY TO copiar filas de vistas
materializadas pobladas (Jian He)
§
Añade el nivel silent para COPY LOG_VERBOSITY
para suprimir la salida del registro de las filas ignoradas
(Atsushi Torikoshi)
§
Este nuevo nivel suprime la salida para las filas de entrada descartadas cuando
on_error = 'ignore'.
Desautoriza COPY FREEZE en tablas extranjeras (Nathan
Bossart)
§
Anteriormente, el COPY funcionaba pero el
FREEZE se ignoraba, por lo que se desautoriza este comando.
Incluye automáticamente la salida de BUFFERS en
EXPLAIN ANALYZE (Guillaume Lelarge, David Rowley)
§
Añade el conteo de búferes de WAL llenos a la salida de EXPLAIN
(WAL) (Bertrand Drouvot)
§
En EXPLAIN ANALYZE, reporta el número de búsquedas
de índice utilizadas por cada nodo de escaneo de índice (Peter Geoghegan)
§
Modifica EXPLAIN para mostrar conteos de filas fraccionarios
(Ibrar Ahmed, Ilia Evdokimov, Robert Haas)
§
§
Añade detalles de uso de memoria y disco para los nodos Material,
Window Aggregate y expresiones de tabla comunes (CTE)
a la salida de EXPLAIN (David Rowley, Tatsuo Ishii)
§
§
§
§
Añade detalles sobre los argumentos de las funciones de ventana a la
salida de EXPLAIN (Tom Lane)
§
Añade estadísticas de la caché del trabajador de Parallel Bitmap Heap Scan
a EXPLAIN ANALYZE (David Geier, Heikki Linnakangas, Donghang Lin,
Alena Rybakina, David Rowley)
§
Indica los nodos desactivados en la salida de EXPLAIN ANALYZE
(Robert Haas, David Rowley, Laurenz Albe)
§
§
§
Mejora el mapeo y la conversión completa de mayúsculas y minúsculas de Unicode (Jeff Davis) § §
Esto añade la capacidad de realizar mapeos condicionales y de tipo título (title case), así como mapear caracteres individuales a múltiples caracteres.
Permite que los valores null de jsonb
se conviertan (cast) a tipos escalares como NULL (Tom Lane)
§
Anteriormente, estas conversiones generaban un error.
Añade un parámetro opcional a json{b}_strip_nulls
para permitir la eliminación de elementos null en los arreglos (Florents Tselai)
§
Añade la función array_sort()
que ordena la primera dimensión de un arreglo (Junwang Zhao, Jian He)
§
Añade la función array_reverse()
que invierte la primera dimensión de un arreglo (Aleksander Alekseev)
§
Añade la función reverse()
para invertir bytes de bytea (Aleksander Alekseev)
§
Permite la conversión (cast) entre tipos enteros y bytea (Aleksander
Alekseev)
§
Los valores enteros se almacenan como valores en complemento a dos en bytea.
Actualiza los datos de Unicode a Unicode 16.0.0 (Peter Eisentraut) §
Añade derivación morfológica (stemming) de Snowball para búsquedas de texto completo en estonio (Tom Lane) §
Mejora los códigos de error de XML
para que coincidan más estrechamente con el estándar SQL
(Tom Lane)
§
Estos errores se reportan a través de SQLSTATE.
Añade la función casefold()
para permitir coincidencias insensibles a mayúsculas y minúsculas (case-insensitive) más sofisticadas (Jeff Davis)
§
Esto permite comparaciones más precisas, es decir, un carácter puede tener múltiples equivalentes en mayúsculas o minúsculas, o la conversión a mayúsculas o minúsculas cambia el número de caracteres.
Permite agregados MIN()/MAX()
en arreglos y tipos compuestos (Aleksander Alekseev,
Marat Buharov)
§
§
Mejora la salida de EXTRACT(QUARTER ...) para
valores negativos (Tom Lane)
§
Añade soporte para números romanos en to_number()
(Hunaid Sohail)
§
Se accede a esto a través del patrón RN.
Añade la función de generación de UUID
versión 7 uuidv7()
(Andrey Borodin)
§
Este valor de UUID es ordenable temporalmente. Se ha añadido la
función alternativa uuidv4()
para generar explícitamente UUIDs de versión 4.
Añade las funciones crc32()
y crc32c()
para calcular valores CRC (Aleksander Alekseev)
§
Añade las funciones matemáticas gamma()
y lgamma()
(Dean Rasheed)
§
Permite la sintaxis => para argumentos de cursor con nombre en
PL/pgSQL (Pavel Stehule)
§
Anteriormente, solo se aceptaba :=.
Permite que las funciones regexp_match[es]()/regexp_like()/regexp_replace()/regexp_count()/regexp_instr()/regexp_substr()/regexp_split_to_table()/regexp_split_to_array()
utilicen argumentos con nombre (Jian He)
§
Añade la función PQfullProtocolVersion()
para informar el número completo de versión del protocolo, incluyendo la versión menor
(Jacob Champion, Jelte Fennema-Nio)
§
Añade parámetros de conexión de libpq y variables de entorno para especificar la versión del protocolo mínima y máxima aceptable para las conexiones (Jelte Fennema-Nio) § §
Informa sobre los cambios de search_path al cliente (Alexander Kukushkin, Jelte Fennema-Nio, Tomas Vondra) § §
Añade la salida de PQtrace()
para todos los tipos de mensajes, incluyendo la autenticación (Jelte Fennema-Nio)
§
§
§
§
§
Añade el parámetro de conexión de libpq sslkeylogfile
que vuelca el material de clave SSL (Abhishek Chanda,
Daniel Gustafsson)
§
Esto es útil para la depuración.
Modifica algunas firmas de funciones de libpq para utilizar
int64_t (Thomas Munro)
§
Anteriormente utilizaban pg_int64, que ahora está
desaconsejado.
Permite a psql analizar (parse), asociar (bind) y cerrar sentencias preparadas con nombre (Anthonin Bonnefoy, Michael Paquier) § §
Esto se logra con los nuevos comandos \parse,
\bind_named
y \close_prepared.
Añade comandos de barra invertida (backslash) en psql para permitir el envío de consultas en canalización (pipeline) (Anthonin Bonnefoy) § § §
Los nuevos comandos son \startpipeline,
\syncpipeline, \sendpipeline,
\endpipeline, \flushrequest,
\flush y \getresults.
Permite añadir el estado de la canalización (pipeline) al prompt de psql y añade variables de estado relacionadas (Anthonin Bonnefoy) §
El nuevo carácter del prompt es %P y
las nuevas variables de psql son PIPELINE_SYNC_COUNT,
PIPELINE_COMMAND_COUNT
y PIPELINE_RESULT_COUNT.
Permite añadir el nombre de servicio de la conexión al prompt de psql o acceder a él a través de una variable de psql (Michael Banck) §
Añade una opción en psql para utilizar el modo expandido en todos los comandos de lista (Dean Rasheed) §
Añadir el sufijo de barra invertida x habilita esto.
Cambia \conninfo de psql
para utilizar un formato tabular e incluir más información (Álvaro Herrera, Maiquel Grassi,
Hunaid Sohail)
§
Añade el indicador de protección contra filtraciones (leakproof) de la función
a las salidas de \df+,
\do+, \dAo+ y
\dC+ de psql (Yugo Nagata)
§
Añade detalles del método de acceso para relaciones particionadas en \dP+
(Justin Pryzby)
§
Añade default_version
a la salida de extensiones de \dx
en psql (Magnus Hagander)
§
Añade la variable de psql WATCH_INTERVAL para establecer el tiempo de espera por defecto de
\watch
(Daniel Gustafsson)
§
Cambia initdb para habilitar las sumas de comprobación (checksums) por defecto (Greg Sabino Mullane) § §
La nueva opción de initdb
--no-data-checksums desactiva las sumas de comprobación.
Añade la opción de initdb
--no-sync-data-files para evitar la sincronización de archivos de montículo/índice
(heap/index) (Nathan Bossart)
§
La opción de initdb --no-sync
sigue estando disponible para evitar la sincronización de cualquier archivo.
Añade la opción de vacuumdb
--missing-stats-only para calcular solo las estadísticas
faltantes del optimizador (Corey Huinker, Nathan Bossart)
§
§
Esta opción solo la pueden ejecutar los superusuarios y solo
se puede usar con las opciones --analyze-only y
--analyze-in-stages.
Añade la opción de pg_combinebackup
-k/--link para habilitar enlaces duros (hard linking)
(Israel Barth Rubio, Robert Haas)
§
Solo algunos archivos se pueden enlazar de forma dura. Esto no debe usarse si los respaldos se utilizarán de manera independiente.
Permite a pg_verifybackup verificar respaldos en formato tar (Amul Sul) §
Si la opción --source-server de pg_rewind
especifica un nombre de base de datos, lo utiliza en la salida de
--write-recovery-conf (Masahiko Sawada)
§
Añade la opción de pg_resetwal
--char-signedness para cambiar el signo por defecto de
char (Masahiko Sawada)
§
Añade la opción --sequence-data a pg_dump y pg_dumpall para volcar los datos de secuencias que normalmente se excluirían (Nathan Bossart)
§
§
Añade las opciones --statistics-only, --no-statistics,
--no-data y --no-schema a pg_dump, pg_dumpall
y pg_restore
(Corey Huinker, Jeff Davis)
§
Añade la opción --no-policies para desactivar el procesamiento de
políticas de seguridad a nivel de fila (row level security) en pg_dump,
pg_dumpall y pg_restore
(Nikolay Samokhvalov)
§
Esto es útil para migrar a sistemas con políticas diferentes.
Permite a pg_upgrade preservar las estadísticas del optimizador (Corey Huinker, Jeff Davis, Nathan Bossart) § § § §
Las estadísticas extendidas no se preservan. También añade la opción
--no-statistics a pg_upgrade para desactivar la preservación de estadísticas.
Añade la opción de pg_upgrade --swap para
intercambiar (swap) directorios en lugar de copiar, clonar o enlazar archivos (Nathan Bossart)
§
Este modo es potencialmente el más rápido.
Añade la opción de pg_upgrade --set-char-signedness
para configurar el signo por defecto de char del nuevo clúster (Masahiko Sawada)
§
§
Esto permite manejar los casos en que el signo de la CPU por defecto de un clúster anterior a PostgreSQL 18 no coincide con el del nuevo clúster.
Añade la opción --all a pg_createsubscriber
para crear réplicas lógicas para todas las bases de datos (Shubham Khanna)
§
Añade la opción --clean a pg_createsubscriber
para eliminar publicaciones (Shubham Khanna)
§
§
Añade la opción --enable-two-phase a pg_createsubscriber
para habilitar transacciones preparadas (Shubham Khanna)
§
Añade la opción --enable-failover a pg_recvlogical
para especificar slots de failover (Hayato Kuroda)
§
También añade la opción --enable-two-phase como un sinónimo
de --two-phase y desaconseja esta última.
Permite que --drop-slot de pg_recvlogical
funcione sin --dbname (Hayato Kuroda)
§
Separa la carga y la ejecución de los puntos de inyección (injection points) (Michael Paquier, Heikki Linnakangas) § §
Los puntos de inyección ahora se pueden crear, pero no ejecutar, a través de INJECTION_POINT_LOAD(),
y dichos puntos de inyección se pueden ejecutar a través de INJECTION_POINT_CACHED().
Soporta argumentos en tiempo de ejecución en los puntos de inyección (Michael Paquier) §
Permite código de prueba de puntos de inyección en línea con IS_INJECTION_POINT_ATTACHED()
(Heikki Linnakangas)
§
Mejora el rendimiento del procesamiento de cadenas JSON largas mediante el uso de
SIMD (Single Instruction Multiple Data) (David
Rowley)
§
Acelera los cálculos de CRC32C utilizando instrucciones AVX-512 de x86 (Raghuveer Devulapalli, Paul Amonson) §
Añade intrínsecas de CPU ARM Neon y SVE para popcount (conteo de bits enteros) (Chiranmoy Bhattacharya, Devanga Susmitha, Rama Malladi) § §
Mejora la velocidad de la multiplicación y división numérica (Joel Jacobson, Dean Rasheed) § § § §
Añade la opción de configure --with-libnuma
para habilitar la compatibilidad con NUMA (Jakub Wartak, Bertrand
Drouvot)
§
§
§
La función pg_numa_available()
informa sobre la compatibilidad con NUMA, y las vistas del sistema pg_shmem_allocations_numa
y pg_buffercache_numa
informan sobre la distribución de memoria compartida en los nodos
NUMA.
Añade la tabla TOAST a pg_index
para permitir índices de expresiones muy grandes (Nathan Bossart)
§
Elimina la columna pg_attribute.attcacheoff
(David Rowley)
§
Añade amgettreeheight,
amconsistentequality y
amconsistentordering al access method
API de índices (Mark Dilger)
§
§
Add GiST support function stratnum()
(Paul A. Jungwirth)
§
Record the default CPU signedness of
char in pg_controldata
(Masahiko Sawada)
§
Añade soporte para la "Limited API" de Python en PL/Python (Peter Eisentraut) § §
Esto ayuda a prevenir problemas causados por discrepancias de versión de Python 3.x.
Cambia la versión mínima de Python soportada a la 3.6.8 (Jacob Champion) §
Elimina la compatibilidad con versiones de OpenSSL anteriores a la 1.1.1 (Daniel Gustafsson) § §
Si LLVM está habilitado, requiere la versión 14 o posterior (Thomas Munro) §
Añade la macro PG_MODULE_MAGIC_EXT
para permitir que las extensiones reporten su nombre y versión (Andrei Lepikhov)
§
Esta información se puede acceder a través de la nueva función pg_get_loaded_modules().
Documenta que SPI_connect()/SPI_connect_ext()
siempre devuelve éxito (SPI_OK_CONNECT) (Stepan
Neretin)
§
Los errores siempre se reportan a través de ereport().
Añade una sección de documentación sobre la compatibilidad de API y ABI (David Wheeler, Peter Eisentraut) §
Elimina la designación experimental de las compilaciones de Meson en Windows (Aleksander Alekseev) §
Elimina las opciones de configure --disable-spinlocks y
--disable-atomics (Thomas Munro)
§
§
Ahora se requieren operaciones atómicas de 32 bits.
Elimina el soporte para la arquitectura HPPA/PA-RISC (Tom Lane) §
Añade la extensión pg_logicalinspect para inspeccionar instantáneas lógicas (logical snapshots) (Bertrand Drouvot) §
Añade la extensión pg_overexplain que agrega detalles de depuración
a la salida de EXPLAIN
(Robert Haas)
§
Añade columnas de salida a postgres_fdw_get_connections()
(Hayato Kuroda, Sagar Dilip Shedge)
§
§
§
§
La nueva columna de salida used_in_xact indica
si el conector de datos extranjeros (foreign data wrapper) está siendo utilizado por una transacción actual,
closed indica si está cerrado,
user_name indica el nombre de usuario y
remote_backend_pid indica el identificador de proceso
del backend remoto.
Permite que la autenticación SCRAM del cliente se pase a los servidores de postgres_fdw (Matheus Alcantara, Peter Eisentraut) §
Esto evita almacenar información de autenticación de postgres_fdw
en la base de datos, y se habilita con la opción de conexión de
postgres_fdw use_scram_passthrough.
libpq utiliza los nuevos parámetros de conexión scram_client_key
y scram_server_key.
Permite que la autenticación SCRAM del cliente se pase a los servidores de dblink (Matheus Alcantara) §
Añade las opciones on_error y log_verbosity
a file_fdw (Atsushi Torikoshi)
§
Estas controlan cómo maneja e informa file_fdw sobre las filas de archivos inválidas.
Añade reject_limit para controlar el número de
filas inválidas que file_fdw puede ignorar (Atsushi
Torikoshi)
§
Esto está activo cuando ON_ERROR = 'ignore'.
Añade la variable configurable min_password_length a
passwordcheck (Emanuele Musella, Maurizio Boriani)
§
Esto controla la longitud mínima de la contraseña.
Hace que pgbench informe sobre el número de transacciones fallidas, reintentadas u omitidas en los reportes por script (Yugo Nagata) §
Añade la variable de servidor de isn weak
para controlar la aceptación de dígitos de control inválidos (Viktor Holmberg)
§
Esto antes estaba controlado únicamente por la función isn_weak().
Permite ordenar valores para acelerar las construcciones de índices btree_gist (Bernd Helmle, Andrey Borodin) §
Añade la función de comprobación de amcheck gin_index_check()
para verificar índices GIN (Grigory Kryachko, Heikki
Linnakangas, Andrey Borodin)
§
Añade las funciones pg_buffercache_evict_relation()
y pg_buffercache_evict_all()
para desalojar los buffers compartidos no fijados (unpinned shared buffers) (Nazir Bilal Yavuz)
§
La función existente pg_buffercache_evict()
ahora devuelve el estado de vaciado del buffer (buffer flush status).
Permite que las extensiones instalen opciones personalizadas de EXPLAIN (Robert Haas, Sami Imseih) § § §
Permite que las extensiones utilicen la API de estadísticas acumulativas del servidor (Michael Paquier) § §
Permite que las consultas de CREATE TABLE AS y DECLARE sean rastreadas por pg_stat_statements (Anthonin Bonnefoy) §
Ahora también se les asignan identificadores de consulta (query IDs).
Permite parametrizar los valores de SET en pg_stat_statements (Greg Sabino Mullane, Michael Paquier) §
Esto reduce la sobrecarga (bloat) causada por las sentencias SET
con constantes diferentes.
Añade columnas a pg_stat_statements
para reportar la actividad paralela (Guillaume Lelarge)
§
Las nuevas columnas son
parallel_workers_to_launch y
parallel_workers_launched.
Añade
pg_stat_statements.wal_buffers_full
para reportar buffers de WAL llenos (Bertrand Drouvot)
§
Añade los algoritmos de pgcrypto sha256crypt
y sha512crypt
(Bernd Helmle)
§
Añade el modo CFB a la encriptación y desencriptación de pgcrypto (Umar Hayat) §
Añade la función fips_mode()
para reportar el modo FIPS del servidor (Daniel
Gustafsson)
§
Añade la variable de servidor de pgcrypto builtin_crypto_enabled
para permitir desactivar las funciones criptográficas incorporadas que no son del modo FIPS (Daniel Gustafsson, Joe Conway)
§
Esto es útil para garantizar el comportamiento del modo FIPS.
Las siguientes personas (en orden alfabético) han contribuido a esta versión como autores de parches, committers, revisores, probadores o notificadores de fallos.
| Abhishek Chanda |
| Adam Guo |
| Adam Rauch |
| Aidar Imamov |
| Ajin Cherian |
| Alastair Turner |
| Alec Cozens |
| Aleksander Alekseev |
| Alena Rybakina |
| Alex Friedman |
| Alex Richman |
| Alexander Alehin |
| Alexander Borisov |
| Alexander Korotkov |
| Alexander Kozhemyakin |
| Alexander Kukushkin |
| Alexander Kuzmenkov |
| Alexander Kuznetsov |
| Alexander Lakhin |
| Alexander Pyhalov |
| Alexandra Wang |
| Alexey Dvoichenkov |
| Alexey Makhmutov |
| Alexey Shishkin |
| Ali Akbar |
| Álvaro Herrera |
| Álvaro Mongil |
| Amit Kapila |
| Amit Langote |
| Amul Sul |
| Andreas Karlsson |
| Andreas Scherbaum |
| Andreas Ulbrich |
| Andrei Lepikhov |
| Andres Freund |
| Andrew |
| Andrew Bille |
| Andrew Dunstan |
| Andrew Jackson |
| Andrew Kane |
| Andrew Watkins |
| Andrey Borodin |
| Andrey Chudnovsky |
| Andrey Rachitskiy |
| Andrey Rudometov |
| Andy Alsup |
| Andy Fan |
| Anthonin Bonnefoy |
| Anthony Hsu |
| Anthony Leung |
| Anton Melnikov |
| Anton Voloshin |
| Antonin Houska |
| Antti Lampinen |
| Arseniy Mukhin |
| Artur Zakirov |
| Arun Thirupathi |
| Ashutosh Bapat |
| Asphator |
| Atsushi Torikoshi |
| Avi Weinberg |
| Aya Iwata |
| Ayush Tiwari |
| Ayush Vatsa |
| Bastien Roucariès |
| Ben Peachey Higdon |
| Benoit Lobréau |
| Bernd Helmle |
| Bernd Reiß |
| Bernhard Wiedemann |
| Bertrand Drouvot |
| Bertrand Mamasam |
| Bharath Rupireddy |
| Bogdan Grigorenko |
| Boyu Yang |
| Braulio Fdo Gonzalez |
| Bruce Momjian |
| Bykov Ivan |
| Cameron Vogt |
| Cary Huang |
| Cédric Villemain |
| Cees van Zeeland |
| ChangAo Chen |
| Chao Li |
| Chapman Flack |
| Charles Samborski |
| Chengwen Wu |
| Chengxi Sun |
| Chiranmoy Bhattacharya |
| Chris Gooch |
| Christian Charukiewicz |
| Christoph Berg |
| Christophe Courtois |
| Christopher Inokuchi |
| Clemens Ruck |
| Corey Huinker |
| Craig Milhiser |
| Crisp Lee |
| Dagfinn Ilmari Mannsåker |
| Daniel Elishakov |
| Daniel Gustafsson |
| Daniel Vérité |
| Daniel Westermann |
| Daniele Varrazzo |
| Daniil Davydov |
| Daria Shanina |
| Dave Cramer |
| Dave Page |
| David Benjamin |
| David Christensen |
| David Fiedler |
| David G. Johnston |
| David Geier |
| David Rowley |
| David Steele |
| David Wheeler |
| David Zhang |
| Davinder Singh |
| Dean Rasheed |
| Devanga Susmitha |
| Devrim Gündüz |
| Dian Fay |
| Dilip Kumar |
| Dimitrios Apostolou |
| Dipesh Dhameliya |
| Dmitrii Bondar |
| Dmitry Dolgov |
| Dmitry Koval |
| Dmitry Kovalenko |
| Dmitry Yurichev |
| Dominique Devienne |
| Donghang Lin |
| Dorjpalam Batbaatar |
| Drew Callahan |
| Duncan Sands |
| Dwayne Towell |
| Dzmitry Jachnik |
| Egor Chindyaskin |
| Egor Rogov |
| Emanuel Ionescu |
| Emanuele Musella |
| Emre Hasegeli |
| Eric Cyr |
| Erica Zhang |
| Erik Nordström |
| Erik Rijkers |
| Erik Wienhold |
| Erki Eessaar |
| Ethan Mertz |
| Etienne LAFARGE |
| Etsuro Fujita |
| Euler Taveira |
| Evan Si |
| Evgeniy Gorbanev |
| Fabio R. Sluzala |
| Fabrízio de Royes Mello |
| Feike Steenbergen |
| Feliphe Pozzer |
| Felix |
| Fire Emerald |
| Florents Tselai |
| Francesco Degrassi |
| Frank Streitzig |
| Frédéric Yhuel |
| Fredrik Widlert |
| Gabriele Bartolini |
| Gavin Panella |
| Geoff Winkless |
| George MacKerron |
| Gilles Darold |
| Grant Gryczan |
| Greg Burd |
| Greg Sabino Mullane |
| Greg Stark |
| Grigory Kryachko |
| Guillaume Lelarge |
| Gunnar Morling |
| Gunnar Wagner |
| Gurjeet Singh |
| Haifang Wang |
| Hajime Matsunaga |
| Hamid Akhtar |
| Hannu Krosing |
| Hari Krishna Sunder |
| Haruka Takatsuka |
| Hayato Kuroda |
| Heikki Linnakangas |
| Hironobu Suzuki |
| Holger Jakobs |
| Hubert Lubaczewski |
| Hugo Dubois |
| Hugo Zhang |
| Hunaid Sohail |
| Hywel Carver |
| Ian Barwick |
| Ibrar Ahmed |
| Igor Gnatyuk |
| Igor Korot |
| Ilia Evdokimov |
| Ilya Gladyshev |
| Ilyasov Ian |
| Imran Zaheer |
| Isaac Morland |
| Israel Barth Rubio |
| Ivan Kush |
| Jacob Brazeal |
| Jacob Champion |
| Jaime Casanova |
| Jakob Egger |
| Jakub Wartak |
| James Coleman |
| James Hunter |
| Jan Behrens |
| Japin Li |
| Jason Smith |
| Jayesh Dehankar |
| Jeevan Chalke |
| Jeff Davis |
| Jehan-Guillaume de Rorthais |
| Jelte Fennema-Nio |
| Jian He |
| Jianghua Yang |
| Jiao Shuntian |
| Jim Jones |
| Jim Nasby |
| Jingtang Zhang |
| Jingzhou Fu |
| Joe Conway |
| Joel Jacobson |
| John Hutchins |
| John Naylor |
| Jonathan Katz |
| Jorge Solórzano |
| José Villanova |
| Josef Šimánek |
| Joseph Koshakow |
| Julien Rouhaud |
| Junwang Zhao |
| Justin Pryzby |
| Kaido Vaikla |
| Kaimeh |
| Karina Litskevich |
| Karthik S |
| Kartyshov Ivan |
| Kashif Zeeshan |
| Keisuke Kuroda |
| Kevin Hale Boyes |
| Kevin K Biju |
| Kirill Reshke |
| Kirill Zdornyy |
| Koen De Groote |
| Koichi Suzuki |
| Koki Nakamura |
| Konstantin Knizhnik |
| Kouhei Sutou |
| Kuntal Ghosh |
| Kyotaro Horiguchi |
| Lakshmi Narayana Velayudam |
| Lars Kanis |
| Laurence Parry |
| Laurenz Albe |
| Lele Gaifax |
| Li Yong |
| Lilian Ontowhee |
| Lingbin Meng |
| Luboslav Špilák |
| Luca Vallisa |
| Lukas Fittl |
| Maciek Sakrejda |
| Magnus Hagander |
| Mahendra Singh Thalor |
| Mahendrakar Srinivasarao |
| Maiquel Grassi |
| Maksim Korotkov |
| Maksim Melnikov |
| Man Zeng |
| Marat Buharov |
| Marc Balmer |
| Marco Nenciarini |
| Marcos Pegoraro |
| Marina Polyakova |
| Mark Callaghan |
| Mark Dilger |
| Marlene Brandstaetter |
| Marlene Reiterer |
| Martin Rakhmanov |
| Masahiko Sawada |
| Masahiro Ikeda |
| Masao Fujii |
| Mason Mackaman |
| Mat Arye |
| Matheus Alcantara |
| Mats Kindahl |
| Matthew Gabeler-Lee |
| Matthew Kim |
| Matthew Sterrett |
| Matthew Woodcraft |
| Matthias van de Meent |
| Matthieu Denais |
| Maurizio Boriani |
| Max Johnson |
| Max Madden |
| Maxim Boguk |
| Maxim Orlov |
| Maximilian Chrzan |
| Melanie Plageman |
| Melih Mutlu |
| Mert Alev |
| Michael Banck |
| Michael Bondarenko |
| Michael Christofides |
| Michael Guissine |
| Michael Harris |
| Michaël Paquier |
| Michail Nikolaev |
| Michal Kleczek |
| Michel Pelletier |
| Mikaël Gourlaouen |
| Mikhail Gribkov |
| Mikhail Kot |
| Milosz Chmura |
| Muralikrishna Bandaru |
| Murat Efendioglu |
| Mutaamba Maasha |
| Naeem Akhter |
| Nat Makarevitch |
| Nathan Bossart |
| Navneet Kumar |
| Nazir Bilal Yavuz |
| Neil Conway |
| Niccolò Fei |
| Nick Davies |
| Nicolas Maus |
| Niek Brasa |
| Nikhil Raj |
| Nikita |
| Nikita Kalinin |
| Nikita Malakhov |
| Nikolay Samokhvalov |
| Nikolay Shaplov |
| Nisha Moond |
| Nitin Jadhav |
| Nitin Motiani |
| Noah Misch |
| Noboru Saito |
| Noriyoshi Shinoda |
| Ole Peder Brandtzæg |
| Oleg Sibiryakov |
| Oleg Tselebrovskiy |
| Olleg Samoylov |
| Onder Kalaci |
| Ondrej Navratil |
| Patrick Stählin |
| Paul Amonson |
| Paul Jungwirth |
| Paul Ramsey |
| Pavel Borisov |
| Pavel Luzanov |
| Pavel Nekrasov |
| Pavel Stehule |
| Peter Eisentraut |
| Peter Geoghegan |
| Peter Mittere |
| Peter Smith |
| Phil Eaton |
| Philipp Salvisberg |
| Philippe Beaudoin |
| Pierre Giraud |
| Pixian Shi |
| Polina Bungina |
| Przemyslaw Sztoch |
| Quynh Tran |
| Rafia Sabih |
| Raghuveer Devulapalli |
| Rahila Syed |
| Rama Malladi |
| Ran Benita |
| Ranier Vilela |
| Renan Alves Fonseca |
| Richard Guo |
| Richard Neill |
| Rintaro Ikeda |
| Robert Haas |
| Robert Treat |
| Robins Tharakan |
| Roman Zharkov |
| Ronald Cruz |
| Ronan Dunklau |
| Rui Zhao |
| Rushabh Lathia |
| Rustam Allakov |
| Ryo Kanbayashi |
| Ryohei Takahashi |
| RyotaK |
| Sagar Dilip Shedge |
| Salvatore Dipietro |
| Sam Gabrielsson |
| Sam James |
| Sameer Kumar |
| Sami Imseih |
| Samuel Thibault |
| Satyanarayana Narlapuram |
| Sebastian Skalacki |
| Senglee Choi |
| Sergei Kornilov |
| Sergey Belyashov |
| Sergey Dudoladov |
| Sergey Prokhorenko |
| Sergey Sargsyan |
| Sergey Soloviev |
| Sergey Tatarintsev |
| Shaik Mohammad Mujeeb |
| Shawn McCoy |
| Shenhao Wang |
| Shihao Zhong |
| Shinya Kato |
| Shlok Kyal |
| Shubham Khanna |
| Shveta Malik |
| Simon Riggs |
| Smolkin Grigory |
| Sofia Kopikova |
| Song Hongyu |
| Song Jinzhou |
| Soumyadeep Chakraborty |
| Sravan Kumar |
| Srinath Reddy |
| Stan Hu |
| Stepan Neretin |
| Stephen Fewer |
| Stephen Frost |
| Steve Chavez |
| Steven Niu |
| Suraj Kharage |
| Sven Klemm |
| Takamichi Osumi |
| Takeshi Ideriha |
| Tatsuo Ishii |
| Ted Yu |
| Tels |
| Tender Wang |
| Teodor Sigaev |
| Thom Brown |
| Thomas Baehler |
| Thomas Krennwallner |
| Thomas Munro |
| Tim Wood |
| Timur Magomedov |
| Tobias Wendorff |
| Todd Cook |
| Tofig Aliev |
| Tom Lane |
| Tomas Vondra |
| Tomasz Rybak |
| Tomasz Szypowski |
| Torsten Foertsch |
| Toshi Harada |
| Tristan Partin |
| Triveni N |
| Umar Hayat |
| Vallimaharajan G |
| Vasya Boytsov |
| Victor Yegorov |
| Vignesh C |
| Viktor Holmberg |
| Vinícius Abrahão |
| Vinod Sridharan |
| Virender Singla |
| Vitaly Davydov |
| Vladlen Popolitov |
| Vladyslav Nebozhyn |
| Walid Ibrahim |
| Webbo Han |
| Wenhui Qiu |
| Will Mortensen |
| Will Storey |
| Wolfgang Walther |
| Xin Zhang |
| Xing Guo |
| Xuneng Zhou |
| Yan Chengpen |
| Yang Lei |
| Yaroslav Saburov |
| Yaroslav Syrytsia |
| Yasir Hussain |
| Yasuo Honda |
| Yogesh Sharma |
| Yonghao Lee |
| Yoran Heling |
| Yu Liang |
| Yugo Nagata |
| Yuhang Qiu |
| Yuki Seino |
| Yura Sokolov |
| Yurii Rashkovskii |
| Yushi Ogiwara |
| Yusuke Sugie |
| Yuta Katsuragi |
| Yuto Sasaki |
| Yuuki Fujii |
| Yuya Watari |
| Zane Duffield |
| Zeyuan Hu |
| Zhang Mingli |
| Zhihong Yu |
| Zhijie Hou |
| Zsolt Parragi |