Un poderoso sistema de código abierto para bases de datos relacionales

PostgreSQL for Mac

PostgreSQL 9.4.2

  -  44.23 MB  -  Gratis

En ocasiones, las últimas versiones del software pueden causar problemas al instalarse en dispositivos más antiguos o dispositivos que ejecutan una versión anterior del sistema operativo.

Los fabricantes de software suelen solucionar estos problemas, pero puede llevarles algún tiempo. Mientras tanto, puedes descargar e instalar una versión anterior de PostgreSQL 9.4.2.


Para aquellos interesados en descargar la versión más reciente de PostgreSQL for Mac o leer nuestra reseña, simplemente haz clic aquí.


Todas las versiones antiguas distribuidas en nuestro sitio web son completamente libres de virus y están disponibles para su descarga sin costo alguno.


Nos encantaría saber de ti

Si tienes alguna pregunta o idea que desees compartir con nosotros, dirígete a nuestra página de contacto y háznoslo saber. ¡Valoramos tu opinión!

  • PostgreSQL 9.4.2 Capturas de Pantalla

    Las imágenes a continuación han sido redimensionadas. Haga clic en ellos para ver las capturas de pantalla en tamaño completo.

    PostgreSQL 9.4.2 Captura de Pantalla 1
  • PostgreSQL 9.4.2 Captura de Pantalla 2
  • PostgreSQL 9.4.2 Captura de Pantalla 3

Qué hay de nuevo en esta versión:

