Skip to content

Commit e546ac0

Browse files
committed
build
1 parent 7f6e0cc commit e546ac0

File tree

7 files changed

+31
-16
lines changed

7 files changed

+31
-16
lines changed

cjs/src/connection.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -571,7 +571,7 @@ function Connection(options, queues = {}, { onopen = noop, onend = noop, onclose
571571
final && (final(), final = null)
572572

573573
if (result.command === 'BEGIN' && max !== 1 && !connection.reserved)
574-
return errored(Errors.generic('UNSAFE_TRANSACTION', 'Only use sql.begin or max: 1'))
574+
return errored(Errors.generic('UNSAFE_TRANSACTION', 'Only use sql.begin, sql.reserved or max: 1'))
575575

576576
if (query.options.simple)
577577
return BindComplete()

cjs/src/index.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,7 @@ function parseOptions(a, b) {
431431
query.sslmode && (query.ssl = query.sslmode, delete query.sslmode)
432432
'timeout' in o && (console.log('The timeout option is deprecated, use idle_timeout instead'), o.idle_timeout = o.timeout) // eslint-disable-line
433433

434+
const ints = ['idle_timeout', 'connect_timeout', 'max_lifetime', 'max_pipeline', 'backoff', 'keep_alive']
434435
const defaults = {
435436
max : 10,
436437
ssl : false,
@@ -454,12 +455,16 @@ function parseOptions(a, b) {
454455
database : o.database || o.db || (url.pathname || '').slice(1) || env.PGDATABASE || user,
455456
user : user,
456457
pass : o.pass || o.password || url.password || env.PGPASSWORD || '',
457-
...Object.entries(defaults).reduce((acc, [k, d]) =>
458-
(acc[k] = k in o ? o[k] : k in query
458+
...Object.entries(defaults).reduce(
459+
(acc, [k, d]) => {
460+
const value = k in o ? o[k] : k in query
459461
? (query[k] === 'disable' || query[k] === 'false' ? false : query[k])
460-
: env['PG' + k.toUpperCase()] || d,
461-
acc
462-
),
462+
: env['PG' + k.toUpperCase()] || d
463+
acc[k] = typeof value === 'string' && ints.includes(k)
464+
? +value
465+
: value
466+
return acc
467+
},
463468
{}
464469
),
465470
connection : {

cjs/tests/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2503,7 +2503,7 @@ t('concurrent cursors multiple connections', async() => {
25032503
t('reserve connection', async() => {
25042504
const reserved = await sql.reserve()
25052505

2506-
setTimeout(() => reserved.release(), 500)
2506+
setTimeout(() => reserved.release(), 510)
25072507

25082508
const xs = await Promise.all([
25092509
reserved`select 1 as x`.then(([{ x }]) => ({ time: Date.now(), x })),

deno/README.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -451,9 +451,14 @@ const result = await sql.file('query.sql', ['Murray', 68])
451451
```
452452

453453
### Multiple statements in one query
454-
#### `await sql`select 1;select 2`.simple()
454+
#### ```await sql``.simple()```
455455

456-
The postgres wire protocol supports "simple" and "extended" queries. "simple" queries supports multiple statements, but does not support any dynamic parameters. "extended" queries support parameters but only one statement. To use "simple" queries you can use sql``.simple(). That will create it as a simple query.
456+
The postgres wire protocol supports ["simple"](https://www.postgresql.org/docs/current/protocol-flow.html#id-1.10.6.7.4) and ["extended"](https://www.postgresql.org/docs/current/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY) queries. "simple" queries supports multiple statements, but does not support any dynamic parameters. "extended" queries support parameters but only one statement. To use "simple" queries you can use
457+
```sql``.simple()```. That will create it as a simple query.
458+
459+
```js
460+
await sql`select 1; select 2;`.simple()
461+
```
457462

458463
### Copy to/from as Streams
459464

deno/src/connection.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -575,7 +575,7 @@ function Connection(options, queues = {}, { onopen = noop, onend = noop, onclose
575575
final && (final(), final = null)
576576

577577
if (result.command === 'BEGIN' && max !== 1 && !connection.reserved)
578-
return errored(Errors.generic('UNSAFE_TRANSACTION', 'Only use sql.begin or max: 1'))
578+
return errored(Errors.generic('UNSAFE_TRANSACTION', 'Only use sql.begin, sql.reserved or max: 1'))
579579

580580
if (query.options.simple)
581581
return BindComplete()

deno/src/index.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,7 @@ function parseOptions(a, b) {
432432
query.sslmode && (query.ssl = query.sslmode, delete query.sslmode)
433433
'timeout' in o && (console.log('The timeout option is deprecated, use idle_timeout instead'), o.idle_timeout = o.timeout) // eslint-disable-line
434434

435+
const ints = ['idle_timeout', 'connect_timeout', 'max_lifetime', 'max_pipeline', 'backoff', 'keep_alive']
435436
const defaults = {
436437
max : 10,
437438
ssl : false,
@@ -455,12 +456,16 @@ function parseOptions(a, b) {
455456
database : o.database || o.db || (url.pathname || '').slice(1) || env.PGDATABASE || user,
456457
user : user,
457458
pass : o.pass || o.password || url.password || env.PGPASSWORD || '',
458-
...Object.entries(defaults).reduce((acc, [k, d]) =>
459-
(acc[k] = k in o ? o[k] : k in query
459+
...Object.entries(defaults).reduce(
460+
(acc, [k, d]) => {
461+
const value = k in o ? o[k] : k in query
460462
? (query[k] === 'disable' || query[k] === 'false' ? false : query[k])
461-
: env['PG' + k.toUpperCase()] || d,
462-
acc
463-
),
463+
: env['PG' + k.toUpperCase()] || d
464+
acc[k] = typeof value === 'string' && ints.includes(k)
465+
? +value
466+
: value
467+
return acc
468+
},
464469
{}
465470
),
466471
connection : {

deno/tests/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2505,7 +2505,7 @@ t('concurrent cursors multiple connections', async() => {
25052505
t('reserve connection', async() => {
25062506
const reserved = await sql.reserve()
25072507

2508-
setTimeout(() => reserved.release(), 500)
2508+
setTimeout(() => reserved.release(), 510)
25092509

25102510
const xs = await Promise.all([
25112511
reserved`select 1 as x`.then(([{ x }]) => ({ time: Date.now(), x })),

0 commit comments

Comments
 (0)