如何从JavaScript数组创建BYTEA?

时间:2016-10-25 20:29:17

标签: javascript postgresql plv8

如何从JavaScript数组创建BYTEA?根据{{​​3}} 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'

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

我错过了什么?

更新

看起来我弄清楚它是如何创造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的副本。然后是实际源字符串的字节。

0 个答案:

没有答案