PostgreSQL 10.1 手册_部分 III. 服务器管理_第 19 章 服务器配置_19.13. 版本和平台兼容性

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 19.13. 版本和平台兼容性 19.13.1. 以前的 PostgreSQL 版本 19.13.2. 平台和客户端兼容性 19.13.1. 以前的 PostgreSQL 版本 array_nulls (boolean) 这个参数控制数组输入解析器是否把未用引号的NULL识别为一个空数组元素。

19.13. 版本和平台兼容性

19.13.1. 以前的 PostgreSQL 版本

array_nulls (boolean)

这个参数控制数组输入解析器是否把未用引号的NULL识别为一个空数组元素。默认为on,允许输入包含空值的数组值。但是PostgreSQL 8.2 之前的版本不支持数组中的空值,并且因此将把NULL当作指定一个值为字符串NULL的正常数组元素。对于那些要求旧行为的应用的向后兼容性,这个变量可以被设置为off

注意即使这个变量为off也能够创建包含空值的数组值。

backslash_quote (enum)

这个参数控制字符串文本中的单引号是否能够用\'来表示。首选的 SQL 标准的方法是将其双写(''),但是PostgreSQL在历史上也接受\'。不过使用\'容易导致安全风险,因为在某些客户端字符集编码中,有多字节字符的最后一个字节在数值上等价于 ASCII 的\'。如果客户端代码没有做到正确转义,那么将会导致 SQL 注入攻击。如果服务器拒绝看起来带有被反斜线转义的单引号的查询,那么就可以避免这种风险。backslash_quote的可用值是on(总是允许\')、off(总是拒绝)以及safe_encoding(只有客户端编码不允许在多字节字符中存在 ASCII \时允许)。safe_encoding是默认设置。

注意在符合标准的字符串文本中,\就表示\。这个参数只影响不符合标准的文本的处理,包括转义字符串语法(E'...')。

default_with_oids (boolean)

这个参数控制CREATE TABLECREATE TABLE AS在既没有指定WITH OIDS也没有指定WITHOUT OIDS的情况下,是否在新创建的表中包含 OID 列。它还决定被SELECT INTO创建的表里面是否包含 OID 。这个参数在默认情况下为off。在PostgreSQL 8.0 及更早的版本中,它默认为on

我们反对在用户表中使用 OID ,因此大多数安装应该禁用这个变量。需要为一个特殊表使用 OID 的应用应该在创建表的时候指定WITH OIDS。为了兼容不遵循这一行为的老旧应用,这个变量可以被启用。

escape_string_warning (boolean)

打开时,如果在普通字符串文本中('...'语法)出现了 一个反斜线(\)并且standard_conforming_strings为关闭,那么就会发出一个警告。默认值是on

希望使用反斜线作为转义符的应用应该被修改来使用转义字符串语法(E'...'),因为在 SQL 标准中普通字符串的默认行为是将反斜线视作一个普通字符。这个变量可以被启用来帮助定位需要被更改的代码。

lo_compat_privileges (boolean)

PostgreSQL 9.0之前的版本中,大对象没有连接权限,并且对所有用户都是可读可写的。 将这个变量设置为on,从而禁用新的权限检查,以与以前的版本兼容。 默认是off。 只有超级用户可以更改这个设置。

设置这个参数不会禁用所有与大对象相关的安全检查 — 除了那些在PostgreSQL 9.0中已经修改了的默认行为。例如,lo_import()lo_export()需要超级用户权限而不管这个设置。

operator_precedence_warning (boolean)

当开启时,解析器为了可能修改的任何结构发出警告, 意味着PostgreSQL 9.4操作符优先级中作为修改结果。 对审计应用程序是非常有用的, 看看是否优先更改会打断任何东西; 但它并不意味着在生成过程中保持开启, 因为它会对一些完全有效的,符合标准的SQL代码发出警告。 缺省off

参阅第 4.1.6 节获取更多信息。

quote_all_identifiers (boolean)

当数据库产生 SQL 时,强制所有标识符被引号包围,即使它们(当前)不是关键字。这将影响EXPLAIN的输出以及pg_get_viewdef等函数的结果。另请参阅pg_dumppg_dumpall--quote-all-identifiers选项。

standard_conforming_strings (boolean)

控制普通字符串文本('...')是否按照 SQL 标准把反斜线当普通文本。从PostgreSQL 9.1 开始,默认值为on(之前的发行中默认值为off)。应用可以检查这个参数来判断字符串文本如何被处理。这个参数的存在也可以被当做转义字符串语法(E'...')被支持的标志。如果一个应用希望反斜线被当做转义字符,应该使用转义字符串语法(第 4.1.2.2 节)。

synchronize_seqscans (boolean)

