CUBRID Engine  latest
cubscan::json_table::scanner Class Reference

#include <scan_json_table.hpp>

Collaboration diagram for cubscan::json_table::scanner:
Collaboration graph

Classes

struct  cursor
 

Public Member Functions

void init (cubxasl::json_table::spec_node &spec)
 
void clear (xasl_node *xasl_p, bool is_final, bool is_final_clear)
 
int open (cubthread::entry *thread_p)
 
void end (cubthread::entry *thread_p)
 
int next_scan (cubthread::entry *thread_p, scan_id_struct &sid, SCAN_CODE &sc)
 
SCAN_PREDget_predicate ()
 
void set_value_descriptor (val_descr *vd)
 
 scanner ()=default
 

Private Member Functions

void clear_node_columns (cubxasl::json_table::node &node)
 
void reset_ordinality (cubxasl::json_table::node &node)
 
void init_iterators (cubxasl::json_table::node &node)
 
int init_cursor (const JSON_DOC &doc, cubxasl::json_table::node &node, cursor &cursor_out)
 
int set_next_cursor (const cursor &current_cursor, size_t next_depth)
 
int set_input_document (cursor &cursor, const cubxasl::json_table::node &node, const JSON_DOC &document)
 
size_t get_tree_height (const cubxasl::json_table::node &node)
 
int scan_next_internal (cubthread::entry *thread_p, size_t depth, bool &found_row_output)
 

Private Attributes

cubxasl::json_table::spec_nodem_specp
 
cursorm_scan_cursor
 
size_t m_scan_cursor_depth
 
size_t m_tree_height
 
scan_pred m_scan_predicate
 
val_descrm_vd
 

Detailed Description

Definition at line 109 of file scan_json_table.hpp.

Constructor & Destructor Documentation

cubscan::json_table::scanner::scanner ( )
default

Member Function Documentation

void cubscan::json_table::scanner::end ( cubthread::entry thread_p)

Definition at line 289 of file scan_json_table.cpp.

References assert, and NULL.

Referenced by scan_end_scan().

Here is the caller graph for this function:

SCAN_PRED & cubscan::json_table::scanner::get_predicate ( )

Definition at line 563 of file scan_json_table.cpp.

References m_scan_predicate.

Referenced by scan_open_json_table_scan().

Here is the caller graph for this function:

size_t cubscan::json_table::scanner::get_tree_height ( const cubxasl::json_table::node node)
private

Definition at line 160 of file scan_json_table.cpp.

References i, cubxasl::json_table::node::m_nested_nodes, cubxasl::json_table::node::m_nested_nodes_size, and max.

Referenced by init().

Here is the caller graph for this function:

int cubscan::json_table::scanner::init_cursor ( const JSON_DOC doc,
cubxasl::json_table::node node,
cursor cursor_out 
)
private
void cubscan::json_table::scanner::init_iterators ( cubxasl::json_table::node node)
private

Definition at line 414 of file scan_json_table.cpp.

References i, cubxasl::json_table::node::init_iterator(), cubxasl::json_table::node::m_nested_nodes, and cubxasl::json_table::node::m_nested_nodes_size.

Referenced by init().

Here is the caller graph for this function:

void cubscan::json_table::scanner::reset_ordinality ( cubxasl::json_table::node node)
private

Definition at line 425 of file scan_json_table.cpp.

References i, cubxasl::json_table::node::init_ordinality(), cubxasl::json_table::node::m_nested_nodes, and cubxasl::json_table::node::m_nested_nodes_size.

Referenced by clear(), and open().

Here is the caller graph for this function:

int cubscan::json_table::scanner::set_input_document ( cursor cursor,
const cubxasl::json_table::node node,
const JSON_DOC document 
)
private
int cubscan::json_table::scanner::set_next_cursor ( const cursor current_cursor,
size_t  next_depth 
)
private
void cubscan::json_table::scanner::set_value_descriptor ( val_descr vd)

Definition at line 569 of file scan_json_table.cpp.

References m_vd.

Referenced by scan_open_json_table_scan().

Here is the caller graph for this function:

Member Data Documentation

cursor* cubscan::json_table::scanner::m_scan_cursor
private

Definition at line 161 of file scan_json_table.hpp.

Referenced by clear(), init(), open(), scan_next_internal(), and set_next_cursor().

size_t cubscan::json_table::scanner::m_scan_cursor_depth
private

Definition at line 162 of file scan_json_table.hpp.

Referenced by init(), open(), and scan_next_internal().

scan_pred cubscan::json_table::scanner::m_scan_predicate
private

Definition at line 164 of file scan_json_table.hpp.

Referenced by get_predicate(), and next_scan().

cubxasl::json_table::spec_node* cubscan::json_table::scanner::m_specp
private

Definition at line 160 of file scan_json_table.hpp.

Referenced by clear(), init(), and open().

size_t cubscan::json_table::scanner::m_tree_height
private

Definition at line 163 of file scan_json_table.hpp.

Referenced by clear(), and init().

val_descr* cubscan::json_table::scanner::m_vd
private

Definition at line 165 of file scan_json_table.hpp.

Referenced by open(), and set_value_descriptor().


The documentation for this class was generated from the following files: