@quillsql/node 0.6.5 → 0.6.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,21 +16,49 @@ exports.getSchemaColumnInfoSnowflake = exports.getForeignKeysSnowflake = exports
16
16
  const snowflake_sdk_1 = __importDefault(require("snowflake-sdk"));
17
17
  const textProcessing_1 = require("../utils/textProcessing");
18
18
  const POSTGRES_SNOWFLAKE_MAP = {
19
- BOOLEAN: 16,
20
- FIXED: 1700, // DECIMAL or NUMERIC
21
- REAL: 700, // FLOAT4
22
- DOUBLE: 701, // FLOAT8
23
- TEXT: 25, // TEXT in PostgreSQL
24
- DATE: 1082,
25
- DATETIME: 1184, // TIMESTAMP in PostgreSQL
26
- TIME: 1083,
27
- TIMESTAMP_LTZ: 1184,
28
- TIMESTAMP_NTZ: 1184,
29
- TIMESTAMP_TZ: 1184,
30
- VARIANT: 114, // JSONB in PostgreSQL
31
- OBJECT: 114, // JSONB, as an equivalent for structured JSON
32
- ARRAY: 1009, // TEXT[], assuming most common case
19
+ // Numeric Types
20
+ NUMBER: 1700, // NUMERIC
21
+ DECIMAL: 1700, // NUMERIC
22
+ NUMERIC: 1700, // NUMERIC
23
+ INT: 23, // INTEGER
24
+ INTEGER: 23, // INTEGER
25
+ BIGINT: 20, // BIGINT
26
+ SMALLINT: 21, // SMALLINT
27
+ TINYINT: 21, // SMALLINT (PostgreSQL doesn't have TINYINT)
28
+ BYTEINT: 21, // SMALLINT (PostgreSQL doesn't have BYTEINT)
29
+ FLOAT: 701, // DOUBLE PRECISION
30
+ FLOAT4: 700, // REAL
31
+ FLOAT8: 701, // DOUBLE PRECISION
32
+ DOUBLE: 701, // DOUBLE PRECISION
33
+ REAL: 700, // REAL
34
+ // Boolean Type
35
+ BOOLEAN: 16, // BOOLEAN
36
+ // String Types
37
+ VARCHAR: 1043, // VARCHAR
38
+ CHAR: 1042, // CHAR
39
+ CHARACTER: 1042, // CHAR
40
+ STRING: 25, // TEXT
41
+ TEXT: 25, // TEXT
42
+ // Binary Types
33
43
  BINARY: 17, // BYTEA
44
+ VARBINARY: 17, // BYTEA
45
+ // Date and Time Types
46
+ DATE: 1082, // DATE
47
+ DATETIME: 1184, // TIMESTAMP
48
+ TIME: 1083, // TIME
49
+ TIMESTAMP: 1184, // TIMESTAMP
50
+ TIMESTAMP_LTZ: 1184, // TIMESTAMP WITH TIME ZONE
51
+ TIMESTAMP_NTZ: 1114, // TIMESTAMP WITHOUT TIME ZONE
52
+ TIMESTAMP_TZ: 1184, // TIMESTAMP WITH TIME ZONE
53
+ // Semi-structured Data Types
54
+ VARIANT: 3802, // JSONB
55
+ OBJECT: 3802, // JSONB
56
+ ARRAY: 2277, // JSON[] (closest equivalent)
57
+ // Geospatial Type
58
+ GEOGRAPHY: 25, // TEXT (PostgreSQL doesn't have a direct equivalent)
59
+ GEOMETRY: 25, // TEXT (PostgreSQL doesn't have a direct equivalent)
60
+ // Vector Type
61
+ VECTOR: 3802, // JSONB (closest equivalent without extensions)
34
62
  };
