Passar matriz de postgres de nó para a função plpgsql
A função plpgsql:
CREATE OR REPLACE FUNCTION testarray (int[]) returns int as $
DECLARE
len int;
BEGIN
len := array_upper($1);
return len;
END
$ language plpgsql;
A matriz node-postgres query + test:
var ta = [1,2,3,4,5];
client.query('SELECT testarray($1)', [ta], function(err, result) {
console.log('err: ' + err);
console.log('result: ' + result);
});
Saída do servidor do nó:
err: error: o valor da matriz deve começar com "{" ou informações de dimensão
resultado: indefinido
Eu também tentei converter o parâmetro na consulta do cliente comotestarray($1::int[])
que retornou o mesmo erro.
Eu mudei o argumento da função para(anyarray int)
e o erro de saída foi alterado:
err: error: sintaxe de entrada inválida para integer: "1,2,3,4,5"
resultado: indefinido
Bem como algumas outras variações.
Eu procuro a variação que não produz erro e retorna 5.
Eu li sobre oPostgres parse-array issue e essa pergunta stackoverflow em matrizes parametrizadas em postgres de nó:
node-postgres: como executar a consulta "WHERE col IN (<lista de valores dinâmicos>)"?Mas a resposta não parecia estar lá.