UNPKG

@qrvey/formula-lang

Version:

QFormula support for qrvey projects

591 lines (353 loc) 37.5 kB
<a name="3.0.0"></a> # [3.0.0](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v2.0.0...v3.0.0) (2025-07-11) ### Bug Fixes * update version from 2.0.1-rc.418 to 2.0.1 in package.json and package-lock.json ([5aea225](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/5aea225)) * **aggregate:** add scenario for empty aggregate function failure ([90c62eb](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/90c62eb)) * **aggregate:** ensure currentNode is defined when validating aggregated scope ([680056c](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/680056c)) * **aggregate:** improve message for IF/IFs in Aggregate ([4f81671](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/4f81671)) * **aggregate:** only a column in an aggregate is not valid ([068d289](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/068d289)) * **aggregate:** rename DISTCOUNT to DISTINCTCOUNT in tests and functions ([53c64fa](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/53c64fa)) * **aggregate:** reorder validators for consistency across aggregation functions ([6370c41](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/6370c41)) * **aggregate:** update program scope validation to include external formulas ([5750d03](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/5750d03)) * **aggregate:** update validators to use isANumericColumnParam for consistency ([e440100](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/e440100)) * **aggregate:** validation to check against appropriate function lists based on scope ([22dc1db](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/22dc1db)) * **analyzer:** add more errors to the analyzer ([e7d4b11](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/e7d4b11)) * **constants:** correct AGGREGATE value in OPERATION_SCOPE enum ([829ba88](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/829ba88)) * **date_part:** Fix date part usage ([f3c2f84](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/f3c2f84)) * **elasticsearch:** correct formatting of conditional expressions in Elasticsearch transpilation ([39f8e7f](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/39f8e7f)) * **elasticsearch:** validate if a column need the "double" operator ([50be579](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/50be579)) * **escape:** improve escape characters function ([6e0f968](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/6e0f968)) * **functions:** show error when a optional argument is no specified RB-1582 ([e3bb651](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/e3bb651)) * **hourfunction:** fix transpilation for postgresql RB-1585 ([d52ac1c](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/d52ac1c)) * **isnull:** validate aggregate formula in IsNull without args ([749cb2a](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/749cb2a)) * **mismatch:** include 'type' in received validateParameters ([6cbef7b](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/6cbef7b)) * **postgres:** log and Round function in Postgrse ([04f0a42](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/04f0a42)) * **postgres:** remove FLOAT8 for postgres ([1657b58](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/1657b58)) * :bug: fix decimal handing in number values and date casting for date string values ([977b521](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/977b521)) * **text:** fix return datatype text function RB-1352 ([95f1eba](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/95f1eba)) * **veracode:** remove sensible information ([a72de0d](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/a72de0d)) ### Features * **aggregate:** add AGG_MAX and AGG_COUNT and AGG_DISTCOUNT functions. Update AGG_MED definitions ([d8d9dc1](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/d8d9dc1)) * **aggregate:** add functionScope to aggregate functions and update function list ([1639c59](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/1639c59)) * **aggregate:** add isAggregated to the AST ([ec6e8b8](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/ec6e8b8)) * **aggregate:** enhance aggregate validation and add new test cases ([8544a53](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/8544a53)) * **aggregate:** enhance ISNULL function to handle aggregate formulas ([477b23b](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/477b23b)) * **aggregate:** enhance validation column type external formulas ([eb3b06a](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/eb3b06a)) * **aggregate:** implement AGG_MIN function with support for multiple engines ([de671cd](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/de671cd)) * **aggregate:** implement dynamic aggregate name retrieval in aggregateFunctionsES ([ed57049](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/ed57049)) * **aggregate:** improve if-ifs error handling ([ddbada5](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/ddbada5)) * **aggregate:** update AND functionScope to include AGGREGATE ([7bb63b5](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/7bb63b5)) * **aggregate:** update columnId to use alias in aggregateFunctionsES ([2799cc1](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/2799cc1)) * **aggregate:** update DISTCOUNT and MEDIAN functions ([be70af7](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/be70af7)) * **aggregated:** adding isColumn and validations ([0beaca7](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/0beaca7)) * **aggregated:** avoid to transpile the column in elasticsearch ([71fe3a7](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/71fe3a7)) * **agregated:** adding currentInputScope for row or aggregated in context ([4063d48](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/4063d48)) * **datedif:** add tests for DATEDIF function with H, MI, S units ([abd2df5](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/abd2df5)) * **datedif:** extend DATEDIF function to support additional units (H, MI, S) ([cf7425f](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/cf7425f)) * **functions:** add AGG_SUM function and update exported function lists ([5d3e43f](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/5d3e43f)) * **functions:** update operationScope to single OPERATION_SCOPE value ([59c56f0](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/59c56f0)) * **hour12h:** add new parameter to return hour in 12h format RB-1352 RB-1503 ([9bb7db5](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/9bb7db5)) * **millisecond:** add expected primitive to millisecond function RB-1352 ([f6b7495](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/f6b7495)) * **millisecond:** add millisecond function RB-1352 ([b2b3bcc](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/b2b3bcc)) * **now:** implement NOW function for Elasticsearch and update related tests ([4da8b16](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/4da8b16)) * **now:** implement NOW function to return current timestamp across multiple engines ([fada7a0](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/fada7a0)) * **now:** simplify NOW function implementation for Elasticsearch ([c67a21d](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/c67a21d)) * **now:** update NOW function implementation for Elasticsearch compatibility ([38238b4](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/38238b4)) * **operation-scope:** add OPERATION_SCOPE enum and integrate into FunctionDefinition ([24468b0](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/24468b0)) * **operationscope:** add operation scope to various functions for row-level processing ([d036aa9](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/d036aa9)) * **tests:** add test for DATEDIF function using NOW() in PostgreSQL ([f15bb72](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/f15bb72)) * **tests:** add test for DATEDIF function using NOW() in PostgreSQL ([08f8878](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/08f8878)) * **tests:** update DATEDIF test and add DAY function test with NOW() ([7a7ffdd](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/7a7ffdd)) * **tests:** update DATEDIF test and add DAY function test with NOW() ([67c4532](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/67c4532)) * :sparkles: add even, odd, sqrt, include and lower functions for databricks ([4564061](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/4564061)) * :sparkles: add exp, log, power, round, rounddown and roundup functions for databricks ([d8b92b1](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/d8b92b1)) * :sparkles: enable databricks engine as valid engine value ([6d81919](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/6d81919)) * :sparkles: support abs, day and mid functions ([65949f5](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/65949f5)) * :sparkles: support dateadd, datesubtract, random, replace, text, right, trim and upper function in databricks ([45f0bf4](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/45f0bf4)) * :sparkles: support hour, minute, month, second and year functions ([be2d03c](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/be2d03c)) * :sparkles: support if, ifs, datediff, isNull functions ([567d448](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/567d448)) * :sparkles: support left, max, min, proper, millisecond and dayofweek functions ([8d3e136](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/8d3e136)) * **text:** add text function RB-1352 RB-1505 ([7740270](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/7740270)) ### BREAKING CHANGES * **operationscope:** FUNCTION_LIST will return the full list. So will be added two new lists ROW_FUNCTION_LIST and AGGREGATE_FUNCTION_LIST <a name="2.0.1-rc.418"></a> ## [2.0.1-rc.418](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v2.0.1-rc.415...v2.0.1-rc.418) (2023-08-04) <a name="2.0.1-rc.415"></a> ## [2.0.1-rc.415](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v2.0.1-rc-20230803-401...v2.0.1-rc.415) (2023-08-04) <a name="2.0.1-rc-20230803-401"></a> ## [2.0.1-rc-20230803-401](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/2.0.1-rc-20230802-01...v2.0.1-rc-20230803-401) (2023-08-03) <a name="2.0.1-rc-20230802-01"></a> ## [2.0.1-rc-20230802-01](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/2.0.1-rc-20230801-01...2.0.1-rc-20230802-01) (2023-08-02) <a name="2.0.1-rc-20230801-01"></a> ## [2.0.1-rc-20230801-01](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/2.0.1-rc-20230726-01...2.0.1-rc-20230801-01) (2023-08-01) <a name="2.0.1-rc-20230726-01"></a> ## [2.0.1-rc-20230726-01](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v1.1.0...2.0.1-rc-20230726-01) (2023-07-26) <a name="2.0.0"></a> # [2.0.0](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v1.1.0...v2.0.0) (2023-09-26) ### Bug Fixes * **concatenate:** concatenate primitive is string ([c0021a4](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/c0021a4)) * **concatenate:** concatenate primitive is string ([a112345](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/a112345)) * **datediff:** datediff for DataView have to be cast as INT ([c6cd081](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/c6cd081)) * **datefunctions:** add floor round to intervals in date add and subtract functions RB-1399 ([a317b2f](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/a317b2f)) * **datefunctions:** fix data type in floor RB-1399 ([1da0e8a](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/1da0e8a)) * **datesubtract:** fix DATESUBTRACT function with decimal numbers ([08fb4b2](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/08fb4b2)) * **errors:** fix expected result from mismatch error RB-1501 ([580c2c8](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/580c2c8)) * **errors:** fix expected result from mismatch error RB-1501 ([a299d6b](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/a299d6b)) * **escape:** fix escape character when is a number ([75e2523](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/75e2523)) * **function:** change transpilation logic of even and odd function ([620eb9d](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/620eb9d)) * **functions:** fix functions to only receive integer in numeric argments RB-1515 ([0fd936c](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/0fd936c)) * **functions:** fix roundown (negative numbers) in functions right and mid RB-1515 ([e22c587](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/e22c587)) * **functions:** fix transpilations of DATEADD and DATESUBTRACT for postgresql and snowflake RB-1398 ([c52166c](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/c52166c)) * **functions:** minor refactor ([dac4e02](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/dac4e02)) * **integer:** add integer as validator ([a3aaa5a](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/a3aaa5a)) * **isinteger:** isInteger only apply if is literal ([00627e9](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/00627e9)) * **logfunction:** do not allow 0 values in the first parameter (log function) RB-1349 ([164ab9f](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/164ab9f)) * **long number:** long number for elasticSearch when are Float, doesn't need to change ([82b4bf3](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/82b4bf3)) * **maxfunction:** fix max and min function when there two invalid parameters RB-1299 ([0c0d039](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/0c0d039)) * **maxfunction:** fix max and min function when there two invalid parameters RB-1299 ([b2429eb](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/b2429eb)) * **mid:** fix mid function to receive only integer parameters (second and third one) RB-1515 ([183a851](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/183a851)) * **min/max:** fix max/min function for bar charts and improve performance RB-1299 ([b8eb4c0](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/b8eb4c0)) * **mismatchdetail:** mismatchDetail extend ValidatorExpectedInfo ([f582b24](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/f582b24)) * **numbers:** convert to decimals integer numbers RB-1486 ([c78bc43](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/c78bc43)) * **numbervalidators:** fix number validators RB-1486 ([a3a6d40](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/a3a6d40)) * **round:** add is integer number to ROUND functions RB-1478 ([89660d7](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/89660d7)) * **roundfunction:** fix round for negative numbers in ES RB-1349 ([27a46a7](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/27a46a7)) * **roundfunctions:** fix transpilation for round, rounddown y roundup function tocomplain round rule ([d4c9852](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/d4c9852)) * **roundfunctions:** fix transpilation for round, rounddown y roundup function tocomplain round rule RB-1349 ([ae20b4a](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/ae20b4a)) * **tests:** fix all tests numbers changes RB-1486 ([c2bd167](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/c2bd167)) * **usesample:** if externalFormula and NOT sampleData ([6cedcc8](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/6cedcc8)) ### Code Refactoring * **rangeerrors:** refactor bad naming in numeric range validation ([4cfae47](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/4cfae47)) ### Features * **datesubtract:** add datesubtract function RB-1360 ([834cebf](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/834cebf)) * **evenfunction:** fix EVEN function for null case RB-1349 ([cef3aa4](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/cef3aa4)) * **expfunction:** add EXP function RB-1299 ([b7232d8](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/b7232d8)) * **expfunction:** add INCLUDE function RB-1299 ([7cb2545](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/7cb2545)) * **expfunction:** add REPLACE function RB-1299 ([707a580](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/707a580)) * **functions:** add even function RB-1417 ([e566fd3](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/e566fd3)) * **improvement:** add log error test and delete unnecessary file ([b6fc0db](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/b6fc0db)) * **leastfunction:** add MIN function RB-1299 ([fc2581e](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/fc2581e)) * **lengthfunction:** add length function RB-1299 ([63e0fd7](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/63e0fd7)) * **logfunction:** add log function RB-1418 ([8e46ce1](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/8e46ce1)) * **max function:** add better test of erros for max function and minor refactors RB-1299 ([092174d](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/092174d)) * **maxfunction:** add integration tests RB-1299 ([b0fd4f5](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/b0fd4f5)) * **maxfunction:** add max function ([28da9e7](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/28da9e7)) * **maxfunction:** add null checks in elasticsearch script ([7cdaad7](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/7cdaad7)) * **maxfunction:** add support for date in max function ([6cda42d](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/6cda42d)) * **maxfunction:** add validations for max function RB-1299 ([cedb769](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/cedb769)) * **maxfunction:** return array in expected primitive values RB-1299 ([62d2f6e](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/62d2f6e)) * **oddfunction:** add odd function RB-1419 ([3960fa4](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/3960fa4)) * **powerfunction:** add power Function RB-1420 RB-1349 ([4a43f0e](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/4a43f0e)) * **powerfunction:** add power Function RB-1420 RB-1349 ([b64d92d](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/b64d92d)) * **primitiveFunctions.ts:** export getPrimitiveAsValue ([59bb1ea](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/59bb1ea)) * **randomfunction:** add random function RB-1421 RB-1349 ([68d3f5e](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/68d3f5e)) * **rounddownfunction:** add rounddown function RB-1423 RB-1349 ([88fa4fc](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/88fa4fc)) * **roundfunction:** add round function RB-1422 RB-1349 ([ecfd32a](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/ecfd32a)) * **roundupfunction:** add roundup function RB-1424 RB-1349 ([4c4d695](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/4c4d695)) * **sqrtfunction:** add sqrt function RB-1299 ([d51e35a](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/d51e35a)) * **sqrtfunction:** add sqrt function RB-1299 ([2596515](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/2596515)) ### Reverts * **round:** take only the integer in case of decimales 2nd argument in round functions RB-1478 ([63d0614](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/63d0614)) ### BREAKING CHANGES * **rangeerrors:** For functions like dateadd, datesubtract, left, log, mid, right and sqrt when there are numbers negatives now will return MATCH_RANGE inside number validation error instead of GREATER_THAN. Additionally, in the info object it will return greaterThanOrEqualTo instead of greaterThan. * **maxfunction:** MismatchDetail.primitive and ValidatorExpectedInfo.primitive interfaces now are returning array <a name="1.1.0"></a> # [1.1.0](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v1.0.1...v1.1.0) (2023-07-24) ### Features * **circular:** catch Circular Dependency in a Formula ([4f8846d](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/4f8846d)) * **clean cntx:** clean model context ([8827cd2](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/8827cd2)) * **json-parser.ts:** nested formulas on variables ([8107d2e](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/8107d2e)) <a name="1.0.1"></a> ## [1.0.1](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v1.0.0...v1.0.1) (2023-07-11) ### Bug Fixes * **dateadd:** fix bug with dateadd function ([640981b](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/640981b)) <a name="1.0.0"></a> # [1.0.0](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.11.5...v1.0.0) (2023-07-10) ### Bug Fixes * **dayofweek:** day of week with D (numeric) return string in Postgres ([ce97f3d](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/ce97f3d)) * **logicalfunctions:** minor change, update comment ([1113d17](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/1113d17)) * **properfunction:** add escaper characters in literals ([8f82079](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/8f82079)) ### Code Refactoring * **datedifffunction:** refactor unit validation ([7b2ad5c](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/7b2ad5c)) ### Features * **concantenatefunction:** add concatenate function ([194c976](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/194c976)) * **concantenatefunction:** add concatenate function ([007ad6d](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/007ad6d)) * **dateaddfunction:** add dateadd function RB-1241 ([267058d](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/267058d)) * **dateaddfunction:** add dateadd function RB-1241 ([07845f2](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/07845f2)) * **dateaddfunction:** add dateadd function RB-1241 ([7e63f72](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/7e63f72)) * **dayofweek:** add day of week function RB-1241 ([1284b16](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/1284b16)) * **escapedfunction:** improve esacape function RB-1241 ([3781e95](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/3781e95)) * **functions:** add upper and lower case functions RB-1241 ([b939582](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/b939582)) * **leftfunction:** add left function RB-1241 ([7282421](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/7282421)) * **logicalfunction:** add AND function RB-1241 ([8ff2d07](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/8ff2d07)) * **logicalfunctions:** add or function RB-1247 ([0e2894b](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/0e2894b)) * **properfunction:** add pg scaped RB-1241 ([1375ffa](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/1375ffa)) * **properfunction:** add proper function RB-1241 ([1fc83a4](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/1fc83a4)) * **properfunction:** fix ? character in snowflake RB-1241 ([364f6c4](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/364f6c4)) * **properfunction:** fix characterlist snowfalek RB-1241 ([3ef0f3e](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/3ef0f3e)) * **rightfunction:** add right function RB-1241 ([9a69425](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/9a69425)) * **strings:** Scape literal string characters ([5ce0c0e](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/5ce0c0e)) * **strings:** Scape literal string characters ([4de920e](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/4de920e)) * **strings:** Scape literal string characters ([52e13bb](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/52e13bb)) * **strings:** Scape literal string characters ([b56a665](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/b56a665)) * **trim:** add trim function RB-1241 ([9b1e675](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/9b1e675)) ### BREAKING CHANGES * **datedifffunction:** DATE_DIF_UNIT_PARAM now is INVALID_ALLOW_VALUE <a name="0.11.5"></a> ## [0.11.5](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.11.4...v0.11.5) (2023-06-20) ### Bug Fixes * **midfunction:** fix mid function for ES when length is negative RB-1278 ([ceae6fc](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/ceae6fc)) * **midfunction:** improve mid function with AC RB-1278 ([8886b29](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/8886b29)) <a name="0.11.4"></a> ## [0.11.4](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.11.3...v0.11.4) (2023-06-20) ### Bug Fixes * **midfunction:** set 3rd argument as required RB-1285 ([5994518](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/5994518)) <a name="0.11.3"></a> ## [0.11.3](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.11.2...v0.11.3) (2023-06-20) ### Bug Fixes * **mid.ts:** validate negatives on mid ([0c24e61](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/0c24e61)) <a name="0.11.0"></a> # [0.11.0](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.10.0...v0.11.0) (2023-06-13) ### Features * **mismatch:** adding mismatch error ([79d2bf0](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/79d2bf0)) <a name="0.10.0"></a> # [0.10.0](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.9.3...v0.10.0) (2023-06-09) ### Features * **postgres:** datedif ([4b31655](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/4b31655)) * **postgresql:** add postgres ([1c55de9](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/1c55de9)) <a name="0.9.2"></a> ## [0.9.2](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.9.1...v0.9.2) (2023-06-01) ### Bug Fixes * **long:** fix long number ES ([e3d9cf5](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/e3d9cf5)) <a name="0.9.1"></a> ## [0.9.1](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.9.0...v0.9.1) (2023-05-31) ### Bug Fixes * **datedif:** datedif with Y, sign must be <= ([0ed55b2](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/0ed55b2)) * **long number:** long number 2^63 show error ([e836491](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/e836491)) * **long number:** long number for ElasticSearch ([6fe8051](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/6fe8051)) * **null_pointer:** analyzen Elasticsearch null_pointer_exceptin ([496821f](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/496821f)) * **sonar:** fix sonar recomendations ([30eea3c](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/30eea3c)) <a name="0.9.0"></a> # [0.9.0](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.8.12...v0.9.0) (2023-05-29) ### Bug Fixes * **unknown error:** remove Unknown error, not needed ([4a5cd9b](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/4a5cd9b)) ### Features * **ifnull:** add if null function ([3dd6e7f](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/3dd6e7f)) * **ifnull:** add support of null in dummy data ([79b3846](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/79b3846)) * **ifnull:** add validation of data types and refactor ([026b86b](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/026b86b)) * **isnull:** add argument index to InvalidArgumentError ([c037909](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/c037909)) * **isnull:** add error when the arguments does not have the same data type ([acc7294](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/acc7294)) * **isnull:** add validations to only allow column as value and no columns in the replacement ([4894bc2](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/4894bc2)) * **isnull:** fix function description ([2d83660](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/2d83660)) <a name="0.8.12"></a> ## [0.8.12](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.8.11...v0.8.12) (2023-05-29) ### Bug Fixes * **value:** fix null validation when value 0 is pass it ([7af8bd6](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/7af8bd6)) <a name="0.8.11"></a> ## [0.8.11](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.8.10...v0.8.11) (2023-05-24) ### Bug Fixes * **getvaluees:** fix get_value of columns in ES ([ab68e6c](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/ab68e6c)) * **if:** if function third param mandatory ([fd14c2b](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/fd14c2b)) <a name="0.8.10"></a> ## [0.8.10](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.8.9...v0.8.10) (2023-05-24) ### Bug Fixes * **conditionals:** accept only boolean expressio in first argument ([48ceb27](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/48ceb27)) * **ifs:** fix IF/IFS function args ([c34ef71](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/c34ef71)) * **redshift diff:** fix datedif with Y (year) in redshift ([da95ef9](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/da95ef9)) <a name="0.8.9"></a> ## [0.8.9](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.8.8...v0.8.9) (2023-05-19) ### Bug Fixes * **mid:** fix mid in ES ([0de9f14](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/0de9f14)) <a name="0.8.8"></a> ## [0.8.8](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.8.7...v0.8.8) (2023-05-17) ### Bug Fixes * **datedif y:** fix datedif for Year in SQL Engines ([bd11671](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/bd11671)) * **erroranalyzer:** add Invalid cast number exception ([91cb729](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/91cb729)) * **errors:** adding errors for bad implementation ([bde3b04](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/bde3b04)) * **mid:** fix mid function in ElasticSearch ([be0bf7b](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/be0bf7b)) * **timezone:** add def ([e3a6d4d](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/e3a6d4d)) <a name="0.8.7"></a> ## [0.8.7](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.8.6...v0.8.7) (2023-05-15) ### Bug Fixes * **json-parser.ts:** valid binary operations using primitives ([3ac66ea](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/3ac66ea)) * **logical:** logical operator to negate ([895bef5](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/895bef5)) * **syntax.grammar:** re-arrange operator precedence ([93a13ce](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/93a13ce)) <a name="0.8.6"></a> ## [0.8.6](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.8.5...v0.8.6) (2023-05-13) ### Bug Fixes * **json-parser.ts:** remove unnecessary parameters ([4f4cb2e](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/4f4cb2e)) <a name="0.8.5"></a> ## [0.8.5](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.8.4...v0.8.5) (2023-05-13) ### Bug Fixes * **json-parser.ts:** calculate missing arguments in a function ([6efe266](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/6efe266)) <a name="0.8.0"></a> # [0.8.0](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.7.0...v0.8.0) (2023-05-09) ### Bug Fixes * **datatypeexpression:** get datatype for unaryexpression and binary expression ([bce33ef](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/bce33ef)) * **expressionerror:** thrown an error for invalid and unary expression ([0bce425](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/0bce425)) ### Features * **errorhandling:** Revert change spread operator ([42c7f54](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/42c7f54)) * **runtime:** add runtime errors ([3479a99](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/3479a99)) <a name="0.7.0"></a> # [0.7.0](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.6.0...v0.7.0) (2023-05-08) ### Bug Fixes * **functions:** fix some function that are failed ([d8cd07a](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/d8cd07a)) ### Features * **testingmode:** transpile expression from columns to literals ([7d0c90f](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/7d0c90f)) * **usesampledata:** change sample data propertie names RB-1122 ([3ad704e](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/3ad704e)) <a name="0.6.0"></a> # [0.6.0](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.5.2...v0.6.0) (2023-05-03) ### Bug Fixes * **expressionerror:** thrown an error for invalid and unary expression ([2b156f1](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/2b156f1)) ### Features * **error analyzer:** add a error analyzer ([7db6dcc](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/7db6dcc)) * **errorhandling:** acumulate errors and return it ([941c9f4](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/941c9f4)) * **errorhandling:** Refactor error handling ([5c5c418](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/5c5c418)) * **errorhandling:** Refactor method error acumulation ([9d1ce8d](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/9d1ce8d)) * **errorhandling:** Refactor transpiler class to set no public methods ([87b0a1a](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/87b0a1a)) * **runtime error:** analyze error from runtime engines ([6a0e0cd](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/6a0e0cd)) * (missinargument) Return argument index in missing argument error ([fa94a8b](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/fa94a8b)) * (missinargument) Return parameter in missing argument error ([e2c1a3e](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/e2c1a3e)) <a name="0.5.2"></a> # [0.5.2](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.4.0...v0.5.0) (2023-04-27) ### Features * **expressionerror:** add error for a invalid expression ([410ba4e](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/410ba4e)) * **syntax-errors.ts:** calculation of syntax error from formula ([38cf962](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/38cf962)) * **timezone:** enable timezone in context ([73ada29](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/73ada29)) <a name="0.4.0"></a> # [0.4.0](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.3.1...v0.4.0) (2023-04-24) ### Features * **columns:** add column transpilation from AST ([cd28ff9](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/cd28ff9)) * **columns:** support columns ([478909c](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/478909c)) <a name="0.3.0"></a> # [0.3.0](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.2.0...v0.3.0) (2023-04-24) ### Bug Fixes * **syntax.grammar:** allow dots in variable names ([c88dbf8](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/c88dbf8)) ### Features * **functions/index.ts:** export FUNCTION_LIST and getFunctionDetail ([baf0248](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/baf0248)) * **json-parser.ts:** context for variables ([54acd88](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/54acd88)) <a name="0.2.0"></a> # [0.2.0](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.1.3...v0.2.0) (2023-04-21) ### Bug Fixes * **iffunction:** return False keyword for each lenguage in value if false case ([34a0160](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/34a0160)) ### Features * **argumentvalidation:** add arguments validation function RB-1072 ([4e5e3fc](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/4e5e3fc)) * **datedif:** add DATEDIF function ([1354f1d](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/1354f1d)) * **datedif:** dateDif function finish ([5089728](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/5089728)) * **day:** add DAY function ([6553dae](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/6553dae)) * **errordefinition:** add and improve error defintions (TooManyArguments and InvalidArgument) ([22c9b8b](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/22c9b8b)) * **errordefinition:** add error definition for Unknow and missing arguments errors ([7054f55](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/7054f55)) * **function:** add Month, Year, Hour, Minute, Second ([e14ff0a](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/e14ff0a)) * **functions:** add ABS function and refactor folder structure of tests ([5f82ce2](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/5f82ce2)) * **functions:** add IF funciton along intgration test in elasticsearch ([c18af49](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/c18af49)) * **ifsfunction:** add IFS support for elasticsearch ([ddc9da9](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/ddc9da9)) * **ifsfunction:** add redshift and snowflake transpilation ([731cf94](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/731cf94)) * **json-parser.ts:** date parser with tests ([2e20873](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/2e20873)) * **syntax.grammar:** date grammar definition ([ccea58f](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/ccea58f)) <a name="0.1.3"></a> ## [0.1.3](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.1.2...v0.1.3) (2023-04-16) ### Bug Fixes * **utils:** return '' if node or string is null ([d4a8ada](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/d4a8ada))