PostgreSQL

软件截图:
PostgreSQL
软件详细信息:
版本: 10.5 / 11 Beta 3 更新
上传日期: 16 Aug 18
许可: 免费
人气: 100

Rating: 2.0/5 (Total Votes: 3)

PostgreSQL 是一个开源,强大,可靠,稳定,企业就绪且免费的对象关系数据库系统,采用MariaDB,MySQL或SQLite项目的风格。它是符合ACID(原子性,一致性,隔离性,耐久性)的数据库服务器/引擎,可以高度定制并包含许多有吸引力的功能,是上述数据库引擎的绝佳替代品。


功能一目了然

主要功能包括支持外键,视图,连接,触发器和存储过程,支持多种语言,支持各种SQL数据类型,包括BOOLEAN,CHAR,INTEGER,NUMERIC,VARCHAR,INTERVAL,TIMESTAMP和DATE。

此外,该软件还支持存储二进制大型对象,包括各种多媒体文件(视频,音频和照片),并为开发人员提供C,C ++,Python,Perl,Ruby的本机编程接口, Java,.Net,Tcl和ODBC编程语言。

在其他有趣的功能中,我们可以提到MVCC(多版本并发控制),表空间,多字节字符编码,时间点恢复,成熟的查询优化器和规划器,异步复制,在线备份,嵌套事务(通常称为保存点),热备份,预先记录容错,支持国际字符集以及Unicode支持。


PostgreSQL的数字

目前,PostgreSQL数据库服务器支持无限大小的数据库,32 TB应该是表的最大大小,每行1.6 TB,每个字段1 GB,每个表无限行,每个表支持250到1600列,取决于列类型,并支持每个表的无限索引。


支持的操作系统

PostgreSQL已在所有主流操作系统上成功测试,包括GNU / Linux,BSD,Solaris,HP-UX,AIX,SGI IRIX,Solaris,Tru64,Mac OS X和Microsoft Windows。 PostgreSQL可作为通用源存档下载,也可用于许多Linux发行版的预编译二进制包,支持32位和64位架构。

什么是新的

在此版本中:

  • 此版本修复了两个安全问题。此版本还修复了VACUUM,GIN和哈希索引,并行查询,逻辑复制以及过去三个月内报告的其他错误所发现的问题。使用受影响的PostgreSQL版本的所有用户都应尽快更新。

版本10.4 / 11 Beta 1中的新功能

  • 此版本修复了两个安全问题。此版本还修复了VACUUM,GIN和哈希索引,并行查询,逻辑复制以及过去三个月内报告的其他错误所发现的问题。使用受影响的PostgreSQL版本的所有用户都应尽快更新。

