[NO ISSUE][COMP] Add aliases for type functions
- user model changes: yes
- storage format changes: no
- interface changes: no
Details:
- Add aliases for type functions:
is_atom(), is_bool(), is_num(), is_str(), is_obj(),
to_atom(), to_bool(), to_num(), to_str(), to_obj()
Change-Id: I83508d3a439cd7b707c0ce9f43d7b7482aa162f0
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2670
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Till Westmann <tillw@apache.org>
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isatomic/isatomic.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isatomic/isatomic.1.query.sqlpp
index 4339904..57c66a5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isatomic/isatomic.1.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isatomic/isatomic.1.query.sqlpp
@@ -22,7 +22,7 @@
"b": isatomic(false),
"c": is_atomic(null),
"d": is_atomic(missing),
- "e": isatom("d"),
+ "e": is_atom("d"),
"f": isatom(4.0),
"g": isatom(5),
"h": isatom(["1", 2]),
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isboolean/isboolean.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isboolean/isboolean.1.query.sqlpp
index de3c64e..0c0c20e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isboolean/isboolean.1.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isboolean/isboolean.1.query.sqlpp
@@ -22,7 +22,7 @@
"b": isboolean(false),
"c": is_boolean(null),
"d": is_boolean(missing),
- "e": isbool("d"),
+ "e": is_bool("d"),
"f": isbool(4.0),
"g": isbool(5),
"h": isbool(["1", 2]),
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isnumber/isnumber.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isnumber/isnumber.1.query.sqlpp
index 1e153d3..2624fa7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isnumber/isnumber.1.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isnumber/isnumber.1.query.sqlpp
@@ -24,7 +24,7 @@
"d": is_number(missing),
"e": is_number("d"),
"f": isnumber(4.0),
- "g": isnum(5),
+ "g": is_num(5),
"h": isnum(["1", 2]),
"i": isnum({"a":1})
};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isobject/isobject.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isobject/isobject.1.query.sqlpp
index 8305977..c99417d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isobject/isobject.1.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isobject/isobject.1.query.sqlpp
@@ -22,7 +22,7 @@
"b": isobject(false),
"c": is_object(null),
"d": is_object(missing),
- "e": isobj("d"),
+ "e": is_obj("d"),
"f": isobj(4.0),
"g": isobj(5),
"h": isobj(["1", 2]),
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isstring/isstring.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isstring/isstring.1.query.sqlpp
index a5caf3c..3fe797e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isstring/isstring.1.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/isstring/isstring.1.query.sqlpp
@@ -22,7 +22,7 @@
"b": isstring(false),
"c": isstring(null),
"d": isstr(missing),
- "e": isstr("d"),
+ "e": is_str("d"),
"f": isstr(4.0),
"g": isstr(5),
"h": isstr(["1", 2]),
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_atomic/to_atomic.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_atomic/to_atomic.3.query.sqlpp
index 07303d9..a6bdda1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_atomic/to_atomic.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_atomic/to_atomic.3.query.sqlpp
@@ -19,7 +19,7 @@
{
"t1": [ toatomic(missing) is missing, toatom(null) is null ],
- "t2": [ to_atomic(1), to_atomic(true), to_atomic("hello") ],
+ "t2": [ to_atom(1), to_atomic(true), to_atomic("hello") ],
"t3": [ to_atomic([]), to_atomic([2]), to_atomic([2,3]), to_atomic([[[[4]]]]) ],
"t4": [ to_atomic({{}}), to_atomic({{2}}), to_atomic({{2,3}}), to_atomic({{{{{{{{4}}}}}}}}) ],
"t5": [ to_atomic({}), to_atomic({"a":2}), to_atomic({"a":2, "b":3}), to_atomic({"a":{"b":{"c":{"d":4}}}}) ],
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_boolean_01/to_boolean_01.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_boolean_01/to_boolean_01.1.query.sqlpp
index 79dc84e..45a82c7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_boolean_01/to_boolean_01.1.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_boolean_01/to_boolean_01.1.query.sqlpp
@@ -20,8 +20,8 @@
"t1": toboolean(false),
"t2": to_boolean(true),
- "t3": to_boolean(int8("0")),
- "t4": to_boolean(int8("10")),
+ "t3": tobool(int8("0")),
+ "t4": to_bool(int8("10")),
"t5": to_boolean(int16("0")),
"t6": to_boolean(int16("10")),
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_number_01/to_number_01.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_number_01/to_number_01.1.query.sqlpp
index 739a6a9..ea31b79 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_number_01/to_number_01.1.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_number_01/to_number_01.1.query.sqlpp
@@ -21,7 +21,7 @@
"t1": tonumber(false),
"t2": to_number(true),
"t3": tonum(int8("8")),
- "t4": to_number(int16("16")),
+ "t4": to_num(int16("16")),
"t5": to_number(int32("32")),
"t6": to_number(int64("64")),
"t7": to_number(float("1.5")),
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_object/to_object.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_object/to_object.1.query.sqlpp
index e7c04f7..bdca79d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_object/to_object.1.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_object/to_object.1.query.sqlpp
@@ -19,7 +19,7 @@
{
"t1": [ toobject(missing) is missing, toobj(null) is null ],
- "t2": is_object(to_object({})),
+ "t2": is_object(to_obj({})),
"t3": to_object({}),
"t4": to_object({"a":1}),
"t5": to_object({"a":1, "b":2}),
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_string_01/to_string_01.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_string_01/to_string_01.1.query.sqlpp
index 52a39fc..4130195 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_string_01/to_string_01.1.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/to_string_01/to_string_01.1.query.sqlpp
@@ -19,7 +19,7 @@
{
"t1": tostring(false),
"t2": tostr(true),
- "t3": to_string(int8("8")),
+ "t3": to_str(int8("8")),
"t4": to_string(int16("16")),
"t5": to_string(int32("32")),
"t6": to_string(int64("64")),
diff --git a/asterixdb/asterix-doc/src/main/markdown/builtins/11_type.md b/asterixdb/asterix-doc/src/main/markdown/builtins/11_type.md
index 578508f..c9eab13 100644
--- a/asterixdb/asterix-doc/src/main/markdown/builtins/11_type.md
+++ b/asterixdb/asterix-doc/src/main/markdown/builtins/11_type.md
@@ -19,7 +19,7 @@
## <a id="TypeFunctions">Type Functions</a> ##
-### is_array (isarray) ###
+### is_array ###
* Syntax:
is_array(expr)
@@ -53,7 +53,7 @@
The function has an alias `isarray`.
-### is_atomic (isatomic, isatom) ###
+### is_atomic (is_atom) ###
* Syntax:
is_atomic(expr)
@@ -84,9 +84,9 @@
{ "a": true, "b": true, "c": null, "e": true, "f": true, "g": true, "h": false, "i": false }
- The function has two aliases, `isatomic` or `isatom`.
+ The function has three aliases: `isatomic`, `is_atom`, and `isatom`.
-### is_boolean (isboolean, isbool) ###
+### is_boolean (is_bool) ###
* Syntax:
is_boolean(expr)
@@ -118,10 +118,10 @@
{ "a": true, "b": true, "c": null, "e": false, "f": false, "g": false, "h": false, "i": false }
- The function has two aliases, `isboolean` or `isbool`.
+ The function has three aliases: `isboolean`, `is_bool`, and `isbool`.
-### is_number (isnumber, isnum) ###
+### is_number (is_num) ###
* Syntax:
is_number(expr)
@@ -154,9 +154,9 @@
{ "a": false, "b": false, "c": null, "e": false, "f": true, "g": true, "h": false, "i": false }
- The function has two aliases, `isnumber` or `isnum`.
+ The function has three aliases: `isnumber`, `is_num`, and `isnum`.
-### is_object (isobject, isobj) ###
+### is_object (is_obj) ###
* Syntax:
is_object(expr)
@@ -188,10 +188,10 @@
{ "a": false, "b": false, "c": null, "e": false, "f": false, "g": false, "h": false, "i": true }
- The function has two aliases, `isobject` or `isobj`.
+ The function has three aliases: `isobject`, `is_obj`, and `isobj`.
-### is_string (isstring, isstr) ###
+### is_string (is_str) ###
* Syntax:
is_string(expr)
@@ -223,7 +223,7 @@
{ "a": false, "b": false, "c": null, "e": true, "f": false, "g": false, "h": false, "i": false }
- The function has two aliases, `isstring` or `isstr`.
+ The function has three aliases: `isstring`, `is_str`, and `isstr`.
### is_null ###
@@ -321,7 +321,7 @@
The function has an alias `toarray`.
-### to_atomic ###
+### to_atomic (to_atom) ###
* Syntax:
to_atomic(expr)
@@ -353,9 +353,9 @@
{ "v1": "asterix", "v2": "asterix", "v3": null, "v4": "asterix", "v5": null }
- The function has two aliases, `toatomic` or `toatom`.
+ The function has three aliases: `toatomic`, `to_atom`, and `toatom`.
-### to_boolean ###
+### to_boolean (to_bool) ###
* Syntax:
to_boolean(expr)
@@ -386,7 +386,7 @@
{ "v1": false, "v2": true, "v3": false, "v4": true }
- The function has two aliases, `toboolean` or `tobool`.
+ The function has three aliases: `toboolean`, `to_bool`, and `tobool`.
### to_bigint ###
* Syntax:
@@ -458,7 +458,7 @@
The function has an alias `todouble`.
-### to_number ###
+### to_number (to_num) ###
* Syntax:
to_number(expr)
@@ -491,9 +491,9 @@
{ "v1": 0, "v2": 1, "v3": 10, "v4": 11.5, "v5": 12.5 }
- The function has two aliases, `tonumber` or `tonum`.
+ The function has three aliases: `tonumber`, `to_num`, and `tonum`.
-### to_object ###
+### to_object (to_obj) ###
* Syntax:
to_object(expr)
@@ -518,9 +518,9 @@
{ "v1": {"value": "asterix"}, "v2": {} }
- The function has two aliases, `toobject` or `toobj`.
+ The function has three aliases: `toobject`, `to_obj`, and `toobj`.
-### to_string ###
+### to_string (to_str) ###
* Syntax:
to_string(expr)
@@ -551,4 +551,4 @@
{ "v1": "false", "v2": "true", "v3": "10", "v4": "11.5", "v5": "asterix" }
- The function has two aliases, `tostring` or `tostr`.
+ The function has three aliases: `tostring`, `to_str`, and `tostr`.
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/CommonFunctionMapUtil.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/CommonFunctionMapUtil.java
index 3dffc00..3e6caab 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/CommonFunctionMapUtil.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/CommonFunctionMapUtil.java
@@ -54,15 +54,20 @@
addFunctionMapping("isunknown", "is-unknown"); // isunknown, internal: is-unknown
addFunctionMapping("isatomic", "is-atomic"); // isatomic, internal: is-atomic
addFunctionMapping("isatom", "is-atomic"); // isatom, internal: is-atomic
+ addFunctionMapping("is_atom", "is-atomic"); // is_atom, internal: is-atomic
addFunctionMapping("isboolean", "is-boolean"); // isboolean, internal: is-boolean
addFunctionMapping("isbool", "is-boolean"); // isbool, internal: is-boolean
+ addFunctionMapping("is_bool", "is-boolean"); // is_bool, internal: is-boolean
addFunctionMapping("isnumber", "is-number"); // isnumber, internal: is-number
addFunctionMapping("isnum", "is-number"); // isnum, internal: is-number
+ addFunctionMapping("is_num", "is-number"); // is_num, internal: is-number
addFunctionMapping("isstring", "is-string"); // isstring, internal: is-string
addFunctionMapping("isstr", "is-string"); // isstr, internal: is-string
+ addFunctionMapping("is_str", "is-string"); // is_str, internal: is-string
addFunctionMapping("isarray", "is-array"); // isarray, internal: is-array
addFunctionMapping("isobject", "is-object"); // isobject, internal: is-object
addFunctionMapping("isobj", "is-object"); // isobj, internal: is-object
+ addFunctionMapping("is_obj", "is-object"); // is_obj, internal: is-object
addFunctionMapping("ifmissing", "if-missing"); // ifmissing, internal: if-missing
addFunctionMapping("ifnull", "if-null"); // ifnull, internal: if-null
addFunctionMapping("ifmissingornull", "if-missing-or-null"); // ifmissingornull, internal: if-missing-or-null
@@ -72,16 +77,21 @@
addFunctionMapping("toarray", "to-array"); // toarray, internal: to-array
addFunctionMapping("toatomic", "to-atomic"); // toatomic, internal: to-atomic
addFunctionMapping("toatom", "to-atomic"); // toatom, internal: to-atomic
+ addFunctionMapping("to_atom", "to-atomic"); // to_atom, internal: to-atomic
addFunctionMapping("toboolean", "to-boolean"); // toboolean, internal: to-boolean
addFunctionMapping("tobool", "to-boolean"); // tobool, internal: to-boolean
+ addFunctionMapping("to_bool", "to-boolean"); // to_bool, internal: to-boolean
addFunctionMapping("tobigint", "to-bigint"); // tobigint, internal: to-bigint
addFunctionMapping("todouble", "to-double"); // todouble, internal: to-double
addFunctionMapping("tostring", "to-string"); // tostring, internal: to-string
addFunctionMapping("tostr", "to-string"); // tostr, internal: to-string
+ addFunctionMapping("to_str", "to-string"); // to_str, internal: to-string
addFunctionMapping("tonumber", "to-number"); // tonumber, internal: to-number
addFunctionMapping("tonum", "to-number"); // tonum, internal: to-number
+ addFunctionMapping("to_num", "to-number"); // to_num, internal: to-number
addFunctionMapping("toobject", "to-object"); // toobject, internal: to-object
addFunctionMapping("toobj", "to-object"); // toobj, internal: to-object
+ addFunctionMapping("to_obj", "to-object"); // to_obj, internal: to-object
// Object functions
// record-merge, internal: object-merge