更新时间:2023-10-23 GMT+08:00

历史版本兼容性

GaussDB介绍数据库的向下兼容性和对外兼容性特性的参数控制。数据库系统的向后兼容性能够为旧版本的数据库应用提供支持。本节介绍的参数主要控制数据库的向后兼容性。

array_nulls

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

该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

取值范围:布尔型

  • on表示允许向数组中输入空元素。
  • off表示向下兼容旧式模式。仍然能够创建包含NULL值的数组。

默认值:on

backslash_quote

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

该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

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

取值范围:枚举类型

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

默认值:safe_encoding

escape_string_warning

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

  • 如果需要使用反斜杠作为转义,可以调整为使用转义字符串语法(E'...')来做转义,因为在每个SQL标准中,普通字符串的默认行为现在将反斜杠作为一个普通字符。
  • 这个变量可以帮助定位需要改变的代码。
  • 使用E转义会导致部分场景下日志记录不全。

该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

取值范围:布尔型

默认值:on

lo_compat_privileges

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

该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。

取值范围:布尔型

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

默认值:off

quote_all_identifiers

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

该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

取值范围:布尔型

  • on表示打开强制引用。
  • off表示关闭强制引用。

默认值:off

sql_inheritance

参数说明:控制继承语义。用来控制继承表的访问策略,off表示各种命令不能访问子表,即默认使用ONLY关键字。这是为了兼容旧版本而设置的。

该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

取值范围:布尔型

  • on表示可以访问子表。
  • off表示不访问子表。

默认值:on

standard_conforming_strings

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

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

该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

取值范围:布尔型

  • on表示打开控制功能。
  • off表示关闭控制功能。

默认值:on

synchronize_seqscans

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

该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

取值范围:布尔型

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

默认值:on

enable_beta_features

参数说明:控制开启某些非正式发布的特性,仅用于POC验证。这些特性属于延伸特性,建议客户谨慎开启,在某些功能场景下可能存在问题。

该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

取值范围:布尔型

  • on表示开启这些功能受限的特性,保持前向兼容。但某些场景可能存在功能上的问题。
  • off表示禁止使用这些特性。

默认值:off

default_with_oids

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

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

该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

取值范围:布尔型

  • on表示在新创建的表中CREATE TABLE和CREATE TABLE AS可以包含一个OID字段。
  • off表示在新创建的表中CREATE TABLE和CREATE TABLE AS不可以包含一个OID字段。

默认值:off