1.1.?主要改进点

  1. ALTER TABLE ATTACH PARTITION现在会较少的进行锁定。

  2. 改进了有很多重复项时btree索引的性能和空间利用率。

    之前重复的索引条目在其重复组中无序存储。这会导致索引插入期间的开销,由于过多的页面拆分而浪费了空间,并且降低了VACUUM回收整个页面的能力。现在重复的索引条目使用堆排序。

  3. 允许较小的多列btree索引。

  4. 通过减少锁定开销来提高btree索引插入的速度。

  5. 索引重命名时会进行更少的锁定。

  6. 改进UNION ALL对只有一个孩子的分区和查询的优化。

  7. 改进对没有检查约束域的处理。

    纯粹用作类型别名的域不再引起优化困难。

  8. 当LEAST和GREATEST的参数为常数时,对它们的调用进行预求值。

  9. 提高优化器的能力,以验证具有IS NOT NULL条件的部分索引是否可用于查询。

    在调用查询涉及强制转换或大型 x IN (数组)子句的更多情况下,现在可以识别可用性。

  10. ANALYZE使用为每列定义的排序规则计算统计信息。

    以前,数据库的默认排序规则用于所有统计信息。对于具有非默认归类的列,这可能会为优化程序提供更好的行为。

  11. 改进ctid列上不等式比较的选择性估计。

  12. 改进类型tid列上的连接优化。

    这些更改主要提高了ctid列上自连接的效率。

  13. 加快关键字查找。

  14. 改善position()相关功能中多字节字符的搜索性能。

  15. 允许对toast值进行最小程度的解压缩。

    这对于仅需要检查toast字段的初始部分的例程很有用。

  16. 允许ALTER TABLE ... SET NOT NULL避免不必要的表扫描。

    当表的列约束可以识别为不允许为空时,可以对此进行优化。

  17. 当会话时区为UTC(Noah Misch)时,允许ALTER TABLE ... SET DATA TYPE在timestamp和之间timestamptz进行更改,以避免表重写。

    在UTC时区中,这两种数据类型是二进制兼容的。

  18. 提高字符串转换为 int2或 int4整数的速度。

  19. 在SERIALIZABLE隔离模式下允许并行查询。

    以前,在此模式下禁用并行性。

  20. 对随机I/O使用 pread()和pwrite(),这减少了I/O所需的系统调用数量。

  21. 提高在FreeBSD上设置进程标题的速度。

  22. 只允许从一定百分比的事务中记录语句。

    参数log_transaction_sample_rate对此进行控制。

  23. 将校验和失败计数器添加到ux_stat_database。

  24. 在系统视图ux_stat_database中添加全局对象跟踪。

    全局对象显示为ux_stat_database,datid 值为零。

  25. 限制ux_stat_ssl非特权用户的行的可见性。

  26. 服务器启动时,发出包含服务器版本号的日志消息。

  27. 如果一个新的连接立即关闭,防止记录“不完整的启动数据包”。

    这样可以避免某些形式的监控记录垃圾邮件。

  28. 在log_connections日志消息中包含application_name(如果已设置)。

  29. 使walreceiver将其应用程序名称设置为集群名称(如果已设置)。

  30. 为WAL段的fsync添加一个等待事件。

  31. 添加GSSAPI加密支持。

    使用GSSAPI身份验证时,此功能允许对TCP/IP连接进行加密,而不必设置单独的加密工具(例如SSL)。为此,请添加hostgssenc和hostnogssenc记录类型,ux_hba.conf以选择不使用GSSAPI加密的连接,对应于现有hostssl和hostnossl记录类型。还有一个新的gssencmode libpq选项和一个ux_stat_gssapi系统视图。

  32. 允许clientcert ux_hba.conf 选项检查数据库用户名是否与客户端证书的公共名称匹配。

    启用了此新检查clientcert=verify-full。

  33. 允许使用DNS SRV记录发现LDAP服务器。

    这避免了指定的要求ldapserver。仅当UXDBSQL使用OpenLDAP编译时才支持。

  34. 允许基于时间的服务器参数使用微秒(us)。

  35. 允许为浮点服务器参数定义单位。

  36. 添加wal_recycle和wal_init_zero服务器参数来控制WAL文件的回收。

    避免文件回收对于像ZFS这样的即拷即写的文件系统是有益的。

  37. 允许在重新加载时更改某些恢复参数。

    这些参数是archive_cleanup_command,promoting_trigger_file,recovery_end_command和recovery_min_apply_delay。

  38. current为recovery_target_timeline添加一个明确的值。

  39. 如果两阶段事务状态文件已损坏,则使恢复失败。

    以前,会记录警告并继续进行恢复,从而使事务丢失。

  40. 添加REINDEX CONCURRENTLY选项,允许重新启动而不锁定写。

    这也由reindexdb应用程序的--concurrently选项控制。

  41. 添加对生成的列的支持。

    生成的列的内容是根据表达式(包括对同一表中其他列的引用)计算得出的,而不是由INSERT或UPDATE命令指定的。

  42. 向COPY FROM添加WHERE子句以控制接受哪些行。

    这提供了一种筛选传入数据的简单方法。

  43. 允许更灵活地添加枚举值。

    以前,不能在事务块中调用altertype... ADD VALUE,除非它是创建枚举类型的同一事务的一部分。 现在可以在以后的事务中调用它,只要在提交新枚举值之前不引用它。

  44. 添加命令来结束一个事务并启动一个新事务。

    命令是COMMIT AND CHAIN和ROLLBACK AND CHAIN。

  45. 添加VACUUM和CREATE TABLE选项,以防止VACUUM截断尾随的空页。

    这些选项是vacuum_truncate和toast.vacuum_truncate。使用这些选项可减少VACUUM的锁定要求,但可以防止将磁盘空间返还给操作系统。

  46. 允许VACUUM跳过索引清理。

    这个更改添加了一个VACUUM命令选项INDEX_CLEANUP以及一个表存储选项VACUUM_INDEX_CLEANUP。使用此选项降低了回收空间的能力,并可能导致索引膨胀,但是当主要目标是冻结旧的元组时,它是有帮助的。

  47. 对于不能立即被锁定的表格。添加跳过VACUUM和ANALYZE操作的能力。

    此选项称为SKIP_LOCKED。

  48. 允许VACUUM和ANALYZE采用可选的布尔参数规范。

  49. 防止TRUNCATE,VACUUM并ANALYZE请求对用户没有权限的表进行锁定。

    这样可以防止未经授权的锁定,这可能会干扰用户查询。

  50. 添加EXPLAIN选项SETTINGS以输出非默认优化器设置。

    当使用auto_explain时,也可以通过设置auto_explain.log_settings来获得这个输出。

  51. OR REPLACE为CREATE AGGREGATE添加添加选项。

  52. 允许使用 altertable 修改系统目录的选项。

    reloptions现在支持对目录和自动真空设置的修改(仍然需要设置allow_system_table_mods)。

  53. 在为外键选择默认约束名称时,使用所有键列的名称。

    以前,约束名称中只包含第一个列名,导致多列外键不明确。

  54. 更新关于Unicode的各种知识以匹配Unicode 12.1.0。

    例如,这修复了uxsql错误格式化包含组合字符的输出的情况。

  55. 更新Snowball词干词典,以支持新语言。

    这增加了对阿拉伯语,印尼语,爱尔兰语,立陶宛语,尼泊尔语和泰米尔语词干搜索的支持。

  56. 允许创建排序规则以报告不按位相等的字符串的字符串相等性。

    此功能支持“ 非确定性 ”归类,可以定义区分大小写和重音的等式比较。例如,可以比以前更容易地对文本列进行不区分大小写的唯一性约束。仅ICU归类支持此功能。

  57. 在旧的ICU版本中添加对ICU排序属性的支持。

    这允许在所有ICU版本中以一致的方式自定义排序规则。

  58. 允许数据类型名称与其他文本类型进行更无缝的比较。

    name类型的行为就像是text具有默认排序规则“ C ”的类型的域。这样可以更有效地处理交叉类型比较。

  59. 添加对hyperbolic functions的支持。

    为了符合标准,还添加log10()作为log()的别名。

  60. variance()通过使用更精确的算法来提高统计聚合的准确性。

  61. 允许date_trunc()有一个附加参数来控制时区。

    这比使用AT TIME ZONE子句更快更简单。

  62. 调整到to_timestamp()/to_date()函数,以更好地避免模板不匹配。

    这个新行为与同名的Oracle函数更加匹配。

  63. 修复XML函数中的各种错误。

    具体而言,在XMLTABLE,xpath()和中xmlexists(),修复了以下情况:节点没有任何输出,或者抛出了意外错误,或者省略了XML特殊字符的必要转义。

  64. 允许XMLEXISTS和XMLTABLE中的BY VALUE子句。

    这个sql标准的子句在UXDBSQL的实现中没有影响,但是它被不必要地拒绝了。

  65. 防止current_schema()和current_schemas()来自被并行的工人运行,因为它们不是平行的,安全的。

  66. 允许RECORD和RECORD[]用作声明返回RECORD的表函数的查询列定义列表中的列类型。

  67. 允许在同一 uxsql函数中使用与这些命令名称相同的SQL命令和变量。

    例如,允许一个名为COMMENT的变量存在于调用COMMENT SQL命令的函数中。 以前,这种组合导致了一个分析错误。

  68. 向UXSQL添加新的可选警告和错误检查。

    新的检查允许在运行时验证INTO列数和单行结果。

  69. 允许libpq(以及uxsql)仅报告SQLSTATE错误消息中的值。

  70. 从libpq的options连接参数中删除no-display/debug标志。

    这允许通过uxdb_fdw设置此参数。

  71. 允许ecpg创建bytea数据类型的变量。

    这使ECPG客户端可以bytea直接与数据进行交互,而无需使用编码形式。

  72. 添加PREPARE AS对ECPG的支持。

  73. 允许vacuumdb根据其环绕范围为真空选择表。

    选项是--min-xid-age和--min-mxid-age。

  74. 允许vacuumdb禁用等待锁定或跳过所有可见页面。

    选项是--skip-locked和--disable-page-skipping。

  75. 将彩色化添加到命令行实用程序的输出。

    这可以通过设置环境变量的UX_COLOR为always或auto来实现。使用的特定颜色可以通过使用ANSI的颜色转义码来设置环境变量的UX_COLORS 来调整。 例如,默认行为相当于:

    UX_COLORS="error=01;31:warning=01;35:locus=01"
  76. 在uxsql的输出中显示SQL命令的手册页URL。

  77. 在uxsql的conninfo中显示IP地址。

  78. 改进CREATE TABLE,CREATE TRIGGER,CREATE EVENT TRIGGER,ANALYZE,EXPLAIN,VACUUM,ALTER TABLE,ALTER INDEX,ALTER DATABASE,和ALTER INDEX ALTER COLUMN选项卡。

  79. 允许将查询产生的值分配给uxbench变量。

    这个命令是\gset。

  80. 通过更清晰的消息和返回码来改进uxbench的错误报告。

    以前,这只能通过SQL函数或过程信号来实现。

  81. 修复ux_test_fsync以open_datasync在Windows上报告准确的持续时间。

  82. 将并行ux_dump中的操作顺序与后续并行ux_restore恢复所使用的顺序解耦。

    这允许ux_restore执行更完全并行化的并行还原,特别是在原始转储不是并行执行的情况下。并行ux_dump的调度也有所改进。

  83. 允许为ux_dump和ux_dumpall指定extra_float_digits设置。

    这主要用于生成在不同源服务器版本之间完全可比的转储。不建议正常使用,因为在恢复转储时可能会导致精度损失。

  84. --exclude-database为ux_dumpall添加选项。

  85. 添加CREATE ACCESS METHOD命令以创建新表类型。

    这使得可以开发新的表访问方法,这些方法可以优化不同用例的存储。现有的堆访问方法仍然是缺省的。

  86. 添加计划支持函数接口,以改进优化器的估计、内联和函数索引。

    这使扩展程序可以创建计划程序支持功能,这些功能可以提供特定于功能的选择性,成本和行数估计,这些估计取决于功能的参数。支持功能还可以提供简化的表示形式和索引条件,从而大大扩展了优化的可能性。

  87. 简化手动分配的OID的重新编号,并建立用于管理此类OID的新项目策略。

    手动为新的内置对象(例如新功能)分配OID的修补程序现在应该在8000-9999范围内随机选择OID。在开发周期结束时,将xxx使用新renumber_oids.pl脚本将已提交补丁所使用的OID重新编号为较小的数字,目前在4 范围内。这种方法应大大降低不同进程内补丁之间发生OID冲突的几率。

    虽然没有保留任何OID供外部使用的特定策略,但建议分叉和其他需要私有手动分配OID的项目使用高7 xxx范围的数字。这将避免与最近合并的补丁程序发生冲突,并且核心项目要达到该范围还需要很长时。

  88. 使用动态库而不是静态库构建Cygwin二进制文件。

  89. 删除配置开关--disable-strong-random。

    现在需要一个强大的随机数源。

  90. Printf-family函数以及strerror和strerror_r现在在USDB代码中的各个平台行为一致。

    值得注意的是,printf可以在任何地方都理解% m; 在Windows上,strerror处理Winsock错误代码(它曾经在后端但不是在前端代码中这样做);并strerror_r始终遵循GNU返回约定。

  91. 在Windows上需要兼容C99的编译器和MSVC 2013或更高版本。

  92. 使用pandoc而非lynx生成纯文本文档输出文件。

    这仅影响在INSTALL生成期间生成的文件make dist以及很少使用的纯文本uxdb.txt输出文件。Pandoc比lynx产生更好的输出,并且避免了某些区域设置/编码问题。需要Pandoc 1.13或更高版本。

  93. 支持使用UXDBSQL文档中的图像。

  94. 在更多情况下,允许将ORDER BY排序和LIMIT子句推入uxdb_fdw外部服务器中。

  95. 改善针对uxdb_fdw查询的优化程序成本核算。

  96. 对于引用uxdb_fdw表的视图,正确地执行withcheck选项。

    尽管uxdb_fdw表上的CHECK OPTIONs被忽略(因为引用是外部的) ,但是这些表上的视图被认为是本地的,所以这个更改对它们强制执行CHECK OPTIONs。 以前,只验证带有返回 heckoption值的 RETURNING子句的 INSERTs和UPDATEs。

  97. 允许ux_stat_statements_reset()更精细。

    该功能现在允许重置特定数据库,用户和查询的统计信息。

  98. 允许控制auto_explain日志级别。

    默认值为LOG。

  99. 使用新的标点符号更新无重音规则。

  100. 允许不重音处理编码为组合字符的某些重音。

  101. 允许去除希腊字符的重音符号。

  102. 在amcheck的bt_index_parent_check()函数中添加一个参数,以检查树根的每个索引元组。

  103. 改进oid2name和vacuumlo选项处理以匹配其他命令。

  104. 分区表上的支持索引。

    分区表上的“ 索引 ”不是整个分区表上的物理索引,而是用于在表的每个分区上自动创建相似索引的模板。

    如果分区键是索引的列集的一部分,则可以声明分区索引UNIQUE。即使每个物理索引仅在其自己的分区内强制执行唯一性,它仍将代表整个分区表的有效唯一性约束。

    新命令ALTER INDEX ATTACH PARTITION使分区上的现有索引与其分区表的匹配索引模板相关联。这为设置现有分区表的新分区索引提供了灵活性。

  105. 允许FOR EACH ROW在分区表上触发。

    在分区表上创建触发器会自动在所有现有和将来的分区上创建触发器。这也允许在分区表上延迟唯一约束。

  106. 允许INSERT,UPDATE和COPY分区表上的行正确地将行路由到外部分区。

    uxdb_fdw外部表支持此功能。由于ExecForeignInsert为此调用回调函数的方式与以前不同,因此必须修改外部数据包装程序以应对此更改。

  107. 允许在查询处理期间更快地消除分区。

    这样可以加快对具有多个分区的分区表的访问。

  108. 允许在查询执行期间消除分区。

    以前,分区消除仅在计划时发生,这意味着许多联接和准备好的查询无法使用分区消除。

  109. 在分区表之间的相等联接中,允许将匹配的分区直接联接。

    默认情况下禁用此功能,但可以通过更改启用此功能enable_partitionwise_join。

  110. 允许针对每个分区分别评估分区表上的聚合函数,随后合并结果。

    默认情况下禁用此功能,但可以通过更改启用此功能enable_partitionwise_aggregate。

  111. 允许uxdb_fdw将聚合下推到作为分区的外部表中。

  112. 允许并行构建btree索引,

  113. 允许分区扫描以更有效地使用并行工作器,

  114. 允许LIMIT传递给并行工作者,

    这使工作人员可以减少返回的结果并使用目标索引扫描,

  115. 允许单求值查询(例如:WHERE子句聚合查询)和目标列表中的函数并行化。

  116. 添加服务器参数parallel_leader_participation以控制领导者是否还执行子计划。

    默认设置为启用,这意味着领导者将执行子计划。

  117. 允许命令CREATE TABLE ... AS,SELECT INTO和CREATE MATERIALIZED VIEW的并行化。

  118. 与许多并行工作人员一起提高顺序扫描的性能。

  119. 在EXPLAIN中添加并行工作者分类活动的报告。

  120. 允许btree索引包括不属于搜索关键字或唯一约束但可以通过仅索引扫描读取的列。

    这是通过的新INCLUDE子句启用的CREATE INDEX。它有助于构建“ 覆盖索引 ”,以优化特定类型的查询。即使列的数据类型不支持btree,也可以将其包括在内。

  121. 改善单调增加索引添加的性能。

  122. 提高哈希索引扫描的性能。

  123. 提高哈希索引扫描的性能。

  124. 如果单个SELECT不能并行化,则允许UNION并行运行每个SELECT。

  125. 为哈希,GiST和GIN索引添加谓词锁定。

    这减少了可序列化模式事务中发生序列化冲突的可能性。

  126. 添加SP-GiST支持的前缀匹配运算符text ^@text。

    这类似于在btree索引中使用var LIKE‘ word% ’ ,但是它更有效。

  127. 允许使用SP-GiST对多边形进行索引。

  128. 允许SP-GiST使用叶键的损耗表示。

  129. 改进对最常见统计值的选择。

    以前,最常见的值(mcv)是根据它们与所有列值的频率进行比较来确定的。 现在,mcv的选择是基于它们与非mcv值相比的频率。 这提高了算法对均匀和非均匀分布的鲁棒性。

  130. 改善对>=和<=的选择性。

    以前,这样的情况下使用了相同的选择性估计为>与<分别除非该比较常数MCV秒。对于涉及BETWEEN较小范围的查询,此更改特别有用。

  131. 减少到等效值var=var到var IS NOT NULL。

    这导致更好的选择性估计。

  132. 改进EXISTS和NOT EXISTS查询的优化器行数。

  133. 让优化器考虑评估成本和HAVING子句的选择性。

  134. 允许位图扫描在可能的情况下执行仅索引扫描。

  135. 在VACUUM期间更新可用空间图。

    这样可以更快地重用可用空间。

  136. 允许VACUUM避免不必要的索引扫描。

  137. 提高提交多个并发事务的性能。

  138. 使用目标列表中的返回设置的函数来减少查询的内存使用量。

  139. 提高聚合计算的速度。

  140. 允许使用连接uxdb_fdw将UPDATEs和DELETEs推送到外部服务器。

    以前,仅推送非连接UPDATEs和DELETEs。

  141. 在Windows上添加对大页面的支持。

    这由huge_pages配置参数控制。

  142. 添加列ux_stat_activity。backend_type显示背景工作者的类型。

    该类型在ps输出中也可见。

  143. 使log_autovacuum_min_duration同时删除的已跳过日志的表。

  144. 添加与表约束和触发器相关的information_schema列。

    具体来说,triggers.action_order, triggers.action_reference_old_table和 triggers.action_reference_new_table现在已填充,在此之前它们始终为null。另外,table_constraints.enforced现在存在,但是还没有有效的应用。

  145. 允许服务器在搜索+绑定模式下指定更复杂的LDAP规范。

    ldapsearchfilter允许使用LDAP属性组合的模式匹配。

  146. 允许LDAP身份验证使用加密的LDAP。

    澳门游戏平台注册网站已经支持LDAP在TLS使用ldaptls=1。使用或启用了这种用于加密LDAP的新TLS LDAP方法。ldapscheme=ldapsldapurl=ldaps://。

  147. 改善LDAP错误的记录。

  148. 允许对文件系统功能的访问由GRANT/ REVOKE权限控制,而不是由超级用户检查。

    这些功能被修改:ux_ls_dir(),ux_read_file(),ux_read_binary_file(),ux_stat_file()。

  149. 使用GRANT/REVOKE控制对lo_import()和lo_export()的访问。

    以前,仅授予超级用户访问这些功能的权限。

    编译时选项ALLOW_DANGEROUS_LO_FUNCTIONS已被删除。

  150. 防止对uxdb_fdw表进行非密码访问时,使用视图所有者而非会话所有者。

    UXDBSQL仅允许超级用户uxdb_fdw通过密码访问表,而无需输入密码peer。以前,会话所有者必须是超级用户才能允许这种访问。现在,将改为检查视图所有者。

  151. 修复SELECT FOR UPDATE视图上无效的锁定权限签入。

  152. 添加服务器设置,ssl_passphrase_command以允许提供SSL密钥文件的密码。

    还添加ssl_passphrase_command_supports_reload以指定在服务器配置重新加载期间是否应重新加载和调用SSL配置ssl_passphrase_command。

  153. 添加存储参数toast_tuple_target以控制最小元组长度,然后再考虑使用TOAST存储。

    默认的TOAST阈值尚未更改。

  154. 允许以字节为单位指定与内存和文件大小有关的服务器选项。

    新的单位后缀为“ B ”。这是对现有单位“ kB ”,“ MB ”,“ GB ”和“ TB ”的补充。

  155. 仅保留单个检查点的WAL数据。

    以前,WAL被保留了两个检查点。

  156. 用零填充强制切换的WAL段文件的未使用部分,以提高可压缩性。

  157. 使用逻辑复制时复制TRUNCATE活动。

  158. 将准备好的事务信息传递给逻辑复制订户。

  159. 从流式基本备份中排除未记录日志的表、临时表和ux_internal.init文件。

    无需复制此类文件。

  160. 允许在流式基础备份期间验证堆页面的校验和。

  161. 允许通过编程方式高级复制插槽,而不是供订户使用。

    当不需要使用内容时,这可以使复制插槽有效地前进。这是由ux_replication_slot_advance()执行的。

  162. 将时间线信息添加到backup_label文件中。

    还要添加一个检查,以确保WAL时间线与backup_label文件的时间线匹配。

  163. 将主机和端口连接信息添加到ux_stat_wal_receiver系统视图。

  164. 允许ALTER TABLE添加具有非空默认值的列,而无需执行表重写。

    当默认值为常数时启用。

  165. 允许通过锁定基础表来锁定视图。

  166. 允许ALTER INDEX为表达式索引设置统计信息收集目标。

    在uxsql中,\d+现在显示索引的统计目标。

  167. 允许在一个VACUUM或ANALYZE命令中指定多个表。

    此外,如果 VACUUM 中提到的任何表使用列列表,则必须提供 ANALYZE 关键字; 以前,在这种情况下暗示使用 ANALYZE。

  168. 向ANALYZE添加括号选项语法。

    这类似于所支持的语法VACUUM。

  169. 添加CREATE AGGREGATE选项以指定聚合的终结函数的行为。

    这有助于优化用户定义的聚合函数,并使其成为窗口函数。

  170. 允许创建域数组。

    这也允许array_agg()在域上使用。

  171. 支持复合类型的域。

    还允许PL/Perl,PL/Python和PL/Tcl处理复合域函数的参数和结果。还可以改善PL/Python域的处理。

  172. 将JSONB标量的类型转换添加到数字和布尔数据类型。

  173. 添加SQL:2011指定的所有窗口函数框架选项。

    具体来说,允许RANGE模式使用PRECEDING和FOLLOWING选择分组值在正负指定偏移量之内的行。添加GROUPS方式包括对等组数的正负。帧排除语法也被添加。

  174. 添加对64位非加密哈希函数的支持。

  175. 允许to_char()并to_timestamp()指定时区与UTC的时差,以小时和分钟为单位。

    这是用TZH和TZM格式规范完成的。

  176. 添加文本搜索功能websearch_to_tsquery(),该功能支持与Web搜索引擎所使用的查询语法类似的查询语法。

  177. 添加函数json(b)_to_tsvector()以创建文本搜索查询以匹配JSON/JSONB值。

  178. 添加sql级别的过程,它们可以启动和提交自己的事务。

    它们是用新的CREATE PROCEDURE命令创建的,并通过CALL调用。

    新的ALTER/DROP ROUTINE命令允许更改/删除所有类似例程的对象,包括过程、函数和聚合。

    此外,在CREATE OPERATOR和CREATE TRIGGER中编写FUNCTION现在比编写PROCEDURE更受欢迎,因为被引用的对象必须是函数而不是过程。 但是,为了兼容性,仍然接受旧的语法。

  179. 将事务控制添加到PL/UXSQL,PL/Perl,PL/Python,PL/Tcl和SPI服务器端语言。

    事务控制只能在顶级事务级过程和嵌套的DO和CALL 块中使用,这些DO和CALL块只包含其他DO和CALL块。

  180. 添加将PL/UXDBSQL复合类型变量定义为非空、常量或初始值的能力。

  181. 允许PL/UXDBSQL处理在同一会话中第一次和以后的函数执行之间发生的对复合类型(例如记录、行)的更改。

    以前,这种情况会产生错误。

  182. 添加扩展jsonb_plpython以转换JSONB为PL/Python类型或从PL/Python类型转换。

  183. 添加扩展jsonb_plperl以转换JSONB为PL/Perl类型或从PL/Perl类型转换。

  184. 将libpq更改为默认禁用压缩。

    在现代OpenSSL版本中,压缩功能已被禁用,因此libpq设置对此类库无效。

  185. DO CONTINUE在ecpg的WHENEVER声明中添加选项。

    这将生成C continue语句,从而在指定条件发生时返回到包含循环的顶部。

  186. 添加ecpg模式以启用Oracle Pro * C风格的char数组处理。

    这个模式是用-c启用的。

  187. 添加uxsql命令\gdesc以显示查询结果中列的名称和类型。

  188. 添加uxsql变量以报告查询活动和错误。

    新的变量是ERROR,SQLSTATE,ROW_COUNT,LAST_ERROR_MESSAGE,和LAST_ERROR_SQLSTATE。

  189. 允许uxsql测试变量是否存在。

    语法:{?variable_name}允许在\if语句中测试变量的存在。

  190. 允许环境变量UXSQL_PAGER控制uxsql的寻呼机。

    这允许将uxsql的默认页导航指定为独立于其他应用程序的页导航环境变量。如果未设置PSQL_PAGER,则仍然使用PAGER。

  191. 允许quit和exit在没有事先输入的情况下退出uxsql。

    还打印有关在输入缓冲区不为空时何时quit和exit在一行上单独使用时如何退出的提示。为添加类似的提示help。

  192. 确保在提示输入密码时,uxsql报告正确的用户名。

    以前,嵌入在URI中的-u和用户名的组合导致了错误的报告。当指定--password时,还要在密码提示符前禁止显示用户名。

  193. 当仅在一行中输入\q但忽略时,使用control-D进行uxsql提示。

    例如,\q以字符串形式输入时不退出。

  194. 改进ALTER INDEX RESET/SET的制表符完成。

  195. 添加基础结构以允许uxsql根据服务器版本调整其制表符完成查询。

    以前,选项卡补全查询可能会针对较旧的服务器失败。

  196. 添加对NULL,布尔值以及某些函数和运算符的uxbench表达式支持。

  197. 添加if条件支持uxbench。

  198. 允许在uxbench变量名称中使用非ASCII字符。

  199. 添加uxbench选项--init-steps以控制执行的初始化步骤。

  200. 在uxbench中添加一个近似zipfian分布式随机生成器。

  201. 允许在uxbench中设置随机种子。

  202. 允许uxbench使用pow()和power()进行求幂运算。

  203. 将哈希函数添加到uxbench。

  204. 在使用-- latency-limit和-- rate时,使uxbench统计数据更加准确。

  205. 在ux_basebackup中添加一个选项,以创建一个命名的复制槽。

    使用WAL streaming方法(-- WAL-method = stream)时,create-slot选项创建命名的复制槽(-- slot)。

  206. 允许initdb设置对数据目录的组读取访问权限。

    这可以通过新的initdb选项完成--allow-group-access。管理员还可以在运行initdb之前在空数据目录上设置组权限。服务器变量data_directory_mode允许读取数据目录组权限。

  207. 添加ux_verify_checksums工具以在脱机时验证数据库校验和。

  208. 允许ux_resetwal通过--wal-segsize改变WAL段的大小。

  209. 向ux_resetwal和ux_controldata添加长选项。

  210. 添加ux_receivewal选项--no-sync以防止同步WAL写操作,以进行测试。

  211. 添加ux_receivewal选项--endpos以指定应该何时停止接收WAL。

  212. 允许ux_ctl向进程发送SIGKILL信号。

    由于担心滥用,以前不提供支持。

  213. 减少ux_rewind复制的文件数量。

  214. 阻止ux_rewind以root身份运行。

  215. 添加ux_dumpall选项--encoding以控制输出编码。

    ux_dump已经有了这个选项。

  216. 添加ux_dump选项--load-via-partition-root以强制将数据加载到分区的根表中,而不是原始分区中。

    如果要加载到的系统具有不同的排序规则定义或字节序,可能需要将行存储在不同的分区中,那么这种方法很有用。

  217. 添加一个选项以禁止转储和还原数据库对象注。

    新的ux_dump,ux_dumpall和ux_restore选项为--no-comments。

  218. 添加UXXS支持安装包含文件。

    这支持创建依赖于其他模块的扩展模块。以前,从属模块没有简单的方法来找到所引用的包含文件。已contrib对定义数据类型的几个现有模块进行了调整,以安装相关文件。而且,PL/Perl和PL/Python现在安装它们的包含文件,以支持为这些语言创建转换模块。

  219. 安装errcodes.txt以允许扩展访问UxdbSQL已知的错误代码列表。

  220. 将文档转换为DocBook XML。

    文件名仍使用sgml扩展名与后分支兼容。

  221. 使用stdoutbool.h在最适合的平台上定义bool类型。

    这消除了需要包含的扩展模块的编码风险stdbool.h。

  222. 检修定义初始系统目录内容的方式。

    现在,初始数据以Perl数据结构表示,从而更容易进行机械操作。

  223. 防止扩展程序创建使用值的引号列表的自定义服务器参数。

    目前尚不支持此功能,因为即使在加载扩展之前,也需要了解参数的属性。

  224. 允许后台工作人员连接到通常禁止连接的数据库。

  225. 在ARMv8上添加对硬件CRC计算的支持。

  226. 通过OID加快对内置函数的查找。

    先前的二进制搜索已由查找数组代替。

  227. 加快查询结果的构建。

  228. 提高访问系统缓存的速度。

  229. 添加针对串行分配/取消分配进行了优化的分代内存分配器。

    这减少了逻辑解码的内存使用量。

  230. 进行的计算ux_clas.reltuples通过VACUUM与ANALYZE的计算一致。

  231. 更新以使用完美版本20170521。

  232. 允许扩展ux_prewarm在启动时还原以前的共享缓冲区内容。

    这是通过ux_prewarm在服务器运行期间和关闭时偶尔将共享缓冲区的关系和块号数据存储到磁盘来实现的。

  233. 添加ux_trgm函数strict_word_similarity()以计算整个单词的相似度。

    word_similarity()功能已经存在,但它旨在查找单词的相似部分,同时strict_word_similarity()计算与整个单词的相似度。

  234. 允许btree_gin索引bool,bpchar,name和uuid数据类型。

  235. 允许cube和seg扩展使用GiST索引执行仅索引扫描。

  236. 允许使用~>运算符检索立方负坐标。

    在按降序查找坐标时,这对于KNN-GiST搜索很有用。

  237. 将越南文字处理添加到unaccent扩展名中。

  238. 增强amcheck以检查每个堆元组都有一个索引项。

  239. 让adminpack使用新的默认文件系统访问角色。

    以前,只有超级用户可以调用adminpack函数; 现在检查角色权限。

  240. 将ux_stat_statement查询ID扩展为64位。

    这大大减少了查询ID哈希冲突的机会。现在,查询ID可能会显示为负值。

  241. 删除contrib/start-scripts/osx 脚本,因为不再推荐使用它们(改为使用contrib/start-scripts/macos)。

  242. 删除chkpass扩展名。

    此扩展不再被视为可用的安全工具或如何编写扩展的示例。

XML 地图 | Sitemap 地图