You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The following query arbitrary causes an UNSAVE_TRANSACTION error.
awaitthis.sql.begin(async(tsql)=>{awaittsql`DELETE FROM mapping_table WHERE a_id = ${aId}`;if(items.length===0){return;}awaittsql`INSERT INTO mapping_table ${// eslint-disable-next-line @ts-safeql/check-sqltsql(items,'a_id','b_id')}`;});
the error most likely happens when this code is executed very frequently and items is usually an array betwenn 0 and a few thousand items.
error:
Error: UNSAFE_TRANSACTION: Only use sql.begin, sql.reserved or max: 1
at CommandComplete (/Users/juhwon/Projects/xx/xx/node_modules/postgres/cjs/src/connection.js:580:29)
at handle (/Users/juhwon/Projects/xx/xx/node_modules/postgres/cjs/src/connection.js:476:6)
at Socket.data (/Users/juhwon/Projects/xx/xx/node_modules/postgres/cjs/src/connection.js:315:9)
at Socket.emit (node:events:514:28)
at addChunk (node:internal/streams/readable:376:12)
at readableAddChunk (node:internal/streams/readable:349:9)
at Socket.Readable.push (node:internal/streams/readable:286:10)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
at TCP.callbackTrampoline (node:internal/async_hooks:130:17)
to my understanding using sql.begin for something like this should be fine. have we found a bug here or is there something wrong with our code?
The text was updated successfully, but these errors were encountered:
JuHwon
changed the title
Arbitrary UNSAFE_TRANSACTION errors
Arbitrary UNSAFE_TRANSACTION errors when using sql.begin
Mar 9, 2024
JuHwon
changed the title
Arbitrary UNSAFE_TRANSACTION errors when using sql.begin
arbitrary UNSAFE_TRANSACTION errors when using sql.begin
Mar 9, 2024
{
"severity_local":"WARNING",
"severity":"WARNING",
"code":"25001",
"message":"there is already a transaction in progress",
"file":"xact.c",
"line":"3799",
"routine":"BeginTransactionBlock"
}
according to the debug logs the client executes a BEGIN statement on connection id e.g. 4, and then a few ms laters it executes a BEGIN statement with the same connection id again, before the first transaction was handled. there were no other statements between with the affected connection id.
The following query arbitrary causes an
UNSAVE_TRANSACTION
error.the error most likely happens when this code is executed very frequently and items is usually an array betwenn 0 and a few thousand items.
error:
to my understanding using sql.begin for something like this should be fine. have we found a bug here or is there something wrong with our code?
The text was updated successfully, but these errors were encountered: