57 #if defined(ENABLE_UNUSED_FUNCTION) 58 static int pt_make_label_list (
const void *key,
void *data,
void *args);
60 static int pt_free_label (
const void *key,
void *data,
void *args);
138 int cursor_status, degree = 0, col;
140 QUERY_ID query_id_self = parser->
query_id;
146 if (subquery ==
NULL)
173 for (col = 0; vals && col < degree; col++)
185 if (
cursor_open (&cursor_id, list_id,
false,
false))
201 for (e_val = vals, col = 0; error >= 0 && col < degree; e_val++, col++, idx++)
233 for (col = 0; col < degree; col++)
297 error =
db_get (obj1, nam2, val);
321 PT_ERRORf (parser, tree,
"Internal error evaluate(%d)", __LINE__);
454 char query_prefix[65], *
p;
459 query_prefix[0] =
'\0';
463 strncpy (query_prefix, p, 60);
464 if (query_prefix[59])
466 query_prefix[60] =
'\0';
467 strcat (query_prefix,
"...");
526 if (
mht_put (pt_Label_table, (
char *) key, (
void *) val) ==
NULL)
651 if (obj_class ==
NULL)
660 if (obj_tmpl ==
NULL)
666 if (obj_class ==
NULL)
709 if (!pt_Label_table || !label)
724 #if defined(ENABLE_UNUSED_FUNCTION) 737 pt_make_label_list (
const void *key,
void *data,
void *args)
788 if ((error =
mht_map (pt_Label_table, pt_make_label_list, (
void *) list)) !=
NO_ERROR)
876 pt_Label_table =
NULL;
921 PT_NODE *arg1, *arg2, *arg3, *temp;
928 QUERY_ID query_id_self = parser->
query_id;
934 bool opd2_set_null =
false;
975 if (cursor_id ==
NULL)
1077 if (serial_mop !=
NULL)
1080 if (serial_oid_p !=
NULL)
1190 opd2_set_null =
true;
1261 domain, arg1, arg2, arg3, qualifier))
1301 for (r = 0; r < values_count; r++)
DB_OBJECT * pt_resolve_serial(PARSER_CONTEXT *parser, PT_NODE *serial_name_node)
#define MSGCAT_SEMANTIC_SERIAL_NOT_DEFINED
#define MSGCAT_SEMANTIC_SERIAL_NUM_ALLOC_INVALID
DB_COLLECTION * db_get_set(const DB_VALUE *value)
#define LANG_SYS_COLLATION
int cursor_get_tuple_value(CURSOR_ID *cursor_id_p, int index, DB_VALUE *value_p)
int serial_get_next_value(DB_VALUE *value, OID *oid_p, int cached_num, int num_alloc, int is_auto_increment)
int do_get_serial_cached_num(int *cached_num, MOP serial_obj)
#define PT_ERRORm(parser, node, setNo, msgNo)
const char * db_get_class_name(DB_OBJECT *class_)
int do_drop_variable(PARSER_CONTEXT *parser, PT_NODE *stmt)
DB_SET * db_seq_create(MOP classop, const char *name, int size)
int do_call_method(PARSER_CONTEXT *parser, PT_NODE *statement)
int db_get_int(const DB_VALUE *value)
#define ER_QPROC_DB_SERIAL_NOT_FOUND
#define ER_REFERENCE_TO_NON_REFERABLE_NOT_ALLOWED
int db_make_varchar(DB_VALUE *value, const int max_char_length, DB_CONST_C_CHAR str, const int char_str_byte_size, const int codeset, const int collation_id)
int db_seq_put(DB_SET *set, int index, DB_VALUE *value)
#define MSGCAT_SEMANTIC_OUT_OF_MEMORY
int db_get_string_collation(const DB_VALUE *value)
DB_VALUE * pt_seq_value_to_db(PARSER_CONTEXT *parser, PT_NODE *values, DB_VALUE *db_value, PT_NODE **el_types)
#define MSGCAT_RUNTIME_YIELDS_GT_ONE_ROW
#define ER_DB_NO_MODIFICATIONS
int mht_rem(MHT_TABLE *ht, const void *key, int(*rem_func)(const void *key, void *data, void *args), void *func_args)
int cursor_next_tuple(CURSOR_ID *cursor_id_p)
PT_NODE * pt_get_select_list(PARSER_CONTEXT *parser, PT_NODE *query)
int db_value_clone(DB_VALUE *src, DB_VALUE *dest)
const void * mht_put(MHT_TABLE *ht, const void *key, void *data)
enum pt_type_enum PT_TYPE_ENUM
void nlist_free(DB_NAMELIST *list)
int db_make_object(DB_VALUE *value, DB_C_OBJECT *obj)
int db_is_any_class(MOP obj)
int do_select(PARSER_CONTEXT *parser, PT_NODE *statement)
PT_TYPE_ENUM pt_db_to_type_enum(const DB_TYPE t)
#define MSGCAT_RUNTIME_UNKNOWN_VARIABLE
#define cursor_free_self_list_id(list_id)
int db_make_sequence(DB_VALUE *value, DB_C_SET *set)
#define ER_QPROC_SERIAL_ALREADY_EXIST
DB_DOMAIN * pt_node_to_db_domain(PARSER_CONTEXT *parser, PT_NODE *node, const char *class_name)
DB_VALUE * vid_flush_and_rehash_lbl(DB_VALUE *value)
DB_SET * db_set_create_multi(MOP classop, const char *name)
int pt_evaluate_function(PARSER_CONTEXT *parser, PT_NODE *func, DB_VALUE *dbval_res)
void db_ws_free(void *ptr)
void pt_final_packing_buf(void)
void ws_free_string(const char *str)
int pt_associate_label_with_value_check_reference(const char *label, DB_VALUE *val)
static DB_OBJECT * is_class(OID *obj_oid, OID *class_oid)
int pr_free_ext_value(DB_VALUE *value)
void pt_report_to_ersys(const PARSER_CONTEXT *parser, const PT_ERROR_TYPE error_type)
DB_VALUE * pt_set_value_to_db(PARSER_CONTEXT *parser, PT_NODE **values, DB_VALUE *db_value, PT_NODE **el_types)
void mht_destroy(MHT_TABLE *ht)
void er_set(int severity, const char *file_name, const int line_no, int err_id, int num_args,...)
PT_FUNCTION_INFO function
#define PT_ERRORmf2(parser, node, setNo, msgNo, arg1, arg2)
#define MSGCAT_RUNTIME_OUT_OF_MEMORY
#define PT_IS_QUERY_NODE_TYPE(x)
DB_ATTRIBUTE * db_get_shared_attribute(DB_OBJECT *obj, const char *name)
int db_make_set(DB_VALUE *value, DB_C_SET *set)
void pt_evaluate_tree(PARSER_CONTEXT *parser, PT_NODE *tree, DB_VALUE *db_values, int values_count)
int db_make_multiset(DB_VALUE *value, DB_C_SET *set)
static PT_NODE * pt_query_to_set_table(PARSER_CONTEXT *parser, PT_NODE *node)
DB_IDENTIFIER * db_identifier(DB_OBJECT *obj)
static int pt_is_table_op(const PT_OP_TYPE op)
#define ER_OUT_OF_VIRTUAL_MEMORY
#define MSGCAT_SET_PARSER_RUNTIME
bool pt_eval_path_expr(PARSER_CONTEXT *parser, PT_NODE *tree, DB_VALUE *val)
static void pt_evaluate_tree_internal(PARSER_CONTEXT *parser, PT_NODE *tree, DB_VALUE *db_values, int values_count, bool having_serial)
int pt_get_one_tuple_from_list_id(PARSER_CONTEXT *parser, PT_NODE *tree, DB_VALUE *vals, int cnt)
unsigned int intl_identifier_mht_1strlowerhash(const void *key, const unsigned int ht_size)
#define ER_QPROC_SERIAL_RANGE_OVERFLOW
#define ER_QPROC_CANNOT_FETCH_SERIAL
int db_value_free(DB_VALUE *value)
void pt_evaluate_tree_having_serial(PARSER_CONTEXT *parser, PT_NODE *tree, DB_VALUE *db_value, int vals_cnt)
#define MSGCAT_RUNTIME_VAR_NOT_DEFINED
const char * db_error_string(int level)
static int pt_free_label(const void *key, void *data, void *args)
PT_NODE * parser_copy_tree(PARSER_CONTEXT *parser, const PT_NODE *tree)
DB_OBJECT * db_get_object(const DB_VALUE *value)
void * mht_get(MHT_TABLE *ht, const void *key)
struct db_namelist * next
const char * er_msg(void)
DB_OBJECT * db_get_class(MOP obj)
void pt_free_label_table(void)
int mht_compare_identifiers_equal(const void *key1, const void *key2)
int pt_is_reference_to_reusable_oid(DB_VALUE *val)
int db_set_add(DB_SET *set, DB_VALUE *value)
void pt_end_query(PARSER_CONTEXT *parser, QUERY_ID query_id_self)
TP_DOMAIN * tp_domain_cache(TP_DOMAIN *transient)
#define PT_ERRORc(parser, node, msg)
const void * mht_put_data(MHT_TABLE *ht, const void *key, void *data)
DB_SET * db_set_create_basic(MOP classop, const char *name)
MHT_TABLE * mht_create(const char *name, int est_size, unsigned int(*hash_func)(const void *key, unsigned int ht_size), int(*cmp_func)(const void *key1, const void *key2))
int pt_is_between_range_op(PT_OP_TYPE op)
int pr_clear_value(DB_VALUE *value)
#define MSGCAT_RUNTIME_UNKNOWN_SHARED_ATTR
DB_VALUE * pt_find_value_of_label(const char *label)
PT_TUPLE_VALUE_INFO tuple_value
struct db_domain_info::general_info general_info
char * pt_short_print(PARSER_CONTEXT *parser, const PT_NODE *node)
#define MSGCAT_SEMANTIC_SERIAL_VALUE_OVERFLOW
#define ER_DO_INSERT_TOO_MANY
PT_NODE * parser_new_node(PARSER_CONTEXT *parser, PT_NODE_TYPE node_type)
static void error(const char *msg)
static DB_VALUE * pt_set_table_to_db(PARSER_CONTEXT *parser, PT_NODE *subquery_in, DB_VALUE *db_value, int is_seq)
int pr_clone_value(const DB_VALUE *src, DB_VALUE *dest)
void parser_free_tree(PARSER_CONTEXT *parser, PT_NODE *tree)
#define ER_AU_SELECT_FAILURE
#define MSGCAT_SET_PARSER_SEMANTIC
#define free_and_init(ptr)
#define MSGCAT_RUNTIME__CAN_NOT_EVALUATE
int do_insert(PARSER_CONTEXT *parser, PT_NODE *root_statement)
int sm_check_reuse_oid_class(MOP op)
#define DB_CURSOR_SUCCESS
enum intl_codeset INTL_CODESET
int db_get(DB_OBJECT *object, const char *attpath, DB_VALUE *value)
void * db_ws_alloc(size_t size)
DB_VALUE * db_attribute_default(DB_ATTRIBUTE *attribute)
int db_make_varnchar(DB_VALUE *value, const int max_nchar_length, DB_CONST_C_NCHAR str, const int nchar_str_byte_size, const int codeset, const int collation_id)
void cursor_close(CURSOR_ID *cursor_id_p)
char * parser_print_tree(PARSER_CONTEXT *parser, const PT_NODE *node)
#define DB_VALUE_TYPE(value)
int pt_length_of_select_list(PT_NODE *list, int hidden_col)
int mht_map(const MHT_TABLE *ht, int(*map_func)(const void *key, void *data, void *args), void *func_args)
int db_make_null(DB_VALUE *value)
#define DB_IS_NULL(value)
int serial_get_current_value(DB_VALUE *value, OID *oid_p, int cached_num)
#define MSGCAT_RUNTIME_IS_NOT_AUTHORIZED_ON
#define PT_INTERNAL_ERROR(parser, what)
int db_value_clear(DB_VALUE *value)
static int pt_associate_label_with_value(const char *label, DB_VALUE *val)
PT_DROP_VARIABLE_INFO drop_variable
#define ER_AU_AUTHORIZATION_FAILURE
#define pt_has_error(parser)
#define MSGCAT_SEMANTIC_SERIAL_IO_ERROR
char * ws_copy_string(const char *str)
int pt_evaluate_db_value_expr(PARSER_CONTEXT *parser, PT_NODE *expr, PT_OP_TYPE op, DB_VALUE *arg1, DB_VALUE *arg2, DB_VALUE *arg3, DB_VALUE *result, TP_DOMAIN *domain, PT_NODE *o1, PT_NODE *o2, PT_NODE *o3, PT_MISC_TYPE qualifier)
#define MSGCAT_SEMANTIC_SERIAL_ALREADY_EXIST
int ws_add_label_value_to_mop(MOP mop, DB_VALUE *val)
static MHT_TABLE * pt_Label_table
DB_C_POINTER db_get_pointer(const DB_VALUE *value)
void ws_remove_label_value_from_mop(MOP mop, DB_VALUE *val)
DB_VALUE * pt_value_to_db(PARSER_CONTEXT *parser, PT_NODE *value)
bool cursor_open(CURSOR_ID *cursor_id_p, QFILE_LIST_ID *list_id_p, bool updatable, bool is_oid_included)
#define PT_ERRORf(parser, node, msg, arg1)
int db_get_string_codeset(const DB_VALUE *value)
#define PT_ERRORmf(parser, node, setNo, msgNo, arg1)
int cursor_get_tuple_value_list(CURSOR_ID *cursor_id_p, int size, DB_VALUE *value_list_p)
PT_INSERT_VALUE_INFO insert_value
#define ER_QPROC_CANNOT_UPDATE_SERIAL