Skip to content

Commit

Permalink
update zetasql (#1129)
Browse files Browse the repository at this point in the history
  • Loading branch information
pgrivachev authored Aug 10, 2023
1 parent b186df0 commit 5196742
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 48 deletions.
13 changes: 0 additions & 13 deletions e2e/projects/test-fixture/models/new.sql

This file was deleted.

11 changes: 0 additions & 11 deletions e2e/projects/test-fixture/models/users.sql

This file was deleted.

28 changes: 14 additions & 14 deletions server/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"node": "*"
},
"dependencies": {
"@fivetrandevelopers/zetasql": "^1.12.0",
"@fivetrandevelopers/zetasql-snowflake": "^0.8.0",
"@fivetrandevelopers/zetasql": "^1.13.0",
"@fivetrandevelopers/zetasql-snowflake": "^0.9.0",
"@google-cloud/bigquery": "^7.1.1",
"async-retry": "^1.3.3",
"axios": "^1.4.0",
Expand Down
14 changes: 6 additions & 8 deletions server/src/ZetaSqlApi.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { TypeKind as SnowflakeTypeKind } from '@fivetrandevelopers/zetasql-snowflake/lib/index';
import { TypeKind } from '@fivetrandevelopers/zetasql/lib/index';
import { AnalyzeRequest, TypeKind } from '@fivetrandevelopers/zetasql/lib/index';
import { LanguageFeature } from '@fivetrandevelopers/zetasql/lib/types/zetasql/LanguageFeature';
import { LanguageOptionsProto } from '@fivetrandevelopers/zetasql/lib/types/zetasql/LanguageOptionsProto';
import { LanguageVersion } from '@fivetrandevelopers/zetasql/lib/types/zetasql/LanguageVersion';
Expand Down Expand Up @@ -68,10 +68,11 @@ export class ZetaSqlApi {
this.zetaSql.terminateServer();
}

async analyze(request: import('@fivetrandevelopers/zetasql/lib/index').AnalyzeRequest): Promise<AnalyzeResponse__Output | undefined> {
async analyze(request: AnalyzeRequest): Promise<AnalyzeResponse__Output | undefined> {
this.assertZetaSqlIsDefined(this.zetaSql);

const result = await this.zetaSql.ZetaSQLClient.getInstance().analyze(request);
/* eslint-disable @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any */
const result = await this.zetaSql.ZetaSQLClient.getInstance().analyze(request as any);
return result as AnalyzeResponse__Output | undefined; // TODO: Snowflake response is a bit different
}

Expand Down Expand Up @@ -108,6 +109,7 @@ export class ZetaSqlApi {
options.enableLanguageFeature(LanguageFeature.FEATURE_JSON_VALUE_EXTRACTION_FUNCTIONS);
options.enableLanguageFeature(LanguageFeature.FEATURE_INTERVAL_TYPE);
options.enableLanguageFeature(LanguageFeature.FEATURE_CBRT_FUNCTIONS);
options.enableLanguageFeature(LanguageFeature.FEATURE_V_1_4_GROUPING_SETS);
// https://github.com/google/zetasql/issues/115#issuecomment-1210881670
options.options.reservedKeywords = ['QUALIFY'];
this.languageOptions = options.serialize() as LanguageOptionsProto; // TODO: Snowflake settings are a bit different
Expand All @@ -125,11 +127,7 @@ export class ZetaSqlApi {

createType(newColumn: ColumnDefinition): TypeProto {
const lowerCaseType = newColumn.type.toLowerCase();
let typeKind = this.zetaSql?.TypeFactory.SIMPLE_TYPE_KIND_NAMES.get(lowerCaseType) as TypeKind; // TODO: Snowflake TypeKind has more values
if (!typeKind && ['timestamp_tz', 'timestamp_ltz', 'timestamp_ntz'].includes(lowerCaseType)) {
// TODO: add to Snowflake npm
typeKind = TypeKind.TYPE_TIMESTAMP;
}
const typeKind = this.zetaSql?.TypeFactory.SIMPLE_TYPE_KIND_NAMES.get(lowerCaseType) as TypeKind;
let resultType: TypeProto;
if (typeKind) {
resultType = {
Expand Down

0 comments on commit 5196742

Please sign in to comment.