CUBRID Engine
latest
|
Go to the source code of this file.
Classes | |
struct | func_signature |
struct | func_type::argument_resolve |
struct | func_type::signature_compatibility |
class | func_type::Node |
Namespaces | |
func_type | |
Typedefs | |
using | pt_group_arg_type = std::vector< pt_arg_type > |
using | func_all_signatures = std::vector< func_signature > |
Enumerations | |
enum | func_type::type_compatibility { func_type::type_compatibility::EQUIVALENT, func_type::type_compatibility::COERCIBLE, func_type::type_compatibility::INCOMPATIBLE } |
Functions | |
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 | 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::sig_has_json_args (const func_signature &sig) |
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) |
using func_all_signatures = std::vector<func_signature> |
Definition at line 42 of file func_type.hpp.
using pt_group_arg_type = std::vector<pt_arg_type> |
Definition at line 33 of file func_type.hpp.
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().