Skip to content

Commit df0343d

Browse files
authored
fix: unlisten channel names with period (porsager#550)
Similar to porsager/postgres@a12108a
1 parent 58aac20 commit df0343d

File tree

6 files changed

+18
-6
lines changed

6 files changed

+18
-6
lines changed

cjs/src/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,9 @@ function Postgres(a, b) {
192192
return
193193

194194
delete channels[name]
195-
return sql`unlisten ${ sql(name) }`
195+
return sql`unlisten ${
196+
sql.unsafe('"' + name.replace(/"/g, '""') + '"')
197+
}`
196198
}
197199
}
198200

cjs/tests/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -785,8 +785,10 @@ t('listen and notify with weird name', async() => {
785785
const sql = postgres(options)
786786
const channel = 'wat-;.ø.§'
787787
const result = await new Promise(async r => {
788-
await sql.listen(channel, r)
788+
const { unlisten } = await sql.listen(channel, r)
789789
sql.notify(channel, 'works')
790+
await delay(50)
791+
await unlisten()
790792
})
791793

792794
return [

deno/src/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,9 @@ function Postgres(a, b) {
193193
return
194194

195195
delete channels[name]
196-
return sql`unlisten ${ sql(name) }`
196+
return sql`unlisten ${
197+
sql.unsafe('"' + name.replace(/"/g, '""') + '"')
198+
}`
197199
}
198200
}
199201

deno/tests/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -787,8 +787,10 @@ t('listen and notify with weird name', async() => {
787787
const sql = postgres(options)
788788
const channel = 'wat-;.ø.§'
789789
const result = await new Promise(async r => {
790-
await sql.listen(channel, r)
790+
const { unlisten } = await sql.listen(channel, r)
791791
sql.notify(channel, 'works')
792+
await delay(50)
793+
await unlisten()
792794
})
793795

794796
return [

src/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,9 @@ function Postgres(a, b) {
192192
return
193193

194194
delete channels[name]
195-
return sql`unlisten ${ sql(name) }`
195+
return sql`unlisten ${
196+
sql.unsafe('"' + name.replace(/"/g, '""') + '"')
197+
}`
196198
}
197199
}
198200

tests/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -785,8 +785,10 @@ t('listen and notify with weird name', async() => {
785785
const sql = postgres(options)
786786
const channel = 'wat-;.ø.§'
787787
const result = await new Promise(async r => {
788-
await sql.listen(channel, r)
788+
const { unlisten } = await sql.listen(channel, r)
789789
sql.notify(channel, 'works')
790+
await delay(50)
791+
await unlisten()
790792
})
791793

792794
return [

0 commit comments

Comments
 (0)