La pasión de 2ndQuadrant por PostgreSQL
2ndQuadrant fue fundada en el año 2001 por Simon Riggs, uno de los principales desarrolladores y colaboradores del proyecto PostgreSQL. La visión era crear un emprendimiento que permitiera satisfacer las necesidades de las empresas, en cuanto a bases de datos, y las contribuciones de código abierto a PostgreSQL. Basándose en esa visión, durante los últimos 15 años, 2ndQuadrant ha contribuido enormemente al crecimiento y desarrollo de PostgreSQL. Esto nos ha hecho ganar el prestigioso reconocimiento como principales patrocinadores de la comunidad.
Desde entonces, el equipo de 2ndQuadrant ha crecido hasta reunir en una sola organización al mayor grupo de expertos en PostgreSQL. Nuestros ingenieros y desarrolladores son reconocidos mundialmente por su experiencia en productos y servicios PostgreSQL. Estamos bien representados en la comunidad y muchos de nuestros expertos son importantes contribuyentes y comprometidos con el proyecto PostgreSQL. Colectivamente, contamos con más de 500 años-persona de experiencia en PostgreSQL.
A continuación se presenta un resumen de nuestras contribuciones de código abierto a PostgreSQL en los últimos años.

PostgreSQL 13 (lanzado en septiembre de 2020)
- Implementa el ordenamiento incremental – James Coleman / Alexander Korotkov / Tomas Vondra
- Añade la vista de sistema pg_stat_progress_analyze para mostrar el progreso de ANALYZE – Álvaro Herrera / Tatsuro Yamada / Vinayak Pokale
- Permite el uso de joins por particiones en un mayor número de casos– Ashutosh Bapat / Etsuro Fujita, Amit Langote / Tom Lane
- Permite triggers a nivel de fila de tipo BEFORE en tablas particionadas – Álvaro Herrera
- Permite el uso de múltiples objetos de estadísticas extendidas en una sola consulta – Tomas Vondra
- Permitir el uso de objetos de estadísticas extendidas para las cláusulas OR y las listas de constantes IN y ANY – Pierre Ducroquet / Tomas Vondra
- Permite definir los valores de estadísticas para las estadísticas extendidas – Tomas Vondra
- Mejora el control del registro de parámetros de sentencias preparadas – Alexey Bashtanov / Álvaro Herrera
- Mejora los casos en los que se pueden excluir particiones – Yuzuko Hosoya / Amit Langote / Álvaro Herrera
- Añade las funciones SQL NORMALIZE() para normalizar las cadenas Unicode, e IS NORMALIZED para comprobar la normalización – Peter Eisentraut
- Añade una versión alternativa de jsonb_setI() con una gestión especial de NULL – Andrew Dunstan
- Añade la función gen_random_uuid() para generar UUID versión 4 – Peter Eisentraut
- Genera un mensaje de error si la recuperación no alcanza el destino de recuperación especificado – Leif Gunnar Erlandsen / Peter Eisentraut
- Añade columnas a la vista de sistema pg_stat_replication para mostrar la cantidad de información de decodificación lógica que ha sido guardada en el disco – Tomas Vondra
- Crea la vista de sistema pg_stat_slru para monitorear los caches SLRU internos – Tomas Vondra
- Añade los eventos de espera RecoveryConflictSnapshot y RecoveryConflictTablespace para monitorear los conflictos de recuperación – Masahiko Sawada
- Permite que los comandos vacuum ejecutados por vacuumdb funcionen en modo paralelo – Masahiko Sawada
- Añade la opción CREATE DATABASE LOCALE – Peter Eisentraut
- Añade la cláusula DROP EXPRESSION de ALTER TABLE para eliminar las propiedades generadas en las columnas – Peter Eisentraut
- Permite certificados de cliente cifrados en DER – Craig Ringer / Andrew Dunstan
- Permite a postgres_fdw utilizar la autenticación de certificado – Craig Ringer
- Permite registrar las lista de errores de las llamadas a funciones – Peter Eisentraut / Álvaro Herrera
- Añade un glosario a la documentación – Corey Huinker / Jürgen Purtz / Roger Harkavy / Álvaro Herrera
- Añade las funciones pageinspect a la salida de los valores t_infomask/t_infomask2 en un formato legible – Craig Ringer / Masahiko Sawada / Michael Paquier
- Permite el control de la cantidad de memoria utilizada por la decodificación lógica antes de que se escriba en el disco – Tomas Vondra / Dilip Kumar / Amit Kapila
- Permite establecer contraseñas para desbloquear los certificados de cliente – Craig Ringer / Andrew Dunstan
- Añade la página web de PostgreSQL a los resultados de –help en la línea de órdenes – Peter Eisentraut
- Añade la posibilidad de eliminar la dependencia de un objeto de una extensión – Álvaro Herrera
- Añade el tipo de backend a csvlog y opcionalmente la salida de log_line_prefix – Peter Eisentraut
- Habilita el soporte de los sockets del dominio Unix en Windows – Peter Eisentraut
- Cambia la versión mínima de TLS predefinida de 1.0 a 1.2 – Peter Eisentraut
- Permite que allow_system_table_mods sea modificado tras el inicio del servidor – Peter Eisentraut
- Impide a los no superusuarios modificar las tablas de sistema cuando esté definido allow_system_table_mods – Peter Eisentraut
- Permitir que los receptores WAL usen un espacio de replicación temporal si no ha sido especificado uno permanente – Peter Eisentraut / Sergei Kornilov
- Añade opciones ALTER TYPE útiles para las extensiones, como TOAST y el control de las funciones I/O – Tomas Vondra / Tom Lane
- Añade el elemento de la estructura C tg_updatedcols para registrar las columnas actualizadas en los triggers en C – Peter Eisentraut
- Actualización para el uso de DocBook 4.5 – Peter Eisentraut
- Añade el soporte de compilación para MSYS2 – Peter Eisentraut
- Elimina el soporte para los sistemas BSD no-ELF – Peter Eisentraut
- Elimina el soporte para las versiones 2.5.X y anteriores de Python – Peter Eisentraut
- Elimina la opción de soporte –disable-float8-byval – Peter Eisentraut
- Elimina la opción de configuración –disable-float4-byval – Peter Eisentraut
- Añade un init hook TLS – Andrew Dunstan
- Permite la compilación sin un directorio predefinido del socket de dominio Unix – Peter Eisentraut
- Utiliza las funciones del sistema operativo para borrar completamente los datos sensibles de la memoria – Peter Eisentraut
- Permitir a los no superusuarios conectarse a los servidores foráneos postgres_fdw sin usar una contraseña – Craig Ringer
- Crea contadores del búfer de VACUUM de 64 bits de ancho para evitar el desbordamiento – Álvaro Herrera
* Las características listadas arriba han sido tomadas de las Notas de la versión para PostgreSQL 13. Pueden ser consultadas en esta página de www.postgresql.org.
PostgreSQL 12 (lanzado en octubre de 2019)
La versión 12 de PostgreSQL, la base de datos de código abierto más avanzada del mundo, fue lanzada el 3 de octubre de 2019. Esta versión incluyó importantes mejoras en el rendimiento del sistema de indexación y partición. Entre las características más importantes presentadas en esta versión, PostgreSQL 12 ahora soporta el lenguaje de rutas SQL/JSON, que permite la ejecución de consultas complejas sobre valores JSON utilizando un lenguaje estándar SQL.
Las características y mejoras importantes que ha aportado 2ndQuadrant a PostgreSQL 12 se enumeran a continuación:
- Transfiere la configuración de recovery.conf a postgresql.conf – Fujii Masao/ Simon Riggs / Abhijit Menon-Sen / Sergei Kornilov.
- Aumenta el rendimiento de muchas operaciones en tablas particionadas – Amit Langote / David Rowley / Tom Lane / Álvaro Herrera.
- Permite la referencia entre tablas particionadas y claves foráneas – Álvaro Herrera.
- Añade las funciones de introspección de la partición – Michaël Paquier / Álvaro Herrera / Amit Langote.
- Permite a CREATE STATISTICS generar estadísticas most-common-value para múltiples columnas – Tomas Vondra.
- Llamadas integradas a LEAST y GREATEST para mejorar la optimización – Vik Fearing.
- Búsqueda de palabras clave más rápida – John Naylor / Joerg Sonnenberger / Tom Lane.
- Reporte de progreso en las operaciones CREATE INDEX y REINDEX – Álvaro Herrera / Peter Eisentraut.
- Añade REINDEX CONCURRENTLY para la creación de índices sin bloquear escrituras en la tabla – Michaël Paquier / Andreas Karlsson / Peter Eisentraut.
- Añade el soporte para las columnas generadas – Peter Eisentraut.
- Permite la introducción de valores enumerados en más tipos de transacciones – Andrew Dunstan / Tom Lane / Thomas Munro.
- Permite la creación de intercalaciones que reportan similitudes entre secuencias diferentes en cuanto a bytes – Peter Eisentraut.
- Añade la opción de configuración EXPLAIN para generar parámetros de optimización no predeterminados – Tomas Vondra.
- Añade coloración a los resultados generados por las utilidades de la línea de comandos – Peter Eisentraut.
- Muestra el URL de la página del manual en los resultados de ayuda generados por psql – Peter Eisentraut.
- Permite a pg_upgrade usar la función de clonación del sistema de archivos – Peter Eisentraut.
- Añade la opción –exclude-database a pg_dumpall – Andrew Dunstan.
- Añade el comando CREATE ACCESS METHOD para crear nuevos tipos de tablas – Andres Freund / Haribabu Kommi / Álvaro Herrera / Alexander Korotkov / Dmitry Dolgov.
Una lista detallada de las contribuciones de 2ndQuadrant a PostgreSQL 12 está disponible aquí.
* Las características listadas arriba han sido tomadas de las notas de la versión para PostgreSQL 12 publicadas en www.postgresql.org. Puede consultarlas aquí.
PostgreSQL 11 (lanzado en octubre de 2018)
La versión 11 de PostgreSQL fue publicada en el mes de octubre del año 2018. Esta versión presentó importantes mejoras en la partición y el paralelismo, dos áreas críticas para cualquier sistema de base de datos relacional. El particionamiento en PostgreSQL 11 soporta índices únicos y claves foráneas, y permite la creación de índices equivalentes. Esta versión también incluye varias mejoras al paralelismo, presente en PostgreSQL desde la versión 9.6.
Las características y mejoras más relevantes aportadas por 2ndQuadrant a esta versión de PostgreSQL se enumeran a continuación:
- Implementación de procedimientos SQL, incluido el control de transacciones. Las transacciones pueden ser iniciadas y confirmadas en los procedimientos PL/pgSQL, PL/Perl, PL/Python y PL/Tcl, así como a través de SPI – Peter Eisentraut
- Permite a ALTER TABLE añadir una columna con un valor predeterminado no nulo sin realizar una reescritura de la tabla – Andrew Dunstan/ Serge Rielau
- Habilita la creación de índices en tablas particionadas, con propagación automática a las particiones – Álvaro Herrera
- Acelera la eliminación de la partición y mejora su aplicabilidad – David Rowley / Amit Langote / Beena Emerson / Dilip Kumar
- Replica la acción TRUNCATE al utilizar la replicación lógica – Simon Riggs / Marco Nenciarini / Peter Eisentraut
- Reduce la retención de WAL a un único punto de control en lugar de dos – Simon Riggs
- Permite que los slots de replicación avancen de forma programada, de acuerdo al requerimiento de los suscriptores – Petr Jelínek
- Añade la configuración de servidor ssl_passphrase_command permitiendo el suministro de la frase de contraseña para los archivos de claves SSL – Peter Eisentraut
- Añade el parámetro toast_tuple_target que controla la longitud mínima antes de que el almacenamiento de TOAST sea contemplado para nuevas filas – Simon Riggs
- Añade la familia de funciones hash SHA-2 – Peter Eisentraut
- Añade un asignador de memoria generacional optimizado para la asignación/desasignación serial – Tomas Vondra
- Permite índices UNIQUE en tablas particionadas si la clave de partición garantiza unicidad – Álvaro Herrera / Amit Langote
- Permite claves foráneas en tablas particionadas – Álvaro Herrera
Una lista detallada de las contribuciones de 2ndQuadrant a PostgreSQL 11 está disponible aquí.
*Las características listadas arriba han sido tomadas de las notas de la versión para PostgreSQL 11 publicadas en www.postgresql.org. Puede consultarlas aquí.
PostgreSQL 10 (lanzado en octubre de 2017)
En octubre del año 2017 se publicó la versión 10, que presentaba mejoras significativas e introducía importantes novedades para lograr una mayor rapidez en el acceso, la gestión y el análisis de los datos. Esta nueva versión también marca el cambio en la notación utilizada para estructurar las versiones a un formato de dos dígitos.
Las características y mejoras aportadas por 2ndQuadrant a PostgreSQL 10 se enumeran a continuación:
- Replicación lógica nativa – Petr Jelinek
- Optimización basada en estadísticas – Tomas Vondra
- Columnas IDENTITY y mejoras en Sequence – Peter Eisentraut
- Compatibilidad ICU (International Components for Unicode) para un mejor soporte lingüístico nacional – Peter Eisentraut
- Mejoras en el índice BRIN – Álvaro Herrera
- Mejoras en el uso de JSONB y XML – Andrew Dunstan /Álvaro Herrera / Pavel Stehule
- Mejoras en los tipos de datos Money – Peter Eisentraut
- Mejoras en el proceso de de inicio y apagado del servidor – Peter Eisentraut
- Permite la copia de seguridad en paralelo con pg_dump desde un servidor standby – Petr Jelinek
- Incremento de la velocidad de VACUUM – Álvaro Herrera
- Incremento de la velocidad de replicación – Simon Riggs / David Rowley
- Nueva infraestructura de pruebas para la replicación y la recuperación – Craig Ringer
Una lista detallada de las contribuciones de 2ndQuadrant a PostgreSQL 10 está disponible aquí.
*Las características listadas arriba han sido tomadas de las notas de la versión para PostgreSQL 10 disponibles aquí.
PostgreSQL 9.6 (lanzado en septiembre de 2016)
La versión 9.6 de PostgreSQL fue publicada en septiembre del año 2016. Incluía una característica tan esperada: la ejecución paralela de consultas extensas. David Rowley y Simon Riggs, junto a muchos desarrolladores, contribuyeron al esfuerzo conjunto para lograr esta importante característica. El equipo de 2ndQuadrant contribuyó a otras mejoras importantes y nuevas características de esta versión. Las que se enumeran a continuación:
- Mejora en el rendimiento de transacciones preparadas de corta duración –Simon Riggs / Stas Kelvich / Pavan Deolasee
- Rendimiento mejorado al mover los bloqueos de contenido del búfer en los descriptores del búfer – Simon Riggs / Andres Freund
- Reducción de la intensidad de bloqueo necesaria a ALTER TABLE para configurar las opciones de relación de fillfactor y autovacuum – Simon Riggs / Fabrízio de Royes Mello
- Posibilidad de realizar un escaneo de sólo-índice con un índice parcial, cuando el predicado del índice implica una o varias columnas no almacenadas en el mismo índice – Tomas Vondra / Kyotaro Horiguch
- Mejora en la estimación del planificador respecto al número de distintos valores que aparecen en el resultado de una consulta – Tomas Vondra
- Uso de las relaciones de claves foráneas para determinar la selectividad de los predicados join – Tomas Vondra / David Rowley
- Mejores estimaciones de ANALYZE para columnas con muchos valores NULL – Tomas Vondra / Alex Shulgin
- Se añade la función pg_current_xlog_flush_location() para mostrar la ubicación actual del registro de transacciones, y se añade la opción log_line_prefix %n para registrar el tiempo según el formato Unix, en milisegundos – Tomas Vondra / Jeff Davis
- Añade la opción de configuración –with-systemd para habilitar la llamada a sd_notify() al iniciar y detener el servidor – Peter Eisentraut
- Fusiona los valores de archive y hot_standby del parámetro de configuración wal_level en un único valor replica, añadiendo syslog_sequence_numbers – Peter Eisentraut
- Parámetros de configuración syslog_split_messages proporcionan un mayor control sobre el formato de los mensajes al acceder a syslog – Peter Eisentraut
- Permite que pg_basebackup utilice un slot de replicación definido para el streaming de WAL, al terminar el respaldo de la base de datos – Peter Eisentraut
- La selección del mismo slot para la replicación de flujo regular permite el arranque fluido del nuevo servidor standby – Peter Eisentraut
- Incluye el nombre de la tabla en las etiquetas de objeto. Aplica a los tipos de objeto que solo se denominan de forma exclusiva por tabla en pg_dump – Peter Eisentraut
Una lista detallada de las contribuciones de 2ndQuadrant a PostgreSQL 9.6 está disponible aquí.
*Las características listadas arriba han sido tomadas de las Notas de la Versión para PostgreSQL 9.6 publicadas en www.postgresql.org. Puede consultarlas aquí.