网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
VR云渲游平台 CVR
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
自动驾驶云服务 Octopus
盘古大模型 PanguLargeModels
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
API全生命周期管理 ROMA API
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务
更新时间:2025-01-23 GMT+08:00
分享

其它选项

enable_cluster_resize

参数说明:标识当前会话是否为扩容重分布会话。该参数应仅限用于扩容重分布会话,其他业务会话不要设置该参数。

参数类型:SUSET

取值范围:布尔型

  • on表示标识当前会话为扩容重分布会话,可以执行重分布专有SQL语句。
  • off表示标识当前会话为非扩容重分布会话,不能执行重分布专有SQL语句。

默认值:off

此参数用于内部运维场景,请勿随意开启。

dfs_partition_directory_length

参数说明:在HDFS文件系统上,构造HDFS VALUE分区表的分区目录时,目录名长度的上限值。

参数类型:USERSET

取值范围:92~7999

默认值:512

enable_hadoop_env

参数说明:设置使用Hadoop特性时,是否允许在数据库中创建本地行存表和列存表。GaussDB(DWS)集群中,集群安装好后,该参数默认设为off。以支持本地行列存储和跨集群访问Hadoop特性。不推荐用户调整enable_hadoop_env的值。

参数类型:USERSET

取值范围: 布尔型

  • on/true,表示使用Hadoop特性时,不允许在数据库中创建本地行存表和列存表。
  • off/false,表示使用Hadoop特性时,可以在数据库中创建本地行存表和列存表。

默认值:off

enable_upgrade_merge_lock_mode

参数说明:当该参数设置为on时,通过提升deltamerge内部实现的锁级别,避免和update/delete并发操作时的报错。

参数类型:USERSET

取值范围: 布尔型

  • on,提升deltamerge内部实现的锁级别,并发执行deltamerge和update/delete操作时,一个操作先执行,另一个操作被阻塞,在前一个操作完成后,后一个操作再执行。
  • off,在对HDFS表的delta table的同一行并发执行deltamerge和update/delete操作时,后一个对同一行数据更新的操作会报错退出。

默认值:off

job_queue_processes

参数说明:表示系统可以并发执行的job数目。

参数类型:POSTMASTER

取值范围:0~1000

功能:

  • 当job_queue_processes设置为0值,表示不启用定时任务功能,任何job都不会被执行(因为开启定时任务的功能会对系统的性能有影响,有些局点可能不需要定时任务的功能,可以通过设置为0不启用定时任务功能)。
  • 当job_queue_processes为大于0时,表示启用定时任务功能且系统能够并发处理的最大任务数。

启用定时任务功能后,job_scheduler线程会在定时时间间隔轮询pg_jobs系统表,系统设置定时任务检查周期默认为1s。

由于并行运行的任务数太多会消耗更多的系统资源,因此需要设置系统并发处理的任务数,当前并发的任务数达到job_queue_processes时,且此时又有任务到期,那么这些任务本次得不到执行而延期到下一轮询周期。因此,建议用户需要根据每个任务的执行时长合理地设置任务的时间间隔(即submit接口中的interval参数),来避免由于任务执行时间太长而导致下个轮询周期无法正常执行。

注:如果同一时间内并行的job数很多,过小的参数值会导致job等待。而过大的参数值则消耗更多的系统资源,建议设置此参数为100,用户可以根据系统资源情况合理调整。

默认值:10

ngram_gram_size

参数说明:ngram解析器分词的长度。

参数类型:USERSET

取值范围:整型 ,1~4

默认值:2

ngram_grapsymbol_ignore

参数说明:ngram解析器是否忽略图形化字符。

参数类型:USERSET

取值范围:布尔型

  • on表示忽略图形化字符。
  • off表示不忽略图形化字符。

默认值:off

ngram_punctuation_ignore

参数说明:ngram解析器是否忽略标点符号。

参数类型:USERSET

取值范围:布尔型

  • on表示忽略标点符号。
  • off表示不忽略标点符号。

默认值:on

zhparser_multi_duality

参数说明:Zhparser解析器设定是否将长词内的文字自动以二字分词法聚合。

参数类型:USERSET

