@@ -79,70 +79,71 @@ export class SqliteQueryRunner extends AbstractSqliteQueryRunner {
7979
8080 const execute = async ( ) => {
8181 if ( isInsertQuery || isDeleteQuery || isUpdateQuery ) {
82- await databaseConnection . run ( query , parameters , handler )
82+ return await databaseConnection . run ( query , parameters )
8383 } else {
84- await databaseConnection . all ( query , parameters , handler )
84+ return await databaseConnection . all ( query , parameters )
8585 }
8686 }
8787
88- const self = this
89- const handler = function ( this : any , err : any , rows : any ) {
88+ let raw
89+
90+ try {
91+ raw = await execute ( )
92+ } catch ( err ) {
9093 if ( err && err . toString ( ) . indexOf ( "SQLITE_BUSY:" ) !== - 1 ) {
9194 if (
9295 typeof options . busyErrorRetry === "number" &&
9396 options . busyErrorRetry > 0
9497 ) {
95- setTimeout ( execute , options . busyErrorRetry )
96- return
98+ return setTimeout ( execute , options . busyErrorRetry )
9799 }
98100 }
101+ throw err
102+ }
99103
100- // log slow queries if maxQueryExecution time is set
101- const queryEndTime = Date . now ( )
102- const queryExecutionTime = queryEndTime - queryStartTime
103- if (
104- maxQueryExecutionTime &&
105- queryExecutionTime > maxQueryExecutionTime
106- )
107- connection . logger . logQuerySlow (
108- queryExecutionTime ,
109- query ,
110- parameters ,
111- self ,
112- )
113-
114- const result = new QueryResult ( )
115-
116- if ( isInsertQuery ) {
117- result . raw = this [ "lastID" ]
118- } else {
119- result . raw = rows
120- }
121-
122- broadcaster . broadcastAfterQueryEvent (
123- broadcasterResult ,
104+ // log slow queries if maxQueryExecution time is set
105+ const queryEndTime = Date . now ( )
106+ const queryExecutionTime = queryEndTime - queryStartTime
107+ if (
108+ maxQueryExecutionTime &&
109+ queryExecutionTime > maxQueryExecutionTime
110+ )
111+ connection . logger . logQuerySlow (
112+ queryExecutionTime ,
124113 query ,
125114 parameters ,
126- true ,
127- queryExecutionTime ,
128- result . raw ,
129- undefined ,
115+ this ,
130116 )
131117
132- if ( Array . isArray ( rows ) ) {
133- result . records = rows
134- }
118+ const result = new QueryResult ( )
135119
136- result . affected = this [ "changes" ]
120+ if ( isInsertQuery ) {
121+ result . raw = raw . lastID
122+ } else {
123+ result . raw = raw
124+ }
137125
138- if ( useStructuredResult ) {
139- return result
140- } else {
141- return result . raw
142- }
126+ broadcaster . broadcastAfterQueryEvent (
127+ broadcasterResult ,
128+ query ,
129+ parameters ,
130+ true ,
131+ queryExecutionTime ,
132+ result . raw ,
133+ undefined ,
134+ )
135+
136+ if ( Array . isArray ( raw ) ) {
137+ result . records = raw
143138 }
144139
145- await execute ( )
140+ result . affected = raw . changes
141+
142+ if ( useStructuredResult ) {
143+ return result
144+ } else {
145+ return result . raw
146+ }
146147 } catch ( err ) {
147148 connection . logger . logQueryError ( err , query , parameters , this )
148149 broadcaster . broadcastAfterQueryEvent (
0 commit comments