Skip to content

Commit 0574fa8

Browse files
committed
Fix array as multiple parameters
1 parent 933e397 commit 0574fa8

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

lib/index.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ export default function Postgres(url, options) {
381381
function selectHelper(first, columns, xargs, types) {
382382
return Object.entries(first).reduce((acc, [k, v]) =>
383383
acc + (!columns.length || columns.indexOf(k) > -1
384-
? (acc ? ', ' : '') + parseValue(v, xargs, types) + ' as ' + escape(k)
384+
? (acc ? ',' : '') + parseValue(v, xargs, types) + ' as ' + escape(k)
385385
: ''
386386
)
387387
, '')
@@ -393,29 +393,29 @@ export default function Postgres(url, options) {
393393
first.map(row =>
394394
'(' + Object.entries(row).reduce((acc, [k, v]) =>
395395
acc + (!columns.length || columns.indexOf(k) > -1
396-
? (acc ? ', ' : '') + parseValue(v, xargs, types)
396+
? (acc ? ',' : '') + parseValue(v, xargs, types)
397397
: ''
398398
)
399399
, '') + ')'
400-
).join(', ')
400+
).join(',')
401401
}
402402

403403
function equalsHelper(first, columns, xargs, types) {
404404
return Object.entries(first).reduce((acc, [k, v]) =>
405405
acc + (!columns.length || columns.indexOf(k) > -1
406-
? (acc ? ', ' : '') + escape(k) + ' = ' + parseValue(v, xargs, types)
406+
? (acc ? ',' : '') + escape(k) + ' = ' + parseValue(v, xargs, types)
407407
: ''
408408
)
409409
, '')
410410
}
411411

412412
function escapeHelper(xs) {
413-
return xs.reduce((acc, x) => acc + (acc ? ', ' : '') + escape(x), '')
413+
return xs.reduce((acc, x) => acc + (acc ? ',' : '') + escape(x), '')
414414
}
415415

416416
function parseValue(x, xargs, types) {
417417
return Array.isArray(x)
418-
? x.reduce((acc, x) => addValue(x, xargs, types), '')
418+
? x.reduce((acc, x) => acc + (acc ? ',' : '') + addValue(x, xargs, types), '')
419419
: addValue(x, xargs, types)
420420
}
421421

tests/index.js

+15-1
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,20 @@ t('dynamic insert', async () => {
438438
return ['the answer', (await sql`insert into test ${ sql(x) } returning *`)[0].b]
439439
}, () => sql`drop table test`)
440440

441+
t('array insert', async () => {
442+
await sql`create table test (a int, b int)`
443+
return [2, (await sql`insert into test (a, b) values (${ [1,2] }) returning *`)[0].b]
444+
}, () => sql`drop table test`)
445+
446+
t('parameters in()', async () => {
447+
return [2, (await sql`
448+
with rows as (
449+
select * from (values (1), (2), (3), (4)) as x(a)
450+
)
451+
select * from rows where a in (${ [3, 4] })
452+
`).count]
453+
})
454+
441455
t('dynamic multi row insert', async () => {
442456
await sql`create table test (a int, b text)`
443457
const x = { a: 42, b: 'the answer' }
@@ -471,7 +485,7 @@ t('dynamic select args', async () => {
471485
return ['yay', (await sql`select ${ sql('a', 'b') } from test`)[0].b]
472486
}, () => sql`drop table test`)
473487

474-
ot('connection parameters', async() => {
488+
t('connection parameters', async() => {
475489
const sql = postgres({
476490
...options,
477491
connection: {

0 commit comments

Comments
 (0)