@vulcan-sql/extension-driver-bq
Version:
BigQuery driver for Vulcan SQL
28 lines (27 loc) • 1.17 kB
TypeScript
import { DataResult, DataSource, ExecuteOptions, RequestParameter, ExportOptions } from '@vulcan-sql/core';
import { Query, Job, BigQueryOptions } from '@google-cloud/bigquery';
import bigquery from '@google-cloud/bigquery/build/src/types';
export interface BQCache {
bucketName: string;
}
export interface BQOptions extends BigQueryOptions {
chunkSize?: number;
location?: string;
cache?: BQCache;
}
export declare class BQDataSource extends DataSource<any, BQOptions> {
private logger;
private bqMapping;
onActivate(): Promise<void>;
export({ sql: statement, profileName, directory, }: ExportOptions): Promise<void>;
execute({ statement: sql, bindParams, profileName, operations, }: ExecuteOptions): Promise<DataResult>;
prepare({ parameterIndex }: RequestParameter): Promise<string>;
private getResultFromQueryJob;
fetchJobResult(queryJob: Job, chunkSize: number, nextQuery?: Query | null | undefined): Promise<{
rows: any[];
nextQuery: Query | null | undefined;
apiResponse: bigquery.IGetQueryResultsResponse | null | undefined;
}>;
private checkProfileExist;
private runJobAndWait;
}