PostgreSQL

Software captura de pantalla:
PostgreSQL
Detalles de software:
Versión: 10.5 / 11 Beta 3 Actualizado
Fecha de carga: 16 Aug 18
Licencia: Libre
Popularidad: 29

Rating: 1.5/5 (Total Votes: 2)

PostgreSQL es un sistema de base de datos relacional de objetos abierto, potente, confiable, estable, listo para la empresa y libre en el estilo de los proyectos MariaDB, MySQL o SQLite. Es un servidor / motor de base de datos compatible con ACID (Atomicity, Consistency, Isolation, Durability) que puede ser altamente personalizado e incluye numerosas funciones atractivas, lo que lo convierte en un gran sustituto de los motores de base de datos antes mencionados.


Características de un vistazo

Las características clave incluyen soporte para claves externas, vistas, combinaciones, disparadores y procedimientos almacenados, soporte para múltiples idiomas, soporte para una amplia gama de tipos de datos SQL, incluyendo BOOLEAN, CHAR, INTEGER, NUMERIC, VARCHAR, INTERVAL, TIMESTAMP y FECHA.

Además, el software viene con soporte para almacenar objetos grandes binarios, incluyendo todo tipo de archivos multimedia (video, audio y foto), y proporciona a los desarrolladores interfaces de programación nativas para C, C ++, Python, Perl, Ruby, Lenguajes de programación Java, .Net, Tcl y ODBC.

Entre otras características interesantes, podemos mencionar MVCC (Control de Concurrencia de varias versiones), espacios de tablas, codificaciones de caracteres multibyte, recuperación puntual, un optimizador y planificador maduro de consultas, replicación asincrónica, copias de seguridad en línea, transacciones anidadas (popularmente conocidas como puntos de guardado), copias de seguridad en caliente, escritura anticipada para tolerancia a fallas, soporte para conjuntos de caracteres internacionales, así como compatibilidad con Unicode.


PostgreSQL en números

Por el momento, el servidor de base de datos PostgreSQL admite tamaño ilimitado para bases de datos, 32 TB debe ser del tamaño máximo para tablas, 1.6 TB por fila, 1 GB por campo, filas ilimitadas por tabla, admite entre 250 y 1600 columnas por tabla , según los tipos de columna, y admite índices ilimitados por tabla.


Sistemas operativos compatibles

El PostgreSQL se ha probado con éxito en todos los sistemas operativos principales, incluidos GNU / Linux, BSD, Solaris, HP-UX, AIX, SGI IRIX, Solaris, Tru64, Mac OS X y Microsoft Windows. PostgreSQL está disponible para su descarga como un archivo de origen universal, así como paquetes binarios precompilados para muchas distribuciones de Linux, que admiten arquitecturas de 32 bits y de 64 bits.

¿Qué hay de nuevo? / fuerte> en este lanzamiento:

  • Esta versión corrige dos problemas de seguridad. Esta versión también corrige problemas encontrados con los índices VACUUM, GIN y hash, consulta paralela, replicación lógica y otros errores reportados en los últimos tres meses. Todos los usuarios que utilizan las versiones afectadas de PostgreSQL deben actualizar lo antes posible.

Novedades en la versión 10.4 / 11 Beta 1:

  • Esta versión corrige dos problemas de seguridad. Esta versión también corrige problemas encontrados con los índices VACUUM, GIN y hash, consulta paralela, replicación lógica y otros errores reportados en los últimos tres meses. Todos los usuarios que utilizan las versiones afectadas de PostgreSQL deben actualizar lo antes posible.

