параметризованные операторы не работают в postgresql npm - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь выполнить запрос с параметрами, используя pg npm, как показано в их документации:

//parameterized statements
client.query('SELECT $1::text as twitter_handle', ['@briancarlson'], function(err, rows) {
    if(err) throw err

    console.log(rows[0].twitter_handle) //@briancarlson
})

Итак, мой запрос выглядит так:

let query = `SELECT CONCAT(jointable.vehicle_id, '-', jointable.people_id) as _main_id
        , people.*
        , vehicles.*
        FROM (VALUES $1) as jointable (vehicle_id, people_id)
        LEFT JOIN people
            ON (people.id = jointable.people_id)
        LEFT JOIN vehicles
            ON (vehicles.vehicle_id = jointable.vehicle_id)`;

let params = [ '(1,1),(2,1),(1,2),(2,3),(1,4)' ];
let callback = (err, result) => {…etc…}

pool.query({
    text: query,
    values: params,
    rowMode: 'array'
}, callback);

И яЯ также пытался это сделать с тем же результатом:

pool.query(query, params, callback);

Я продолжаю получать тот же результат: Error: syntax error at or near "$1" Так что он не заменяет $ 1 параметрами.Я попытался сделать $1::text, $1::string, с тем же результатом.

Если я сделаю изменение вручную вместо использования параметров, запрос работает нормально и возвращает результаты, поэтому я знаю, что сам запросправильно, это просто не работает параметры.Любая идея, что я делаю неправильно?

Использование версий npm:

"pg": "^ 7.7.1",

"pg-copy-streams":«^ 1.2.0»,

«pg-format»: «^ 1.0.4»,

«pg-native»: «^ 3.0.0»

...