1

如何从 JavaScript 数组创建 BYTEA?根据PL/V8 doc JS 数组应该被转换为 BYTEA 但它没有发生在我身上。

例如考虑以下功能

CREATE OR REPLACE FUNCTION test2(input bytea) RETURNS bytea AS $$
    var arr = [255, 254];
    return arr;
$$ LANGUAGE plv8 IMMUTABLE STRICT;

它返回看起来像这样的 28 (!!!) 字节

E'\\x020000400800009008000010200000000080FF00200000000080FE00'

在 Amazon RDS 上使用 Postgresql 9.5 和 PLV8 1.4.3 进行测试

我错过了什么?

更新:

看起来我知道它是如何创建 BYTEA 的。例如对于这个函数

CREATE OR REPLACE FUNCTION test2(input bytea) RETURNS bytea AS $$
    return '          '.split('');
$$ LANGUAGE plv8 IMMUTABLE STRICT;

它产生 E'\\x0A000040 01000080 01000000 01000000 01000000 01000000 01000000 01000000 01000000 01000000 01000000 20202020202020202020';

所以它包含第一个 DWORD 的低字节长度(由于某种原因,高字节中有 0x40),后面是 0x80000001,然后Len-1是 0x1 的副本。然后是实际源字符串的字节。

4

0 回答 0