返回首页

gbase数据、南大通用产品文档:GBase8cbehavior_compat_options

更新日期:2024年09月11日

参数说明:数据库兼容性行为配置项,该参数的值由若干个配置项用逗号隔开构成。
该参数属于USERSET 类型参数,请参考表15-1 中对应设置方法进行设置。
取值范围:字符串
默认值:空
说明:

当前只支持下表。

配置多个兼容性配置项时,相邻配置项用逗号隔开,例如:set
behavior_compat_options='end_month_calculate,display_leading_zero';
表兼容性配置项
兼容性配置项
兼容性行为控制
display_leading_zer
o
浮点数显示配置项。

不设置此配置项时,对于-1~0 和0~1 之间的小数,不显示小
数点前的0。比如,0.25 显示为.25。

设置此配置项时,对于-1~0 和0~1 之间的小数,显示小数点
前的0。比如,0.25 显示为0.25。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1346
兼容性配置项
兼容性行为控制
end_month_calculat
e
add_months 函数计算逻辑配置项。
假定函数add_months 的两个参数分别为param1 和param2,param1
的月份和param2 的和为月份result。

不设置此配置项时,
如果param1 的日期
(Day 字段)
为月末,
并且param1 的日期
(Day 字段)
比result 月份的月末日期小,
计算结果中的日期字段
(Day 字段)
和param1 的日期字段保
持一致。比如,
postgres=# select add_months('2018-02-28',3) from sys_dummy;
add_months
-——————–
2018-05-28 00:00:00
(1 row)

设置此配置项时,如果param1 的日期(Day 字段)为月末,
并且param1 的日期(Day 字段)比result 月份的月末日期比
小,计算结果中的日期字段(Day 字段)和result 的月末日
期保持一致。比如,
postgres=# select add_months('2018-02-28',3) from sys_dummy;
add_months
-——————–
2018-05-31 00:00:00
(1 row)
compat_analyze_sa
mple
analyze 采样行为配置项。
设置此配置项时,会优化analyze 的采样行为,主要体现在analyze
时全局采样会更精确的控制在3 万条左右,更好的控制analyze 时D
Bnode 端的内存消耗,保证analyze 性能的稳定性。
bind_schema_tables
pace
绑定模式与同名表空间配置项。
如果存在与模式名sche_name 相同的表空间名,那么如果设置searc
h_path 为sche_name,default_tablespace 也会同步切换到sche_name。
bind_procedure_sea
未指定模式名的数据库对象的搜索路径配置项。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1347
兼容性配置项
兼容性行为控制
rchpath
在存储过程中如果不显示指定模式名,会优先在存储过程所属的模
式下搜索。
如果找不到,则有两种情况:

若不设置此参数,报错退出。

若设置此参数,按照search_path 中指定的顺序继续搜索。如
果还是找不到,报错退出。
correct_to_number
控制to_number()结果兼容性的配置项。
若设置此配置项,则to_number()函数结果与pg11 保持一致,否则默
认与O db 保持一致。
unbind_dive_bound
控制对整数除法的结果进行范围校验。
若设置此配置项,则不需要对除法结果做范围校验,例如,INT_MI
N/(-1)可以得到输出结果为INT_MAX+1,反之,则会因为超过结果
大于INT_MAX 而报越界错误。
merge_update_multi
控制merge into 匹配多行时是否进行update 操作。
若设置此配置项,匹配多行时update 不报错,否则默认与a db 保持
一致,报错。
return_null_string
控制函数lpad()和rpad()结果为空字符串”的显示配置项。

不设置此配置项时,空字符串显示为NULL。
postgres=# select length(lpad('123',0,'')) from sys_dummy;
length
-——-
(1 row)

设置此配置项时,空字符串显示为”。
postgres=# select length(lpad('123',0,'')) from sys_dummy;
length
-——-
0
(1 row)

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1348
兼容性配置项
兼容性行为控制
compat_concat_vari
adic
控制函数concat()和concat_ws()对variadic 类型结果兼容性的配置项。
若设置此配置项,当concat 函数参数为variadic 类型时,保留a db
和Teradata 兼容模式下不同的结果形式;否则默认a db 和Teradata
兼容模式下结果相同,且与a db 保持一致。由于MY 无variadic 类
型,所以该选项对MY 无影响。
merge_update_multi
控制在使用MERGE INTO … WHEN MATCHED THEN UPDAT
E
(参考MERGE INTO)
和INSERT … ON DUPLICATE KEY UP
DATE(参考INSERT)时,当目标表中一条目标数据与多条源数据
冲突时UPDATE 行为。
若设置此配置项,当存在上述场景时,该冲突行将会多次执行UPD
ATE;否则(默认)报错,即MERGE 或INSERT 操作失败。
hide_tailing_zero
numeric 显示配置项。不设置此项时,numeric 按照指定精度显示。
设置此项时,隐藏小数点后的末尾0。
set behavior_compat_options='hide_tailing_zero';
select cast(123.123 as numeric(15,10));
numeric
-——–

 摘要:
分配或初始化与gbase_real_connect()相适应的GBASE 对象。如果gbase
是NULL 指针,该函数将分配、初始化、并返回新对象。否则,将初始化对象,
并返回对象的地址。
如果gbase_init()分配了新的对象,
当调用gbase_close()
来关闭连接时。将释放该对象。
 语法:
GBASE * gbase_init(GBASE *gbase);
 参数:
 返回值:
初始化的GBASE*句柄。如果无足够内存以分配新的对象,返回NULL。



GBase 8a 程序员手册C API 篇
南大通用数据技术股份有限公司

- 23 -

Method cannot take argument
此方法无法使用此参数。请参阅 Java™ API 规范或该指南适当的章节来确保您正适当地使
用方法。