@qrvey/formula-lang
Version:
QFormula support for qrvey projects
42 lines • 958 B
JavaScript
import { AST_PRIMITIVES } from '../constants';
import { isStringParam } from '../utils';
/**
* `LENGTH` Returns the number characters of a string.
*/
export const LENGTH = {
identifier: 'LENGTH',
parameters: [
{
identifier: 'STRING',
optional: false,
expectedPrimitive: AST_PRIMITIVES.STRING,
validator: [isStringParam],
},
],
transpiler: {
elasticsearch,
snowflake,
redshift,
postgresql,
},
primitiveResult: AST_PRIMITIVES.NUMBER,
};
function elasticsearch(current) {
return `LENGTH(${current})`;
}
function SQL(current) {
return `(CASE
WHEN ${current} IS NULL THEN 0
ELSE LENGTH(${current})
END)`;
}
function snowflake(current) {
return SQL(current);
}
function redshift(current) {
return SQL(current);
}
function postgresql(current) {
return SQL(current);
}
//# sourceMappingURL=length.js.map