Merge pull request #357 from cloudflare/sven/neon-batch

neon: implement batch query
sven/debug3
Sven Sauleau 2023-03-01 11:50:43 +00:00 zatwierdzone przez GitHub
commit cb2a69c62d
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
2 zmienionych plików z 18 dodań i 4 usunięć

Wyświetl plik

@ -52,8 +52,20 @@ export default async function make(env: Pick<Env, 'NEON_DATABASE_URL'>): Promise
},
async batch<T = unknown>(statements: PreparedStatement[]): Promise<Result<T>[]> {
throw new Error('not implemented')
console.log(statements)
const results = []
for (let i = 0, len = statements.length; i < len; i++) {
const query = sqliteToPsql(statements[i].query)
const result = await client.query(query, statements[i].values)
results.push({
results: result.rows as T[],
success: true,
meta: {},
})
}
return results
},
async exec<T = unknown>(query: string): Promise<Result<T>> {
@ -66,8 +78,8 @@ export default async function make(env: Pick<Env, 'NEON_DATABASE_URL'>): Promise
export class PreparedStatement {
private env: Pick<Env, 'NEON_DATABASE_URL'>
private client: neon.Client
private query: string
private values: any[]
public query: string
public values: any[]
constructor(env: Pick<Env, 'NEON_DATABASE_URL'>, query: string, values: any[], client: neon.Client) {
this.env = env

Wyświetl plik

@ -15,6 +15,8 @@ export type Env = {
SENTRY_DSN: string
SENTRY_ACCESS_CLIENT_ID: string
SENTRY_ACCESS_CLIENT_SECRET: string
NEON_DATABASE_URL?: string
}
export default {