@devrev/meerkat-core 0.0.87 → 0.0.89
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.
package/package.json
CHANGED
|
@@ -34,7 +34,8 @@ const validateExpressionNode = ({ node, validFunctions, parentNode, validScalarF
|
|
|
34
34
|
node: child,
|
|
35
35
|
validFunctions,
|
|
36
36
|
parentNode: node,
|
|
37
|
-
validScalarFunctions
|
|
37
|
+
validScalarFunctions,
|
|
38
|
+
hasAggregation: true
|
|
38
39
|
}));
|
|
39
40
|
}
|
|
40
41
|
// For non-aggregation functions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../meerkat-core/src/ast-validator/measure-validator.ts"],"sourcesContent":["import { ParsedExpression } from '../types/duckdb-serialization-types';\nimport {\n isCaseExpression,\n isCastExpression,\n isColumnRefExpression,\n isConstantExpression,\n isFunctionExpression,\n isOperatorExpression,\n isSelectNode,\n isSubqueryExpression,\n isWindowExpression,\n} from '../types/utils';\nimport { ParsedSerialization } from './types';\nimport { getSelectNode } from './utils';\n\nexport const validateExpressionNode = ({\n node,\n validFunctions,\n parentNode,\n validScalarFunctions,\n hasAggregation = false,\n}: {\n node: ParsedExpression;\n validFunctions: Set<string>;\n parentNode: ParsedExpression | null;\n hasAggregation?: boolean;\n validScalarFunctions: Set<string>;\n}): boolean => {\n // Base cases for column references and constants\n if (isColumnRefExpression(node) || isConstantExpression(node)) {\n // Allow column references inside aggregation functions\n return !!parentNode;\n }\n\n // Check for valid aggregation functions\n if (isFunctionExpression(node) || isWindowExpression(node)) {\n // count_star don't have children\n if (node.function_name === 'count_star') return true;\n\n // This is a valid aggregation function - verify its children don't contain nested aggregations\n if (validFunctions.has(node.function_name)) {\n return node.children.some((child) =>\n validateExpressionNode({\n node: child,\n validFunctions,\n parentNode: node,\n validScalarFunctions,\n })\n );\n }\n // For non-aggregation functions\n if (validScalarFunctions.has(node.function_name)) {\n return node.children.some((child) => {\n return (\n validateExpressionNode({\n node: child,\n validFunctions,\n parentNode: node,\n validScalarFunctions,\n }) &&\n (containsAggregation(child, validFunctions) || hasAggregation)\n );\n });\n }\n\n throw new Error(`Invalid function type: ${node.function_name}`);\n }\n\n // Operator expression\n if (isOperatorExpression(node)) {\n return node.children.some((child) =>\n validateExpressionNode({\n node: child,\n validFunctions,\n parentNode,\n validScalarFunctions,\n })\n );\n }\n\n // Cast expression\n if (isCastExpression(node)) {\n return validateExpressionNode({\n node: node.child,\n validFunctions,\n parentNode,\n validScalarFunctions,\n });\n }\n\n // Case expression\n if (isCaseExpression(node)) {\n const checksValid = node.case_checks.every((caseCheck) => {\n // WHEN conditions cannot contain aggregations\n const whenValid = !containsAggregation(\n caseCheck.when_expr,\n validFunctions\n );\n\n // THEN expressions must be valid aggregations or contain no aggregations\n const thenValid =\n validateExpressionNode({\n node: caseCheck.then_expr,\n validFunctions,\n parentNode: node,\n validScalarFunctions,\n }) || !containsAggregation(caseCheck.then_expr, validFunctions);\n return whenValid && thenValid;\n });\n\n const elseValid =\n validateExpressionNode({\n node: node.else_expr,\n validFunctions,\n parentNode: node,\n validScalarFunctions,\n }) || !containsAggregation(node.else_expr, validFunctions);\n\n return checksValid && elseValid;\n }\n\n // Subquery expression\n if (isSubqueryExpression(node) && isSelectNode(node.subquery.node)) {\n return node.subquery.node.select_list.every((node) => {\n return validateExpressionNode({\n node,\n validFunctions,\n parentNode,\n validScalarFunctions,\n });\n });\n }\n\n // Window expression\n if (isWindowExpression(node)) {\n return node.children.every((node) => {\n return validateExpressionNode({\n node,\n validFunctions,\n parentNode,\n validScalarFunctions,\n });\n });\n }\n\n throw new Error(`Invalid expression type: ${node.type}`);\n};\n\nexport const containsAggregation = (\n node: ParsedExpression,\n validFunctions: Set<string>\n): boolean => {\n if (!node) return false;\n\n // Function expression\n if (isFunctionExpression(node) || isWindowExpression(node)) {\n return (\n validFunctions.has(node.function_name) ||\n node.children.some((child) => containsAggregation(child, validFunctions))\n );\n }\n\n // Case expression\n if (isCaseExpression(node)) {\n return (\n node.case_checks.some(\n (check) =>\n containsAggregation(check.when_expr, validFunctions) ||\n containsAggregation(check.then_expr, validFunctions)\n ) || containsAggregation(node.else_expr, validFunctions)\n );\n }\n\n // Operator expression\n if (isOperatorExpression(node)) {\n return node.children.some((child) =>\n containsAggregation(child, validFunctions)\n );\n }\n\n if (isCastExpression(node)) {\n return containsAggregation(node.child, validFunctions);\n }\n\n // Window expression\n if (isWindowExpression(node)) {\n return node.children.some((child) =>\n containsAggregation(child, validFunctions)\n );\n }\n\n // Subquery expression\n if (isSubqueryExpression(node) && isSelectNode(node.subquery.node)) {\n return node.subquery.node.select_list.every((node) => {\n return containsAggregation(node, validFunctions);\n });\n }\n\n return false;\n};\n\nexport const validateMeasure = (\n parsedSerialization: ParsedSerialization,\n validFunctions: string[],\n validScalarFunctions: string[]\n): boolean => {\n const node = getSelectNode(parsedSerialization);\n\n const validFunctionSet = new Set(validFunctions);\n const validScalarFunctionSet = new Set(validScalarFunctions);\n\n // Validate the expression\n if (\n validateExpressionNode({\n node: node,\n validFunctions: validFunctionSet,\n parentNode: null,\n validScalarFunctions: validScalarFunctionSet,\n })\n ) {\n return true;\n }\n\n throw new Error('Expression contains invalid functions or operators');\n};\n"],"names":["validateExpressionNode","containsAggregation","validateMeasure","node","validFunctions","parentNode","validScalarFunctions","hasAggregation","isColumnRefExpression","isConstantExpression","isFunctionExpression","isWindowExpression","function_name","has","children","some","child","Error","isOperatorExpression","isCastExpression","isCaseExpression","checksValid","case_checks","every","caseCheck","whenValid","when_expr","thenValid","then_expr","elseValid","else_expr","isSubqueryExpression","isSelectNode","subquery","select_list","type","check","parsedSerialization","getSelectNode","validFunctionSet","Set","validScalarFunctionSet"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../meerkat-core/src/ast-validator/measure-validator.ts"],"sourcesContent":["import { ParsedExpression } from '../types/duckdb-serialization-types';\nimport {\n isCaseExpression,\n isCastExpression,\n isColumnRefExpression,\n isConstantExpression,\n isFunctionExpression,\n isOperatorExpression,\n isSelectNode,\n isSubqueryExpression,\n isWindowExpression,\n} from '../types/utils';\nimport { ParsedSerialization } from './types';\nimport { getSelectNode } from './utils';\n\nexport const validateExpressionNode = ({\n node,\n validFunctions,\n parentNode,\n validScalarFunctions,\n hasAggregation = false,\n}: {\n node: ParsedExpression;\n validFunctions: Set<string>;\n parentNode: ParsedExpression | null;\n hasAggregation?: boolean;\n validScalarFunctions: Set<string>;\n}): boolean => {\n // Base cases for column references and constants\n if (isColumnRefExpression(node) || isConstantExpression(node)) {\n // Allow column references inside aggregation functions\n return !!parentNode;\n }\n\n // Check for valid aggregation functions\n if (isFunctionExpression(node) || isWindowExpression(node)) {\n // count_star don't have children\n if (node.function_name === 'count_star') return true;\n\n // This is a valid aggregation function - verify its children don't contain nested aggregations\n if (validFunctions.has(node.function_name)) {\n return node.children.some((child) =>\n validateExpressionNode({\n node: child,\n validFunctions,\n parentNode: node,\n validScalarFunctions,\n hasAggregation: true,\n })\n );\n }\n\n // For non-aggregation functions\n if (validScalarFunctions.has(node.function_name)) {\n return node.children.some((child) => {\n return (\n validateExpressionNode({\n node: child,\n validFunctions,\n parentNode: node,\n validScalarFunctions,\n }) &&\n (containsAggregation(child, validFunctions) || hasAggregation)\n );\n });\n }\n\n throw new Error(`Invalid function type: ${node.function_name}`);\n }\n\n // Operator expression\n if (isOperatorExpression(node)) {\n return node.children.some((child) =>\n validateExpressionNode({\n node: child,\n validFunctions,\n parentNode,\n validScalarFunctions,\n })\n );\n }\n\n // Cast expression\n if (isCastExpression(node)) {\n return validateExpressionNode({\n node: node.child,\n validFunctions,\n parentNode,\n validScalarFunctions,\n });\n }\n\n // Case expression\n if (isCaseExpression(node)) {\n const checksValid = node.case_checks.every((caseCheck) => {\n // WHEN conditions cannot contain aggregations\n const whenValid = !containsAggregation(\n caseCheck.when_expr,\n validFunctions\n );\n\n // THEN expressions must be valid aggregations or contain no aggregations\n const thenValid =\n validateExpressionNode({\n node: caseCheck.then_expr,\n validFunctions,\n parentNode: node,\n validScalarFunctions,\n }) || !containsAggregation(caseCheck.then_expr, validFunctions);\n return whenValid && thenValid;\n });\n\n const elseValid =\n validateExpressionNode({\n node: node.else_expr,\n validFunctions,\n parentNode: node,\n validScalarFunctions,\n }) || !containsAggregation(node.else_expr, validFunctions);\n\n return checksValid && elseValid;\n }\n\n // Subquery expression\n if (isSubqueryExpression(node) && isSelectNode(node.subquery.node)) {\n return node.subquery.node.select_list.every((node) => {\n return validateExpressionNode({\n node,\n validFunctions,\n parentNode,\n validScalarFunctions,\n });\n });\n }\n\n // Window expression\n if (isWindowExpression(node)) {\n return node.children.every((node) => {\n return validateExpressionNode({\n node,\n validFunctions,\n parentNode,\n validScalarFunctions,\n });\n });\n }\n\n throw new Error(`Invalid expression type: ${node.type}`);\n};\n\nexport const containsAggregation = (\n node: ParsedExpression,\n validFunctions: Set<string>\n): boolean => {\n if (!node) return false;\n\n // Function expression\n if (isFunctionExpression(node) || isWindowExpression(node)) {\n return (\n validFunctions.has(node.function_name) ||\n node.children.some((child) => containsAggregation(child, validFunctions))\n );\n }\n\n // Case expression\n if (isCaseExpression(node)) {\n return (\n node.case_checks.some(\n (check) =>\n containsAggregation(check.when_expr, validFunctions) ||\n containsAggregation(check.then_expr, validFunctions)\n ) || containsAggregation(node.else_expr, validFunctions)\n );\n }\n\n // Operator expression\n if (isOperatorExpression(node)) {\n return node.children.some((child) =>\n containsAggregation(child, validFunctions)\n );\n }\n\n if (isCastExpression(node)) {\n return containsAggregation(node.child, validFunctions);\n }\n\n // Window expression\n if (isWindowExpression(node)) {\n return node.children.some((child) =>\n containsAggregation(child, validFunctions)\n );\n }\n\n // Subquery expression\n if (isSubqueryExpression(node) && isSelectNode(node.subquery.node)) {\n return node.subquery.node.select_list.every((node) => {\n return containsAggregation(node, validFunctions);\n });\n }\n\n return false;\n};\n\nexport const validateMeasure = (\n parsedSerialization: ParsedSerialization,\n validFunctions: string[],\n validScalarFunctions: string[]\n): boolean => {\n const node = getSelectNode(parsedSerialization);\n\n const validFunctionSet = new Set(validFunctions);\n const validScalarFunctionSet = new Set(validScalarFunctions);\n\n // Validate the expression\n if (\n validateExpressionNode({\n node: node,\n validFunctions: validFunctionSet,\n parentNode: null,\n validScalarFunctions: validScalarFunctionSet,\n })\n ) {\n return true;\n }\n\n throw new Error('Expression contains invalid functions or operators');\n};\n"],"names":["validateExpressionNode","containsAggregation","validateMeasure","node","validFunctions","parentNode","validScalarFunctions","hasAggregation","isColumnRefExpression","isConstantExpression","isFunctionExpression","isWindowExpression","function_name","has","children","some","child","Error","isOperatorExpression","isCastExpression","isCaseExpression","checksValid","case_checks","every","caseCheck","whenValid","when_expr","thenValid","then_expr","elseValid","else_expr","isSubqueryExpression","isSelectNode","subquery","select_list","type","check","parsedSerialization","getSelectNode","validFunctionSet","Set","validScalarFunctionSet"],"mappings":"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"}
|
|
@@ -1315,6 +1315,86 @@ export declare const MEASURE_TEST_CASES: ({
|
|
|
1315
1315
|
validScalarFunctions: Set<string>;
|
|
1316
1316
|
expected: boolean;
|
|
1317
1317
|
error?: undefined;
|
|
1318
|
+
} | {
|
|
1319
|
+
description: string;
|
|
1320
|
+
query: string;
|
|
1321
|
+
columnNames: string[];
|
|
1322
|
+
node: {
|
|
1323
|
+
class: string;
|
|
1324
|
+
type: string;
|
|
1325
|
+
alias: string;
|
|
1326
|
+
query_location: number;
|
|
1327
|
+
function_name: string;
|
|
1328
|
+
schema: string;
|
|
1329
|
+
children: {
|
|
1330
|
+
class: string;
|
|
1331
|
+
type: string;
|
|
1332
|
+
alias: string;
|
|
1333
|
+
query_location: number;
|
|
1334
|
+
function_name: string;
|
|
1335
|
+
schema: string;
|
|
1336
|
+
children: ({
|
|
1337
|
+
class: string;
|
|
1338
|
+
type: string;
|
|
1339
|
+
alias: string;
|
|
1340
|
+
query_location: number;
|
|
1341
|
+
value: {
|
|
1342
|
+
type: {
|
|
1343
|
+
id: string;
|
|
1344
|
+
type_info: null;
|
|
1345
|
+
};
|
|
1346
|
+
is_null: boolean;
|
|
1347
|
+
value: string;
|
|
1348
|
+
};
|
|
1349
|
+
column_names?: undefined;
|
|
1350
|
+
} | {
|
|
1351
|
+
class: string;
|
|
1352
|
+
type: string;
|
|
1353
|
+
alias: string;
|
|
1354
|
+
query_location: number;
|
|
1355
|
+
column_names: string[];
|
|
1356
|
+
value?: undefined;
|
|
1357
|
+
})[];
|
|
1358
|
+
filter: null;
|
|
1359
|
+
order_bys: {
|
|
1360
|
+
type: string;
|
|
1361
|
+
orders: never[];
|
|
1362
|
+
};
|
|
1363
|
+
distinct: boolean;
|
|
1364
|
+
is_operator: boolean;
|
|
1365
|
+
export_state: boolean;
|
|
1366
|
+
catalog: string;
|
|
1367
|
+
}[];
|
|
1368
|
+
filter: null;
|
|
1369
|
+
order_bys: {
|
|
1370
|
+
type: string;
|
|
1371
|
+
orders: never[];
|
|
1372
|
+
};
|
|
1373
|
+
distinct: boolean;
|
|
1374
|
+
is_operator: boolean;
|
|
1375
|
+
export_state: boolean;
|
|
1376
|
+
catalog: string;
|
|
1377
|
+
case_checks?: undefined;
|
|
1378
|
+
else_expr?: undefined;
|
|
1379
|
+
partitions?: undefined;
|
|
1380
|
+
orders?: undefined;
|
|
1381
|
+
start?: undefined;
|
|
1382
|
+
end?: undefined;
|
|
1383
|
+
start_expr?: undefined;
|
|
1384
|
+
end_expr?: undefined;
|
|
1385
|
+
offset_expr?: undefined;
|
|
1386
|
+
default_expr?: undefined;
|
|
1387
|
+
ignore_nulls?: undefined;
|
|
1388
|
+
filter_expr?: undefined;
|
|
1389
|
+
exclude_clause?: undefined;
|
|
1390
|
+
subquery?: undefined;
|
|
1391
|
+
child?: undefined;
|
|
1392
|
+
comparison_type?: undefined;
|
|
1393
|
+
};
|
|
1394
|
+
validFunctions: Set<string>;
|
|
1395
|
+
validScalarFunctions: Set<string>;
|
|
1396
|
+
expected: boolean;
|
|
1397
|
+
error?: undefined;
|
|
1318
1398
|
} | {
|
|
1319
1399
|
description: string;
|
|
1320
1400
|
columnNames: string[];
|
|
@@ -1271,6 +1271,92 @@ const MEASURE_TEST_CASES = [
|
|
|
1271
1271
|
]),
|
|
1272
1272
|
expected: true
|
|
1273
1273
|
},
|
|
1274
|
+
{
|
|
1275
|
+
description: 'node type FUNCTION - AVG with nested scalar function',
|
|
1276
|
+
query: "AVG(DATE_DIFF('minute', created_date, first_response_time))",
|
|
1277
|
+
columnNames: [
|
|
1278
|
+
'created_date',
|
|
1279
|
+
'first_response_time'
|
|
1280
|
+
],
|
|
1281
|
+
node: {
|
|
1282
|
+
class: 'FUNCTION',
|
|
1283
|
+
type: 'FUNCTION',
|
|
1284
|
+
alias: '',
|
|
1285
|
+
query_location: 7,
|
|
1286
|
+
function_name: 'avg',
|
|
1287
|
+
schema: '',
|
|
1288
|
+
children: [
|
|
1289
|
+
{
|
|
1290
|
+
class: 'FUNCTION',
|
|
1291
|
+
type: 'FUNCTION',
|
|
1292
|
+
alias: '',
|
|
1293
|
+
query_location: 11,
|
|
1294
|
+
function_name: 'date_diff',
|
|
1295
|
+
schema: '',
|
|
1296
|
+
children: [
|
|
1297
|
+
{
|
|
1298
|
+
class: 'CONSTANT',
|
|
1299
|
+
type: 'VALUE_CONSTANT',
|
|
1300
|
+
alias: '',
|
|
1301
|
+
query_location: 21,
|
|
1302
|
+
value: {
|
|
1303
|
+
type: {
|
|
1304
|
+
id: 'VARCHAR',
|
|
1305
|
+
type_info: null
|
|
1306
|
+
},
|
|
1307
|
+
is_null: false,
|
|
1308
|
+
value: 'minute'
|
|
1309
|
+
}
|
|
1310
|
+
},
|
|
1311
|
+
{
|
|
1312
|
+
class: 'COLUMN_REF',
|
|
1313
|
+
type: 'COLUMN_REF',
|
|
1314
|
+
alias: '',
|
|
1315
|
+
query_location: 31,
|
|
1316
|
+
column_names: [
|
|
1317
|
+
'created_date'
|
|
1318
|
+
]
|
|
1319
|
+
},
|
|
1320
|
+
{
|
|
1321
|
+
class: 'COLUMN_REF',
|
|
1322
|
+
type: 'COLUMN_REF',
|
|
1323
|
+
alias: '',
|
|
1324
|
+
query_location: 45,
|
|
1325
|
+
column_names: [
|
|
1326
|
+
'first_response_time'
|
|
1327
|
+
]
|
|
1328
|
+
}
|
|
1329
|
+
],
|
|
1330
|
+
filter: null,
|
|
1331
|
+
order_bys: {
|
|
1332
|
+
type: 'ORDER_MODIFIER',
|
|
1333
|
+
orders: []
|
|
1334
|
+
},
|
|
1335
|
+
distinct: false,
|
|
1336
|
+
is_operator: false,
|
|
1337
|
+
export_state: false,
|
|
1338
|
+
catalog: ''
|
|
1339
|
+
}
|
|
1340
|
+
],
|
|
1341
|
+
filter: null,
|
|
1342
|
+
order_bys: {
|
|
1343
|
+
type: 'ORDER_MODIFIER',
|
|
1344
|
+
orders: []
|
|
1345
|
+
},
|
|
1346
|
+
distinct: false,
|
|
1347
|
+
is_operator: false,
|
|
1348
|
+
export_state: false,
|
|
1349
|
+
catalog: ''
|
|
1350
|
+
},
|
|
1351
|
+
validFunctions: new Set([
|
|
1352
|
+
'avg',
|
|
1353
|
+
'count'
|
|
1354
|
+
]),
|
|
1355
|
+
validScalarFunctions: new Set([
|
|
1356
|
+
'date_diff'
|
|
1357
|
+
]),
|
|
1358
|
+
expected: true
|
|
1359
|
+
},
|
|
1274
1360
|
{
|
|
1275
1361
|
description: 'node type SUBQUERY',
|
|
1276
1362
|
columnNames: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../meerkat-core/src/ast-validator/tests/test-data.ts"],"sourcesContent":["import {\n ExpressionType,\n ParsedExpression,\n ResultModifierType,\n} from '../../types/duckdb-serialization-types';\nimport { ExpressionClass } from '../../types/duckdb-serialization-types/serialization/Expression';\n\nexport const EMPTY_VALID_FUNCTIONS = new Set<string>();\nexport const VALID_FUNCTIONS = new Set(['contains', 'round', 'power']);\n\nexport const COLUMN_REF_NODE: ParsedExpression = {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: 'alias',\n query_location: 0,\n column_names: ['column_name'],\n};\n\nexport const INVALID_NODE: ParsedExpression = {\n class: ExpressionClass.INVALID,\n type: ExpressionType.INVALID,\n alias: '',\n query_location: 0,\n};\n\nexport const DIMENSION_TEST_CASES = [\n {\n description: 'node type COLUMN_REF',\n node: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 0,\n column_names: ['column_name'],\n },\n validFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: ['column_name'],\n expected: true,\n },\n {\n description: 'node type COLUMN_REF with alias',\n node: COLUMN_REF_NODE,\n validFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: ['column_name'],\n expected: true,\n },\n {\n description: 'node type VALUE_CONSTANT',\n node: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 0,\n value: '1',\n },\n columnNames: [],\n validFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n },\n {\n description: 'node type OPERATOR_CAST',\n node: {\n class: ExpressionClass.CAST,\n type: ExpressionType.OPERATOR_CAST,\n alias: '',\n query_location: 7,\n child: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 12,\n column_names: ['column_name1'],\n },\n cast_type: {\n id: 1,\n },\n try_cast: false,\n },\n validFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: ['column_name1'],\n expected: true,\n },\n {\n description: 'node type OPERATOR_COALESCE',\n node: {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.OPERATOR_COALESCE,\n alias: '',\n query_location: 18446744073709552000,\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 16,\n column_names: ['column_name2'],\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 38,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n ],\n },\n validFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: ['column_name2'],\n expected: true,\n },\n {\n description:\n 'node type FUNCTION with ROUND function and if it contains in validFunctions',\n columnNames: ['schema.column_name'],\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'round',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 13,\n column_names: ['schema', 'column_name'],\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 41,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 1,\n },\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n },\n validFunctions: VALID_FUNCTIONS,\n expected: true,\n },\n {\n description: 'node type CASE',\n columnNames: ['actual_close_date1', 'actual_close_date', 'created_date'],\n node: {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 7,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_GREATERTHAN,\n alias: '',\n query_location: 35,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 17,\n column_names: ['actual_close_date'],\n },\n right: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 37,\n column_names: ['created_date'],\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 55,\n column_names: ['actual_close_date1'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n validFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n },\n];\n\nexport const MEASURE_TEST_CASES = [\n {\n description: 'node type FUNCTION with count_star',\n query: 'count_star()',\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'count_star',\n schema: '',\n children: [],\n },\n validFunctions: new Set(['count_star']),\n validScalarFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: [],\n expected: true,\n },\n {\n description: 'node type FUNCTION with SUM',\n query: 'sum(column1)',\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n query_location: 11,\n column_names: ['column1'],\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n },\n validFunctions: new Set(['sum']),\n validScalarFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: ['column1'],\n expected: true,\n },\n {\n description: 'node type FUNCTION with SUM and invalid function type',\n query: 'sum(column1)',\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n query_location: 11,\n column_names: ['column1'],\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n },\n validFunctions: new Set(['min']),\n validScalarFunctions: new Set(['/']),\n error: 'Invalid function type: sum',\n expected: 'error',\n columnNames: ['column1'],\n },\n {\n description: 'node type FUNCTION with MAX and operator',\n columnNames: ['column1'],\n query: 'max(column1) / 1000',\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 38,\n function_name: '/',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'max',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 11,\n column_names: ['column1'],\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 40,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 1000,\n },\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n validFunctions: new Set(['max']),\n validScalarFunctions: new Set(['/']),\n expected: true,\n },\n {\n description: 'node type CASE_EXPR',\n query: 'CASE WHEN COUNT(id) > 1 THEN AVG(mtbf_hours) ELSE null END',\n columnNames: ['mtbf_hours', 'id'],\n node: {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 7,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_GREATERTHAN,\n alias: '',\n query_location: 27,\n left: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 17,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 23,\n column_names: ['id'],\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 29,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 1,\n },\n },\n },\n then_expr: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 36,\n function_name: 'avg',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 40,\n column_names: ['mtbf_hours'],\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 57,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n validFunctions: new Set(['count', 'avg']),\n validScalarFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n },\n {\n description:\n 'node type FUNCTION with aggregation and case statement within',\n columnNames: ['modified_date', 'stage_json'],\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'max',\n schema: '',\n children: [\n {\n class: 'CASE',\n type: 'CASE_EXPR',\n alias: '',\n query_location: 11,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 43,\n left: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 32,\n function_name: '->>',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 21,\n column_names: ['stage_json'],\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 36,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'name',\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 45,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'Tech Doc Inprogress',\n },\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 72,\n column_names: ['modified_date'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 91,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n validFunctions: new Set(['max']),\n validScalarFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n query:\n 'max(CASE WHEN stage_json->>name = \"Tech\" THEN modified_date ELSE NULL END)',\n },\n {\n description:\n 'node type FUNCTION two children of aggregation and operator operation on them',\n columnNames: ['mean_reciprocal_rank', 'total_queries'],\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 49,\n function_name: '/',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 32,\n function_name: '*',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 11,\n column_names: ['mean_reciprocal_rank'],\n },\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 34,\n column_names: ['total_queries'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 51,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 55,\n column_names: ['total_queries'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n validFunctions: new Set(['sum']),\n validScalarFunctions: new Set(['/', '*']),\n expected: true,\n query: 'sum(mean_reciprocal_rank * total_queries) / sum(total_queries)',\n },\n {\n description: 'node type CAST',\n query:\n \"CAST(COUNT(DISTINCT(id)) AS FLOAT) / NULLIF(DATEDIFF('day', MIN(created_date), MAX(created_date)) / 7 + 1, 0)\",\n columnNames: ['id', 'created_date', 'created_date1'],\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 42,\n function_name: '/',\n schema: '',\n children: [\n {\n class: 'CAST',\n type: 'OPERATOR_CAST',\n alias: '',\n query_location: 7,\n child: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 12,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 27,\n column_names: ['id'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n cast_type: {\n id: 'FLOAT',\n type_info: null,\n },\n try_cast: false,\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 44,\n function_name: 'nullif',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 109,\n function_name: '+',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 105,\n function_name: '/',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 51,\n function_name: 'datediff',\n schema: '',\n children: [\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 60,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'day',\n },\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 67,\n function_name: 'min',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 71,\n column_names: ['created_date'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 86,\n function_name: 'max',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 90,\n column_names: ['created_date1'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 107,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 7,\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 111,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 1,\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 114,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n validFunctions: new Set(['count', 'datediff', 'min', 'max']),\n validScalarFunctions: new Set(['/', '*']),\n expected: true,\n },\n {\n description: 'node type COALESCE',\n query: 'COALESCE(SUM(amount) FILTER(direction = \"Income\"), 0)',\n columnNames: ['amount'],\n node: {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.OPERATOR_COALESCE,\n alias: '',\n query_location: 18446744073709552000,\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 16,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 20,\n column_names: ['amount'],\n },\n ],\n filter: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_EQUAL,\n alias: '',\n query_location: 45,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 35,\n column_names: ['direction'],\n },\n right: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 47,\n column_names: ['Income'],\n },\n },\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 58,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n ],\n },\n validFunctions: new Set(['sum']),\n validScalarFunctions: new Set(['/']),\n expected: true,\n },\n {\n description: 'node type WINDOW_AGGREGATE',\n query:\n 'AVG(COUNT(column1)) OVER (ORDER BY (MEERKAT).record_date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW)',\n columnNames: ['column1'],\n node: {\n class: ExpressionClass.WINDOW,\n type: ExpressionType.WINDOW_AGGREGATE,\n alias: '',\n query_location: 7,\n function_name: 'avg',\n schema: '',\n catalog: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 11,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 17,\n column_names: ['column1'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n ],\n partitions: [],\n orders: [\n {\n type: 'ORDER_DEFAULT',\n null_order: 'ORDER_DEFAULT',\n expression: {\n class: 'OPERATOR',\n type: 'STRUCT_EXTRACT',\n alias: '',\n query_location: 18446744073709552000,\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 54,\n column_names: ['MEERKAT'],\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'record_date',\n },\n },\n ],\n },\n },\n ],\n start: 'EXPR_PRECEDING_ROWS',\n end: 'CURRENT_ROW_ROWS',\n start_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 88,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 6,\n },\n },\n end_expr: null,\n offset_expr: null,\n default_expr: null,\n ignore_nulls: false,\n filter_expr: null,\n exclude_clause: 'NO_OTHER',\n distinct: false,\n },\n validFunctions: new Set(['avg', 'count']),\n validScalarFunctions: new Set(['/']),\n expected: true,\n },\n {\n description: 'node type SUBQUERY',\n columnNames: [\n 'id',\n 'sla_stage',\n 'first_resp_time_arr',\n 'total_first_resp_breaches_ever',\n ],\n query:\n \"(SELECT CASE WHEN COUNT(DISTINCT CASE WHEN sla_stage = ''breached'' THEN id END) + COUNT(DISTINCT CASE WHEN sla_stage = ''completed'' AND ARRAY_LENGTH(first_resp_time_arr) > 0 AND (total_first_resp_breaches_ever = 0 OR total_first_resp_breaches_ever IS NULL) THEN id END) > 0 THEN 100 - (COUNT(DISTINCT CASE WHEN sla_stage = ''breached'' THEN id END) * 100.0 / (COUNT(DISTINCT CASE WHEN sla_stage = ''breached'' THEN id END) + COUNT(DISTINCT CASE WHEN sla_stage = ''completed'' AND ARRAY_LENGTH(first_resp_time_arr) > 0 AND (total_first_resp_breaches_ever = 0 OR total_first_resp_breaches_ever IS NULL) THEN id END))) ELSE NULL END AS result)\",\n node: {\n class: ExpressionClass.SUBQUERY,\n type: ExpressionType.SUBQUERY,\n alias: '',\n query_location: 7,\n\n subquery: {\n node: {\n type: 'SELECT_NODE',\n modifiers: [],\n cte_map: {\n map: [],\n },\n select_list: [\n {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: 'result',\n query_location: 15,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_GREATERTHAN,\n alias: '',\n query_location: 275,\n left: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 86,\n function_name: '+',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 25,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 40,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_EQUAL,\n alias: '',\n query_location: 60,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 50,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 62,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'breached',\n },\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 78,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 88,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 103,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.CONJUNCTION,\n type: ExpressionType.CONJUNCTION_AND,\n alias: '',\n query_location: 137,\n children: [\n {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_EQUAL,\n alias: '',\n query_location: 123,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 113,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 125,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'completed',\n },\n },\n },\n {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_GREATERTHAN',\n alias: '',\n query_location: 175,\n left: {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 141,\n function_name: 'array_length',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 154,\n column_names: [\n 'first_resp_time_arr',\n ],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 177,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n {\n class: 'CONJUNCTION',\n type: 'CONJUNCTION_OR',\n alias: '',\n query_location: 219,\n children: [\n {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 215,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 184,\n column_names: [\n 'total_first_resp_breaches_ever',\n ],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 217,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n {\n class: 'OPERATOR',\n type: 'OPERATOR_IS_NULL',\n alias: '',\n query_location: 253,\n children: [\n {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 222,\n column_names: [\n 'total_first_resp_breaches_ever',\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 267,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 277,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n then_expr: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 288,\n function_name: '-',\n schema: '',\n children: [\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 284,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 100,\n },\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 360,\n function_name: '/',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 352,\n function_name: '*',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 291,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 306,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_EQUAL,\n alias: '',\n query_location: 326,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 316,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 328,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'breached',\n },\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 344,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 354,\n value: {\n type: {\n id: 'DECIMAL',\n type_info: {\n type: 'DECIMAL_TYPE_INFO',\n alias: '',\n modifiers: [],\n width: 4,\n scale: 1,\n },\n },\n is_null: false,\n value: 1000,\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 424,\n function_name: '+',\n schema: '',\n children: [\n {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 363,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: 'CASE',\n type: 'CASE_EXPR',\n alias: '',\n query_location: 378,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 398,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 388,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 400,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'breached',\n },\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 416,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 426,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: 'CASE',\n type: 'CASE_EXPR',\n alias: '',\n query_location: 441,\n case_checks: [\n {\n when_expr: {\n class: 'CONJUNCTION',\n type: 'CONJUNCTION_AND',\n alias: '',\n query_location: 475,\n children: [\n {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 461,\n left: {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 451,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 463,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'completed',\n },\n },\n },\n {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_GREATERTHAN',\n alias: '',\n query_location: 513,\n left: {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 479,\n function_name: 'array_length',\n schema: '',\n children: [\n {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 492,\n column_names: [\n 'first_resp_time_arr',\n ],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 515,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n {\n class: 'CONJUNCTION',\n type: 'CONJUNCTION_OR',\n alias: '',\n query_location: 557,\n children: [\n {\n class:\n ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 553,\n left: {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 522,\n column_names: [\n 'total_first_resp_breaches_ever',\n ],\n },\n right: {\n class:\n ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 555,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n {\n class: 'OPERATOR',\n type: 'OPERATOR_IS_NULL',\n alias: '',\n query_location: 591,\n children: [\n {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 560,\n column_names: [\n 'total_first_resp_breaches_ever',\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 605,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 620,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n from_table: {\n type: 'EMPTY',\n alias: '',\n sample: null,\n query_location: 18446744073709552000,\n },\n where_clause: null,\n group_expressions: [],\n group_sets: [],\n aggregate_handling: 'STANDARD_HANDLING',\n having: null,\n sample: null,\n qualify: null,\n },\n },\n child: null,\n comparison_type: 'INVALID',\n },\n validFunctions: new Set(['count', 'count_star']),\n validScalarFunctions: new Set(['-', '/', '*', '+']),\n expected: true,\n },\n];\n"],"names":["EMPTY_VALID_FUNCTIONS","VALID_FUNCTIONS","COLUMN_REF_NODE","INVALID_NODE","DIMENSION_TEST_CASES","MEASURE_TEST_CASES","Set","class","ExpressionClass","COLUMN_REF","type","ExpressionType","alias","query_location","column_names","INVALID","description","node","validFunctions","columnNames","expected","CONSTANT","VALUE_CONSTANT","value","CAST","OPERATOR_CAST","child","cast_type","id","try_cast","OPERATOR","OPERATOR_COALESCE","children","type_info","is_null","FUNCTION","function_name","schema","filter","order_bys","ResultModifierType","ORDER_MODIFIER","orders","distinct","is_operator","export_state","CASE","CASE_EXPR","case_checks","when_expr","COMPARISON","COMPARE_GREATERTHAN","left","right","then_expr","else_expr","query","validScalarFunctions","error","catalog","COMPARE_EQUAL","WINDOW","WINDOW_AGGREGATE","partitions","null_order","expression","start","end","start_expr","end_expr","offset_expr","default_expr","ignore_nulls","filter_expr","exclude_clause","SUBQUERY","subquery","modifiers","cte_map","map","select_list","CONJUNCTION","CONJUNCTION_AND","width","scale","from_table","sample","where_clause","group_expressions","group_sets","aggregate_handling","having","qualify","comparison_type"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../meerkat-core/src/ast-validator/tests/test-data.ts"],"sourcesContent":["import {\n ExpressionType,\n ParsedExpression,\n ResultModifierType,\n} from '../../types/duckdb-serialization-types';\nimport { ExpressionClass } from '../../types/duckdb-serialization-types/serialization/Expression';\n\nexport const EMPTY_VALID_FUNCTIONS = new Set<string>();\nexport const VALID_FUNCTIONS = new Set(['contains', 'round', 'power']);\n\nexport const COLUMN_REF_NODE: ParsedExpression = {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: 'alias',\n query_location: 0,\n column_names: ['column_name'],\n};\n\nexport const INVALID_NODE: ParsedExpression = {\n class: ExpressionClass.INVALID,\n type: ExpressionType.INVALID,\n alias: '',\n query_location: 0,\n};\n\nexport const DIMENSION_TEST_CASES = [\n {\n description: 'node type COLUMN_REF',\n node: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 0,\n column_names: ['column_name'],\n },\n validFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: ['column_name'],\n expected: true,\n },\n {\n description: 'node type COLUMN_REF with alias',\n node: COLUMN_REF_NODE,\n validFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: ['column_name'],\n expected: true,\n },\n {\n description: 'node type VALUE_CONSTANT',\n node: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 0,\n value: '1',\n },\n columnNames: [],\n validFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n },\n {\n description: 'node type OPERATOR_CAST',\n node: {\n class: ExpressionClass.CAST,\n type: ExpressionType.OPERATOR_CAST,\n alias: '',\n query_location: 7,\n child: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 12,\n column_names: ['column_name1'],\n },\n cast_type: {\n id: 1,\n },\n try_cast: false,\n },\n validFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: ['column_name1'],\n expected: true,\n },\n {\n description: 'node type OPERATOR_COALESCE',\n node: {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.OPERATOR_COALESCE,\n alias: '',\n query_location: 18446744073709552000,\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 16,\n column_names: ['column_name2'],\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 38,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n ],\n },\n validFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: ['column_name2'],\n expected: true,\n },\n {\n description:\n 'node type FUNCTION with ROUND function and if it contains in validFunctions',\n columnNames: ['schema.column_name'],\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'round',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 13,\n column_names: ['schema', 'column_name'],\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 41,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 1,\n },\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n },\n validFunctions: VALID_FUNCTIONS,\n expected: true,\n },\n {\n description: 'node type CASE',\n columnNames: ['actual_close_date1', 'actual_close_date', 'created_date'],\n node: {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 7,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_GREATERTHAN,\n alias: '',\n query_location: 35,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 17,\n column_names: ['actual_close_date'],\n },\n right: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 37,\n column_names: ['created_date'],\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 55,\n column_names: ['actual_close_date1'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n validFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n },\n];\n\nexport const MEASURE_TEST_CASES = [\n {\n description: 'node type FUNCTION with count_star',\n query: 'count_star()',\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'count_star',\n schema: '',\n children: [],\n },\n validFunctions: new Set(['count_star']),\n validScalarFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: [],\n expected: true,\n },\n {\n description: 'node type FUNCTION with SUM',\n query: 'sum(column1)',\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n query_location: 11,\n column_names: ['column1'],\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n },\n validFunctions: new Set(['sum']),\n validScalarFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: ['column1'],\n expected: true,\n },\n {\n description: 'node type FUNCTION with SUM and invalid function type',\n query: 'sum(column1)',\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n query_location: 11,\n column_names: ['column1'],\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n },\n validFunctions: new Set(['min']),\n validScalarFunctions: new Set(['/']),\n error: 'Invalid function type: sum',\n expected: 'error',\n columnNames: ['column1'],\n },\n {\n description: 'node type FUNCTION with MAX and operator',\n columnNames: ['column1'],\n query: 'max(column1) / 1000',\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 38,\n function_name: '/',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'max',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 11,\n column_names: ['column1'],\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 40,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 1000,\n },\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n validFunctions: new Set(['max']),\n validScalarFunctions: new Set(['/']),\n expected: true,\n },\n {\n description: 'node type CASE_EXPR',\n query: 'CASE WHEN COUNT(id) > 1 THEN AVG(mtbf_hours) ELSE null END',\n columnNames: ['mtbf_hours', 'id'],\n node: {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 7,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_GREATERTHAN,\n alias: '',\n query_location: 27,\n left: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 17,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 23,\n column_names: ['id'],\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 29,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 1,\n },\n },\n },\n then_expr: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 36,\n function_name: 'avg',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 40,\n column_names: ['mtbf_hours'],\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 57,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n validFunctions: new Set(['count', 'avg']),\n validScalarFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n },\n {\n description:\n 'node type FUNCTION with aggregation and case statement within',\n columnNames: ['modified_date', 'stage_json'],\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'max',\n schema: '',\n children: [\n {\n class: 'CASE',\n type: 'CASE_EXPR',\n alias: '',\n query_location: 11,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 43,\n left: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 32,\n function_name: '->>',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 21,\n column_names: ['stage_json'],\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 36,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'name',\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 45,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'Tech Doc Inprogress',\n },\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 72,\n column_names: ['modified_date'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 91,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n validFunctions: new Set(['max']),\n validScalarFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n query:\n 'max(CASE WHEN stage_json->>name = \"Tech\" THEN modified_date ELSE NULL END)',\n },\n {\n description:\n 'node type FUNCTION two children of aggregation and operator operation on them',\n columnNames: ['mean_reciprocal_rank', 'total_queries'],\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 49,\n function_name: '/',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 32,\n function_name: '*',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 11,\n column_names: ['mean_reciprocal_rank'],\n },\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 34,\n column_names: ['total_queries'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 51,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 55,\n column_names: ['total_queries'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n validFunctions: new Set(['sum']),\n validScalarFunctions: new Set(['/', '*']),\n expected: true,\n query: 'sum(mean_reciprocal_rank * total_queries) / sum(total_queries)',\n },\n {\n description: 'node type CAST',\n query:\n \"CAST(COUNT(DISTINCT(id)) AS FLOAT) / NULLIF(DATEDIFF('day', MIN(created_date), MAX(created_date)) / 7 + 1, 0)\",\n columnNames: ['id', 'created_date', 'created_date1'],\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 42,\n function_name: '/',\n schema: '',\n children: [\n {\n class: 'CAST',\n type: 'OPERATOR_CAST',\n alias: '',\n query_location: 7,\n child: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 12,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 27,\n column_names: ['id'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n cast_type: {\n id: 'FLOAT',\n type_info: null,\n },\n try_cast: false,\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 44,\n function_name: 'nullif',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 109,\n function_name: '+',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 105,\n function_name: '/',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 51,\n function_name: 'datediff',\n schema: '',\n children: [\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 60,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'day',\n },\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 67,\n function_name: 'min',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 71,\n column_names: ['created_date'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 86,\n function_name: 'max',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 90,\n column_names: ['created_date1'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 107,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 7,\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 111,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 1,\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 114,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n validFunctions: new Set(['count', 'datediff', 'min', 'max']),\n validScalarFunctions: new Set(['/', '*']),\n expected: true,\n },\n {\n description: 'node type COALESCE',\n query: 'COALESCE(SUM(amount) FILTER(direction = \"Income\"), 0)',\n columnNames: ['amount'],\n node: {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.OPERATOR_COALESCE,\n alias: '',\n query_location: 18446744073709552000,\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 16,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 20,\n column_names: ['amount'],\n },\n ],\n filter: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_EQUAL,\n alias: '',\n query_location: 45,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 35,\n column_names: ['direction'],\n },\n right: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 47,\n column_names: ['Income'],\n },\n },\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 58,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n ],\n },\n validFunctions: new Set(['sum']),\n validScalarFunctions: new Set(['/']),\n expected: true,\n },\n {\n description: 'node type WINDOW_AGGREGATE',\n query:\n 'AVG(COUNT(column1)) OVER (ORDER BY (MEERKAT).record_date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW)',\n columnNames: ['column1'],\n node: {\n class: ExpressionClass.WINDOW,\n type: ExpressionType.WINDOW_AGGREGATE,\n alias: '',\n query_location: 7,\n function_name: 'avg',\n schema: '',\n catalog: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 11,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 17,\n column_names: ['column1'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n ],\n partitions: [],\n orders: [\n {\n type: 'ORDER_DEFAULT',\n null_order: 'ORDER_DEFAULT',\n expression: {\n class: 'OPERATOR',\n type: 'STRUCT_EXTRACT',\n alias: '',\n query_location: 18446744073709552000,\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 54,\n column_names: ['MEERKAT'],\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'record_date',\n },\n },\n ],\n },\n },\n ],\n start: 'EXPR_PRECEDING_ROWS',\n end: 'CURRENT_ROW_ROWS',\n start_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 88,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 6,\n },\n },\n end_expr: null,\n offset_expr: null,\n default_expr: null,\n ignore_nulls: false,\n filter_expr: null,\n exclude_clause: 'NO_OTHER',\n distinct: false,\n },\n validFunctions: new Set(['avg', 'count']),\n validScalarFunctions: new Set(['/']),\n expected: true,\n },\n {\n description: 'node type FUNCTION - AVG with nested scalar function',\n query: \"AVG(DATE_DIFF('minute', created_date, first_response_time))\",\n columnNames: ['created_date', 'first_response_time'],\n node: {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 7,\n function_name: 'avg',\n schema: '',\n children: [\n {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 11,\n function_name: 'date_diff',\n schema: '',\n children: [\n {\n class: 'CONSTANT',\n type: 'VALUE_CONSTANT',\n alias: '',\n query_location: 21,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'minute',\n },\n },\n {\n class: 'COLUMN_REF',\n type: 'COLUMN_REF',\n alias: '',\n query_location: 31,\n column_names: ['created_date'],\n },\n {\n class: 'COLUMN_REF',\n type: 'COLUMN_REF',\n alias: '',\n query_location: 45,\n column_names: ['first_response_time'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n validFunctions: new Set(['avg', 'count']),\n validScalarFunctions: new Set(['date_diff']),\n expected: true,\n },\n {\n description: 'node type SUBQUERY',\n columnNames: [\n 'id',\n 'sla_stage',\n 'first_resp_time_arr',\n 'total_first_resp_breaches_ever',\n ],\n query:\n \"(SELECT CASE WHEN COUNT(DISTINCT CASE WHEN sla_stage = ''breached'' THEN id END) + COUNT(DISTINCT CASE WHEN sla_stage = ''completed'' AND ARRAY_LENGTH(first_resp_time_arr) > 0 AND (total_first_resp_breaches_ever = 0 OR total_first_resp_breaches_ever IS NULL) THEN id END) > 0 THEN 100 - (COUNT(DISTINCT CASE WHEN sla_stage = ''breached'' THEN id END) * 100.0 / (COUNT(DISTINCT CASE WHEN sla_stage = ''breached'' THEN id END) + COUNT(DISTINCT CASE WHEN sla_stage = ''completed'' AND ARRAY_LENGTH(first_resp_time_arr) > 0 AND (total_first_resp_breaches_ever = 0 OR total_first_resp_breaches_ever IS NULL) THEN id END))) ELSE NULL END AS result)\",\n node: {\n class: ExpressionClass.SUBQUERY,\n type: ExpressionType.SUBQUERY,\n alias: '',\n query_location: 7,\n\n subquery: {\n node: {\n type: 'SELECT_NODE',\n modifiers: [],\n cte_map: {\n map: [],\n },\n select_list: [\n {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: 'result',\n query_location: 15,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_GREATERTHAN,\n alias: '',\n query_location: 275,\n left: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 86,\n function_name: '+',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 25,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 40,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_EQUAL,\n alias: '',\n query_location: 60,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 50,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 62,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'breached',\n },\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 78,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 88,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 103,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.CONJUNCTION,\n type: ExpressionType.CONJUNCTION_AND,\n alias: '',\n query_location: 137,\n children: [\n {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_EQUAL,\n alias: '',\n query_location: 123,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 113,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 125,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'completed',\n },\n },\n },\n {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_GREATERTHAN',\n alias: '',\n query_location: 175,\n left: {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 141,\n function_name: 'array_length',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 154,\n column_names: [\n 'first_resp_time_arr',\n ],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 177,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n {\n class: 'CONJUNCTION',\n type: 'CONJUNCTION_OR',\n alias: '',\n query_location: 219,\n children: [\n {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 215,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 184,\n column_names: [\n 'total_first_resp_breaches_ever',\n ],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 217,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n {\n class: 'OPERATOR',\n type: 'OPERATOR_IS_NULL',\n alias: '',\n query_location: 253,\n children: [\n {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 222,\n column_names: [\n 'total_first_resp_breaches_ever',\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 267,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 277,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n then_expr: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 288,\n function_name: '-',\n schema: '',\n children: [\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 284,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 100,\n },\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 360,\n function_name: '/',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 352,\n function_name: '*',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 291,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 306,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_EQUAL,\n alias: '',\n query_location: 326,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 316,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 328,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'breached',\n },\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 344,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 354,\n value: {\n type: {\n id: 'DECIMAL',\n type_info: {\n type: 'DECIMAL_TYPE_INFO',\n alias: '',\n modifiers: [],\n width: 4,\n scale: 1,\n },\n },\n is_null: false,\n value: 1000,\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 424,\n function_name: '+',\n schema: '',\n children: [\n {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 363,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: 'CASE',\n type: 'CASE_EXPR',\n alias: '',\n query_location: 378,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 398,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 388,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 400,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'breached',\n },\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 416,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 426,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: 'CASE',\n type: 'CASE_EXPR',\n alias: '',\n query_location: 441,\n case_checks: [\n {\n when_expr: {\n class: 'CONJUNCTION',\n type: 'CONJUNCTION_AND',\n alias: '',\n query_location: 475,\n children: [\n {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 461,\n left: {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 451,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 463,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'completed',\n },\n },\n },\n {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_GREATERTHAN',\n alias: '',\n query_location: 513,\n left: {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 479,\n function_name: 'array_length',\n schema: '',\n children: [\n {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 492,\n column_names: [\n 'first_resp_time_arr',\n ],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 515,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n {\n class: 'CONJUNCTION',\n type: 'CONJUNCTION_OR',\n alias: '',\n query_location: 557,\n children: [\n {\n class:\n ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 553,\n left: {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 522,\n column_names: [\n 'total_first_resp_breaches_ever',\n ],\n },\n right: {\n class:\n ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 555,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n {\n class: 'OPERATOR',\n type: 'OPERATOR_IS_NULL',\n alias: '',\n query_location: 591,\n children: [\n {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 560,\n column_names: [\n 'total_first_resp_breaches_ever',\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 605,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 620,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n from_table: {\n type: 'EMPTY',\n alias: '',\n sample: null,\n query_location: 18446744073709552000,\n },\n where_clause: null,\n group_expressions: [],\n group_sets: [],\n aggregate_handling: 'STANDARD_HANDLING',\n having: null,\n sample: null,\n qualify: null,\n },\n },\n child: null,\n comparison_type: 'INVALID',\n },\n validFunctions: new Set(['count', 'count_star']),\n validScalarFunctions: new Set(['-', '/', '*', '+']),\n expected: true,\n },\n];\n"],"names":["EMPTY_VALID_FUNCTIONS","VALID_FUNCTIONS","COLUMN_REF_NODE","INVALID_NODE","DIMENSION_TEST_CASES","MEASURE_TEST_CASES","Set","class","ExpressionClass","COLUMN_REF","type","ExpressionType","alias","query_location","column_names","INVALID","description","node","validFunctions","columnNames","expected","CONSTANT","VALUE_CONSTANT","value","CAST","OPERATOR_CAST","child","cast_type","id","try_cast","OPERATOR","OPERATOR_COALESCE","children","type_info","is_null","FUNCTION","function_name","schema","filter","order_bys","ResultModifierType","ORDER_MODIFIER","orders","distinct","is_operator","export_state","CASE","CASE_EXPR","case_checks","when_expr","COMPARISON","COMPARE_GREATERTHAN","left","right","then_expr","else_expr","query","validScalarFunctions","error","catalog","COMPARE_EQUAL","WINDOW","WINDOW_AGGREGATE","partitions","null_order","expression","start","end","start_expr","end_expr","offset_expr","default_expr","ignore_nulls","filter_expr","exclude_clause","SUBQUERY","subquery","modifiers","cte_map","map","select_list","CONJUNCTION","CONJUNCTION_AND","width","scale","from_table","sample","where_clause","group_expressions","group_sets","aggregate_handling","having","qualify","comparison_type"],"mappings":"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"}
|