ktx/packages/connector-postgres/src/historic-sql-query-client.ts

38 lines
1.1 KiB
TypeScript
Raw Normal View History

2026-05-10 23:12:26 +02:00
import type { KloPostgresQueryClient } from '@klo/context/ingest';
import { KloPostgresScanConnector, type KloPostgresScanConnectorOptions } from './connector.js';
export type KloPostgresHistoricSqlQueryClientOptions = KloPostgresScanConnectorOptions;
export class KloPostgresHistoricSqlQueryClient implements KloPostgresQueryClient {
private readonly connectionId: string;
private readonly connector: KloPostgresScanConnector;
constructor(options: KloPostgresHistoricSqlQueryClientOptions) {
this.connectionId = options.connectionId;
this.connector = new KloPostgresScanConnector(options);
}
async executeQuery(
sql: string,
params?: unknown[],
): Promise<{ headers: string[]; rows: unknown[][]; totalRows: number }> {
const result = await this.connector.executeReadOnly(
{
connectionId: this.connectionId,
sql,
params,
},
{} as never,
);
return {
headers: result.headers,
rows: result.rows,
totalRows: result.totalRows,
};
}
async cleanup(): Promise<void> {
await this.connector.cleanup();
}
}