【发布时间】:2018-10-15 21:41:02
【问题描述】:
Chrome V8 - JavaScript 引擎 - 最近添加了对 BigInt - 任意精度大整数的支持:
我可以在 BigQuery 中使用这些 BigInt 吗?
【问题讨论】:
标签: javascript google-bigquery user-defined-functions
Chrome V8 - JavaScript 引擎 - 最近添加了对 BigInt - 任意精度大整数的支持:
我可以在 BigQuery 中使用这些 BigInt 吗?
【问题讨论】:
标签: javascript google-bigquery user-defined-functions
是的! BigQuery 运行最新版本的 V8 之一,因此它已经支持 BigInts。
使用它们:
CREATE TEMP FUNCTION testBigInt()
RETURNS ARRAY<STRING>
LANGUAGE js AS """
return [
Number.MAX_SAFE_INTEGER
, Number.MAX_SAFE_INTEGER+2
, Number.MAX_SAFE_INTEGER+1
, Number.MAX_SAFE_INTEGER+100
, BigInt(Number.MAX_SAFE_INTEGER) + 2n];
""";
SELECT testBigInt()
9007199254740991
9007199254740992
9007199254740992
9007199254741092
9007199254740993
从结果中,请注意 JavaScript 在不使用 BigInt 时会默默地产生错误答案 - 因此需要 BigInt。
要使 BigInts 与 BigQuery 兼容,您需要将它们视为字符串。请继续关注,因为我们已要求对此进行改进。
使用错误的类型可能会出现以下错误:
【讨论】: