display_leading_zero |
浮点数显示配置项。
- 不设置此配置项时,对于-1~0和0~1之间的小数,不显示小数点前的0。比如,0.25显示为.25。
- 设置此配置项时,对于-1~0和0~1之间的小数,显示小数点前的0。比如,0.25显示为0.25。
例如,某数据迁移场景中,在导入时若未设置该参数,浮点数显示或者转为字符串的时候,缺少前面的0,导致出现类似如下报错。
|
ERROR: xxx invalid input syntax for type xxx
DETAIL: Token "." is invalid
|
|
ORA
TD |
end_month_calculate |
add_months函数计算逻辑配置项。
假定函数add_months的两个参数分别为param1和param2,param1的月份和param2的月份和为result。
- 不设置此配置项时,如果param1的日期(Day字段)为月末,并且param1的日期(Day字段)比result月份的月末日期小,计算结果中的日期字段(Day字段)和param1的日期字段保持一致。比如,
|
SELECT add_months('2018-02-28',3) FROM dual;
add_months
---------------------
2018-05-28 00:00:00
(1 row)
|
- 设置此配置项时,如果param1的日期(Day字段)为月末,并且param1的日期(Day字段)比result月份的月末日期比小,计算结果中的日期字段(Day字段)和result的月末日期保持一致。比如,
|
SELECT add_months('2018-02-28',3) FROM dual;
add_months
---------------------
2018-05-31 00:00:00
(1 row)
|
|
ORA
TD |
compat_analyze_sample |
analyze采样行为配置项。
设置此配置项时,会优化analyze的采样行为,主要体现在analyze时全局采样会更精确的控制在3万条左右,更好的控制analyze时Coordinator端的内存消耗,保证analyze性能的稳定性。 |
ORA
TD
MySQL |
bind_schema_tablespace |
绑定模式与同名表空间配置项。
如果存在与模式名sche_name相同的表空间名,那么如果设置search_path为sche_name, default_tablespace也会同步切换到sche_name。 |
ORA
TD
MySQL |
bind_procedure_searchpath |
未指定模式名的数据库对象的搜索路径配置项。
在存储过程中如果不显示指定模式名,会优先在存储过程所属的模式下搜索。
如果找不到,则有两种情况:
- 若不设置此参数,报错退出。
- 若设置此参数,按照search_path中指定的顺序继续搜索。如果还是找不到,报错退出。
|
ORA
TD
MySQL |
correct_to_number |
控制to_number()结果兼容性的配置项。
若设置此配置项,则to_number()函数结果与PG11保持一致,否则默认与Oracle保持一致。 |
ORA |
unbind_divide_bound |
控制对整数除法的结果进行范围校验。
- 不设置此配置项时,将对除法结果进行校验,超出范围则报错。例如,示例中INT_MIN/(-1)会因为超过结果大于INT_MAX而报越界错误:
SELECT (-2147483648)::int / (-1)::int;
ERROR: integer out of range
- 若设置此配置项,则不需要对除法结果进行范围校验。例如,示例中INT_MIN/(-1)可以得到输出结果INT_MAX+1:
SELECT (-2147483648)::int / (-1)::int;
?column?
------------
2147483648
(1 row) |
ORA
TD |
merge_update_multi |
控制merge into匹配多行时是否进行update操作。
若设置此配置项,匹配多行时update不报错,否则默认与Oracle保持一致,报错。 |
ORA
TD |
disable_row_update_multi |
控制行存表update匹配多行时是否进行update操作。
若设置此配置项,匹配多行时update报错,否则默认可以进行多行匹配更新。 |
ORA
TD |
return_null_string |
控制函数lpad()、rpad()、repeat()、regexp_split_to_table()和split_part()的结果为空字符串''的显示配置项。
|
SELECT length(lpad('123',0,'*')) FROM dual;
length
--------
(1 row)
|
|
SELECT length(lpad('123',0,'*')) FROM dual;
length
--------
0
(1 row)
|
|
ORA |
compat_concat_variadic |
控制函数concat()和concat_ws()对variadic类型结果兼容性的配置项。
若设置此配置项,当concat函数参数为variadic类型时,保留Oracle和Teradata兼容模式下不同的结果形式;否则默认Oracle和Teradata兼容模式下结果相同,且与Oracle保持一致。 |
ORA
TD |
convert_string_digit_to_numeric |
控制CHAR类型和INT类型进行二元BOOL运算时类型转换优先级的配置项。
注意:
此配置项只对二元BOOL运算生效,例如,INT2>TEXT、INT4=BPCHAR,非BOOL运算不会受到影响,该配置项暂不支持INT>'1.1'这类UNKNOWN类型运算的转换。由于该配置项开启后,CHAR类型与INT类型的BOOL运算会优先转换为NUMERIC类型进行计算,因此会影响数据库计算性能,当JOIN列为受影响的类型组合时,还会影响执行计划。
|
ORA
TD
MySQL |
check_function_conflicts |
控制是否检查自定义plpgsql/SQL函数的属性。
- 不设置此配置项时,不检查自定义函数的IMMUTABLE/STABLE/VOLATILE属性。
- 设置此配置项时,会检查自定义函数的IMMUTABLE属性,如果函数中含有表,或者是有STABLE/VOLATILE函数时,在执行时会报错。因为函数中如果有表或者STABLE/VOLATILE函数时,与函数定义中的IMMUTABLE属性冲突,即这种场景下,函数的行为非IMMUTABLE。
例如:设置此参数时,以下场景下会执行报错:
CREATE OR replace FUNCTION sql_immutable (INTEGER)
RETURNS INTEGER AS 'SELECT a+$1 FROM shipping_schema.t4 WHERE a=1;'
LANGUAGE SQL IMMUTABLE
RETURNS NULL
ON NULL INPUT;
select sql_immutable(1);
ERROR: IMMUTABLE function cannot contain SQL statements with relation or Non-IMMUTABLE function.
CONTEXT: SQL function "sql_immutable" during startup
referenced column: sql_immutable |
ORA
TD
MySQL |
varray_verification |
控制是否校验数组长度以及数组类型长度。用于兼容GaussDB(DWS) 8.1.0之前的版本。
若设置此配置项,不会校验数组长度以及数组类型长度。
-- 场景1
CREATE OR REPLACE PROCEDURE varray_verification
AS
TYPE org_varray_type IS varray(5) OF VARCHAR2(2);
v_org_varray org_varray_type;
BEGIN
v_org_varray(1) := '111'; --例如赋值已经超过了VARCHAR2(2)的限制,配置该选项后将和历史版本保持一致不进行校验
END;
/
--场景2
CREATE OR REPLACE PROCEDURE varray_verification_i3_1
AS
TYPE org_varray_type IS varray(2) OF NUMBER(2);
v_org_varray org_varray_type;
BEGIN
v_org_varray(3) := 1; --例如赋值已经超过了varray(2)的数组长度限制,配置该选项后将和历史版本保持一致不进行校验
END;
/ |
ORA
TD |
strict_concat_functions |
控制函数textanycat()和anytextcat()在参数存在空值时,对返回值兼容性的配置项。此参数不能和strict_text_concat_td同时设置。
MySQL兼容模式下,此参数无影响。
- 不设置此配置项时,函数textanycat()和anytextcat()的返回值默认与Oracle保持一致。
- 设置此配置项时,若函数textanycat()和anytextcat()的参数存在空值,则返回值也为空值,保留与Oracle和Teradata兼容模式下不同的结果。
例如,不设置此配置项时,函数textanycat()和anytextcat()的返回值与Oracle保持一致:
SELECT textanycat('gauss', cast(NULL as BOOLEAN));
textanycat
------------
gauss
(1 row)
SELECT 'gauss' || cast(NULL as BOOLEAN); --这种情况下,||运算符会被转换为函数textanycat
?column?
----------
gauss
(1 row)
设置此配置项时,保留与Oracle和Teradata兼容模式下不同的结果:
SELECT textanycat('gauss', cast(NULL as BOOLEAN));
textanycat
------------
(1 row)
SELECT 'gauss' || cast(NULL as BOOLEAN); --这种情况下,||运算符会被转换为函数textanycat
?column?
----------
(1 row) |
ORA
TD |
strict_text_concat_td |
Teradata兼容模式下,控制函数textcat()、textanycat()和anytextcat()在参数存在空值时,对返回值兼容性的配置项。此参数不能和strict_concat_functions同时设置。
- 不设置此配置项时,Teradata兼容模式下函数textcat()、textanycat()和anytextcat()的返回值与GaussDB(DWS)一致。
- 设置此配置项时,若Teradata兼容模式下函数textcat()、textanycat()和anytextcat()的参数存在空值,则返回值为空值。
例如,不设置此配置项时,函数textcat()、textanycat()和anytextcat()的返回值与GaussDB(DWS)保持一致:
td_compatibility_db=# SELECT textcat('abc', NULL);
textcat
---------
abc
(1 row)
td_compatibility_db=# SELECT 'abc' || NULL; --这种情况下,||运算符会被转换为函数textcat()
?column?
----------
abc
(1 row)
设置此配置项时,若函数textcat()、textanycat()和anytextcat()的返回值有空值,则返回NULL:
td_compatibility_db=# SELECT textcat('abc', NULL);
textcat
---------
(1 row)
td_compatibility_db=# SELECT 'abc' || NULL;
?column?
----------
(1 row) |
TD |
compat_display_ref_table |
设置视图中列的显示格式。
- 不设置该选项时默认带前缀,即tab.col的格式。
- 设置该选项时与原始定义一致,原始定义带前缀则显示,否则不显示。
SET behavior_compat_options='compat_display_ref_table';
CREATE OR REPLACE VIEW viewtest2 AS SELECT a.c1, c2, a.c3, 0 AS c4 FROM viewtest_tbl a;
SELECT pg_get_viewdef('viewtest2');
pg_get_viewdef
-----------------------------------------------------
SELECT a.c1, c2, a.c3, 0 AS c4 FROM viewtest_tbl a;
(1 row) |
ORA
TD |
para_support_set_func |
列存表中控制函数COALESCE()、NVL()、GREATEST()、LEAST()入参是否支持多结果集表达式。
- 不设置此配置项时,函数入参包含多结果集表达式时,直接报错不支持。
|
SELECT COALESCE(regexp_split_to_table(c3,'#'), regexp_split_to_table(c3,'#')) FROM regexp_ext2_tb1 ORDER BY 1 LIMIT 5;
ERROR: set-valued function called in context that cannot accept a set
|
|
SELECT COALESCE(regexp_split_to_table(c3,'#'), regexp_split_to_table(c3,'#')) FROM regexp_ext2_tb1 ORDER BY 1 LIMIT 5;
coalesce
----------
a
a
a
a
a
(5 rows)
|
|
ORA
TD |
disable_select_truncate_parallel |
控制分区表的truncate等ddl的锁等级。
- 设置此配置项时,将禁止分区表的不同分区上truncate与DML(如select)的并发,允许分区表上select的FQS(快速下发)。在OLTP场景下分区表上的简单查询较多,并且没有分区表不同分区truncate与DML并发的需求,可以考虑设置此配置项。
- 不设置此配置项时,分区表上不同分区的select与truncate可以并发进行,同时关闭分区表的FQS(快速下发)来避免可能的不一致问题。
|
ORA
TD
MySQL |
bpchar_text_without_rtrim |
Teradata兼容模式下,设置此参数时,控制bpchar到text转换保留右侧空格,如果实际长度不足bpchar指定的长度,对其进行补空格操作,兼容Teradata对bpchar字符串的处理风格。
当前不支持“比较字符串时忽略尾部空格”,拼接后结果如果存在尾部空格,进行比较时会对空格敏感。
例如,设置参数时:
td_compatibility_db=# SELECT length('a'::char(10)::text);
length
--------
10
(1 row)
td_compatibility_db=# SELECT length('a'||'a'::char(10));
length
--------
11
(1 row) |
TD |
convert_empty_str_to_null_td |
Teradata兼容模式下,设置此参数时,控制to_date, to_timestamp和to_number类型转换函数处理空串时,返回null;同时控制to_char函数处理date类型入参时返回的格式。
例如:
未设置此参数时:
td_compatibility_db=# SELECT to_number('');
to_number
-----------
0
(1 row)
td_compatibility_db=# SELECT to_date('');
ERROR: the format is not correct
DETAIL: invalid date length "0", must between 8 and 10.
CONTEXT: referenced column: to_date
td_compatibility_db=# SELECT to_timestamp('');
to_timestamp
------------------------
0001-01-01 00:00:00 BC
(1 row)
td_compatibility_db=# SELECT to_char(date '2020-11-16');
to_char
------------------------
2020-11-16 00:00:00+08
(1 row)
设置此参数,若to_number, to_date, to_timestamp函数的参数有空串时:
td_compatibility_db=# SELECT to_number('');
to_number
-----------
(1 row)
td_compatibility_db=# SELECT to_date('');
to_date
---------
(1 row)
td_compatibility_db=# SELECT to_timestamp('');
to_timestamp
--------------
(1 row)
td_compatibility_db=# SELECT to_char(date '2020-11-16');
to_char
------------
2020/11/16
(1 row) |
TD |
disable_case_specific |
控制字符类型匹配时是否忽略大小写。仅在Teradata兼容模式下生效。
- 不设置此配置项时,字符类型匹配时,字符的大小写敏感。
- 设置此配置项时,字符类型匹配时,字符的大小写不敏感。
设置此配置项后会影响的字符类型包括CHAR、TEXT、BPCHAR、VARCHAR、NVARCHAR五种类型,会被影响的操作符包括<、>、=、>=、<=、!=、<>、!=、like、not like、in、not in共12种操作符以及case when、decode 表达式。
注意:
由于该配置项开启后,字符类型前会增加UPPER函数进而会影响估算逻辑,需要使用增强的估算模型。(建议设置:cost_param=16、cost_model_version = 1、join_num_distinct=-20、qual_num_distinct=200)
|
TD |
enable_interval_to_text |
控制interval到text类型的隐式转换功能。
- 设置此选项时,支持interval类型到text类型的隐式转换。
SELECT TO_DATE('20200923', 'yyyymmdd') - TO_DATE('20200920', 'yyyymmdd') = '3'::text;
?column?
----------
f
(1 row)
- 不设置此选项时,不支持interval类型到text类型的隐式转换。
SELECT TO_DATE('20200923', 'yyyymmdd') - TO_DATE('20200920', 'yyyymmdd') = '3'::text;
?column?
----------
t
(1 row)
|
ORA
TD
MySQL |
case_insensitive |
MySQL兼容模式下,设置此参数,控制locate,strpos,instr字符串函数入参大小写不敏感。
目前默认未设置该参数,即入参大小写敏感。
例如:
|
MySQL |
inherit_not_null_strict_func |
控制函数原有的strict属性,参数为1个的函数可以传递NOT NULL属性的行为。即:对于func(x),如果func()为strict属性,且x包含NOT NULL约束,则认为func(x)也是包含NOT NULL约束的。
该兼容配置项在某些优化场景,例如:NOT IN优化、COUNT(DISTINCT)优化,会有特定的优化效果,但特定场景可能导致结果错误。
目前默认未设置该参数,保证结果正确,但可能导致性能回退,如果出现问题可设置该参数回退到历史版本行为。 |
ORA
TD
MySQL |
disable_compat_minmax_expr_mysql |
MySQL兼容模式下,控制greatest/least表达式对null入参的处理方式。
默认兼容MySQL。可通过设置此参数,回退到历史版本行为。
- 不设置此选项时,兼容MySQL行为,入参为null时返回null。
mysql_compatibility_db=# SELECT greatest(1, 2, null), least(1, 2, null);
greatest | least
----------+-------
|
(1 row)
- 设置此选项时,返回非null参数中的最大/小值。
mysql_compatibility_db=# SELECT greatest(1, 2, null), least(1, 2, null);
greatest | least
----------+-------
2 | 1
(1 row)
|
MySQL |
disable_compat_substr_mysql |
MySQL兼容模式下,控制substr/substring函数在起始位置pos <= 0时的行为。
默认兼容MySQL。可通过设置此参数,回退到历史版本行为。
- 不设置此选项时,兼容MySQL行为,即pos = 0时返回空串,pos < 0时从倒数第 |pos| 个位置开始截取字符。
mysql_compatibility_db=# SELECT substr('helloworld',0);
substr
--------
(1 row)
mysql_compatibility_db=# SELECT substring('helloworld',0),substring('helloworld',-2,4);
substring | substring
-----------+-----------
| ld
(1 row)
- 设置此选项时,pos <= 0时仍然从左侧开始截取字符。
mysql_compatibility_db=# SELECT substr('helloworld',0);
substr
------------
helloworld
(1 row)
mysql_compatibility_db=# SELECT substring('helloworld',0),substring('helloworld',-2,4);
substring | substring
------------+-----------
helloworld | h
(1 row)
|
MySQL |
disable_compat_trim_mysql |
MySQL兼容模式下,控制trim/ltrim/rtrim函数对入参的处理方式。
默认兼容MySQL。可通过设置此参数,回退到历史版本行为。
- 不设置此选项时,兼容MySQL行为,匹配完整子串。
mysql_compatibility_db=# SELECT trim('{}{name}{}','{}'),trim('xyznamezyx','xyz');
btrim | btrim
--------+---------
{name} | namezyx
(1 row)
- 设置此选项时,匹配字符集合中的单个字符。
mysql_compatibility_db=# SELECT trim('{}{name}{}','{}'),trim('xyznamezyx','xyz');
btrim | btrim
-------+-------
name | name
(1 row)
|
MySQL |
light_object_mtime |
控制pg_object系统表mtime字段是否会记录对象行为的操作。
- 设置此选项时,GRANT/REVOKE/TRUNCATE操作不被mtime记录即不更新mtime字段。
- 不设置此选项时(默认行为),ALTER操作、COMMENT、GRANT/REVOKE和TRUNCATE均会被mtime记录即更新mtime字段。
|
ORA
TD
MySQL |
disable_including_all_mysql |
MySQL兼容模式下,控制CREATE TABLE ... LIKE语法是否为INCLUDING_ALL模式。
默认不设置此参数,即MySQL兼容模式下,CREATE TABLE ... LIKE语法默认为INCLUDING_ALL模式。
可通过设置此参数,回退到历史版本行为。
- 不设置此选项,MySQL兼容模式下,CREATE TABLE ... LIKE语法为INCLUDING_ALL模式。
mysql_compatibility_db=# CREATE TABLE mysql_like(id int, name varchar(10), score int) distribute by hash(id) COMMENT 'mysql_like';
CREATE TABLE
mysql_compatibility_db=# CREATE index index_like on mysql_like(name);
CREATE INDEX
mysql_compatibility_db=# \d+ mysql_like;
Table "public.mysql_like"
Column | Type | Modifiers | Storage | Stats target | Description
--------+-----------------------+-----------+----------+--------------+-------------
id | integer | | plain | |
name | character varying(10) | | extended | |
score | integer | | plain | |
Indexes:
"index_like" btree (name) TABLESPACE pg_default
Has OIDs: no
Distribute By: HASH(id)
Location Nodes: ALL DATANODES
Options: orientation=row, compression=no
mysql_compatibility_db=# CREATE table copy_like like mysql_like;
CREATE TABLE
mysql_compatibility_db=# \d+ copy_like;
Table "public.copy_like"
Column | Type | Modifiers | Storage | Stats target | Description
--------+-----------------------+-----------+----------+--------------+-------------
id | integer | | plain | |
name | character varying(10) | | extended | |
score | integer | | plain | |
Indexes:
"copy_like_name_idx" btree (name) TABLESPACE pg_default
Has OIDs: no
Distribute By: HASH(id)
Location Nodes: ALL DATANODES
Options: orientation=row, compression=no
- 设置此选项,MySQL兼容模式下,CREATE TABLE ... LIKE语法为空模式。
mysql_compatibility_db=# SET behavior_compat_options = 'disable_including_all_mysql';
SET
mysql_compatibility_db=# CREATE TABLE mysql_copy like mysql_like;
NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using round-robin as the distribution mode by default.
HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.
CREATE TABLE
mysql_db=# \d+ mysql_copy;
Table "public.mysql_copy"
Column | Type | Modifiers | Storage | Stats target | Description
--------+-----------------------+-----------+----------+--------------+-------------
id | integer | | plain | |
name | character varying(10) | | extended | |
score | integer | | plain | |
Has OIDs: no
Distribute By: ROUND ROBIN
Location Nodes: ALL DATANODES
Options: orientation=row, compression=no
|
MySQL |
cte_onetime_inline |
控制非stream计划是否执行inline。
- 设置此选项时,非stream计划且只被引用一次的CTE执行inline。
- 不设置此选项时,非stream计划且只被引用一次的CTE不执行inline。
|
ORA
TD
MySQL |
skip_first_after_mysql |
MySQL兼容模式下,控制是否在ALTER TABLE ADD/MODIFY/CHANGE COLUMN中忽略FIRST/AFTER colname语法。
|
MySQL |
enable_division_by_zero_mysql |
MySQL兼容模式下,除数为0时,控制除法或取余操作是否报错。(该配置项仅8.1.3.110及以上集群版本支持。)
- 设置此选项时,除法或取余操作中除数为0时,返回NULL。
compatible_mysql_db=# SET behavior_compat_options = 'enable_division_by_zero_mysql';
SET
compatible_mysql_db=# SELECT 1/0 as test;
test
----------
(1 row)
- 不设置此选项时,除法或取余操作中除数为0时,执行报错。
compatible_mysql_db=# SELECT 1/0;
ERROR: division by zero
|
MySQL |
merge_into_with_trigger |
控制是否支持对有触发器的表执行MERGE INTO操作。(该参数仅8.1.3.200及以上集群版本支持)。
- 设置此选项时,可以对有触发器的表执行MERGE INTO操作。需注意在MERGE INTO操作执行时,表上的触发器不会被触发执行。
- 不设置此选项时,对有触发器的表执行MERGE INTO操作时报错。
|
ORA
TD
MySQL |
add_column_default_v_func |
控制alter table add column default expression中expression是否支持volatile类型的函数。(该参数仅8.1.3.200及以上集群版本支持).
- 设置此选项时,alter table add column default expression中的expression支持volatile类型的函数。
- 不设置此选项时,alter table add column default expression中expression不支持volatile类型的函数,如果expression中有volatile的函数,该语句执行会报错。
|
ORA
TD
MySQL |
disable_gc_fdw_filter_partial_pushdown |
协同分析外表(类型为gc_fdw)场景,控制使用过滤条件查询外表数据时过滤条件的下推情况。(该参数仅8.1.3.310及以上集群版本支持)
- 设置此选项时,过滤条件中若存在不满足下推条件的因素(如非immutable函数),为了保证结果集文档,则全部过滤条件不下推,此行为兼容8.1.3.310版本之前的行为。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
--源端集群建表
CREATE TABLE t1(c1 INT, c2 INT, c3 INT) DISTRIBUTE BY HASH(c1);
--本地集群建相同结构外表
CREATE SERVER server_remote FOREIGN DATA WRAPPER gc_fdw options(ADDRESS 'address', DBNAME 'dbname', USERNAME 'username', PASSWORD 'password');
CREATE FOREIGN TABLE t1(c1 INT, c2 INT, c3 INT) SERVER server_remote;
--打开参数时,条件下推情况
SET behavior_compat_options = 'disable_gc_fdw_filter_partial_pushdown';
EXPLAIN (verbose on,costs off) SELECT * FROM t1 WHERE c1>3 AND c2 <100 AND now() - '20230101' < c3;
QUERY PLAN
----------------------------------------------------------------------------------------------------------------------------------------------------------
Streaming (type: GATHER)
Output: c1, c2, c3
Node/s: All datanodes
-> Foreign Scan on ca_schema.t1
Output: c1, c2, c3
Filter: ((t1.c1 > 3) AND (t1.c2 < 100) AND ((now() - '2023-01-01 00:00:00-08'::timestamp with time zone) < (t1.c3)::interval))
Remote SQL: SELECT c1, c2, c3 FROM ca_schema.t1
(7 rows)
|
- 不设置此选项时,过滤条件中可下推的部分将下推到源端集群执行,不可下推部分将在本地集群执行,如此可提升外表查询效率。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
--关闭参数时,条件下推情况
SET behavior_compat_options = '';
EXPLAIN (verbose on,costs off) SELECT * FROM t1 WHERE c1>3 AND c2 <100 AND now() - '20230101' < c3;
QUERY PLAN
----------------------------------------------------------------------------------------------------------
Streaming (type: GATHER)
Output: c1, c2, c3
Node/s: All datanodes
-> Foreign Scan on ca_schema.t1
Output: c1, c2, c3
Filter: ((now() - '2023-01-01 00:00:00-08'::timestamp with time zone) < (t1.c3)::interval)
Remote SQL: SELECT c1, c2, c3 FROM ca_schema.t1 WHERE ((c1 > 3)) AND ((c2 < 100))
(7 rows)
|
|
ORA
TD
MySQL |
normalize_negative_zero |
控制ceil(),round()函数在处理float类型特定值时返回-0与否。该参数仅8.1.3.333及以上集群版本支持。
- 设置此选项时,ceil()处理(-1,0),round()处理[-0.5, 0)时返回值会返回0。
|
SET behavior_compat_options='normalize_negative_zero';
SELECT ceil(cast(-0.1 as float));
ceil
------
0
(1 row)
SELECT round(cast(-0.1 as FLOAT));
round
-------
0
(1 row)
|
- 不设置此选项时,ceil()处理(-1,0),round()处理[-0.5, 0)时返回值会返回-0。
|
SET behavior_compat_options = '';
SELECT ceil(cast(-0.1 as FLOAT));
ceil
------
-0
(1 row)
SELECT round(cast(-0.1 as FLOAT));
round
-------
-0
(1 row)
|
|
ORA
TD
MySQL |
disable_client_detection_commit |
控制在每次事务提交之前,检测与客户端的连接是否存在。如果不存在,则报错,回滚该事务,防止因断连未感知重复下发导致的数据重复问题。该参数仅8.1.3.333及以上集群版本支持。
- 不设置此选项时,每次事务提交之前检测一次客户端连接是否存在。
- 设置此选项时,事务提交之前不检测客户端连接是否存在。
|
ORA
TD
MySQL |
enable_trunc_orc_string |
控制orc格式外表字段为varchar(n),但是orc文件字段类型为string,且string长度超过n时,外表查询的行为。
该参数仅8.1.3.336、8.3.0.100、910.100及以上集群版本支持。
- 不设置此选项时,查询报错,提示字段超长。
- 设置此选项时,查询正常,按照varchar(n)定义长度进行截断。
|
ORA
TD
MySQL |
gds_fill_multi_missing_fields |
控制GDS外表容错性参数fill_missing_fields设置为true/on时的行为。在GDS外表fill_missing_fields设置为true/on时,允许数据源文件一行中最后若干字段缺失,处理方式是将这些字段设置为NULL。而在此之前,仅允许数据源文件一行中最后一个字段缺失,否则报错。该参数仅8.1.3.336、8.2.1.200、9.1.0.100及以上集群版本支持。
- 设置此选项时,GDS外表允许数据源文件一行最后多个字段缺失。
- 不设置此选项时,GDS外表允许数据源文件一行最后一个字段缺失。兼容历史行为。
|
ORA
TD
MySQL |