CUBRID Engine
latest
|
#include "func_type.hpp"
#include "message_catalog.h"
#include "object_primitive.h"
#include "parse_tree.h"
#include "parser.h"
#include "parser_message.h"
#include <algorithm>
Go to the source code of this file.
Namespaces | |
func_type | |
Functions | |
func_all_signatures * | get_signatures (FUNC_TYPE ft) |
bool | func_type::sig_has_json_args (const func_signature &sig) |
bool | func_type::is_type_with_collation (PT_TYPE_ENUM type) |
bool | func_type::can_signature_have_collation (const pt_arg_type &arg_sig) |
bool | func_type::cmp_types_equivalent (const pt_arg_type &type, pt_type_enum type_enum) |
bool | func_type::cmp_types_castable (const pt_arg_type &type, pt_type_enum type_enum) |
bool | pt_are_equivalent_types (const PT_ARG_TYPE def_type, const PT_TYPE_ENUM op_type) |
PT_TYPE_ENUM | pt_get_equivalent_type (const PT_ARG_TYPE def_type, const PT_TYPE_ENUM arg_type) |
func_all_signatures* get_signatures | ( | FUNC_TYPE | ft | ) |
Definition at line 392 of file func_type.cpp.
References assert, F_BENCHMARK, F_CLASS_OF, F_ELT, F_GENERIC, F_INSERT_SUBSTRING, F_JSON_ARRAY, F_JSON_ARRAY_APPEND, F_JSON_ARRAY_INSERT, F_JSON_CONTAINS, F_JSON_CONTAINS_PATH, F_JSON_DEPTH, F_JSON_EXTRACT, F_JSON_GET_ALL_PATHS, F_JSON_INSERT, F_JSON_KEYS, F_JSON_LENGTH, F_JSON_MERGE, F_JSON_MERGE_PATCH, F_JSON_OBJECT, F_JSON_PRETTY, F_JSON_QUOTE, F_JSON_REMOVE, F_JSON_REPLACE, F_JSON_SEARCH, F_JSON_SET, F_JSON_TYPE, F_JSON_UNQUOTE, F_JSON_VALID, F_MIDXKEY, F_MULTISET, F_REGEXP_COUNT, F_REGEXP_INSTR, F_REGEXP_LIKE, F_REGEXP_REPLACE, F_REGEXP_SUBSTR, F_SEQUENCE, F_SET, F_TABLE_MULTISET, F_TABLE_SEQUENCE, F_TABLE_SET, F_TOP_TABLE_FUNC, F_VID, PT_AGG_BIT_AND, PT_AGG_BIT_OR, PT_AGG_BIT_XOR, PT_AVG, PT_COUNT, PT_COUNT_STAR, PT_CUME_DIST, PT_DENSE_RANK, PT_FIRST_VALUE, PT_GENERIC, PT_GROUP_CONCAT, PT_GROUPBY_NUM, PT_JSON_ARRAYAGG, PT_JSON_OBJECTAGG, PT_LAG, PT_LAST_VALUE, PT_LEAD, PT_MAX, PT_MEDIAN, PT_MIN, PT_NTH_VALUE, PT_NTILE, PT_PERCENT_RANK, PT_PERCENTILE_CONT, PT_PERCENTILE_DISC, PT_RANK, PT_ROW_NUMBER, PT_STDDEV, PT_STDDEV_POP, PT_STDDEV_SAMP, PT_SUM, PT_TOP_AGG_FUNC, PT_VAR_POP, PT_VAR_SAMP, PT_VARIANCE, sig_json_arg_r_jval_or_empty, sig_of_avg, sig_of_benchmark, sig_of_count, sig_of_count_star, sig_of_elt, sig_of_generic, sig_of_group_concat, sig_of_insert_substring, sig_of_json_arrayagg, sig_of_json_contains, sig_of_json_contains_path, sig_of_json_keys, sig_of_json_length, sig_of_json_objectagg, sig_of_json_search, sig_of_lead_lag, sig_of_median, sig_of_ntile, sig_of_percentile_cont, sig_of_percentile_disc, sig_of_regexp_count, sig_of_regexp_instr, sig_of_regexp_like, sig_of_regexp_replace, sig_of_regexp_substr, sig_of_sum, sig_ret_bigint, sig_ret_bigint_arg_discrete, sig_ret_double_arg_number, sig_ret_double_arg_r_any, sig_ret_int_arg_any, sig_ret_int_arg_doc, sig_ret_int_no_arg, sig_ret_json_arg_jdoc, sig_ret_json_arg_jdoc_r_jdoc, sig_ret_json_arg_jdoc_r_jpath, sig_ret_json_arg_jdoc_r_jpath_jval, sig_ret_json_arg_r_jkey_jval_or_empty, sig_ret_multiset_arg_r_any, sig_ret_sequence_arg_r_any, sig_ret_set_arg_r_any, sig_ret_string_arg_jdoc, sig_ret_type0_arg_nr_or_str_discrete, sig_ret_type0_arg_scalar, and sig_ret_type0_arg_str.
Referenced by func_type::Node::type_checking().
bool pt_are_equivalent_types | ( | const PT_ARG_TYPE | def_type, |
const PT_TYPE_ENUM | op_type | ||
) |
Definition at line 1359 of file func_type.cpp.
References pt_arg_type::pt_arg_type_val::generic_type, pt_arg_type::NORMAL, PT_GENERIC_TYPE_ANY, PT_GENERIC_TYPE_BIT, PT_GENERIC_TYPE_CHAR, PT_GENERIC_TYPE_DATE, PT_GENERIC_TYPE_DATETIME, PT_GENERIC_TYPE_DISCRETE_NUMBER, PT_GENERIC_TYPE_JSON_DOC, PT_GENERIC_TYPE_JSON_VAL, PT_GENERIC_TYPE_NCHAR, PT_GENERIC_TYPE_NUMBER, PT_GENERIC_TYPE_PRIMITIVE, PT_GENERIC_TYPE_SCALAR, PT_GENERIC_TYPE_SEQUENCE, PT_GENERIC_TYPE_STRING, PT_HAS_DATE_PART, PT_IS_BIT_STRING_TYPE, PT_IS_CHAR_STRING_TYPE, PT_IS_COLLECTION_TYPE, PT_IS_DATE_TIME_TYPE, PT_IS_DISCRETE_NUMBER_TYPE, pt_is_json_doc_type(), pt_is_json_value_type(), PT_IS_NUMERIC_TYPE, PT_IS_PRIMITIVE_TYPE, PT_IS_STRING_TYPE, PT_TYPE_CHAR, PT_TYPE_ENUMERATION, PT_TYPE_NCHAR, PT_TYPE_NONE, PT_TYPE_VARCHAR, PT_TYPE_VARNCHAR, pt_arg_type::type, pt_arg_type::pt_arg_type_val::type, and pt_arg_type::val.
Referenced by func_type::cmp_types_equivalent(), func_type::Node::Node(), pt_apply_expressions_definition(), pt_expr_get_return_type(), and pt_get_equivalent_type().
PT_TYPE_ENUM pt_get_equivalent_type | ( | const PT_ARG_TYPE | def_type, |
const PT_TYPE_ENUM | arg_type | ||
) |
Definition at line 1482 of file func_type.cpp.
References pt_arg_type::GENERIC, pt_arg_type::pt_arg_type_val::generic_type, pt_are_equivalent_types(), PT_GENERIC_TYPE_ANY, PT_GENERIC_TYPE_BIT, PT_GENERIC_TYPE_CHAR, PT_GENERIC_TYPE_DATE, PT_GENERIC_TYPE_DISCRETE_NUMBER, PT_GENERIC_TYPE_JSON_DOC, PT_GENERIC_TYPE_JSON_VAL, PT_GENERIC_TYPE_LOB, PT_GENERIC_TYPE_NCHAR, PT_GENERIC_TYPE_NUMBER, PT_GENERIC_TYPE_PRIMITIVE, PT_GENERIC_TYPE_SCALAR, PT_GENERIC_TYPE_STRING, PT_GENERIC_TYPE_STRING_VARYING, PT_IS_DATE_TIME_TYPE, pt_is_json_doc_type(), pt_is_json_value_type(), PT_IS_LOB_TYPE, PT_IS_NUMERIC_TYPE, PT_IS_PRIMITIVE_TYPE, PT_IS_STRING_TYPE, PT_TYPE_BIGINT, PT_TYPE_DATETIME, PT_TYPE_DOUBLE, PT_TYPE_ENUMERATION, PT_TYPE_INTEGER, PT_TYPE_JSON, PT_TYPE_LOGICAL, PT_TYPE_MAYBE, PT_TYPE_NONE, PT_TYPE_NULL, PT_TYPE_SMALLINT, PT_TYPE_VARBIT, PT_TYPE_VARCHAR, PT_TYPE_VARNCHAR, pt_arg_type::type, pt_arg_type::pt_arg_type_val::type, and pt_arg_type::val.
Referenced by func_type::Node::check_arg_compat(), func_type::Node::Node(), pt_coerce_range_expr_arguments(), pt_fix_arguments_collation_flag(), and pt_get_equivalent_type_with_op().
func_all_signatures sig_json_arg_r_jval_or_empty |
Definition at line 221 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_avg |
Definition at line 97 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_benchmark |
Definition at line 335 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_count |
Definition at line 112 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_count_star |
Definition at line 107 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_elt |
Definition at line 199 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_generic |
Definition at line 320 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_group_concat |
Definition at line 162 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_insert_substring |
Definition at line 206 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_json_arrayagg |
Definition at line 295 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_json_contains |
Definition at line 257 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_json_contains_path |
Definition at line 263 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_json_keys |
Definition at line 268 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_json_length |
Definition at line 274 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_json_objectagg |
Definition at line 300 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_json_search |
Definition at line 280 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_lead_lag |
Definition at line 190 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_median |
Definition at line 140 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_ntile |
Definition at line 132 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_percentile_cont |
Definition at line 67 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_percentile_disc |
Definition at line 83 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_regexp_count |
Definition at line 340 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_regexp_instr |
Definition at line 348 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_regexp_like |
Definition at line 358 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_regexp_replace |
Definition at line 365 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_regexp_substr |
Definition at line 378 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_of_sum |
Definition at line 117 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_ret_bigint |
Definition at line 62 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_ret_bigint_arg_discrete |
Definition at line 91 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_ret_double_arg_number |
Definition at line 102 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_ret_double_arg_r_any |
Definition at line 126 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_ret_int_arg_any |
Definition at line 47 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_ret_int_arg_doc |
Definition at line 52 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_ret_int_arg_str |
Definition at line 57 of file func_type.cpp.
func_all_signatures sig_ret_int_no_arg |
Definition at line 42 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_ret_json_arg_jdoc |
Definition at line 227 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_ret_json_arg_jdoc_jpath |
Definition at line 237 of file func_type.cpp.
func_all_signatures sig_ret_json_arg_jdoc_r_jdoc |
Definition at line 232 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_ret_json_arg_jdoc_r_jpath |
Definition at line 242 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_ret_json_arg_jdoc_r_jpath_jval |
Definition at line 252 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_ret_json_arg_jdoc_str_r_jpath |
Definition at line 247 of file func_type.cpp.
func_all_signatures sig_ret_json_arg_r_jkey_jval_or_empty |
Definition at line 215 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_ret_multiset_arg_r_any |
Definition at line 310 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_ret_sequence_arg_r_any |
Definition at line 315 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_ret_set_arg_r_any |
Definition at line 305 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_ret_string_arg_jdoc |
Definition at line 325 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_ret_type0_arg_nr_or_str_discrete |
Definition at line 153 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_ret_type0_arg_scalar |
Definition at line 148 of file func_type.cpp.
Referenced by get_signatures().
func_all_signatures sig_ret_type0_arg_str |
Definition at line 330 of file func_type.cpp.
Referenced by get_signatures().