162 size_t max_child_height = 0;
170 return 1 + max_child_height;
265 JSON_DOC_STORE document;
297 bool has_row =
false;
303 error_code =
open (thread_p);
390 cursor_out.
m_node = &node;
450 if (found_row_output)
488 found_row_output =
true;
506 found_row_output =
true;
538 if (found_row_output)
551 found_row_output =
false;
void init_iterators(cubxasl::json_table::node &node)
void end(cubthread::entry *thread_p)
regu_variable_node * m_json_reguvar
JSON_DOC * db_get_json_document(const DB_VALUE *value)
const JSON_DOC * db_json_iterator_get_document(JSON_ITERATOR &json_itr)
db_value * m_output_value_pointer
void clear_xasl(bool is_final_clear=true)
JSON_ITERATOR * m_iterator
bool db_json_iterator_has_next(JSON_ITERATOR &json_itr)
#define ASSERT_ERROR_AND_SET(error_code)
void set_value_descriptor(val_descr *vd)
scan_pred m_scan_predicate
int db_json_extract_document_from_path(const JSON_DOC *document, const std::string &path, JSON_DOC_STORE &result, bool allow_wildcards)
column * m_output_columns
void clear_node_columns(cubxasl::json_table::node &node)
int init_cursor(const JSON_DOC &doc, cubxasl::json_table::node &node, cursor &cursor_out)
void db_json_iterator_next(JSON_ITERATOR &json_itr)
DB_TYPE db_value_type(const DB_VALUE *value)
int fetch_peek_dbval(THREAD_ENTRY *thread_p, REGU_VARIABLE *regu_var, val_descr *vd, OID *class_oid, OID *obj_oid, QFILE_TUPLE tpl, DB_VALUE **peek_dbval)
void db_json_set_iterator(JSON_ITERATOR *&json_itr, const JSON_DOC &new_doc)
void start_json_iterator(void)
int pr_clear_value(DB_VALUE *value)
DB_JSON_TYPE db_json_get_type(const JSON_DOC *doc)
int scan_next_internal(cubthread::entry *thread_p, size_t depth, bool &found_row_output)
cubxasl::json_table::node * m_node
bool db_value_is_null(const DB_VALUE *value)
void db_json_reset_iterator(JSON_ITERATOR *&json_itr)
int evaluate(const JSON_DOC &input, size_t ordinality)
SCAN_PRED & get_predicate()
void clear_columns(bool is_final_clear)
int set_input_document(cursor &cursor, const cubxasl::json_table::node &node, const JSON_DOC &document)
size_t m_scan_cursor_depth
cubxasl::json_table::spec_node * m_specp
int open(cubthread::entry *thread_p)
void init(cubxasl::json_table::spec_node &spec)
int next_scan(cubthread::entry *thread_p, scan_id_struct &sid, SCAN_CODE &sc)
size_t m_output_columns_size
int db_make_null(DB_VALUE *value)
size_t get_tree_height(const cubxasl::json_table::node &node)
JSON_DOC_STORE m_input_doc
void reset_ordinality(cubxasl::json_table::node &node)
const JSON_DOC * m_process_doc
void advance_row_cursor(void)
int set_next_cursor(const cursor ¤t_cursor, size_t next_depth)
void clear(xasl_node *xasl_p, bool is_final, bool is_final_clear)
int db_value_to_json_doc(const DB_VALUE &db_val, bool force_copy, JSON_DOC_STORE &json_doc)
void clear_iterators(bool is_final_clear)
size_t m_nested_nodes_size