gpt4 book ai didi

c - Postgresql C 如何将 uint64_t 转换为数字?

转载 作者:行者123 更新时间:2023-11-29 12:02:43 26 4
gpt4 key购买 nike

Postgres 不支持 uint64_t ,最大的整数类型是 BIGINT ,其范围等于 int64。我需要从 C 函数返回一个 unit64_t var,如何将其转换为数字,然后我可以从我的函数返回一个数字?

最佳答案

我找不到直接处理此转换的现有函数。更糟糕的是,用于构建 NUMERIC 值的所有结构和函数似乎都是 numeric.c 的本地结构和函数。 ,并且随附的 header 没有太多用处。 ,所以我不确定您应该如何自己构建它们(看起来我们是 not the first to notice this )。

似乎这基本上限制了您使用该类型的 SQL 级 API(即内置类型转换和算术运算)。我认为唯一可以转换为 NUMERIC 且宽度足以容纳 uint64 的 SQL 类型是 TEXT。换句话说,最简单的方法可能是将您的值转换为字符串,并将其传递到 NUMERIC 解析例程中,例如:

char uint64_string [21];
sprintf(uint64_string, "%" PRIu64, uint64_val);
PG_RETURN_DATUM(DirectFunctionCall3(numeric_in, CStringGetDatum(uint64_string), 0, -1));

关于c - Postgresql C 如何将 uint64_t 转换为数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48448064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com