gaussdb 数据库参数说明【版本和平台兼容性】【14】

1. 历史版本兼容性

数据库系统的向后兼容性能够为对旧版本的数据库应用提供支持。

array_nulls
参数说明:控制数组输入解析器是否将未用引用的 NULL 识别为数组的一个 NULL 元素。

取值范围:布尔型

  • on 表示允许向数组中输入空元素。但 PostgreSQL 8.2 之前的版本不支持这么做,因此将把 NULL 当作字符串 “NULL” 。
  • off 表示向下兼容旧式模式。仍然能够创建包含 NULL 值的数组。
  • 默认值:on

backslash_quote
参数说明:控制字符串文本中的单引号是否能够用 \’ 表示。

符合 SQL 标准的写法是将其双写(’’),之前版本的 PostgreSQL 允许使用\’ 表示。但是使用 ’ 容易导致安全漏洞,因为存在某些多字节字符集中的最后一个字节与 \ 的 ASCII 值相等。服务器拒绝带有反斜杠转义的查询可以预防这种风险。

注意:
在字符串文本符合 SQL 标准的情况下,\ 没有任何其他含义。这个参数影响的是如何处理不符合标准的字符串文本,包括明确的字符串转义语法是(E’…’)。

取值范围:枚举类型

  • on 表示一直允许使用 \’ 表示。
  • off 表示拒绝使用 \’ 表示。
  • safe_encoding 表示仅在客户端字符集编码不会在多字节字符末尾包含 \ 的 ASCII 值时允许。
  • 默认值:safe_encoding

default_with_oids
参数说明:在没有声明 WITH OIDS 和 WITHOUT OIDS 的情况下,这个选项控制在新创建的表中 CREATE TABLE 和 CREATE TABLE AS 是否包含一个 OID 字段。它还决定 SELECT INTO 创建的表里面是否包含 OID 。

不推荐在用户表中使用 OID ,故默认设置为 off。需要带有 OID 字段的表应该在创建时声明 WITH OIDS 。

取值范围:枚举类型

说明:

  • 在 PostgreSQL 8.1 之后 default_with_oids 缺省为由 on 改为 off 。
  • 默认值:off

escape_string_warning
参数说明:警告在普通字符串中直接使用反斜杠转义。

  • 如果需要使用反斜杠作为转义,可以调整为使用转义字符串语法(E’…’)来做转义,因为在每个 SQL 标准中,普通字符串的默认行为现在将反斜杠作为一个普通字符。
  • 这个变量可以帮助定位需要改变的代码。

取值范围:布尔型

  • 默认值:on

lo_compat_privileges
参数说明:控制是否启动对大对象权限检查的向后兼容模式。

取值范围:布尔型

  • on 表示当读取或修改大对象时禁用权限检查,与PostgreSQL 9.0 以前的版本兼容。
  • 默认值:off

quote_all_identifiers
参数说明:当数据库生成 SQL 时,此选项强制引用所有的标识符(包括非关键字)。这将影响到 EXPLAN 的输出及函数的结果,例如 pg_get_viewdef。 详细说明请参见 gs_dump 的 --quote-all-identifiers 选项。

取值范围:布尔型

  • 默认值:off

sql_inheritance
参数说明:控制继承语义。

取值范围:布尔型

  • off 表示各种命令不能访问子表,即默认使用 ONLY 关键字。这是为了兼容 7.1 之前版本而设置的。
  • 默认值:on

standard_conforming_strings
参数说明:控制普通字符串文本(’…’)中是否按照 SQL 标准把反斜扛当普通文本。

  • 应用程序通过检查这个参数可以判断字符串文本的处理方式。
    建议明确使用转义字符串语法(E’…’)来转义字符。

取值范围:布尔型

说明:

  • 从 PostgreSQL 9.1 版本开始,默认值改为由 off 改为 on。
  • 默认值:on

synchronize_seqscans
参数说明:控制启动同步的顺序扫描。在大约相同的时间内并行扫描读取相同的数据块,共享 I/O 负载。

取值范围:布尔型

  • on 表示扫描可能从表的中间开始,然后选择"环绕"方式来覆盖所有的行,为了与已经在进行中的扫描活动同步。这可能会造成没有用 ORDER BY 子句的查询得到行排序造成不可预测的后果。
  • off 表示确保 PostgreSQL 8.3 之前的版本的顺序扫描是从表头开始的。
  • 默认值 :on

2. 平台和客户端兼容性

transform_null_equals
参数说明:控制表达式expr = NULL(或 NULL = expr)当做expr IS NULL处理。如果expr得出NULL值则返回真,否则返回假。

  • 正确的SQL标准兼容的expr = NULL总是返回NULL(未知)。
  • Microsoft Access里的过滤表单生成的查询使用expr = NULL来测试空值。打开这个选项,可以使用该接口来访问数据库。

注意:
这个选项只影响 = NULL精确形式,不包括其他比较操作符或者其他与一些涉及等号操作符的表达式计算(比如 IN)。

取值范围:布尔型

  • 默认值:off,新用户经常在涉及NULL的表达式上语义混淆,故默认值设为off。

is_equal_nullstring_and_nullvalues
参数说明:控制空字符串’'与空值NULL是否等价。

  • on表示SQL语句中的空字符串’'在语法分析阶段会被当做空值NULL来处理。
  • off表示空字符串’'不会被当做NULL来处理。

说明:

  • 当sql_format=mysql时,空字符串’'也不会被当做NULL来处理。二者是"或"的关系,即只要满足前面任何一个条件,空字符串都与NULL不等价。

取值范围:布尔型

  • 默认值:on,即空字符串与NULL是等价的。

sql_format
参数说明:控制数据库的SQL语法和语句行为同哪一个主流数据库兼容。

  • oracle表示同oracle兼容。
  • mysql表示同mysql兼容。

取值范围:枚举型

  • 默认值:oracle
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值