Qué hay de nuevo en la versión:

  • Restringe aún más la visibilidad de pg_user_mappings.umoptions, para proteger las contraseñas almacenadas como opciones de mapeo del usuario (Noah Misch)
  • La solución para CVE-2017-7486 era incorrecta: le permitía a un usuario ver las opciones en su propia asignación de usuario, incluso si no tenía permiso de USO en el servidor externo asociado. Dichas opciones pueden incluir una contraseña que haya sido proporcionada por el propietario del servidor en lugar de por el usuario. Como information_schema.user_mapping_options no muestra las opciones en tales casos, pg_user_mappings tampoco debería. (CVE-2017-7547)
  • Por sí solo, este parche solo reparará el comportamiento en las bases de datos recién iniciadas. Si desea aplicar este cambio en una base de datos existente, deberá hacer lo siguiente:
  • Reinicia el postmaster luego de agregar allow_system_table_mods = true a postgresql.conf. (En las versiones compatibles con ALTER SYSTEM, puede usarlo para hacer que la configuración cambie, pero igual necesitará un reinicio).
  • En cada base de datos del clúster, ejecute los siguientes comandos como superusuario:
  • SET search_path = pg_catalog;
  • CREAR O REEMPLAZAR VER pg_user_mappings AS
  • SELECCIONAR
  • U.oid AS umid,
  • S.oid AS srvid,
  • S.srvname AS srvname,
  • U.umuser AS usuario,
  • CASO CUANDO U.umuser = 0 THEN
  • 'público'
  • ELSE
  • A.rolname
  • END AS nombre,
  • CASO CUANDO (U.umuser 0 AND A.rolname = current_user
  • AND (pg_has_role (S.srvowner, 'USAGE')
  • O has_server_privilege (S.oid, 'USAGE')))
  • OR (U.umuser = 0 AND pg_has_role (S.srvowner, 'USAGE'))
  • O (SELECCIONE rolsuper FROM pg_authid WHERE rolname = current_user)
  • ENTONCES U.umoptions
  • ELSE NULL END AS umoptions
  • FROM pg_user_mapping U
  • IZQUIERDA UNIR pg_authid A ON (A.oid = U.umuser) UNIRSE
  • pg_foreign_server S ON (U.umserver = S.oid);
  • No olvide incluir las bases de datos template0 y template1, o la vulnerabilidad seguirá existiendo en las bases de datos que cree más adelante. Para arreglar template0, necesitarás hacer que acepte conexiones temporalmente. En PostgreSQL 9.5 y posterior, puede usar
  • ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;
  • y luego de arreglar la plantilla0, deshaga eso con
  • ALTER DATABASE template0 CON ALLOW_CONNECTIONS falso;
  • En versiones anteriores, use
  • UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
  • UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
  • Finalmente, elimine la configuración de configuración allow_system_table_mods y vuelva a reiniciar el administrador de correo.
  • No permitir contraseñas vacías en todos los métodos de autenticación basados ​​en contraseñas (Heikki Linnakangas)
  • libpq ignora las especificaciones de contraseña vacías y no las transmite al servidor. Por lo tanto, si la contraseña de un usuario se ha establecido en la cadena vacía, es imposible iniciar sesión con esa contraseña a través de psql u otros clientes basados ​​en libpq. Por lo tanto, un administrador puede creer que configurar la contraseña para vaciar es equivalente a deshabilitar el inicio de sesión con contraseña. Sin embargo, con un cliente modificado o no basado en libpq, el inicio de sesión podría ser posible, dependiendo de qué método de autenticación esté configurado. En particular, el método más común, md5, acepta contraseñas vacías. Cambie el servidor para rechazar contraseñas vacías en todos los casos. (CVE-2017-7546)
  • Haga que lo_put () compruebe el privilegio UPDATE en el objeto grande de destino (Tom Lane, Michael Paquier)
  • lo_put () seguramente debería requerir los mismos permisos que lowrite (), pero faltaba la verificación, permitiendo a cualquier usuario cambiar los datos en un objeto grande. (CVE-2017-7548)
  • Corrija la documentación sobre el proceso para actualizar los servidores en espera con pg_upgrade (Bruce Momjian)
  • La documentación anterior instruía a los usuarios a iniciar / detener el servidor primario después de ejecutar pg_upgrade pero antes de sincronizar los servidores en espera. Esta secuencia no es segura.
  • Corrige el bloqueo simultáneo de cadenas de actualización de tuplas (Alvaro Herrera)
  • Si varias sesiones bloquean simultáneamente una cadena de actualización de tuplas con modos de bloqueo no conflictivos utilizando una instantánea anterior, y todas tienen éxito, es posible que algunas de ellas fallen (y concluyan que no hay una versión en vivo) debido a una carrera condición. Esto tuvo consecuencias, como verificaciones de clave externa que no permitían ver una tupla que definitivamente existe, pero que se está actualizando al mismo tiempo.
  • Corrige la corrupción potencial de datos al congelar una tupla cuyo XMAX es un multixact con exactamente un miembro aún interesante (Teodor Sigaev)
  • Evita el desbordamiento de enteros y el consiguiente bloqueo cuando se ordenan más de mil millones de tuplas en memoria (Sergey Koposov)
  • En Windows, vuelva a intentar la creación del proceso si no reservamos el rango de direcciones para nuestra memoria compartida en el nuevo proceso (Tom Lane, Amit Kapila)
  • Se espera que esto solucione los fallos poco frecuentes de inicio de procesos secundarios que probablemente se deban a la interferencia de productos antivirus.
  • Corrige la corrupción de baja probabilidad de la tabla hash compartida de bloqueo de predicados en las compilaciones de Windows (Thomas Munro, Tom Lane)
  • Evite iniciar sesión en el cierre limpio de una conexión SSL como si se tratara de un restablecimiento de conexión (Michael Paquier)
  • Impedir el envío de tickets de sesión SSL a clientes (Tom Lane)
  • Esta solución evita las fallas de reconexión con el código SSL del lado del cliente que reconoce los tickets.
  • Repara el código para configurar tcp_keepalives_idle en Solaris (Tom Lane)
  • Repara el recopilador de estadísticas para honrar los mensajes de consulta emitidos justo después de un cierre de postmaster y reinicio inmediato (Tom Lane)
  • Las consultas de estadísticas emitidas dentro de medio segundo del cierre anterior del administrador de correo se ignoraron efectivamente.
  • Asegúrese de que el tamaño del búfer de recepción del recopilador de estadísticas sea de al menos 100 KB (Tom Lane)
  • Esto reduce el riesgo de perder datos de estadísticas en plataformas más antiguas cuyo tamaño predeterminado de búfer de recepción es menor que eso.
  • Soluciona la posible creación de un segmento WAL no válido cuando se promueve un modo de espera justo después de procesar un registro XLOG_SWITCH WAL (Andres Freund)
  • Arregle a walsender para que salga rápidamente cuando el cliente solicite el cierre (Tom Lane)
  • Repara el manejo de SIGHUP y SIGUSR1 en procesos de walsender (Petr Jelinek, Andres Freund)
  • Prevenir los pánicos provocados por el walsender durante los puntos de control de cierre (Andres Freund, Michael Paquier)
  • Arregla reinicios innecesariamente lentos de los procesos de Walreceiver debido a la condición de carrera en el administrador de correo (Tom Lane)
  • Soluciona la fuga de pequeñas subtransacciones derramadas en el disco durante la decodificación lógica (Andres Freund)
  • Esto dio como resultado archivos temporales que consumían un espacio de disco excesivo.
  • Reduce el trabajo necesario para crear instantáneas durante la creación de ranuras de decodificación lógica (Andres Freund, Petr Jelinek)
  • El algoritmo anterior era demasiado caro en un servidor con muchas transacciones abiertas.
  • Repara la condición de carrera que podría demorar indefinidamente la creación de ranuras de decodificación lógica (Andres Freund, Petr Jelinek)
  • Reduce la sobrecarga en el procesamiento de eventos de invalidación de syscache (Tom Lane)
  • Esto es particularmente útil para la decodificación lógica, que desencadena la invalidación frecuente de caché.
  • Elimina la heurística incorrecta utilizada en algunos casos para estimar la selectividad de las uniones en función de la presencia de restricciones de clave externa (David Rowley)
  • En algunos casos donde existía una restricción de clave externa de varias columnas pero no coincidía exactamente con la estructura de combinación de una consulta, el planificador usaba una heurística de estimación que resulta que no funciona bien en absoluto. Revertir tales casos a la forma en que se calcularon antes del 9,6.
  • Corrige los casos donde un INSERT o UPDATE asigna a más de un elemento de una columna de tipo dominio sobre matriz (Tom Lane)
  • Permita que las funciones de la ventana se utilicen en sub-SELECT que estén dentro de los argumentos de una función agregada (Tom Lane)
  • Asegúrese de que la cláusula CHECK OPTIONS de una vista se aplica correctamente cuando la tabla subyacente es una tabla extraña (Etsuro Fujita)
  • Anteriormente, la actualización se podía enviar por completo al servidor externo, pero la necesidad de verificar las condiciones de la vista se omitía en ese caso.
  • Mueva los tipos de matriz autogenerados fuera del camino durante ALTER ... RENOMBRAR (Vik Fearing)
  • Anteriormente, cambiaríamos el nombre de un tipo de matriz autogenerada conflictiva fuera del camino durante CREAR; esta solución extiende ese comportamiento a las operaciones de cambio de nombre.
  • Repara el puntero colgante en ALTER TABLE cuando hay un comentario sobre una restricción que pertenece a la tabla (David Rowley)
  • Volver a aplicar el comentario a la restricción reconstruida podría fallar con un extraño mensaje de error o incluso un bloqueo.
  • Asegúrese de que ALTER USER ... SET acepte todas las variantes de sintaxis que ALTER ROLE ... SET hace (Peter Eisentraut)
  • Permitir que las restricciones CHECK de una tabla extranjera sean inicialmente NO VÁLIDAS (Amit Langote)
  • CREATE TABLE coloca silenciosamente los especificadores NO VÁLIDOS para las restricciones CHECK, razonando que la tabla debe estar vacía para que la restricción se pueda validar inmediatamente. Pero esto es incorrecto para CREATE FOREIGN TABLE, donde no hay ninguna razón para suponer que la tabla subyacente está vacía, y aunque lo sea, no es asunto nuestro decidir que la restricción se puede tratar como válida en el futuro. Omita esta & quot; optimización & quot; para mesas extranjeras.
  • Actualice correctamente la información de dependencia cuando cambie el argumento de la función de E / S de tipo de datos o el tipo de retorno de opaque al tipo correcto (Heikki Linnakangas)
  • CREATE TYPE actualiza las funciones de E / S declaradas en este estilo largamente obsoleto, pero se olvidó de registrar una dependencia en el tipo, lo que permite que un TIPO DE SALIDA posterior deje atrás definiciones de funciones rotas.
  • Permitir el paralelismo en el plan de consulta cuando COPY copia del resultado de una consulta (Andres Freund)
  • Reduce el uso de memoria cuando ANALYZE procesa una columna de tsvector (Heikki Linnakangas)
  • Repare la pérdida de precisión innecesaria y el redondeo descuidado al multiplicar o dividir los valores monetarios por enteros o flotantes (Tom Lane)
  • Comprueba los espacios en blanco en las funciones que analizan los identificadores, como regprocedurein () (Tom Lane)
  • Dependiendo de la configuración regional prevaleciente, estas funciones podrían malinterpretar fragmentos de caracteres multibyte como espacios en blanco.
  • Utilice símbolos #define relevantes de Perl mientras compila PL / Perl (Ashutosh Sharma, Tom Lane)
  • Esto evita problemas de portabilidad, por lo general se manifiesta como un "apretón de manos" & quot; no coinciden durante la carga de la biblioteca, cuando se trabaja con versiones recientes de Perl.
  • En libpq, reinicie el estado de autenticación GSS / SASL y SSPI correctamente después de un intento de conexión fallido (Michael Paquier)
  • No hacer esto significaba que al retroceder de SSL a conexiones no SSL, una falla GSS / SASL en el intento SSL siempre causaría que el intento no SSL falle. SSPI no falló, pero se filtró memoria.
  • En psql, soluciona el error cuando COPY FROM STDIN finaliza con una señal EOF de teclado y luego se intenta copiar COPY FROM STDIN (Thomas Munro)
  • Se observó esta mala conducta en las plataformas derivadas de BSD (incluido macOS), pero no en la mayoría de las demás.
  • Repara pg_dump y pg_restore para emitir los comandos REFRESH MATERIALIZED VIEW al final (Tom Lane)
  • Esto evita errores durante el volcado / restauración cuando una vista materializada se refiere a tablas propiedad de un usuario diferente.
  • Mejora el informe de pg_dump / pg_restore de las condiciones de error originadas en zlib (Vladimir Kunschikov, Alvaro Herrera)
  • Repara pg_dump con la opción --clean para soltar desencadenantes de evento como se esperaba (Tom Lane)
  • Ahora también asigna correctamente la propiedad de desencadenantes de eventos; antes, se restauraron como propiedad del superusuario que ejecuta el script de restauración.
  • Repara pg_dump con la opción --clean para que no falle cuando el esquema público no existe (Stephen Frost)
  • Repara pg_dump para que no emita SQL no válido para una clase de operador vacía (Daniel Gustafsson)
  • Repara el resultado de pg_dump en stdout en Windows (Kuntal Ghosh)
  • Un volcado comprimido de texto sin formato escrito en stdout contendría datos dañados debido a la falla al poner el descriptor del archivo en modo binario.
  • Repara pg_get_ruledef () para imprimir el resultado correcto para la regla ON SELECT de una vista cuyas columnas han cambiado de nombre (Tom Lane)
  • En algunos casos de esquina, pg_dump se basa en pg_get_ruledef () para volcar vistas, por lo que este error podría generar fallas de volcado / recarga.
  • Soluciona el volcado de uniones externas con restricciones vacías, como el resultado de un NATURAL LEFT JOIN sin columnas comunes (Tom Lane)
  • Soluciona el volcado de expresiones de funciones en la cláusula FROM en los casos en que la expresión no se dispersa en algo que se parece a una llamada de función (Tom Lane)
  • Soluciona la salida de pg_basebackup a stdout en Windows (Haribabu Kommi)
  • Una copia de seguridad escrita en stdout contendría datos corruptos debido a la falla al poner el descriptor de archivo en modo binario.
  • Repara pg_rewind para que maneje correctamente los archivos que superen los 2 GB (Kuntal Ghosh, Michael Paquier)
  • Normalmente, dichos archivos no aparecerán en los directorios de datos de PostgreSQL, pero podrían estar presentes en algunos casos.
  • Repare pg_upgrade para asegurarse de que el registro final de WAL no tenga wal_level = minimum (Bruce Momjian)
  • Esta condición podría impedir que los servidores en espera actualizados se vuelvan a conectar.
  • Corrige el cálculo de pg_xlogdump de la longitud de registro WAL (Andrés Freund)
  • En postgres_fdw, restablezca las conexiones a los servidores remotos después de los comandos ALTER SERVER o ALTER USER MAPPING (Kyotaro Horiguchi)
  • Esto garantiza que los cambios de las opciones que afecten a los parámetros de conexión se aplicarán con prontitud.
  • En postgres_fdw, permite la cancelación de comandos de control de transacciones remotos (Robert Haas, Rafia Sabih)
  • Este cambio nos permite escapar rápidamente de la espera de un servidor remoto que no responde en muchos más casos que anteriormente.
  • Aumente MAX_SYSCACHE_CALLBACKS para proporcionar más espacio para extensiones (Tom Lane)
  • Siempre use -fPIC, no -fpic, al compilar bibliotecas compartidas con gcc (Tom Lane)
  • Esto admite bibliotecas de extensión más grandes en plataformas donde hace la diferencia.
  • En las compilaciones de MSVC, maneje el caso donde la biblioteca de openssl no está dentro de un subdirectorio de VC (Andrew Dunstan)
  • En las compilaciones de MSVC, agregue la ruta de inclusión adecuada para los archivos de encabezado libxml2 (Andrew Dunstan)
  • Esto soluciona una necesidad anterior de cambiar cosas en las instalaciones estándar de Windows de libxml2.
  • En las compilaciones de MSVC, reconozca una biblioteca de Tcl que se llame tcl86.lib (Noah Misch)
  • En las compilaciones de MSVC, respete las configuraciones de PROVE_FLAGS en la línea de comandos de vcregress.pl (Andrew Dunstan)