版本中的新功能

  • 进一步限制pg_user_mappings.umoptions的可见性,以保护存储为用户映射选项的密码(Noah Misch)
  • CVE-2017-7486的修复程序不正确:它允许用户在自己的用户映射中查看选项,即使她没有在关联的外部服务器上拥有USAGE权限。这些选项可能包括服务器所有者而不是用户自己提供的密码。由于在这种情况下information_schema.user_mapping_options不显示选项,因此pg_user_mappings也不应该。 (CVE-2017-7547)
  • 此修补程序本身仅修复新initdb'd数据库中的行为。如果要在现有数据库中应用此更改,则需要执行以下操作:
  • 在postgresql.conf中添加allow_system_table_mods = true后重新启动postmaster。 (在支持ALTER SYSTEM的版本中,您可以使用它来进行配置更改,但您仍需要重新启动。)
  • 在群集的每个数据库中,以超级用户身份运行以下命令:
  • SET search_path = pg_catalog;
  • 创建或替换视图pg_user_mappings AS
  • 选择
  • U.oid AS umid,
  • S.oid AS srvid,
  • S.srvname AS srvname,
  • U.umuser AS umuser,
  • 案例当U.umuser = 0那么
  • '公共'
  • ELSE
  • A.rolname
  • END AS usename,
  • CASE WHEN(U.umuser 0 AND A.rolname = current_user
  • AND(pg_has_role(S.srvowner,'USAGE')
  • OR has_server_privilege(S.oid,'USAGE')))
  • OR(U.umuser = 0 AND pg_has_role(S.srvowner,'USAGE'))
  • OR(SELECT rolsuper FROM pg_authid WHERE rolname = current_user)
  • 那么U.umoptions
  • ELSE NULL END as umoptions
  • FROM pg_user_mapping U
  • LEFT JOIN pg_authid A ON(A.oid = U.umuser)JOIN
  • pg_foreign_server S ON(U.umserver = S.oid);
  • 不要忘记包含template0和template1数据库,否则该漏洞仍会存在于您稍后创建的数据库中。要修复template0,您需要暂时使其接受连接。在PostgreSQL 9.5及更高版本中,您可以使用
  • ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;
  • 然后在修复template0之后,使用
  • 撤消它
  • ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;
  • 在以前的版本中,改为使用
  • UPDATE pg_database SET datallowconn = true WHERE datname ='template0';
  • UPDATE pg_database SET datallowconn = false WHERE datname ='template0';
  • 最后,删除allow_system_table_mods配置设置,然后重新启动postmaster。
  • 在所有基于密码的身份验证方法中禁止使用空密码(Heikki Linnakangas)
  • libpq忽略空密码规范,不会将它们传输到服务器。因此,如果用户的密码已设置为空字符串,则无法通过psql或其他基于libpq的客户端使用该密码登录。因此,管理员可能认为将密码设置为空等同于禁用密码登录。但是,使用基于修改或非基于libpq的客户端,可以登录,具体取决于配置的身份验证方法。特别是最常用的方法md5,接受空密码。在所有情况下,更改服务器以拒绝空密码。 (CVE-2017-7546)
  • 让lo_put()检查目标大对象的UPDATE权限(Tom Lane,Michael Paquier)
  • lo_put()肯定需要与lowrite()相同的权限,但缺少检查,允许任何用户更改大对象中的数据。 (CVE-2017-7548)
  • 使用pg_upgrade更正有关升级备用服务器的过程的文档(Bruce Momjian)
  • 之前的文档指示用户在运行pg_upgrade之后但在同步备用服务器之前启动/停止主服务器。这个顺序是不安全的。
  • 修复元组更新链的并发锁定(Alvaro Herrera)
  • 如果多个会话使用旧快照同时锁定具有非冲突锁定模式的元组更新链,并且它们都成功,那么由于某个竞赛,其中一些会话可能会失败(并且认为没有实时元组版本)条件。这会产生一些后果,例如外键检查未能看到确实存在但正在同时更新的元组。
  • 在冻结一个XMAX为多重的元组并且只有一个仍然有趣的成员(Teodor Sigaev)的时候修复潜在的数据损坏
  • 在内存中排序超过十亿个元组时,避免整数溢出和随后发生的崩溃(Sergey Koposov)
  • 在Windows上,如果我们无法在新进程中保留共享内存的地址范围,则重试进程创建(Tom Lane,Amit Kapila)
  • 预计这可能会解决可能因防病毒产品干扰而导致的不常发生的子进程启动故障。
  • 修复Windows版本中共享谓词锁哈希表的低概率损坏(Thomas Munro,Tom Lane)
  • 避免记录SSL连接的干净关闭,就好像它是连接重置(Michael Paquier)
  • 一样
  • 阻止向客户端发送SSL会话票证(Tom Lane)
  • 此修复程序可防止使用支持票证的客户端SSL代码重新连接失败。
  • 修复在Solaris上设置tcp_keepalives_idle的代码(Tom Lane)
  • 修复统计信息收集器,以便在postmaster关闭并立即重启(Tom Lane)后立即发出查询消息
  • 有效忽略了之前postmaster关闭后半秒内发出的统计数据查询。
  • 确保统计信息收集器的接收缓冲区大小至少为100KB(Tom Lane)
  • 这样可以降低在默认接收缓冲区大小小于此值的旧平台上丢弃统计数据的风险。
  • 修复在处理XLOG_SWITCH WAL记录(Andres Freund)后立即升级备用数据库时可能创建的无效WAL段
  • 修复walsender在客户端请求关闭时立即退出(Tom Lane)
  • 修复walsender流程中的SIGHUP和SIGUSR1处理(Petr Jelinek,Andres Freund)
  • 在停机检查站期间防止walsender触发恐慌(Andres Freund,Michael Paquier)
  • 修复由于postmaster(Tom Lane)中的竞争条件导致的walreceiver进程不必要的缓慢重启
  • 修复逻辑解码过程中溢出到磁盘的小子事务泄漏(Andres Freund)
  • 这导致临时文件消耗过多的磁盘空间。
  • 在创建逻辑解码插槽期间减少构建快照所需的工作(Andres Freund,Petr Jelinek)
  • 在具有大量未完成交易的服务器上,以前的算法非常昂贵。
  • 修复可能无限延迟创建逻辑解码槽的竞争条件(Andres Freund,Petr Jelinek)
  • 减少处理syscache失效事件的开销(Tom Lane)
  • 这对逻辑解码特别有用,它会触发频繁的缓存失效。
  • 删除在某些情况下使用的不正确的启发式,以根据外键约束的存在来估计连接选择性(David Rowley)
  • 在存在多列外键约束但与查询的连接结构不完全匹配的某些情况下,规划器使用的估计启发式算法根本不能正常工作。将此类案件恢复到9.6之前估计的方式。
  • 修复INSERT或UPDATE分配给多个域类型的列的多个元素的情况(Tom Lane)
  • 允许窗口函数用于聚合函数参数内的子SELECT(Tom Lane)
  • 当基础表是外表(Etsuro Fujita)时,确保正确强制执行视图的CHECK OPTIONS子句
  • 以前,更新可能会完全推送到外部服务器,但如果是这样,则错过了验证视图条件的需要。
  • 在ALTER期间移动自动生成的数组类型... RENAME(Vik Fearing)
  • 以前,我们会在CREATE期间重命名冲突的自动生成的数组类型;此修复程序将该行为扩展到重命名操作。
  • 当对属于该表的约束(David Rowley)发表评论时,在ALTER TABLE中修复悬空指针
  • 将评论重新应用于重建的约束可能会因奇怪的错误消息而失败,甚至崩溃。
  • 确保ALTER USER ... SET接受ALTER ROLE ... SET所做的所有语法变体(Peter Eisentraut)
  • 允许外表的CHECK约束最初为NOT VALID(Amit Langote)
  • CREATE TABLE以静默方式删除CHECK约束的NOT VALID说明符,推断该表必须为空,以便可以立即验证约束。但这对于CREATE FOREIGN TABLE来说是错误的,因为没有理由认为底层表是空的,即使它确定约束可以被视为有效的,也不是我们的业务。略过这个“优化”。对于外国桌子。
  • 在将数据类型I / O函数的参数或返回类型从opaque更改为正确类型时正确更新依赖关系信息(Heikki Linnakangas)
  • CREATE TYPE更新在这个过时的过时样式中声明的I / O函数,但它忘记记录对类型的依赖,允许后续的DROP TYPE将破坏的函数定义留在后面。
  • 当COPY从查询结果中复制时,允许在查询计划中保持并行性(Andres Freund)
  • 在ANALYZE处理tsvector列时减少内存使用量(Heikki Linnakangas)
  • 在将货币值乘以整数或浮点数时,修复不必要的精度损失和草率舍入(Tom Lane)
  • 加强对解析标识符的函数中的空格的检查,例如regprocedurein()(Tom Lane)
  • 根据流行的语言环境,这些函数可能会将多字节字符的片段误解为空格。
  • 在编译PL / Perl时使用Perl中的相关#define符号(Ashutosh Sharma,Tom Lane)
  • 这避免了可移植性问题,通常表现为“握手”问题。在使用最近的Perl版本时,库加载期间不匹配。
  • 在libpq中,在连接尝试失败后正确重置GSS / SASL和SSPI身份验证状态(Michael Paquier)
  • 如果不这样做,则意味着当从SSL退回到非SSL连接时,SSL尝试中的GSS / SASL故障将始终导致非SSL尝试失败。 SSPI没有失败,但它泄露了记忆。
  • 在psql中,当使用键盘EOF信号结束COPY FROM STDIN然后尝试另一个COPY FROM STDIN时修复失败(Thomas Munro)
  • 在BSD派生的平台(包括macOS)上观察到了这种不当行为,但在大多数其他平台上都没有。
  • 修复pg_dump和pg_restore最后发出REFRESH MATERIALIZED VIEW命令(Tom Lane)
  • 当物化视图引用其他用户拥有的表时,这可以防止转储/恢复期间的错误。
  • 改进pg_dump / pg_restore报告源于zlib的错误情况(Vladimir Kunschikov,Alvaro Herrera)
  • 使用--clean选项修复pg_dump以按预期方式删除事件触发器(Tom Lane)
  • 它现在也正确分配事件触发器的所有权;之前,它们被恢复为由运行恢复脚本的超级用户拥有。
  • 使用--clean选项修复pg_dump,以便在公共架构不存在时不会失败(Stephen Frost)
  • 修复pg_dump不为空操作符类发出无效的SQL(Daniel Gustafsson)
  • 将pg_dump输出修复为Windows上的stdout(Kuntal Ghosh)
  • 写入stdout的压缩纯文本转储将包含由于未能将文件描述符置于二进制模式而导致的损坏数据。
  • 修复pg_get_ruledef()以打印已重命名列的视图的ON SELECT规则的正确输出(Tom Lane)
  • 在某些极端情况下,pg_dump依赖于pg_get_ruledef()来转储视图,因此此错误可能导致转储/重新加载失败。
  • 使用空约束修复外部联接的转储,例如没有公共列的自然LEFT JOIN的结果(Tom Lane)
  • 修复在FROM子句中转储函数表达式的情况,如果表达式没有解析为看起来像函数调用的东西(Tom Lane)
  • 将pg_basebackup输出修复到Windows上的stdout(Haribabu Kommi)
  • 由于未能将文件描述符置于二进制模式,写入stdout的备份将包含损坏的数据。
  • 修复pg_rewind以正确处理超过2GB的文件(Kuntal Ghosh,Michael Paquier)
  • 通常这些文件不会出现在PostgreSQL数据目录中,但在某些情况下可能会出现这些文件。
  • 修复pg_upgrade以确保结束WAL记录没有wal_level = minimum(Bruce Momjian)
  • 此情况可能会阻止升级的备用服务器重新连接。
  • 修复pg_xlogdump的WAL记录长度计算(Andres Freund)
  • 在postgres_fdw中,在ALTER SERVER或ALTER USER MAPPING命令(Kyotaro Horiguchi)之后重新建立与远程服务器的连接
  • 这可确保及时应用影响连接参数的选项更改。
  • 在postgres_fdw中,允许取消远程交易控制命令(Robert Haas,Rafia Sabih)
  • 此更改使我们能够在比以前更多的情况下快速逃避等待无响应的远程服务器。
  • 增加MAX_SYSCACHE_CALLBACKS以提供更多扩展空间(Tom Lane)
  • 使用gcc构建共享库时,始终使用-fPIC,而不是-fpic(Tom Lane)
  • 这可以在平台上支持更大的扩展库。
  • 在MSVC版本中,处理openssl库不在VC子目录中的情况(Andrew Dunstan)
  • 在MSVC版本中,为libxml2头文件添加适当的包含路径(Andrew Dunstan)
  • 这解决了之前需要在libxml2的标准Windows安装中移动的问题。
  • 在MSVC版本中,识别名为tcl86.lib的Tcl库(Noah Misch)
  • 在MSVC版本中,尊重vcregress.pl命令行(Andrew Dunstan)上的PROVE_FLAGS设置

