如何从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的副本。然后是实际源字符串的字节。