35
63
  function runQuerySnowflake(sql, connection) {
36
64
  return __awaiter(this, void 0, void 0, function* () {
package/dist/index.d.ts CHANGED
@@ -32,7 +32,7 @@ export declare class Quill implements AsyncDisposable {
32
32
  cache?: Partial<CacheCredentials>;
33
33
  metadataServerURL?: string;
34
34
  });
35
- query({ orgId, metadata, }: QuillQueryParams): Promise<QuillQueryResult>;
35
+ query({ orgId, metadata, filters, }: QuillQueryParams): Promise<QuillQueryResult>;
36
36
  private runQueries;
37
37
  private postQuill;
38
38
  [Symbol.asyncDispose](): Promise<void>;
package/dist/index.js CHANGED
@@ -40,7 +40,7 @@ class Quill {
40
40
  }
41
41
  this.targetConnection = new CachedConnection_1.CachedConnection(databaseType, credentials, cache || {});
42
42
  }
43
- query({ orgId, metadata, }) {
43
+ query({ orgId, metadata, filters, }) {
44
44
  var _a, _b;
45
45
  return __awaiter(this, void 0, void 0, function* () {
46
46
  this.targetConnection.orgId = orgId;
@@ -58,7 +58,7 @@ class Quill {
58
58
  status: "success",
59
59
  };
60
60
  }
61
- const response = yield this.postQuill(metadata.task, Object.assign(Object.assign(Object.assign({}, metadata), preQueryResults), { orgId, viewQuery: metadata.preQueries ? metadata.preQueries[0] : undefined }));
61
+ const response = yield this.postQuill(metadata.task, Object.assign(Object.assign(Object.assign(Object.assign({}, metadata), { sdkFilters: filters }), preQueryResults), { orgId, viewQuery: metadata.preQueries ? metadata.preQueries[0] : undefined }));
62
62
  if (response.error) {
63
63
  return {
64
64
  status: "error",
@@ -130,7 +130,7 @@ class Quill {
130
130
  return Object.assign(Object.assign({}, results), { queryResults: [], mappedArray });
131
131
  }
132
132
  else if (runQueryConfig === null || runQueryConfig === void 0 ? void 0 : runQueryConfig.getColumns) {
133
- const queryResult = yield this.targetConnection.query(`${queries[0].replace(/;/, "")} limit 1`);
133
+ const queryResult = yield this.targetConnection.query(`${queries[0].replace(/;/, "")} limit 1000`);
134
134
  const columns = queryResult.fields.map((field) => {
135
135
  return {
136
136
  fieldType: (0, schemaConversion_1.convertTypeToPostgres)(field.dataTypeID),
@@ -31,6 +31,12 @@ export interface QuillQueryParams {
31
31
  orgId: string;
32
32
  metadata: QuillRequestMetadata;
33
33
  environment?: string;
34
+ filters?: QuillFilter[];
35
+ }
36
+ export interface QuillFilter {
37
+ table: string;
38
+ field: string;
39
+ selectedValue: string;
34
40
  }
35
41
  export interface QuillConfig {
36
42
  privateKey: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quillsql/node",
3
- "version": "0.6.5",
3
+ "version": "0.6.8",
4
4
  "description": "Quill Server SDK for Node.js",
5
5
  "main": "dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -3,21 +3,56 @@ import { QuillQueryResults } from "./DatabaseHelper";
3
3
  import { capitalize, depluralize } from "../utils/textProcessing";
4
4
 
5
5
  const POSTGRES_SNOWFLAKE_MAP: { [type: string]: number } = {
6
- BOOLEAN: 16,
7
- FIXED: 1700, // DECIMAL or NUMERIC
8
- REAL: 700, // FLOAT4
9
- DOUBLE: 701, // FLOAT8
10
- TEXT: 25, // TEXT in PostgreSQL
11
- DATE: 1082,
12
- DATETIME: 1184, // TIMESTAMP in PostgreSQL
13
- TIME: 1083,
14
- TIMESTAMP_LTZ: 1184,
15
- TIMESTAMP_NTZ: 1184,
16
- TIMESTAMP_TZ: 1184,
17
- VARIANT: 114, // JSONB in PostgreSQL
18
- OBJECT: 114, // JSONB, as an equivalent for structured JSON
19
- ARRAY: 1009, // TEXT[], assuming most common case
6
+ // Numeric Types
7
+ NUMBER: 1700, // NUMERIC
8
+ DECIMAL: 1700, // NUMERIC
9
+ NUMERIC: 1700, // NUMERIC
10
+ INT: 23, // INTEGER
11
+ INTEGER: 23, // INTEGER
12
+ BIGINT: 20, // BIGINT
13
+ SMALLINT: 21, // SMALLINT
14
+ TINYINT: 21, // SMALLINT (PostgreSQL doesn't have TINYINT)
15
+ BYTEINT: 21, // SMALLINT (PostgreSQL doesn't have BYTEINT)
16
+ FLOAT: 701, // DOUBLE PRECISION
17
+ FLOAT4: 700, // REAL
18
+ FLOAT8: 701, // DOUBLE PRECISION
19
+ DOUBLE: 701, // DOUBLE PRECISION
20
+ REAL: 700, // REAL
21
+
22
+ // Boolean Type
23
+ BOOLEAN: 16, // BOOLEAN
24
+
25
+ // String Types
26
+ VARCHAR: 1043, // VARCHAR
27
+ CHAR: 1042, // CHAR
28
+ CHARACTER: 1042, // CHAR
29
+ STRING: 25, // TEXT
30
+ TEXT: 25, // TEXT
31
+
32
+ // Binary Types
20
33
  BINARY: 17, // BYTEA
34
+ VARBINARY: 17, // BYTEA
35
+
36
+ // Date and Time Types
37
+ DATE: 1082, // DATE
38
+ DATETIME: 1184, // TIMESTAMP
39
+ TIME: 1083, // TIME
40
+ TIMESTAMP: 1184, // TIMESTAMP
41
+ TIMESTAMP_LTZ: 1184, // TIMESTAMP WITH TIME ZONE
42
+ TIMESTAMP_NTZ: 1114, // TIMESTAMP WITHOUT TIME ZONE
43
+ TIMESTAMP_TZ: 1184, // TIMESTAMP WITH TIME ZONE
44
+
45
+ // Semi-structured Data Types
46
+ VARIANT: 3802, // JSONB
47
+ OBJECT: 3802, // JSONB
48
+ ARRAY: 2277, // JSON[] (closest equivalent)
49
+
50
+ // Geospatial Type
51
+ GEOGRAPHY: 25, // TEXT (PostgreSQL doesn't have a direct equivalent)
52
+ GEOMETRY: 25, // TEXT (PostgreSQL doesn't have a direct equivalent)
53
+
54
+ // Vector Type
55
+ VECTOR: 3802, // JSONB (closest equivalent without extensions)
21
56
  };
22
57
 
23
58
  export type SnowflakeConnectionConfig = {
package/src/index.ts CHANGED
@@ -90,6 +90,7 @@ export class Quill implements AsyncDisposable {
90
90
  public async query({
91
91
  orgId,
92
92
  metadata,
93
+ filters,
93
94
  }: QuillQueryParams): Promise<QuillQueryResult> {
94
95
  this.targetConnection.orgId = orgId;
95
96
  let responseMetadata: any = {};
@@ -115,6 +116,7 @@ export class Quill implements AsyncDisposable {
115
116
  }
116
117
  const response = await this.postQuill(metadata.task, {
117
118
  ...metadata,
119
+ sdkFilters: filters,
118
120
  ...preQueryResults,
119
121
  orgId,
120
122
  viewQuery: metadata.preQueries ? metadata.preQueries[0] : undefined,
@@ -200,7 +202,7 @@ export class Quill implements AsyncDisposable {
200
202
  return { ...results, queryResults: [], mappedArray };
201
203
  } else if (runQueryConfig?.getColumns) {
202
204
  const queryResult = await this.targetConnection.query(
203
- `${queries[0].replace(/;/, "")} limit 1`,
205
+ `${queries[0].replace(/;/, "")} limit 1000`,
204
206
  );
205
207
  const columns = queryResult.fields.map((field: any) => {
206
208
  return {
@@ -33,6 +33,13 @@ export interface QuillQueryParams {
33
33
  orgId: string;
34
34
  metadata: QuillRequestMetadata;
35
35
  environment?: string;
36
+ filters?: QuillFilter[];
37
+ }
38
+
39
+ export interface QuillFilter {
40
+ table: string;
41
+ field: string;
42
+ selectedValue: string;
36
43
  }
37
44
 
38
45
  export interface QuillConfig {