历史版本兼容性
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 系统视图版本参数说明。