258 m_output_columns =
NULL;
259 m_output_columns_size = 0;
260 m_nested_nodes =
NULL;
261 m_nested_nodes_size = 0;
264 m_is_iterable_node =
false;
271 for (
size_t i = 0;
i < m_output_columns_size; ++
i)
273 m_output_columns[
i].clear_xasl (is_final_clear);
289 for (
size_t i = 0;
i < m_nested_nodes_size; ++
i)
291 m_nested_nodes[
i].clear_iterators (is_final_clear);
298 clear_columns (is_final_clear);
300 for (
size_t i = 0;
i < m_nested_nodes_size; ++
i)
302 m_nested_nodes[
i].clear_xasl (is_final_clear);
309 if (m_is_iterable_node)
330 m_json_reguvar =
NULL;
338 m_root_node->clear_xasl (is_final_clear);
void clear_xasl(bool is_final_clear=true)
int evaluate_ordinality(size_t ordinality)
void db_json_delete_json_iterator(JSON_ITERATOR *&json_itr)
int evaluate_extract(const JSON_DOC &input)
struct db_value * m_default_value
void db_make_json_from_doc_store_and_release(DB_VALUE &value, JSON_DOC_STORE &doc_store)
JSON_ITERATOR * db_json_create_iterator(const DB_JSON_TYPE &type)
json_table_column_behavior m_on_empty
db_value * m_output_value_pointer
void clear_xasl(bool is_final_clear=true)
int db_json_extract_document_from_path(const JSON_DOC *document, const std::string &path, JSON_DOC_STORE &result, bool allow_wildcards)
#define ER_JSON_TABLE_ON_ERROR_INCOMP_DOMAIN
int trigger_on_error(const JSON_DOC &input, const TP_DOMAIN_STATUS &status_cast, db_value &value_out)
enum tp_domain_status TP_DOMAIN_STATUS
json_table_column_behavior m_on_error
int db_make_short(DB_VALUE *value, const DB_C_SHORT num)
void er_set(int severity, const char *file_name, const int line_no, int err_id, int num_args,...)
json_table_column_function m_function
int evaluate_exists(const JSON_DOC &input)
TP_DOMAIN_STATUS tp_value_cast(const DB_VALUE *src, DB_VALUE *dest, const TP_DOMAIN *desired_domain, bool implicit_coercion)
#define TP_DOMAIN_TYPE(dom)
const char * pr_type_name(DB_TYPE id)
int pr_clear_value(DB_VALUE *value)
int trigger_on_empty(db_value &value_out)
bool db_value_is_null(const DB_VALUE *value)
int evaluate(const JSON_DOC &input, size_t ordinality)
int pr_clone_value(const DB_VALUE *src, DB_VALUE *dest)
void clear_columns(bool is_final_clear)
void db_json_clear_json_iterator(JSON_ITERATOR *&json_itr)
enum json_table_column_behavior_type m_behavior
int db_make_null(DB_VALUE *value)
void clear_xasl(bool is_final_clear=true)
int db_json_contains_path(const JSON_DOC *document, const std::vector< std::string > &paths, bool find_all, bool &result)
int db_make_int(DB_VALUE *value, const int num)
void clear_iterators(bool is_final_clear)
#define ER_JSON_TABLE_ON_EMPTY_ERROR
char * db_json_get_raw_json_body_from_document(const JSON_DOC *doc)