返回首页

gbase数据、南大通用产品文档:GBase8sdecsub() 函数

更新日期:2024年09月11日

decsub() 函数将两个 decimal 类型值相减。
语法
mint decsub(n1, n2, difference)
dec_t *n1;
dec_t *n2;
dec_t *difference;
n1
指向第一个运算对象的 decimal 结构的指针。
n2
指向第二个运算对象的 decimal 结构的指针。

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 655 -

difference
指向包含 n1 减去 n2 的差的 decimal 结构的指针。

用法
difference 可与 n1 或 n2 相同。

返回代码
0
操作成功。
-1200
操作导致溢出。
-1201
操作导致下溢。

示例

demo 目录中的文件 decsub.ec 包含下列示例程序。
/*
* decsub.ec *

The following program subtracts two DECIMAL numbers and displays the result.
*/

#include

EXEC SQL include decimal;

char string1[] = "1000.038782";
char string2[] = "480";
char result[41];

main()

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 656 -

{
mint x;
dec_t num1, num2, diff;

printf("DECSUB Sample ESQL Program running.\n\n");

if (x = deccvasc(string1, strlen(string1), &num1))
{
printf("Error %d in converting string1 to DECIMAL\n", x);
exit(1);
}
if (x = deccvasc(string2, strlen(string2), &num2))
{
printf("Error %d in converting string2 to DECIMAL\n", x);
exit(1);
}
if (x = decsub(&num1, &num2, &diff))
{
printf("Error %d in subtracting decimals\n", x);
exit(1);
}
if (x = dectoasc(&diff, result, sizeof(result), -1))
{
printf("Error %d in converting result to string\n", x);
exit(1);
}
result[40] = '\0';
printf("\t%s - %s = %s\n", string1, string2, result);

printf("\nDECSUB Sample Program over.\n\n");
exit(0);
}
输出

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 657 -

DECSUB Sample ESQL Program running.

1000.038782 - 480 = 520.038782

DECSUB Sample Program over.

参数说明

-h
收集信息的主机名称。

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
123
取值范围:主机名称,如果不指定则默认收集所有主机的信息。

-f
主机名称列表文件。该文件为纯文本格式。
取值范围:主机名称列表。

-f 和-h 参数不能同时使用。

-o
将收集日志以压缩包形式输出到指定的文件夹。
不指定则将检查结果以压缩包形式输出
到配置文件中tmpMppdbPath 选项所指定的目录中。
若配置文件中未配置tmpMppdbPath 选项,则默认将检查结果以压缩包形式输出到
“/tmp/用户名_mppdb/”目录中。

-l
指定的日志文件以及存放路径。

-C
指定待收集内容的配置文件,利用TypeName 指定需要收集的信息类型,利用Content
指定每一类信息的具体内容,利用Count 指定此类信息收集的次数,利用Interval 指定收集
间隔,单位为秒。
TypeName 和Content 不允许缺失或者内容为空。
Interval 和Count 可以不指定,如果没有指定Count,则默认收集一次。如果没有指定
Interval 则表示间隔为0 秒,Interval 和Count 的值不能小于0。
配置文件格式采用json 格式,模板如下:
{
"Collect":
[

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
124
{"TypeName": "name", "Content":"value","Interval":"seconds",
"Count":"count"}
]
}

TypeName 和对应的Content 取值范围见表3-8。

对于Log、CoreDump、Config 和XLog 四种类型,Interval 和Count 参数不生效。
如果不指定则使用默认的配置文件。默认配置文件内容如下:
{
"Collect":
[
{"TypeName": "System", "Content": "RunTimeInfo,HardWareInfo",
"Interval":"0","Count":"1"},
{"TypeName": "Log", "Content" : "DataNode,ClusterManager",
"Interval":"0", "Count":"1"},
{"TypeName": "Database", "Content":
"pg_locks,pg_stat_activity,pg_thread_wait_status","Interval":"0",
"Count":"1"},
{"TypeName": "Config", "Content": "DataNode", "Interval":"0",
"Count":"1"}
]
}

--keyword=KEYWORD
包含关键字KEYWORD 的日志文件。
若关键字KEYWORD 中含有空格,需要使用双引号包围。

性能日志为二进制日志,关键字搜集功能不支持该日志的搜集。

--begin-time
日志的开始时间。输入格式为“yyyymmdd hh:mm”。

--end-time

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
125
日志的结束时间。输入格式为“yyyymmdd hh:mm”。

--speed-limit
日志收集时的收集速率,输入格式为非负整数,单位为MB/s。
该参数主要是为了防止日志收集过程中产生过高的磁盘或网络IO,导致数据库节点故
障(如果它们与$GAUSSLOG/$PGHOST 部署在同一个磁盘上)。该值应当不超过GBase 8c
内上述磁盘IO 与网络IO 速率的最小值的1/3。

-?, --help
显示帮助信息。

-V, --version
显示版本号信息。

表 5-105 具体信息如下:
TABLE_ID
表id
COLUMN_ID
列id
DP
dc 号
LOCK_COUNT
加锁的数量
LOCKED
是否加锁
SIZE
占用空间