La migración a la Versión 9.4.2:
- Un dump/restore no es necesaria para aquellos que ejecutan 9.4.X.
- Sin embargo, si utiliza contrib/citext del regexp_matches() funciones, consulte la lista de cambios de la entrada de abajo acerca de eso.
- También, si va a actualizar desde una versión anterior a la 9.4.1, vea la Sección E. 2. Cambios:
- Evitar un posible accidente cuando el cliente se desconecta justo antes de que el tiempo de espera de autenticación caduca
- Si el tiempo de espera de la interrupción despedido a mitad de camino a través de la sesión de cierre de la secuencia, relacionados con SSL estado sería liberado dos veces, suele causar un accidente y, por tanto, la denegación de servicio a otras sesiones. La experimentación muestra que un atacante remoto no autenticado podría desencadenar el error algo constantemente, por lo tanto el tratamiento como problema de seguridad.
- Mejorar la detección de llamadas al sistema de fallas de
- Sustitución de la implementación de snprintf() no se pudo comprobar por los errores reportados por el sistema subyacente de la biblioteca de llamadas; el principal caso que podría estar perdida fuera de situaciones de memoria. En el peor de los casos, esto podría dar lugar a la exposición de la información, debido a nuestro código suponiendo que un búfer había sido sobrescritos cuando no hubiera sido. Además, había un par de lugares en los que la seguridad llamadas pertinentes de otros sistemas de funciones de la biblioteca no de verificación para el fracaso.
- Es posible que algunas de las llamadas de la *printf() de la familia de funciones son vulnerables a la divulgación de información si un error de memoria se produce en el momento más inoportuno. Evaluamos el riesgo de no ser grande, pero va a continuar el análisis en esta área.
- En contrib/pgcrypto, de manera uniforme el descifrado de informes de errores como "clave Incorrecta o datos corruptos"
- En el pasado, algunos casos de descifrado con una clave incorrecta podría enviar otro mensaje de error textos. Se ha demostrado que tal variación en los informes de errores puede ayudar a los atacantes en la recuperación de claves de otros sistemas. Mientras que se desconoce si pgcrypto específicas de conductas son igualmente aprovechables, parece mejor para evitar el riesgo mediante el uso de un uno-tamaño-caber-todo mensaje.
- Proteger contra la envolvente de multixact Id de miembro
- Bajo ciertos patrones de uso, las defensas contra este podría ser insuficiente, lo que permite pg_multixact/miembros de archivos a ser eliminado demasiado pronto, lo que resulta en la pérdida de datos. La corrección para este incluye la modificación de que el servidor falle transacciones que podrían resultar en la sobreescritura de edad multixact de IDENTIFICACIÓN de miembro de datos, y la mejora de autovacuum para asegurarse de que va a actuar de forma proactiva para evitar multixact de IDENTIFICACIÓN de miembro de envolvente, como lo hace con el ID de transacción de reciclamiento.
- Revisión incorrecta declaración de contrib/citext del regexp_matches() funciones
- Estas funciones deben devolver setof texto[], como las funciones básicas que son contenedores; pero estaban incorrectamente declarado como devolver el texto[]. Este error tuvo dos resultados: en primer lugar, si no hay ningún partido que obtuvo un escalar nulo resultado, mientras que lo que se debe conseguir es un conjunto vacío (cero filas). Segundo, el indicador g fue ignorados, puesto que solamente obtendrá una matriz de resultados, incluso si hay varias coincidencias.
- Mientras que el segundo comportamiento es claramente un error, podría ser aplicaciones, dependiendo de la ex comportamiento; por lo tanto, las declaraciones de función no será cambiado de forma predeterminada hasta PostgreSQL 9.5. En la pre-9.5 ramas, el comportamiento antiguo que existe en la versión 1.0 de la citext de extensión, mientras que nos han proporcionado corregido declaraciones en la versión 1.1 (que no se instala por defecto). Para aprobar la revisión de pre-9.5 ramas, ejecutar ALTERAR la EXTENSIÓN de citext ACTUALIZACIÓN PARA '1.1' en cada base de datos en la que citext está instalado. (También se puede "actualizar" de vuelta a la 1.0 si usted necesita para deshacer eso.) Ser consciente de que cualquiera de actualización de la dirección requerirá de caer y volver a crear cualquier punto de vista o las reglas que utilizan citext del regexp_matches() funciones.
- Render infinito fechas y marcas de tiempo como infinito al convertir a json, en lugar de tirar un error
- Revisión json/jsonb del populate_record() y to_record() funciones para manejar de entrada vacío correctamente
- Revisión incorrecta de cheques diferidos exclusión restricciones después de una actualización de CALIENTE
- Si una nueva fila que potencialmente viola aplazamiento de la exclusión, restricción es CALIENTE-actualizado (es decir, sin columnas indizadas cambio y la fila puede ser almacenado de nuevo en la misma página de la tabla) más adelante en la misma transacción, la exclusión, restricción de ser denunciados como violados cuando el cheque finalmente se produjo, incluso si la fila(s) de la nueva fila originalmente en conflicto con la habían eliminado.
- Corregir el comportamiento al cambiar la restricción de clave externa deferrability estado con ALTER TABLE ... ALTERAR RESTRICCIÓN
- Las operaciones más adelante en la misma sesión o en sesiones simultáneas no podría honrar el cambio de estado de inmediato.
- Revisión de la planificación de la estrella-esquema de estilo consultas
- A veces, el escaneo eficiente de una gran mesa requiere que los parámetros de índice de más de una tabla (comúnmente, las tablas de dimensiones cuyas claves que se necesitan para indexar una gran tabla de hechos). El planificador debe ser capaz de encontrar ese tipo de planes, pero excesivamente restrictiva de búsqueda heurística impidió.
- Evitar la indebida de la reordenación de antijoins (NO EXISTE une), en comparación con otras combinaciones externas
- Este descuido en el planificador se ha observado que la causa "no se pudo encontrar RelOptInfo por relids" errores, pero parece posible que, a veces, una consulta incorrecta plan podría conseguir más allá de que la comprobación de coherencia y consecuencia en silencio-mal resultado de la consulta.
- Revisión coincidencia incorrecto de las subexpresiones en el exterior unirse plan de nodos
- Previamente, si textualmente idéntico no-estricto de las subexpresiones se utiliza tanto por encima y por debajo de una combinación externa, el planificador puede intentar volver a utilizar el valor calculado por debajo de la combinación, que sería incorrecto porque el ejecutor de forzar el valor NULL en caso de una inigualable fila exterior.
- Revisión GEQO planificador de lidiar con el fracaso de su orden de combinación heurística (Tom Lane)
- Esta supervisión se ha visto a llevar a que "no se pudo unir a todas las relaciones juntos" errores en las consultas que implican LATERAL, y que podrían ocurrir en otros casos.
- Asegúrese de que el bloqueo de fila se produce correctamente cuando el objetivo de una ACTUALIZACIÓN o eliminación es una de la seguridad de la barrera de vista
- El uso de un archivo abierto para lectura/escritura cuando la sincronización de la replicación de la ranura de datos durante el inicio de bases de datos
- En algunas plataformas, la anterior codificación podría resultar en errores como "no se pudo fsync archivo "pg_replslot/...": el Mal de archivo descriptor".
- Solucionar los posibles interbloqueo en el inicio cuando max_prepared_transactions es demasiado pequeño
- No archivar inútil preasignados archivos WAL después de un interruptor de línea de tiempo
- De forma recursiva fsync() el directorio de datos después de un accidente
- Esto asegura la consistencia si otro accidente se produce poco después. (El segundo choque tendría que ser un sistema de nivel de bloqueo, no sólo una base de datos de choque, para no ser un problema).
- Revisión autovacuum del lanzador posible error para apagar, si se produce un error después de que se recibe SIGTERM
- Corrección de error para manejar la invalidación de los mensajes de los catálogos del sistema temprana en el inicio de sesión
- Este descuido puede resultar en fallas en las sesiones que se inician simultáneamente con un VACÍO TOTAL en un sistema de catálogo.
- Fix crash en BackendIdGetTransactionIds() cuando se intenta obtener el estado de un servidor de proceso que acaba de salir
- Lidiar con la inesperada señales en LockBufferForCleanup()
- Este descuido puede resultar en errores falsos acerca de "múltiples motores de intentar esperar para pincount 1".
- Corregir la falla al hacer la COPIA EN una tabla con las restricciones check que contienen toda la fila referencias
- El conocido caso de falla de los accidentes en 9.4 y, pero no es muy similar código en 9.3 y 9.2, así como el retorno de la revisión de las ramas así.
- Evitar el tiempo de espera para WAL color o la replicación sincrónica durante la confirmación de una transacción que se ha leído-sólo en la medida que el usuario se de que se trate
- Previamente, un retraso que podría ocurrir en comprometerse en transacciones en las que había escrito WAL debido al calor de la página de la poda, que conduce a efectos no deseados, como las sesiones de quedarse atascado en el inicio, si todos los sincrónico las réplicas son de abajo. Las sesiones también se han observado quedar atrapado en catchup de procesamiento de interrupción cuando se utiliza la replicación sincrónica; esto va a solucionar ese problema así.
- Evitar ocupado-esperar con corto recovery_min_apply_delay valores
- Fijar accidente en la manipulación de hash de los índices en las tablas temporales
- Solucionar los posibles fallos durante hash índice cubo de split, si hay otros procesos en la modificación del índice simultáneamente
- Corregir las pérdidas de memoria en GINEBRA índice de vacío
- Compruebe que las interrupciones al analizar el índice de expresiones
- ANALIZAR ejecuta índice de expresiones muchas veces; si son lentos funciones en este tipo de expresión, es deseable ser capaz de cancelar el ANALIZAR antes de que el bucle termina.
- Garantizar tableoid de una tabla externa es reportado correctamente cuando una LECTURA COMPROMETIDA vuelva a comprobar se produce después de que cierre filas en SELECCIONE PARA ACTUALIZAR, ACTUALIZAR o ELIMINAR
- Agregar el nombre del servidor de destino para la descripción de objetos cadenas extranjeras de usuario de servidor de asignaciones
- Incluir el nombre del esquema en la identidad de los objetos cadenas para las conversiones
- Se recomienda establecer include_realm a 1 cuando se utiliza Kerberos/GSSAPI/autenticación SSPI
- Sin este, con nombres idénticos a los usuarios de diferentes reinos no puede ser completo. Por el momento esto es sólo una documentación de cambiar, pero se convertirá en la configuración por defecto de PostgreSQL 9.5.
- Quitar el código para la coincidencia de IPv4 pg_hba.conf entradas para IPv4 en IPv6 las direcciones de
- Este hack fue añadido en 2003 en respuesta a un informe que algunos kernels de Linux de la época informe conexiones IPv4 como tener IPv4 en IPv6 las direcciones. Sin embargo, la lógica se rompe accidentalmente en 9.0. La falta de cualquier campo de quejas desde luego demuestra que no es necesario más. Ahora tenemos informes de que el código roto hace que se bloquea en algunos sistemas, así que vamos a quitar en lugar de solucionarlo. (Si hubiéramos elegido para solucionarlo, que haría de una manera sutil y potencialmente sensibles a la seguridad cambio en el significado de IPv4 pg_hba.conf entradas, que no parece una buena cosa a hacer en las versiones menores.)
- Revisión de informes de estado para el terminado de fondo de los trabajadores que fueron en realidad nunca comenzó
- Después de un accidente de la base de datos, no reinicies el fondo de los trabajadores que están marcados BGW_NEVER_RESTART
- Informe de WAL color, no insertar, la posición en IDENTIFY_SYSTEM comando de replicación
- Esto evita un posible error de inicio en pg_receivexlog.
- Al cerrar el servicio en Windows, enviar periódicamente las actualizaciones de estado para el Administrador de Control de Servicio para evitar que matar el servicio demasiado pronto; y asegurarse de que pg_ctl va a esperar por el cierre de
- Reducir el riesgo de la red de interbloqueo cuando se utiliza libpq de modo de no bloqueo
- Cuando el envío de grandes volúmenes de datos, es importante para drenar el búfer de entrada de cada tan a menudo, en caso de que el servidor ha enviado suficientes datos de respuesta para hacer bloque en la salida. (Un caso típico es que el servidor envía una secuencia de mensajes de AVISO durante la COPIA DE STDIN.) Esto funcionó correctamente en la normal, modo de bloqueo, pero no tanto en modo de no bloqueo. Hemos modificado libpq a manera oportunista de drenaje de entrada cuando se puede, pero una plena defensa contra este problema requiere de la aplicación de la cooperación: la aplicación debe reloj para el socket de leer como escribir-listo condiciones, y asegúrese de llamar PQconsumeInput() a leer y listo.
- En libpq, revisión misparsing de valores vacíos en URI cadenas de conexión
- Revisión de la matriz de manejo en ecpg
- Revisión psql a la cordura identificador Uri y conninfo cadenas como el primer parámetro \connect
- Esta sintaxis ha sido aceptado (pero no documentado) por un largo tiempo, pero anteriormente, algunos parámetros pueden ser tomadas de la antigua conexión en lugar de la cadena de caracteres, que fue acordado para ser indeseable.
- Suprimir incorrecto quejas de psql en algunas plataformas que no pudo escribir ~/.psql_history en la salida
- Esta mala conducta fue causada por una solución para un error muy antiguo (pre-2006) versiones de libedit. Lo fijado por la eliminación de la solución, lo que provocará un fallo similar a aparecer para aquellos que todavía el uso de tales versiones de libedit. Recomendación: actualización de la biblioteca, o el uso libreadline.
- Revisión pg_dump la regla para decidir qué modelos son proporcionado por el sistema arroja que no debe ser objeto de dumping
- En pg_dump, fijar falta de honor -Z el nivel de compresión de opción junto con-Fd
- Hacer pg_dump considerar la posibilidad de relaciones de clave externa entre la extensión de tablas de configuración, mientras que la elección de volcado de orden
- Este descuido puede resultar en la producción de vertederos que no recargar debido a las restricciones de clave externa transitoriamente violado.
- Evitar posibles pg_dump fracaso cuando las sesiones simultáneas son la creación y la eliminación temporal de las funciones de
- Revisión de dumping de los puntos de vista que se acaba de VALORES(...) pero tiene los alias de columna
- Garantizar que una vista de replicación de la identidad está correctamente configurado para nada durante el dump/restore
- Anteriormente, si la vista estaba involucrado en una dependencia circular, podría terminar con una incorrecta replicación de propiedad de identidad.
- En pg_upgrade, la fuerza de la línea de tiempo 1 en el nuevo clúster
- Este cambio evita errores en la actualización causada por falsas denuncias sobre la falta de WAL historial de archivos.
- En pg_upgrade, verifique que indebidamente no puede conectarse a bases de datos antes de continuar
- En pg_upgrade, cita rutas de directorio correctamente generado en la delete_old_cluster script
- En pg_upgrade, preservar el nivel de base de congelación información correctamente
- Este descuido podría causar falta de obstrucción de archivo de errores de las tablas dentro de la postgres y bases de datos template1.
- Ejecutar pg_upgrade y pg_resetxlog con privilegios restringidos en Windows, de manera que no fallen cuando es ejecutado por un administrador
- Mejorar el manejo de readdir() fallos cuando se escanea los directorios en initdb y pg_basebackup
- Fix lento algoritmo de ordenación en contrib/intarray
- Corrección de fallo de compilación en Sparc V8 de máquinas
- Silencio algunas construir advertencias en OS X
- Actualización de datos de zona horaria de archivos para tzdata liberación 2015d para el horario de verano cambios de la ley en Egipto, Mongolia, y Palestina, además de los cambios históricos en Canadá y Chile. También adoptar revisado de la zona de abreviaturas para el America/Adak de la zona (HST/HDT no HAS/HADT).