返回首页

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

更新日期:2024年09月11日

gbase_loader_logs_dir
取值:路径
默认值:gcluster:
$GCLUSTER_HOME/log/gcluster/loader_logs/
gbase:
$GBASE_HOME/log/gbase/loader_logs/
说明:用于指定加载错误日志汇总目录。
修改方式:可在配置文件中修改值。适用于global 范围。

GBase 8a MPP Cluster 参数手册
文档版本2022-06-07
南大通用数据技术股份有限公司
107

对每一个想在SQL 语句中使用的函数(假设函数名为func),应该定义对应的C
(或C++ ,C++函数声明要加上extern
"C ")函数,该函数满足以下规则:
func()(必需)
主函数。这是计算函数结果的地方,每行调用一次。SQL 类型与C/C++函数返回
类型的对应关系如下:
表5- 194 SQL 类型与C/C++函数返回类型的对应关系
SQL 类型
C/C++ 类型
STRING
char *
INTEGER
long long
REAL
double
func_init()(必需)
func()的初始化函数,只在开始调用一次,它可用于:

检查传到func()的参数个数;

检查参数类型是否正确或者当主函数被调用时将参数强制转换成需要的类
型;

分配主函数所需的内存;

指定返回结果的最大长度;

指定返回REAL 类型的函数的最大小数位;

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1384

指定结果是否允许为NULL。
func_deinit()(可选)
func()的结束函数,
只在所有行结束后调用一次,
它可用于释放初始化函数分配的
内存。
说明

当一条SQL 语句调用func()时,GBase 调用初始化函数func_init(),执行所需的初
始化工作,例如参数检查或内存分配。

如果func_init()返回一个错误,SQL 语句返回一条错误消息同时不会调用主函数和
结束函数。否则,为每行调用主函数func()一次。

在所有行被处理完后,调用结束函数func_deinit(),执行必要的清理工作。
注意
所有函数必须是线程安全的(不仅是主函数,还有初始化和结束函数)。不允许
在函数中改变全局共享或静态的变量。如果需要内存,应该在func_init()中分
配它并且在func_deinit()中释放它。

返回不同的非NULL 的值的总数目。
示例
示例1:返回lo_orderkey 列中不同的非NULL 的值的总数目。
gbase> SELECT COUNT(DISTINCT lo_orderkey) FROM ssbm.lineorder;
+-----------------------------+
| COUNT(DISTINCT lo_orderkey) |
+-----------------------------+
| 1500000 |
+-----------------------------+
1 row in set
在GBase UP 中,用户通过给定一个表达式列表而获取不包含NULL 不同表达式组
合的数目。而在标准SQL 中,用户必须在COUNT(DISTINCT...)中连接所有的表达
式。