Updated on 2024-06-03 GMT+08:00

Compatibility with Earlier Versions

This section describes the parameters that control the backward compatibility and external compatibility of GaussDB. A backward compatible database supports applications of earlier versions. This section describes parameters used for controlling backward compatibility of a database.

array_nulls

Parameter description: Determines whether the array input parser recognizes unquoted NULL as a null array element.

This is a USERSET parameter. Set it based on instructions provided in Table 1.

Value range: Boolean

  • on indicates that null values can be entered in arrays.
  • off indicates backward compatibility with the old behavior. Arrays containing the value NULL can still be created when this parameter is set to off.

Default value: on

backslash_quote

Parameter description: Determines whether a single quotation mark can be represented by \' in a string text.

This is a USERSET parameter. Set it based on instructions provided in Table 1.

When the string text meets the SQL standards, \ has no other meanings. This parameter only affects the handling of non-standard-conforming string texts, including escape string syntax (E'...').

Value range: enumerated values

  • on indicates that the use of \' is always allowed.
  • off indicates that the use of \' is rejected.
  • safe_encoding indicates that the use of \' is allowed only when client encoding does not allow ASCII \ within a multibyte character.

Default value: safe_encoding

escape_string_warning

Parameter description: Specifies whether to issue a warning when a backslash (\) is used as an escape in an ordinary character string.

  • Applications that wish to use a backslash (\) as an escape need to be modified to use escape string syntax (E'...'). This is because the default behavior of ordinary character strings treats the backslash as an ordinary character in each SQL standard.
  • This variable can be enabled to help locate codes that need to be changed.
  • If E'...' is used as an escape, logs may be incomplete in some scenarios.

This is a USERSET parameter. Set it based on instructions provided in Table 1.

Value range: Boolean

Default value: on

lo_compat_privileges

Parameter description: Specifies whether to enable backward compatibility for the privilege check of large objects.

This is a SUSET parameter. Set it based on instructions provided in Table 1.

Value range: Boolean

on indicates that the privilege check is disabled when large objects are read or modified.

Default value: off

quote_all_identifiers

Parameter description: Specifies whether to forcibly quote all identifiers even if they are not keywords when the database generates SQL. This will affect the output of EXPLAIN and the results of functions, such as pg_get_viewdef. For details, see the --quote-all-identifiers parameter of gs_dump.

This is a USERSET parameter. Set it based on instructions provided in Table 1.

Value range: Boolean

  • on indicates that the forcible quoting is enabled.
  • off indicates that the forcible quoting is disabled.

Default value: off

sql_inheritance

Parameter description: Controls the inheritance semantics. This parameter specifies the access policy of descendant tables. off indicates that subtables cannot be accessed by commands. That is, the ONLY keyword is used by default. This setting is compatible with earlier versions.

This is a USERSET parameter. Set it based on instructions provided in Table 1.

Value range: Boolean

  • on indicates that subtables can be accessed.
  • off indicates that subtables cannot be accessed.

Default value: on

standard_conforming_strings

Parameter description: Controls whether ordinary string texts ('...') treat backslashes as ordinary texts as specified in the SQL standard.

  • Applications can check this parameter to determine how string texts will be processed.
  • It is recommended that characters be escaped by using the escape string syntax (E'...').

This is a USERSET parameter. Set it based on instructions provided in Table 1.

Value range: Boolean

  • on indicates that the function is enabled.
  • off indicates that the function is disabled.

Default value: on

synchronize_seqscans

Parameter description: Determines sequential scans of tables to synchronize with each other, so that concurrent scans read the same data block at about the same time and share the I/O load.

This is a USERSET parameter. Set it based on instructions provided in Table 1.

Value range: Boolean

  • on indicates that a scan may start in the middle of the table and then "wrap around" the end to cover all rows to synchronize with the activity of scans already in progress. This may result in unpredictable changes in the row ordering returned by queries that have no ORDER BY clause.
  • off indicates that the scan always starts from the table heading.

Default value: on

enable_beta_features

Parameter description: Specifies whether to enable some features that are not officially released and are used only for POC verification. Exercise caution when enabling these extended features because they may cause errors in some scenarios.

This is a USERSET parameter. Set it based on instructions provided in Table 1.

Value range: Boolean

  • on indicates that the features are enabled for forward compatibility. Note that enabling them may cause errors in certain scenarios.
  • off indicates that the features are disabled.

Default value: off

default_with_oids

Parameter description: Specifies whether CREATE TABLE and CREATE TABLE AS include an OID field in newly-created tables if neither WITH OIDS nor WITHOUT OIDS is specified. It also determines whether OIDs will be included in tables created by SELECT INTO.

It is not recommended that OIDs be used in user tables. Therefore, this parameter is set to off by default. When OIDs are required for a particular table, WITH OIDS needs to be specified during the table creation.

This is a USERSET parameter. Set it based on instructions provided in Table 1.

Value range: Boolean

  • on indicates that CREATE TABLE and CREATE TABLE AS can include an OID field in newly-created tables.
  • off indicates that CREATE TABLE and CREATE TABLE AS cannot include any OID field in newly-created tables.

Default value: off

enable_recordtype_check_strict

Parameter description: Specifies whether to perform strict check on the record type in PL/SQL. For details, see the notice below.

This is a USERSET parameter. Set it based on instructions provided in Table 1.

Value range: Boolean

  • on: indicates that the record type created during compilation of stored procedures, functions, and packages is checked for unsupported functions, and the record type created by provided stored procedures and functions is checked for the NOT NULL function.
  • off: indicates backward compatibility and the record type is not checked.

Default value: on

After an upgrade from an earlier version, this parameter is set to off by default.

After this parameter is set to on, the following three changes occur:

1. For the record type created in a stored procedure or function, the NOT NULL column constraint takes effect.

2. If NOT NULL or DEFAULT is specified for a column of the record type created in a package, a compilation error is reported. Variables created by accessing the package.rec type do not support NOT NULL and DEFAULT.

3. If NOT NULL or DEFAULT is specified for a column of another type with a nested record type, a compilation error is reported. For a variable nested with the record type, the record element of the variable does not support NOT NULL and DEFAULT.

system_view_version

Parameter description: Determines the version of the system view. For details, see Table 1 System view version parameters. All versions are backward compatible. For example, when system_view_version is set to 3, all features of version 2 and version 1 are also supported.

Parameter type: integer.

Unit: none

Value range: 0 to 9999

Default value: 0

Setting method: This is a USERSET parameter. Set it based on instructions provided in Table 1.

Setting suggestion: In the upgrade scenario, do not change the value. In the installation scenario, set this parameter to the latest version listed in Table 1 System view version parameters.

Table 1 System view version parameters

Value

Description

0

Default behavior

1

The value of PREPARECOUNT in the V$GLOBAL_TRANSACTION view changes from NULL to 0 when no prepared transaction exists in GaussDB.