rhombic
Version:
SQL parsing, lineage extraction and manipulation
125 lines • 2.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.matchFunctionName = void 0;
const functionNames = [
"COLLECT",
"LISTAGG",
"COUNT",
"FUSION",
"APPROX_COUNT_DISTINCT",
"AVG",
"SUM",
"MAX",
"MIN",
"ANY_VALUE",
"BIT_AND",
"BIT_OR",
"CONCAT",
"STDDEV_POP",
"STDDEV_SAMP",
"STDDEV",
"VAR_POP",
"VAR_SAMP",
"COVAR_POP",
"COVAR_SAMP",
"REGR_COUNT",
"REGR_SXX",
"REGR_SYY",
"RANK",
"DENSE_RANK",
"ROW_NUMBER",
"FIRST_VALUE",
"LAST_VALUE",
"LEAD",
"LAG",
"NTH_VALUE",
"NTILE",
"GROUPING",
"GROUP_ID",
"GROUPING_ID",
"HOP",
"SESSION",
"TUMBLE",
"HOP_END",
"HOP_START",
"SESSION_END",
"SESSION_START",
"TUMBLE_END",
"TUMBLE_START",
"ST_AsText",
"ST_AsWKT",
"ST_GeomFromText",
"ST_LineFromText",
"ST_MLineFromText",
"ST_MPointFromText",
"ST_MPolyFromText",
"ST_PointFromText",
"ST_PolyFromText",
"ST_MakeLine",
"ST_MakePoint",
"ST_Point",
"ST_Boundary",
"ST_Distance",
"ST_GeometryType",
"ST_GeometryTypeCode",
"ST_Envelope",
"ST_X",
"ST_Y",
"ST_Is3D",
"ST_Z",
"ST_Contains",
"ST_ContainsProperly",
"ST_Crosses",
"ST_Disjoint",
"ST_DWithin",
"ST_EnvelopesIntersect",
"ST_Equals",
"ST_Intersects",
"ST_Overlaps",
"ST_Touches",
"ST_Within",
"ST_Buffer",
"ST_Union",
"ST_SetSRID",
"ST_Transform",
"JSON_EXISTS",
"JSON_VALUE",
"JSON_QUERY",
"JSON_OBJECT",
"JSON_OBJECTAGG",
"JSON_ARRAY",
"JSON_ARRAYAGG",
"DECODE",
"DIFFERENCE",
"GREATEST",
"JSON_TYPE",
"JSON_DEPTH",
"JSON_PRETTY",
"JSON_LENGTH",
"JSON_KEYS",
"JSON_REMOVE",
"JSON_STORAGE_SIZE",
"LEAST",
"LEFT",
"LTRIM",
"NVL",
"REPEAT",
"REVERSE",
"RIGHT",
"RTRIM",
"SOUNDEX",
"SPACE",
"SUBSTR",
"TRANSLATE"
];
/**
* Custom matcher for sql function name.
*
* @param text
*/
const matchFunctionName = (text, offset) => {
const chunk = text.slice(offset).split("(")[0] || "";
return functionNames.includes(chunk.toUpperCase()) ? [chunk] : null;
};
exports.matchFunctionName = matchFunctionName;
//# sourceMappingURL=matchFunctionName.js.map