Qué hay de nuevo en la versión 9.6.4:

  • Más restringe la visibilidad de pg_user_mappings.umoptions, para proteger las contraseñas almacenadas como opciones de mapeo del usuario (Noah Misch)
  • La solución para CVE-2017-7486 era incorrecta: le permitía a un usuario ver las opciones en su propia asignación de usuario, incluso si no tenía permiso de USO en el servidor externo asociado. Dichas opciones pueden incluir una contraseña que haya sido proporcionada por el propietario del servidor en lugar de por el usuario. Como information_schema.user_mapping_options no muestra las opciones en tales casos, pg_user_mappings tampoco debería. (CVE-2017-7547)
  • Por sí solo, este parche solo reparará el comportamiento en las bases de datos recién iniciadas. Si desea aplicar este cambio en una base de datos existente, deberá hacer lo siguiente:
  • Reinicia el postmaster luego de agregar allow_system_table_mods = true a postgresql.conf. (En las versiones compatibles con ALTER SYSTEM, puede usarlo para hacer que la configuración cambie, pero igual necesitará un reinicio).
  • En cada base de datos del clúster, ejecute los siguientes comandos como superusuario:
  • SET search_path = pg_catalog;
  • CREAR O REEMPLAZAR VER pg_user_mappings AS
  • SELECCIONAR
  • U.oid AS umid,
  • S.oid AS srvid,
  • S.srvname AS srvname,
  • U.umuser AS usuario,
  • CASO CUANDO U.umuser = 0 THEN
  • 'público'
  • ELSE
  • A.rolname
  • END AS nombre,
  • CASO CUANDO (U.umuser 0 AND A.rolname = current_user
  • AND (pg_has_role (S.srvowner, 'USAGE')
  • O has_server_privilege (S.oid, 'USAGE')))
  • OR (U.umuser = 0 AND pg_has_role (S.srvowner, 'USAGE'))
  • O (SELECCIONE rolsuper FROM pg_authid WHERE rolname = current_user)
  • ENTONCES U.umoptions
  • ELSE NULL END AS umoptions
  • FROM pg_user_mapping U
  • IZQUIERDA UNIR pg_authid A ON (A.oid = U.umuser) UNIRSE
  • pg_foreign_server S ON (U.umserver = S.oid);
  • No olvide incluir las bases de datos template0 y template1, o la vulnerabilidad seguirá existiendo en las bases de datos que cree más adelante. Para arreglar template0, necesitarás hacer que acepte conexiones temporalmente. En PostgreSQL 9.5 y posterior, puede usar
  • ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;
  • y luego de arreglar la plantilla0, deshaga eso con
  • ALTER DATABASE template0 CON ALLOW_CONNECTIONS falso;
  • En versiones anteriores, use
  • UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
  • UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
  • Finalmente, elimine la configuración de configuración allow_system_table_mods y vuelva a reiniciar el administrador de correo.
  • No permitir contraseñas vacías en todos los métodos de autenticación basados ​​en contraseñas (Heikki Linnakangas)
  • libpq ignora las especificaciones de contraseña vacías y no las transmite al servidor. Por lo tanto, si la contraseña de un usuario se ha establecido en la cadena vacía, es imposible iniciar sesión con esa contraseña a través de psql u otros clientes basados ​​en libpq. Por lo tanto, un administrador puede creer que configurar la contraseña para vaciar es equivalente a deshabilitar el inicio de sesión con contraseña. Sin embargo, con un cliente modificado o no basado en libpq, el inicio de sesión podría ser posible, dependiendo de qué método de autenticación esté configurado. En particular, el método más común, md5, acepta contraseñas vacías. Cambie el servidor para rechazar contraseñas vacías en todos los casos. (CVE-2017-7546)
  • Haga que lo_put () compruebe el privilegio UPDATE en el objeto grande de destino (Tom Lane, Michael Paquier)
  • lo_put () seguramente debería requerir los mismos permisos que lowrite (), pero faltaba la verificación, permitiendo a cualquier usuario cambiar los datos en un objeto grande. (CVE-2017-7548)
  • Corrija la documentación sobre el proceso para actualizar los servidores en espera con pg_upgrade (Bruce Momjian)
  • La documentación anterior instruía a los usuarios a iniciar / detener el servidor primario después de ejecutar pg_upgrade pero antes de sincronizar los servidores en espera. Esta secuencia no es segura.
  • Corrige el bloqueo simultáneo de cadenas de actualización de tuplas (Alvaro Herrera)
  • Si varias sesiones bloquean simultáneamente una cadena de actualización de tuplas con modos de bloqueo no conflictivos utilizando una instantánea anterior, y todas tienen éxito, es posible que algunas de ellas fallen (y concluyan que no hay una versión en vivo) debido a una carrera condición. Esto tuvo consecuencias, como verificaciones de clave externa que no permitían ver una tupla que definitivamente existe, pero que se está actualizando al mismo tiempo.
  • Corrige la corrupción potencial de datos al congelar una tupla cuyo XMAX es un multixact con exactamente un miembro aún interesante (Teodor Sigaev)
  • Evita el desbordamiento de enteros y el consiguiente bloqueo cuando se ordenan más de mil millones de tuplas en memoria (Sergey Koposov)
  • En Windows, vuelva a intentar la creación del proceso si no reservamos el rango de direcciones para nuestra memoria compartida en el nuevo proceso (Tom Lane, Amit Kapila)
  • Se espera que esto solucione los fallos poco frecuentes de inicio de procesos secundarios que probablemente se deban a la interferencia de productos antivirus.
  • Corrige la corrupción de baja probabilidad de la tabla hash compartida de bloqueo de predicados en las compilaciones de Windows (Thomas Munro, Tom Lane)
  • Evite iniciar sesión en el cierre limpio de una conexión SSL como si se tratara de un restablecimiento de conexión (Michael Paquier)
  • Impedir el envío de tickets de sesión SSL a clientes (Tom Lane)
  • Esta solución evita las fallas de reconexión con el código SSL del lado del cliente que reconoce los tickets.
  • Repara el código para configurar tcp_keepalives_idle en Solaris (Tom Lane)
  • Repara el recopilador de estadísticas para honrar los mensajes de consulta emitidos justo después de un cierre de postmaster y reinicio inmediato (Tom Lane)
  • Las consultas de estadísticas emitidas dentro de medio segundo del cierre anterior del administrador de correo se ignoraron efectivamente.
  • Asegúrese de que el tamaño del búfer de recepción del recopilador de estadísticas sea de al menos 100 KB (Tom Lane)
  • Esto reduce el riesgo de perder datos de estadísticas en plataformas más antiguas cuyo tamaño predeterminado de búfer de recepción es menor que eso.
  • Soluciona la posible creación de un segmento WAL no válido cuando se promueve un modo de espera justo después de procesar un registro XLOG_SWITCH WAL (Andres Freund)
  • Arregle a walsender para que salga rápidamente cuando el cliente solicite el cierre (Tom Lane)
  • Repara el manejo de SIGHUP y SIGUSR1 en procesos de walsender (Petr Jelinek, Andres Freund)
  • Prevenir los pánicos provocados por el walsender durante los puntos de control de cierre (Andres Freund, Michael Paquier)
  • Arregla reinicios innecesariamente lentos de los procesos de Walreceiver debido a la condición de carrera en el administrador de correo (Tom Lane)
  • Soluciona la fuga de pequeñas subtransacciones derramadas en el disco durante la decodificación lógica (Andres Freund)
  • Esto dio como resultado archivos temporales que consumían un espacio de disco excesivo.
  • Reduce el trabajo necesario para crear instantáneas durante la creación de ranuras de decodificación lógica (Andres Freund, Petr Jelinek)
  • El algoritmo anterior era demasiado caro en un servidor con muchas transacciones abiertas.
  • Repara la condición de carrera que podría demorar indefinidamente la creación de ranuras de decodificación lógica (Andres Freund, Petr Jelinek)
  • Reduce la sobrecarga en el procesamiento de eventos de invalidación de syscache (Tom Lane)
  • Esto es particularmente útil para la decodificación lógica, que desencadena la invalidación frecuente de caché.
  • Elimina la heurística incorrecta utilizada en algunos casos para estimar la selectividad de las uniones en función de la presencia de restricciones de clave externa (David Rowley)
  • En algunos casos donde existía una restricción de clave externa de varias columnas pero no coincidía exactamente con la estructura de combinación de una consulta, el planificador usaba una heurística de estimación que resulta que no funciona bien en absoluto. Revertir tales casos a la forma en que se calcularon antes del 9,6.
  • Corrige los casos donde un INSERT o UPDATE asigna a más de un elemento de una columna de tipo dominio sobre matriz (Tom Lane)
  • Permita que las funciones de la ventana se utilicen en sub-SELECT que estén dentro de los argumentos de una función agregada (Tom Lane)
  • Asegúrese de que la cláusula CHECK OPTIONS de una vista se aplica correctamente cuando la tabla subyacente es una tabla extraña (Etsuro Fujita)
  • Anteriormente, la actualización se podía enviar por completo al servidor externo, pero la necesidad de verificar las condiciones de la vista se omitía en ese caso.
  • Mueva los tipos de matriz autogenerados fuera del camino durante ALTER ... RENOMBRAR (Vik Fearing)
  • Anteriormente, cambiaríamos el nombre de un tipo de matriz autogenerada conflictiva fuera del camino durante CREAR; esta solución extiende ese comportamiento a las operaciones de cambio de nombre.
  • Repara el puntero colgante en ALTER TABLE cuando hay un comentario sobre una restricción que pertenece a la tabla (David Rowley)
  • Volver a aplicar el comentario a la restricción reconstruida podría fallar con un extraño mensaje de error o incluso un bloqueo.
  • Asegúrese de que ALTER USER ... SET acepte todas las variantes de sintaxis que ALTER ROLE ... SET hace (Peter Eisentraut)
  • Permitir que las restricciones CHECK de una tabla extranjera sean inicialmente NO VÁLIDAS (Amit Langote)
  • CREATE TABLE coloca silenciosamente los especificadores NO VÁLIDOS para las restricciones CHECK, razonando que la tabla debe estar vacía para que la restricción se pueda validar inmediatamente. Pero esto es incorrecto para CREATE FOREIGN TABLE, donde no hay ninguna razón para suponer que la tabla subyacente está vacía, y aunque lo sea, no es asunto nuestro decidir que la restricción se puede tratar como válida en el futuro. Omita esta "optimización" para tablas extranjeras.
  • Actualice correctamente la información de dependencia cuando cambie el argumento de la función de E / S de tipo de datos o el tipo de retorno de opaque al tipo correcto (Heikki Linnakangas)
  • CREATE TYPE actualiza las funciones de E / S declaradas en este estilo largamente obsoleto, pero se olvidó de registrar una dependencia en el tipo, lo que permite que un TIPO DE SALIDA posterior deje atrás definiciones de funciones rotas.
  • Permitir el paralelismo en el plan de consulta cuando COPY copia del resultado de una consulta (Andres Freund)
  • Reduce el uso de memoria cuando ANALYZE procesa una columna de tsvector (Heikki Linnakangas)
  • Repare la pérdida de precisión innecesaria y el redondeo descuidado al multiplicar o dividir los valores monetarios por enteros o flotantes (Tom Lane)
  • Comprueba los espacios en blanco en las funciones que analizan los identificadores, como regprocedurein () (Tom Lane)
  • Dependiendo de la configuración regional prevaleciente, estas funciones podrían malinterpretar fragmentos de caracteres multibyte como espacios en blanco.
  • Utilice símbolos #define relevantes de Perl mientras compila PL / Perl (Ashutosh Sharma, Tom Lane)
  • Esto evita problemas de portabilidad, que normalmente se manifiesta como una falta de coincidencia de "saludo" durante la carga de la biblioteca, cuando se trabaja con versiones recientes de Perl.
  • En libpq, reinicie el estado de autenticación GSS / SASL y SSPI correctamente después de un intento de conexión fallido (Michael Paquier)
  • No hacer esto significaba que al retroceder de SSL a conexiones no SSL, una falla GSS / SASL en el intento SSL siempre causaría que el intento no SSL falle. SSPI no falló, pero se filtró memoria.
  • En psql, soluciona el error cuando COPY FROM STDIN finaliza con una señal EOF de teclado y luego se intenta copiar COPY FROM STDIN (Thomas Munro)
  • Se observó esta mala conducta en las plataformas derivadas de BSD (incluido macOS), pero no en la mayoría de las demás.
  • Repara pg_dump y pg_restore para emitir los comandos REFRESH MATERIALIZED VIEW al final (Tom Lane)
  • Esto evita errores durante el volcado / restauración cuando una vista materializada se refiere a tablas propiedad de un usuario diferente.
  • Mejora el informe de pg_dump / pg_restore de las condiciones de error originadas en zlib (Vladimir Kunschikov, Alvaro Herrera)
  • Repara pg_dump con la opción --clean para soltar desencadenantes de evento como se esperaba (Tom Lane)
  • Ahora también asigna correctamente la propiedad de desencadenantes de eventos; antes, se restauraron como propiedad del superusuario que ejecuta el script de restauración.
  • Repara pg_dump con la opción --clean para que no falle cuando el esquema público no existe (Stephen Frost)
  • Repara pg_dump para que no emita SQL no válido para una clase de operador vacía (Daniel Gustafsson)
  • Repara el resultado de pg_dump en stdout en Windows (Kuntal Ghosh)
  • Un volcado comprimido de texto sin formato escrito en stdout contendría datos dañados debido a la falla al poner el descriptor del archivo en modo binario.
  • Repara pg_get_ruledef () para imprimir el resultado correcto para la regla ON SELECT de una vista cuyas columnas han cambiado de nombre (Tom Lane)
  • En algunos casos de esquina, pg_dump se basa en pg_get_ruledef () para volcar vistas, por lo que este error podría generar fallas de volcado / recarga.
  • Soluciona el volcado de uniones externas con restricciones vacías, como el resultado de un NATURAL LEFT JOIN sin columnas comunes (Tom Lane)
  • Soluciona el volcado de expresiones de funciones en la cláusula FROM en los casos en que la expresión no se dispersa en algo que se parece a una llamada de función (Tom Lane)
  • Soluciona la salida de pg_basebackup a stdout en Windows (Haribabu Kommi)
  • Una copia de seguridad escrita en stdout contendría datos corruptos debido a la falla al poner el descriptor de archivo en modo binario.
  • Repara pg_rewind para que maneje correctamente los archivos que superen los 2 GB (Kuntal Ghosh, Michael Paquier)
  • Normalmente, dichos archivos no aparecerán en los directorios de datos de PostgreSQL, pero podrían estar presentes en algunos casos.
  • Repare pg_upgrade para asegurarse de que el registro final de WAL no tenga wal_level = minimum (Bruce Momjian)
  • Esta condición podría impedir que los servidores en espera actualizados se vuelvan a conectar.
  • Corrige el cálculo de pg_xlogdump de la longitud de registro WAL (Andrés Freund)
  • En postgres_fdw, restablezca las conexiones a los servidores remotos después de los comandos ALTER SERVER o ALTER USER MAPPING (Kyotaro Horiguchi)
  • Esto garantiza que los cambios de las opciones que afecten a los parámetros de conexión se aplicarán con prontitud.
  • En postgres_fdw, permite la cancelación de comandos de control de transacciones remotos (Robert Haas, Rafia Sabih)
  • Este cambio nos permite escapar rápidamente de la espera de un servidor remoto que no responde en muchos más casos que anteriormente.
  • Aumente MAX_SYSCACHE_CALLBACKS para proporcionar más espacio para extensiones (Tom Lane)
  • Siempre use -fPIC, no -fpic, al compilar bibliotecas compartidas con gcc (Tom Lane)
  • Esto admite bibliotecas de extensión más grandes en plataformas donde hace la diferencia.
  • En las compilaciones de MSVC, maneje el caso donde la biblioteca de openssl no está dentro de un subdirectorio de VC (Andrew Dunstan)
  • En las compilaciones de MSVC, agregue la ruta de inclusión adecuada para los archivos de encabezado libxml2 (Andrew Dunstan)
  • Esto soluciona una necesidad anterior de cambiar cosas en las instalaciones estándar de Windows de libxml2.
  • En las compilaciones de MSVC, reconozca una biblioteca de Tcl que se llame tcl86.lib (Noah Misch)
  • En las compilaciones de MSVC, respete las configuraciones de PROVE_FLAGS en la línea de comandos de vcregress.pl (Andrew Dunstan)

Programas parecidos

GT.M
GT.M

18 Feb 15

Berkeley DB
Berkeley DB

27 Apr 17

MemSQL
MemSQL

20 Feb 15

Comentarios a la PostgreSQL

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!