它允许对大型表的顺序扫描与其他扫描同步,因此并发扫描可以在几乎相同的时刻读取相同的块,这样可以分担 I/O 负载。当启用这个参数时,一个扫描可能会从表的中间开始并且之后绕回到开头以覆盖所有的行,这样可以与已在进行中的扫描活动同步。对于没有ORDER BY子句的查询来,这样的扫描会在返回行的顺序中造成不可预料的改变。将这个参数设置为off以保证 8.3 之前的行为(顺序扫描总是从表的起始处开始)。默认值是on

19.13.2. 平台和客户端兼容性

transform_null_equals (boolean)

当打开时,形为expr = NULL(或NULL = expr)的表达式将被当做expr IS NULL, 也就是说,如果expr得出空值值则返回真,否则返回假。正确的 SQL 标准兼容的expr = NULL行为总是返回空(未知)。因此这个参数默认为off

不过,在Microsoft Access里的过滤表单生成的查询似乎使用expr = NULL来测试空值,因此,如果你使用这个接口访问数据库,你可能想把这个选项打开。因为expr = NULL形式的表达式总是返回空值(使用 SQL 标准解释)。它们不是非常有用并且在普通应用中也不常见,在应用中也不常见,因此这个选项实际上没有什么危害。但是新用户常常对涉及 空值的表达式的语义上感到困惑,因此这个选项默认为关闭。

请注意这个选项只影响 = NULL形式,而不影响其它比较操作符或者其它与一些涉及等值操作符的表达式在计算上等效的其他表达式(例如IN)。因此,这个选项不是劣质程序的一般修复。

相关信息请见第 9.2 节

本文转自PostgreSQL中文社区,原文链接:19.13. 版本和平台兼容性

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
10天前
|
关系型数据库 MySQL 数据库
mysql卸载、下载、安装(window版本)
mysql卸载、下载、安装(window版本)
|
1月前
|
存储 数据安全/隐私保护 索引
Windows Server 各版本搭建文件服务器实现共享文件(03~19)
Windows Server 各版本搭建文件服务器实现共享文件(03~19)
121 1
|
29天前
|
关系型数据库 MySQL 数据库
django4版本提示 django.db.utils.NotSupportedError: MySQL 8 or later is required (found 5.7.26)
在学习Django时,用户遇到`django.db.utils.NotSupportedError`,提示需要MySQL 8.0.25或更高版本,但其系统上是5.7.26。为解决这个问题,用户决定不升级MySQL,而是选择注释掉Django源码中的数据库版本检查。通过Python命令行找到Django安装路径,进入`db/backends/base/base.py`,注释掉`self.check_database_version_supported()`函数
93 0
|
20天前
|
SQL 关系型数据库 MySQL
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
93 0
|
1月前
|
弹性计算 大数据 云计算
阿里云最便宜的云服务器多少钱一年?2024年阿里云服务器配置报价参考
阿里云最便宜的云服务器多少钱一年?在云计算的浪潮中,阿里云作为行业佼佼者,经常推出各种优惠活动。近期,阿里云为新用户推出了两款极具竞争力的服务器产品:一款是2核2G3M的轻量应用服务器,秒杀价年付仅需61元;另一款则是同配置的云服务器ECS,年费仅需99元。那么,面对这两款服务器,我们该如何选择呢?
|
11天前
|
弹性计算 前端开发 Java
使用阿里云 mqtt serverless 版本超低成本快速实现 webscoket 长链接服务器
使用阿里云 MQTT Serverless 可轻松实现弹性伸缩的 WebSocket 服务,每日成本低至几元。适用于小程序消息推送的 MQTT P2P 模式。前端需注意安全,避免 AK 泄露,采用一机一密方案。后端通过调用 `RegisterDeviceCredential` API 发送消息。示例代码包括 JavaScript 前端连接和 Java 后端发送。
100 0
|
20天前
|
网络协议 Linux 网络安全
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
17 0
|
1月前
|
数据安全/隐私保护 Windows
Windows Server 各版本搭建终端服务器实现远程访问(03~19)
左下角开始➡管理工具➡管理您的服务器,点击添加或删除角色点击下一步勾选自定义,点击下一步蒂埃涅吉终端服务器,点击下一步点击确定重新登录后点击确定点击开始➡管理工具➡计算机管理,展开本地用户和组,点击组可以发现有个组关门用来远程登录右键这个组点击属性,点击添加输入要添加的用户名,点击确定添加成功后点击确定打开另一台虚拟机(前提是在同一个局域网内),按 WIN + R 输入 mstsc 后回车输入 IP 地址后点击连接输入用户名及密码后点击确定连接成功!
32 0
|
1月前
|
Windows
Windows Server 各版本搭建 Web 服务器实现访问本地 Web 网站(03~19)
Windows Server 各版本搭建 Web 服务器实现访问本地 Web 网站(03~19)
52 2
|
1月前
|
弹性计算 缓存 数据库
2核4G配置服务器一年多少钱?2024年阿里云2核4G配置服务器配置报价
2核4G配置服务器一年多少钱?2024年阿里云2核4G配置服务器配置报价