取值范围:布尔型

  • on表示将长词内的文字自动以二字分词法聚合。
  • off表示不将长词内的文字自动以二字分词法聚合。

默认值:off

zhparser_multi_short

参数说明:Zhparser解析器分词执行时是否执行针对长词复合切分。

参数类型:USERSET

取值范围:布尔型

  • on表示执行针对长词复合切分。
  • off表示不执行针对长词复合切分。

默认值:on

zhparser_multi_zall

参数说明:Zhparser解析器是否将全部单字单独显示。

参数类型:USERSET

取值范围:布尔型

  • on表示将全部单字单独显示。
  • off表示不将全部单字单独显示。

默认值:off

zhparser_multi_zmain

参数说明:Zhparser解析器是否将重要单字单独显示。

参数类型:USERSET

取值范围:布尔型

  • on表示将重要单字单独显示。
  • off表示不将重要单字单独显示。

默认值:off

zhparser_punctuation_ignore

参数说明:Zhparser解析器分词结果是否忽略所有的标点等特殊符号(不会忽略\r和\n)。

参数类型:USERSET

取值范围:布尔型

  • on:忽略所有的标点等特殊符号。
  • off:不忽略所有的标点等特殊符号。

默认值:on

zhparser_seg_with_duality

参数说明:Zhparser解析器是否将闲散文字自动以二字分词法聚合。

参数类型:USERSET

取值范围:布尔型

  • on表示将闲散文字自动以二字分词法聚合。
  • off表示不将闲散文字自动以二字分词法聚合。

默认值:off

acceleration_with_compute_pool

参数说明:在查询包含OBS时,通过该参数决定查询是否通过计算资源池进行加速。

参数类型:USERSET

取值范围:布尔型

  • on表示包含有OBS的查询在计算资源池可用时,会根据代价评估决定是否通过计算资源池对查询加速。
  • off表示任何查询都不会通过计算资源池进行加速。

默认值:off

behavior_compat_options

参数说明:数据库兼容性行为配置项,该参数的值由若干个配置项用逗号隔开构成。

参数类型:USERSET

取值范围:字符串

默认值:升级场景下保持前向兼容,即与升级前的集群中该参数的默认值保持一致。新安装集群场景下,该参数默认值为check_function_conflicts,以防止用户定义错误的函数属性导致严重的问题。

  • 当前只支持表1
  • 配置多个兼容性配置项时,相邻配置项用逗号隔开,例如:set behavior_compat_options='end_month_calculate,display_leading_zero';
  • 此参数选项中strict_concat_functions和strict_text_concat_td不能同时设置。
表1 兼容性配置项

兼容性配置项

兼容性行为控制

适用兼容模式

display_leading_zero

浮点数显示配置项。

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

例如,某数据迁移场景中,在导入时若未设置该参数,浮点数显示或者转为字符串的时候,缺少前面的0,导致出现类似如下报错。

1
2
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的日期字段保持一致。比如,
1
2
3
4
5
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的月末日期保持一致。比如,
1
2
3
4
5
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()的结果为空字符串''的显示配置项。

  • 不设置此配置项时,空字符串显示为NULL。
1
2
3
4
5
SELECT length(lpad('123',0,'*')) FROM dual;
length
--------

(1 row)
  • 设置此配置项时,空字符串显示为''。
1
2
3
4
5
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运算时类型转换优先级的配置项。

  • 不设置此配置项时,类型转换优先级与PG9.6一致。
  • 设置此配置项时,所有CHAR类型和INT类型的二元BOOL运算均强制转换为NUMERIC类型进行计算。

    设置此配置项后会被影响的CHAR类型包括BPCHAR、VARCHAR、NVARCHAR2、TEXT四种类型,会被影响的INT类型包括INT1、INT2、INT4、INT8四种类型。

注意:

此配置项只对二元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()入参是否支持多结果集表达式。

  • 不设置此配置项时,函数入参包含多结果集表达式时,直接报错不支持。
1
2
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
  • 设置此配置项时,支持函数入参包含多结果集表达式。
