更新时间:2024-11-12 GMT+08:00
分享

历史版本兼容性

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

array_nulls

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

参数类型:布尔型

参数单位:

取值范围:

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

默认值:on

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

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

backslash_quote

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

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

参数类型:枚举类型

参数单位:

取值范围:

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

默认值:safe_encoding

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

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

escape_string_warning

参数说明:控制是否对普通字符串中使用的反斜杠转义发出警告。

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

参数类型:布尔型

参数单位:

取值范围:

  • on:对普通字符串中使用的反斜杠转义发出警告。
  • off:不对普通字符串中使用的反斜杠转义发出警告。

默认值:on

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

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

lo_compat_privileges

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

参数类型:布尔型

参数单位:

取值范围:

  • on:表示当读取或修改大对象时,禁用权限检查。
  • off:表示启用大对象的权限检查。

默认值:off

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

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

quote_all_identifiers

参数说明:当数据库生成SQL时,控制是否强制引用所有的标识符(包括非关键字)。这将影响到EXPLAIN的输出及函数的结果,例如pg_get_viewdef。详细说明请参见《工具参考的》“客户端工具 > gs_dump”中的--quote-all-identifiers选项。

参数类型:布尔型

参数单位:

取值范围:

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

默认值:off

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

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

sql_inheritance

参数说明:用来控制继承表的访问策略,该参数是为了兼容旧版本而设置的。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示可以访问子表。
  • off:表示不可以访问子表,即默认使用ONLY关键字。

默认值:on

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

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

standard_conforming_strings

参数说明:控制普通字符串文本('...')中是否按照SQL标准把反斜杠当作普通文本。应用程序通过检查这个参数可以判断字符串文本的处理方式。建议明确使用转义字符串语法(E'...')来转义字符。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示按照SQL标准把反斜杠当作普通文本。
  • off:表示反斜杠在字符串字面值中被解释为转义字符。

默认值:on

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

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

synchronize_seqscans

参数说明:控制并行执行的序列扫描是否相互同步。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示扫描可能从表的中间开始,然后选择“环绕”方式来覆盖所有的行,目的是与已在执行的扫描保持同步。这种同步机制可以提高并行序列扫描的性能,但可能导致没有ORDER BY的查询返回乱序结果。
  • off:禁用序列扫描的同步行为,每个扫描都从表的起始位置开始。可以确保没有ORDER BY的查询返回与物理存储顺序一致的结果,但并行扫描效率可能会降低。

默认值:on

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

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

enable_beta_features

参数说明:控制是否开启某些非正式发布的特性,仅用于POC验证,例如GDS表关联操作。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示开启这些功能受限的特性,保持前向兼容。
  • off:表示禁止使用这些特性。

默认值:off

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

设置建议:这些特性属于延伸特性,建议用户谨慎开启,在某些功能场景下可能存在问题。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

enable_recordtype_check_strict

参数说明:控制是否要对PL/SQL中的record类型进行严格性校验,详见说明部分。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示会在编译procedure、function、package时,校验创建的record类型中不支持的功能,以及提供procedure、function里创建的record类型not null功能。
  • off:表示向下兼容旧式模式,不会对record类型进行校验。

默认值:on

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

设置建议:推荐使用默认值。

设置不当的风险与影响:设置为off时,部分指定了not null约束和定义了列默认值的record变量在赋值时功能不生效。

  • 若从老版本升级,该参数会默认设置为off。
  • 打开该参数后有以下三点行为变更:
    • 存储过程、函数内部创建的record类型,列约束not null功能生效。
    • package里创建的record类型,如果有一列指定了not null或default,则会编译报错。通过访问package.rec类型来创建的变量不支持not null和default功能。
    • 其他类型嵌套一个record类型,如果有一列指定了not null或default,则会编译报错。创建嵌套record类型的变量,该变量的record元素不支持not null和default功能。

default_with_oids

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

参数类型:布尔型

参数单位:

取值范围:

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

默认值:off

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

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

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

system_view_version

参数说明:控制系统视图的版本。具体详见表1 系统视图版本参数说明。所有版本向下兼容,例如system_view_version=3时同时满足版本2与版本1的所有特性。

参数类型:整型

参数单位:

取值范围:0 ~ 9999

默认值:0

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

设置建议:升级场景不做修改,安装场景配置为表1 系统视图版本参数说明中的最大版本。

设置不当的风险与影响:系统视图部分字段行为存在变更,参考表1 系统视图版本参数说明

表1 系统视图版本参数说明

取值

说明

0

默认行为。

1

当GaussDB中不存在已准备好的事务时,V$GLOBAL_TRANSACTION视图的PREPARECOUNT字段由NULL变为0。

相关文档