From 0bdaa1b559bcc9abf32c7cc89ffa660fedc4d34d Mon Sep 17 00:00:00 2001 From: obdev Date: Tue, 6 Feb 2024 14:52:37 +0000 Subject: [PATCH] occupy fields for type oid 300025 and 300026 --- .../sys_package/json_array_type.sql | 19 +++++++++++++++++++ .../sys_package/xml_sequence_type.sql | 3 +++ src/share/ob_errno.cpp | 6 +++--- src/share/ob_errno.def | 6 +++--- 4 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 src/share/inner_table/sys_package/json_array_type.sql create mode 100644 src/share/inner_table/sys_package/xml_sequence_type.sql diff --git a/src/share/inner_table/sys_package/json_array_type.sql b/src/share/inner_table/sys_package/json_array_type.sql new file mode 100644 index 0000000000..a0de3b0480 --- /dev/null +++ b/src/share/inner_table/sys_package/json_array_type.sql @@ -0,0 +1,19 @@ +CREATE OR REPLACE TYPE JSON_ARRAY_T OID '300025' AS OPAQUE +( + STATIC FUNCTION parse(jsn VARCHAR2) return JSON_ARRAY_T, + STATIC FUNCTION parse(jsn CLOB) return JSON_ARRAY_T, + STATIC FUNCTION parse(jsn BLOB) return JSON_ARRAY_T, + CONSTRUCTOR FUNCTION JSON_ARRAY_T RETURN SELF AS RESULT, + CONSTRUCTOR FUNCTION JSON_ARRAY_T(o JSON_ELEMENT_T) RETURN SELF AS RESULT, + CONSTRUCTOR FUNCTION JSON_ARRAY_T(o JSON_ARRAY_T) RETURN SELF AS RESULT, + CONSTRUCTOR FUNCTION JSON_ARRAY_T(jsn VARCHAR2) RETURN SELF AS RESULT, + CONSTRUCTOR FUNCTION JSON_ARRAY_T(jsn CLOB) RETURN SELF AS RESULT, + CONSTRUCTOR FUNCTION JSON_ARRAY_T(jsn BLOB) RETURN SELF AS RESULT, + MEMBER PROCEDURE on_Error(val NUMBER), + MEMBER FUNCTION get(pos NUMBER) return JSON_ELEMENT_T, + MEMBER FUNCTION get_Type(pos NUMBER) return VARCHAR2, + MEMBER FUNCTION get_Size RETURN NUMBER, + MEMBER FUNCTION to_String RETURN VARCHAR2, + MEMBER FUNCTION clone RETURN JSON_ARRAY_T +); +// \ No newline at end of file diff --git a/src/share/inner_table/sys_package/xml_sequence_type.sql b/src/share/inner_table/sys_package/xml_sequence_type.sql new file mode 100644 index 0000000000..4ff8ca6763 --- /dev/null +++ b/src/share/inner_table/sys_package/xml_sequence_type.sql @@ -0,0 +1,3 @@ +CREATE OR REPLACE TYPE XMLSEQUENCE OID '300026' + AS VARRAY(32767) OF xmltype; +// \ No newline at end of file diff --git a/src/share/ob_errno.cpp b/src/share/ob_errno.cpp index df7d282d90..8b49ac01c9 100755 --- a/src/share/ob_errno.cpp +++ b/src/share/ob_errno.cpp @@ -21097,7 +21097,7 @@ static const _error _error_OB_ERR_INVALID_XPATH_EXPRESSION = { .error_name = "OB_ERR_INVALID_XPATH_EXPRESSION", .error_cause = "Internal Error", .error_solution = "Contact OceanBase Support", - .mysql_errno = -1, + .mysql_errno = ER_UNKNOWN_ERROR, .sqlstate = "42000", .str_error = "invalid xpath expression", .str_user_error = "invalid xpath expression", @@ -21157,7 +21157,7 @@ static const _error _error_OB_XPATH_EXPRESSION_UNSUPPORTED = { .error_name = "OB_XPATH_EXPRESSION_UNSUPPORTED", .error_cause = "Internal Error", .error_solution = "Contact OceanBase Support", - .mysql_errno = -1, + .mysql_errno = ER_UNKNOWN_ERROR, .sqlstate = "42000", .str_error = "Given XPATH expression not supported", .str_user_error = "Given XPATH expression not supported", @@ -23245,7 +23245,7 @@ static const _error _error_OB_ERR_XML_PARSE = { .error_name = "OB_ERR_XML_PARSE", .error_cause = "Internal Error", .error_solution = "Contact OceanBase Support", - .mysql_errno = -1, + .mysql_errno = ER_WRONG_VALUE, .sqlstate = "HY000", .str_error = "XML parsing failed", .str_user_error = "XML parsing failed", diff --git a/src/share/ob_errno.def b/src/share/ob_errno.def index aebf0d5dc9..ae781c3928 100755 --- a/src/share/ob_errno.def +++ b/src/share/ob_errno.def @@ -1942,12 +1942,12 @@ DEFINE_ORACLE_ERROR_EXT_DEP(OB_ERR_INVALID_GEOMETRY_TYPE, -7288, ER_UNEXPECTED_G DEFINE_ORACLE_ERROR_EXT_DEP(OB_ERR_FTS_MUST_HAVE_TEXT_COL, -7289, ER_BAD_FT_COLUMN, "42000", "A FTS index may only contain a text type column.", "A FTS index may only contain a text type column.", 600, "A FTS index may only contain a text type column.", "A FTS index may only contain a text type column."); DEFINE_ORACLE_ERROR_EXT(OB_ERR_INVALID_XML_DATATYPE, -7402, -1, "22000", "Invalid data type for the operation", "inconsistent datatypes: expected %s got %s", 932, "inconsistent datatypes", "inconsistent datatypes: expected %s got %s"); DEFINE_ORACLE_ERROR(OB_ERR_XML_MISSING_COMMA, -7403, -1, "42000", "missing comma", 917, "missing comma"); -DEFINE_ORACLE_ERROR(OB_ERR_INVALID_XPATH_EXPRESSION, -7404, -1, "42000", "invalid xpath expression", 31013, "invalid xpath expression"); +DEFINE_ORACLE_ERROR(OB_ERR_INVALID_XPATH_EXPRESSION, -7404, ER_UNKNOWN_ERROR, "42000", "invalid xpath expression", 31013, "invalid xpath expression"); DEFINE_ORACLE_ERROR(OB_ERR_EXTRACTVALUE_MULTI_NODES, -7405, -1, "42000", "EXTRACTVALUE cannot extract values of multiple nodes", 19025, "EXTRACTVALUE cannot extract values of multiple nodes"); DEFINE_ORACLE_ERROR(OB_ERR_XML_FRAMENT_CONVERT, -7406, -1, "42000", "Cannot convert XML fragment to the required datatype", 19012, "Cannot convert XML fragment to the required datatype"); DEFINE_ORACLE_ERROR(OB_INVALID_PRINT_OPTION, -7407, -1, "42000", "The specified printing option is invalid", 31188, "The specified printing option is invalid"); DEFINE_ORACLE_ERROR(OB_XML_CHAR_LEN_TOO_SMALL, -7408, -1, "42000", "character length specified for XMLSerialize is too small.", 19044, "character length specified for XMLSerialize is too small."); -DEFINE_ORACLE_ERROR(OB_XPATH_EXPRESSION_UNSUPPORTED, -7409, -1, "42000", "Given XPATH expression not supported", 31012, "Given XPATH expression not supported"); +DEFINE_ORACLE_ERROR(OB_XPATH_EXPRESSION_UNSUPPORTED, -7409, ER_UNKNOWN_ERROR, "42000", "Given XPATH expression not supported", 31012, "Given XPATH expression not supported"); DEFINE_ORACLE_ERROR(OB_EXTRACTVALUE_NOT_LEAF_NODE, -7410, -1, "42000", "EXTRACTVALUE can only retrieve value of leaf node", 19026, "EXTRACTVALUE can only retrieve value of leaf node"); DEFINE_ORACLE_ERROR(OB_XML_INSERT_FRAGMENT, -7411, -1, "42000", "Cannot insert XML fragments", 19010, "Cannot insert XML fragments"); DEFINE_ORACLE_ERROR(OB_ERR_NO_ORDER_MAP_SQL, -7412, -1, "42000", "cannot ORDER objects without MAP or ORDER method", 22950, "cannot ORDER objects without MAP or ORDER method"); @@ -2156,7 +2156,7 @@ DEFINE_ORACLE_ERROR(OB_ERR_WHEN_CLAUSE, -9545, -1, "HY000", "WHEN clause cannot DEFINE_ORACLE_ERROR(OB_ERR_NEW_OLD_REFERENCES, -9546, -1, "HY000", "NEW or OLD references not allowed in table level triggers", 4082, "NEW or OLD references not allowed in table level triggers"); DEFINE_PLS_ERROR_EXT(OB_ERR_TYPE_DECL_ILLEGAL, -9547, -1, "HY000", "%%TYPE must be applied to a variable, column, field or attribute, not to other", "%%TYPE must be applied to a variable, column, field or attribute, not to '%.*s'", 206, "%%TYPE must be applied to a variable, column, field or attribute, not to other", "%%TYPE must be applied to a variable, column, field or attribute, not to '%.*s'"); DEFINE_PLS_ERROR_EXT(OB_ERR_OBJECT_INVALID, -9548, -1, "HY000", "object is invalid", "object '%.*s' is invalid", 905, "object is invalid", "object '%.*s' is invalid"); -DEFINE_ORACLE_ERROR_DEP(OB_ERR_XML_PARSE, -9549, -1, "HY000", "XML parsing failed", 31011, "XML parsing failed"); +DEFINE_ORACLE_ERROR_DEP(OB_ERR_XML_PARSE, -9549, ER_WRONG_VALUE, "HY000", "XML parsing failed", 31011, "XML parsing failed"); DEFINE_PLS_ERROR_EXT(OB_ERR_EXP_NOT_ASSIGNABLE, -9550, -1, "HY000", "expression cannot be used as an assignment", "expression '%.*s' cannot be used as an assignment", 363, "expression cannot be used as an assignment", "expression '%.*s' cannot be used as an assignment"); DEFINE_ORACLE_ERROR(OB_ERR_CURSOR_CONTAIN_BOTH_REGULAR_AND_ARRAY, -9551, -1, "HY000", "Cursor contains both regular and array defines which is illegal", 29256, "Cursor contains both regular and array defines which is illegal"); DEFINE_PLS_ERROR(OB_ERR_STATIC_BOOL_EXPR, -9552, -1, "HY000", "a static boolean expression must be used", 174, "a static boolean expression must be used");