1
2
3
4
5
6
7
8
9
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_compatibility_db=# SELECT LOCATE('sub', 'Substr');
     locate
    --------
          0
    (1 row)
  • 设置此选项时,入参大小写不敏感。
    mysql_compatibility_db=# SELECT LOCATE('sub', 'Substr');
     locate
    --------
          1
    (1 row)

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语法。

  • 设置此选项时,将忽略FIRST/AFTER colname语法,执行不报错。
    mysql_compatibility_db=# SET behavior_compat_options = 'skip_first_after_mysql';
    mysql_compatibility_db=# ALTER TABLE t1 add column b text after a;
    ALTER TABLE
  • 不设置此选项时,将不支持FIRST/AFTER colname语法,执行报错。
    mysql_compatibility_db=# SET behavior_compat_options = '';
    mysql_compatibility_db=# ALTER TABLE t1 add column b text after a;
    ERROR:  FIRST/AFTER is not yet supported.

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。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    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。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    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

redact_compat_options

参数说明:设置数据脱敏可算不可见兼容性行为配置项。该参数仅8.1.3及以上集群版本支持。

参数类型:USERSET

取值范围:字符串

  • none表示未配置兼容项。
  • disable_comparison_operator_mask表示允许不存在暴露原始数据风险的比较操作符绕过脱敏检查,输出实际计算结果。

默认值:none

table_skewness_warning_threshold

参数说明:设置用于表倾斜告警的阈值。

参数类型:SUSET

取值范围:浮点型,0~1

默认值:1

table_skewness_warning_rows

参数说明:设置用于表倾斜告警的行数。

参数类型:SUSET

取值范围:整型,0~INT_MAX

默认值:100000

enable_view_update

参数说明:用于设置是否开启视图更新功能。

参数类型:POSTMASTER

取值范围:布尔型

  • on表示启用视图更新功能。
  • off表示关闭视图更新功能。

默认值: off

view_independent

参数说明:用于设置是否开启视图与表、函数、同义词的解耦功能。基表恢复后目前已支持自动关联重建。

参数类型:SIGHUP

取值范围:布尔型

  • on表示启用视图解耦功能,存在视图依赖的表、函数、同义词及其他视图可以单独删除(临时表及临时视图除外),关联视图保留但不可用。
  • off表示关闭视图解耦功能,存在视图依赖的表、函数、同义词及其他视图不可以单独删除,仅可使用cascade级联删除。

默认值: off

assign_abort_xid

参数说明:查询时将指定的xid判断为需要abort的事务。

参数类型:USERSET

取值范围:指定xid的字符串

此参数只用于用户误删数据(delete操作)后进行快速恢复。其他场景禁止使用,否则造成事务可见性错误问题。

default_distribution_mode

参数说明用于设置表的默认分布方式。该参数仅8.1.2及以上版本支持。

参数类型:USERSET

取值范围:枚举类型
  • roundrobin,创建表不指定分布方式时,按如下规则选取默认分布方式:
    1. 若建表时包含主键/唯一约束,则选取HASH分布,分布列为主键/唯一约束对应的列。
    2. 若建表时不包含主键/唯一约束,则选取ROUNDROBIN分布。
  • hash,创建表不指定分布方式时,按如下规则选取默认分布方式:
    1. 若建表时包含主键/唯一约束,则选取HASH分布,分布列为主键/唯一约束对应的列。
    2. 若建表时不包含主键/唯一约束,但存在数据类型支持作分布列的列,则选取HASH分布,分布列为第一个数据类型支持作分布列的列。
    3. 若建表时不包含主键/唯一约束,也不存在数据类型支持作分布列的列,选取ROUNDROBIN分布。

默认值:roundrobin

新建8.1.2集群版本默认值为roundrobin,升级到8.1.2集群版本场景该参数的默认值为hash。

object_mtime_record_mode

参数说明:用于设置PG_OBJECT系统表中mtime字段的更新行为。

参数类型:SIGHUP

取值范围:字符串

  • default,表示默认行为包括ALTER、COMMENT、GRANT/REVOKE和TRUNCATE操作会更新mtime字段。
  • disable,表示不更新mtime字段。
  • disable_acl,表示GRANT/REVOKE操作不更新mtime字段。
  • disable_truncate,表示TRUNCATE操作不更新mtime字段。
  • disable_partition,表示分区表相关ALTER操作不更新mtime字段。

默认值:default

相关文档