版本9.6.4中的新功能

  • 进一步限制pg_user_mappings.umoptions的可见性,以保护存储为用户映射选项的密码(Noah Misch)
  • CVE-2017-7486的修复程序不正确:它允许用户在自己的用户映射中查看选项,即使她没有在关联的外部服务器上拥有USAGE权限。这些选项可能包括服务器所有者而不是用户自己提供的密码。由于在这种情况下information_schema.user_mapping_options不显示选项,因此pg_user_mappings也不应该。 (CVE-2017-7547)
  • 此修补程序本身仅修复新initdb'd数据库中的行为。如果要在现有数据库中应用此更改,则需要执行以下操作:
  • 在postgresql.conf中添加allow_system_table_mods = true后重新启动postmaster。 (在支持ALTER SYSTEM的版本中,您可以使用它来进行配置更改,但您仍需要重新启动。)
  • 在群集的每个数据库中,以超级用户身份运行以下命令:
  • SET search_path = pg_catalog;
  • 创建或替换视图pg_user_mappings AS
  • 选择
  • U.oid AS umid,
  • S.oid AS srvid,
  • S.srvname AS srvname,
  • U.umuser AS umuser,
  • 案例当U.umuser = 0那么
  • '公共'
  • ELSE
  • A.rolname
  • END AS usename,
  • CASE WHEN(U.umuser 0 AND A.rolname = current_user
  • AND(pg_has_role(S.srvowner,'USAGE')
  • OR has_server_privilege(S.oid,'USAGE')))
  • OR(U.umuser = 0 AND pg_has_role(S.srvowner,'USAGE'))
  • OR(SELECT rolsuper FROM pg_authid WHERE rolname = current_user)
  • 那么U.umoptions
  • ELSE NULL END as umoptions
  • FROM pg_user_mapping U
  • LEFT JOIN pg_authid A ON(A.oid = U.umuser)JOIN
  • pg_foreign_server S ON(U.umserver = S.oid);
  • 不要忘记包含template0和template1数据库,否则该漏洞仍会存在于您稍后创建的数据库中。要修复template0,您需要暂时使其接受连接。在PostgreSQL 9.5及更高版本中,您可以使用
  • ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;
  • 然后在修复template0之后,使用
  • 撤消它
  • ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;
  • 在以前的版本中,改为使用
  • UPDATE pg_database SET datallowconn = true WHERE datname ='template0';
  • UPDATE pg_database SET datallowconn = false WHERE datname ='template0';
  • 最后,删除allow_system_table_mods配置设置,然后重新启动postmaster。
  • 在所有基于密码的身份验证方法中禁止使用空密码(Heikki Linnakangas)
  • libpq忽略空密码规范,不会将它们传输到服务器。因此,如果用户的密码已设置为空字符串,则无法通过psql或其他基于libpq的客户端使用该密码登录。因此,管理员可能认为将密码设置为空等同于禁用密码登录。但是,使用基于修改或非基于libpq的客户端,可以登录,具体取决于配置的身份验证方法。特别是最常用的方法md5,接受空密码。在所有情况下,更改服务器以拒绝空密码。 (CVE-2017-7546)
  • 让lo_put()检查目标大对象的UPDATE权限(Tom Lane,Michael Paquier)
  • lo_put()肯定需要与lowrite()相同的权限,但缺少检查,允许任何用户更改大对象中的数据。 (CVE-2017-7548)
  • 使用pg_upgrade更正有关升级备用服务器的过程的文档(Bruce Momjian)
  • 之前的文档指示用户在运行pg_upgrade之后但在同步备用服务器之前启动/停止主服务器。这个顺序是不安全的。
  • 修复元组更新链的并发锁定(Alvaro Herrera)
  • 如果多个会话使用旧快照同时锁定具有非冲突锁定模式的元组更新链,并且它们都成功,那么由于某个竞赛,其中一些会话可能会失败(并且认为没有实时元组版本)条件。这会产生一些后果,例如外键检查未能看到确实存在但正在同时更新的元组。
  • 在冻结一个XMAX为多重的元组并且只有一个仍然有趣的成员(Teodor Sigaev)的时候修复潜在的数据损坏
  • 在内存中排序超过十亿个元组时,避免整数溢出和随后发生的崩溃(Sergey Koposov)
  • 在Windows上,如果我们无法在新进程中保留共享内存的地址范围,则重试进程创建(Tom Lane,Amit Kapila)
  • 预计这可能会解决可能因防病毒产品干扰而导致的不常发生的子进程启动故障。
  • 修复Windows版本中共享谓词锁哈希表的低概率损坏(Thomas Munro,Tom Lane)
  • 避免记录SSL连接的干净关闭,就好像它是连接重置(Michael Paquier)
  • 一样
  • 阻止向客户端发送SSL会话票证(Tom Lane)
  • 此修复程序可防止使用支持票证的客户端SSL代码重新连接失败。
  • 修复在Solaris上设置tcp_keepalives_idle的代码(Tom Lane)
  • 修复统计信息收集器,以便在postmaster关闭并立即重启(Tom Lane)后立即发出查询消息
  • 有效忽略了之前postmaster关闭后半秒内发出的统计数据查询。
  • 确保统计信息收集器的接收缓冲区大小至少为100KB(Tom Lane)
  • 这样可以降低在默认接收缓冲区大小小于此值的旧平台上丢弃统计数据的风险。
  • 修复在处理XLOG_SWITCH WAL记录(Andres Freund)后立即升级备用数据库时可能创建的无效WAL段
  • 修复walsender在客户端请求关闭时立即退出(Tom Lane)
  • 修复walsender流程中的SIGHUP和SIGUSR1处理(Petr Jelinek,Andres Freund)
  • 在停机检查站期间防止walsender触发恐慌(Andres Freund,Michael Paquier)
  • 修复由于postmaster(Tom Lane)中的竞争条件导致的walreceiver进程不必要的缓慢重启
  • 修复逻辑解码过程中溢出到磁盘的小子事务泄漏(Andres Freund)
  • 这导致临时文件消耗过多的磁盘空间。
  • 在创建逻辑解码插槽期间减少构建快照所需的工作(Andres Freund,Petr Jelinek)
  • 在具有大量未完成交易的服务器上,以前的算法非常昂贵。
  • 修复可能无限延迟创建逻辑解码槽的竞争条件(Andres Freund,Petr Jelinek)
  • 减少处理syscache失效事件的开销(Tom Lane)
  • 这对逻辑解码特别有用,它会触发频繁的缓存失效。
  • 删除在某些情况下使用的不正确的启发式,以根据外键约束的存在来估计连接选择性(David Rowley)
  • 在存在多列外键约束但与查询的连接结构不完全匹配的某些情况下,规划器使用的估计启发式算法根本不能正常工作。将此类案件恢复到9.6之前估计的方式。
  • 修复INSERT或UPDATE分配给多个域类型的列的多个元素的情况(Tom Lane)
  • 允许窗口函数用于聚合函数参数内的子SELECT(Tom Lane)
  • 当基础表是外表(Etsuro Fujita)时,确保正确强制执行视图的CHECK OPTIONS子句
  • 以前,更新可能会完全推送到外部服务器,但如果是这样,则错过了验证视图条件的需要。
  • 在ALTER期间移动自动生成的数组类型... RENAME(Vik Fearing)
  • 以前,我们会在CREATE期间重命名冲突的自动生成的数组类型;此修复程序将该行为扩展到重命名操作。
  • 当对属于该表的约束(David Rowley)发表评论时,在ALTER TABLE中修复悬空指针
  • 将评论重新应用于重建的约束可能会因奇怪的错误消息而失败,甚至崩溃。
  • 确保ALTER USER ... SET接受ALTER ROLE ... SET所做的所有语法变体(Peter Eisentraut)
  • 允许外表的CHECK约束最初为NOT VALID(Amit Langote)
  • CREATE TABLE以静默方式删除CHECK约束的NOT VALID说明符,推断该表必须为空,以便可以立即验证约束。但这对于CREATE FOREIGN TABLE来说是错误的,因为没有理由认为底层表是空的,即使它确定约束可以被视为有效的,也不是我们的业务。跳过外表的“优化”。
  • 在将数据类型I / O函数的参数或返回类型从opaque更改为正确类型时正确更新依赖关系信息(Heikki Linnakangas)
  • CREATE TYPE更新在这个过时的过时样式中声明的I / O函数,但它忘记记录对类型的依赖,允许后续的DROP TYPE将破坏的函数定义留在后面。
  • 当COPY从查询结果中复制时,允许在查询计划中保持并行性(Andres Freund)
  • 在ANALYZE处理tsvector列时减少内存使用量(Heikki Linnakangas)
  • 在将货币值乘以整数或浮点数时,修复不必要的精度损失和草率舍入(Tom Lane)
  • 加强对解析标识符的函数中的空格的检查,例如regprocedurein()(Tom Lane)
  • 根据流行的语言环境,这些函数可能会将多字节字符的片段误解为空格。
  • 在编译PL / Perl时使用Perl中的相关#define符号(Ashutosh Sharma,Tom Lane)
  • 这可以避免可移植性问题,在使用最近的Perl版本时,通常会在库加载期间表现为“握手”不匹配。
  • 在libpq中,在连接尝试失败后正确重置GSS / SASL和SSPI身份验证状态(Michael Paquier)
  • 如果不这样做,则意味着当从SSL退回到非SSL连接时,SSL尝试中的GSS / SASL故障将始终导致非SSL尝试失败。 SSPI没有失败,但它泄露了记忆。
  • 在psql中,当使用键盘EOF信号结束COPY FROM STDIN然后尝试另一个COPY FROM STDIN时修复失败(Thomas Munro)
  • 在BSD派生的平台(包括macOS)上观察到了这种不当行为,但在大多数其他平台上都没有。
  • 修复pg_dump和pg_restore最后发出REFRESH MATERIALIZED VIEW命令(Tom Lane)
  • 当物化视图引用其他用户拥有的表时,这可以防止转储/恢复期间的错误。
  • 改进pg_dump / pg_restore报告源于zlib的错误情况(Vladimir Kunschikov,Alvaro Herrera)
  • 使用--clean选项修复pg_dump以按预期方式删除事件触发器(Tom Lane)
  • 它现在也正确分配事件触发器的所有权;之前,它们被恢复为由运行恢复脚本的超级用户拥有。
  • 使用--clean选项修复pg_dump,以便在公共架构不存在时不会失败(Stephen Frost)
  • 修复pg_dump不为空操作符类发出无效的SQL(Daniel Gustafsson)
  • 将pg_dump输出修复为Windows上的stdout(Kuntal Ghosh)
  • 写入stdout的压缩纯文本转储将包含由于未能将文件描述符置于二进制模式而导致的损坏数据。
  • 修复pg_get_ruledef()以打印已重命名列的视图的ON SELECT规则的正确输出(Tom Lane)
  • 在某些极端情况下,pg_dump依赖于pg_get_ruledef()来转储视图,因此此错误可能导致转储/重新加载失败。
  • 使用空约束修复外部联接的转储,例如没有公共列的自然LEFT JOIN的结果(Tom Lane)
  • 修复在FROM子句中转储函数表达式的情况,如果表达式没有解析为看起来像函数调用的东西(Tom Lane)
  • 将pg_basebackup输出修复到Windows上的stdout(Haribabu Kommi)
  • 由于未能将文件描述符置于二进制模式,写入stdout的备份将包含损坏的数据。
  • 修复pg_rewind以正确处理超过2GB的文件(Kuntal Ghosh,Michael Paquier)
  • 通常这些文件不会出现在PostgreSQL数据目录中,但在某些情况下可能会出现这些文件。
  • 修复pg_upgrade以确保结束WAL记录没有wal_level = minimum(Bruce Momjian)
  • 此情况可能会阻止升级的备用服务器重新连接。
  • 修复pg_xlogdump的WAL记录长度计算(Andres Freund)
  • 在postgres_fdw中,在ALTER SERVER或ALTER USER MAPPING命令(Kyotaro Horiguchi)之后重新建立与远程服务器的连接
  • 这可确保及时应用影响连接参数的选项更改。
  • 在postgres_fdw中,允许取消远程交易控制命令(Robert Haas,Rafia Sabih)
  • 此更改使我们能够在比以前更多的情况下快速逃避等待无响应的远程服务器。
  • 增加MAX_SYSCACHE_CALLBACKS以提供更多扩展空间(Tom Lane)
  • 使用gcc构建共享库时,始终使用-fPIC,而不是-fpic(Tom Lane)
  • 这可以在平台上支持更大的扩展库。
  • 在MSVC版本中,处理openssl库不在VC子目录中的情况(Andrew Dunstan)
  • 在MSVC版本中,为libxml2头文件添加适当的包含路径(Andrew Dunstan)
  • 这解决了之前需要在libxml2的标准Windows安装中移动的问题。
  • 在MSVC版本中,识别名为tcl86.lib的Tcl库(Noah Misch)
  • 在MSVC版本中,尊重vcregress.pl命令行(Andrew Dunstan)上的PROVE_FLAGS设置

类似的软件

意见 PostgreSQL

评论没有发现
添加评论
打开图片!