atdatabases icon indicating copy to clipboard operation
atdatabases copied to clipboard

Return type of `Queryable.query` is wrong when query is not `SELECT`

Open silane opened this issue 1 year ago • 0 comments

https://github.com/ForbesLindesay/atdatabases/blob/66c0122310747935c09bb23c026006cef409242b/packages/mysql/src/types/Queryable.ts#L10

Return type of Queryable.query is declared to be Promise<any[]> but this is correct only when in SELECT query and not INSERT or DELETE or something else. When INSERT, the returned value seems to be object like follows.

ResultSetHeader {
  fieldCount: 0,
  affectedRows: 0,
  insertId: 0,
  info: "Records: 0  Duplicates: 0  Warnings: 0",
  serverStatus: 2,
  warningStatus: 0
}

I'm getting TypeScript error when reading affectedRows, but it actually works at runtime.

スクリーンショット 2024-03-19 004352

Using @databases/mysql, but may be the same for other DBs.

silane avatar Mar 18 '24 15:03 silane