UNPKG

@qrvey/formula-lang

Version:

QFormula support for qrvey projects

52 lines 1.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SQRT = void 0; const constants_1 = require("../constants"); const utils_1 = require("../utils"); const greaterThanOrEqualToReference_1 = require("../utils/greaterThanOrEqualToReference"); /** * `SQRT` Returns the positive square root of a positive number. */ exports.SQRT = { identifier: 'SQRT', operationScope: constants_1.OPERATION_SCOPE.RAW, functionScope: [constants_1.OPERATION_SCOPE.RAW, constants_1.OPERATION_SCOPE.AGGREGATE], parameters: [ { identifier: 'VALUE', optional: false, expectedPrimitive: constants_1.AST_PRIMITIVES.NUMBER, validator: [utils_1.isNumberParam, (0, greaterThanOrEqualToReference_1.greaterThanOrEqualToReference)(0)], }, ], transpiler: { elasticsearch, snowflake, redshift, postgresql, databricks, }, primitiveResult: constants_1.AST_PRIMITIVES.NUMBER, }; function elasticsearch(value) { return `SQRT(${value})`; } function sql(value) { return `(CASE WHEN ${value} < 0 THEN null ELSE SQRT(${value}) END)`; } function snowflake(value) { return sql(value); } function redshift(value) { return sql(value); } function postgresql(value) { return sql(value); } function databricks(value) { return sql(value); } //# sourceMappingURL=sqrt.js.map