File parse_tree.c
FileList > cubrid > src > parser > parse_tree.c
Go to the source code of this file
#include "config.h"
#include <stddef.h>
#include <assert.h>
#include <setjmp.h>
#include <time.h>
#include <sys/time.h>
#include "porting.h"
#include "dbi.h"
#include "parser.h"
#include "jansson.h"
#include "memory_alloc.h"
#include "hide_password.h"
#include "connection_error.h"
#include "dbtype.h"
Classes
Public Types
Public Attributes
Public Static Attributes
Public Functions
| Type |
Name |
| void * |
parser_alloc (const PARSER_CONTEXT * parser, const int length)
|
| void * |
parser_allocate_string_buffer (const PARSER_CONTEXT * parser, const int length, const int align)
|
| PT_NODE * |
parser_create_node (const PARSER_CONTEXT * parser)
|
| PARSER_CONTEXT * |
parser_create_parser (void)
|
| void |
parser_free_lcks_classes (PARSER_CONTEXT * parser)
|
| void |
parser_free_node (const PARSER_CONTEXT * parser, PT_NODE * node)
|
| void |
parser_free_node_resources (PT_NODE * node)
|
| void |
parser_free_parser (PARSER_CONTEXT * parser)
|
| PARSER_VARCHAR * |
pt_append_bytes (const PARSER_CONTEXT * parser, PARSER_VARCHAR * old_string, const char * new_tail, const int new_tail_length)
|
| PARSER_VARCHAR * |
pt_append_nulstring (const PARSER_CONTEXT * parser, PARSER_VARCHAR * bstring, const char * nulstring)
|
| char * |
pt_append_string (const PARSER_CONTEXT * parser, const char * old_string, const char * new_tail)
|
| PARSER_VARCHAR * |
pt_append_varchar (const PARSER_CONTEXT * parser, PARSER_VARCHAR * old_string, const PARSER_VARCHAR * new_tail)
|
| int |
pt_count_assignments (PARSER_CONTEXT * parser, PT_NODE * assignments)
|
| PT_NODE * |
pt_get_next_assignment (PT_ASSIGNMENTS_HELPER * ea)
|
| const unsigned char * |
pt_get_varchar_bytes (const PARSER_VARCHAR * string)
|
| int |
pt_get_varchar_length (const PARSER_VARCHAR * string)
|
| void |
pt_init_assignments_helper (PARSER_CONTEXT * parser, PT_ASSIGNMENTS_HELPER * helper, PT_NODE * assignment)
|
| bool |
pt_is_json_doc_type (PT_TYPE_ENUM type)
|
| bool |
pt_is_json_value_type (PT_TYPE_ENUM type)
|
Public Static Functions
Macros
| Type |
Name |
| define |
HASH_NUMBER 128
|
| define |
NODES_PER_BLOCK 256
|
| define |
STRINGS_PER_BLOCK (8192-(4\*[**sizeof**](broker__monitor_8c.md#function-timeout)([**long**](broker__monitor_8c.md#function-timeout))+[**sizeof**](broker__monitor_8c.md#function-timeout)([**char**](broker__monitor_8c.md#function-timeout) \*)+40))
|
Public Types Documentation
typedef PARSER_NODE_BLOCK
typedef struct parser_node_block PARSER_NODE_BLOCK;
typedef PARSER_NODE_FREE_LIST
typedef struct parser_node_free_list PARSER_NODE_FREE_LIST;
typedef PARSER_STRING_BLOCK
typedef struct parser_string_block PARSER_STRING_BLOCK;
union aligned
Public Attributes Documentation
variable pt_Reserved_name_table
PT_RESERVED_NAME pt_Reserved_name_table[];
Public Static Attributes Documentation
variable blocks_lock
pthread_mutex_t blocks_lock;
variable free_lists_lock
pthread_mutex_t free_lists_lock;
variable parser_Node_blocks
PARSER_NODE_BLOCK* parser_Node_blocks[128];
variable parser_Node_free_lists
PARSER_NODE_FREE_LIST* parser_Node_free_lists[128];
variable parser_String_blocks
PARSER_STRING_BLOCK* parser_String_blocks[128];
variable parser_id
variable parser_id_lock
pthread_mutex_t parser_id_lock;
variable parser_memory_lock
pthread_mutex_t parser_memory_lock;
Public Functions Documentation
function parser_alloc
void * parser_alloc (
const PARSER_CONTEXT * parser,
const int length
)
function parser_allocate_string_buffer
void * parser_allocate_string_buffer (
const PARSER_CONTEXT * parser,
const int length,
const int align
)
function parser_create_node
PT_NODE * parser_create_node (
const PARSER_CONTEXT * parser
)
function parser_create_parser
PARSER_CONTEXT * parser_create_parser (
void
)
function parser_free_lcks_classes
void parser_free_lcks_classes (
PARSER_CONTEXT * parser
)
function parser_free_node
void parser_free_node (
const PARSER_CONTEXT * parser,
PT_NODE * node
)
function parser_free_node_resources
void parser_free_node_resources (
PT_NODE * node
)
function parser_free_parser
void parser_free_parser (
PARSER_CONTEXT * parser
)
function pt_append_bytes
PARSER_VARCHAR * pt_append_bytes (
const PARSER_CONTEXT * parser,
PARSER_VARCHAR * old_string,
const char * new_tail,
const int new_tail_length
)
function pt_append_nulstring
PARSER_VARCHAR * pt_append_nulstring (
const PARSER_CONTEXT * parser,
PARSER_VARCHAR * bstring,
const char * nulstring
)
function pt_append_string
char * pt_append_string (
const PARSER_CONTEXT * parser,
const char * old_string,
const char * new_tail
)
function pt_append_varchar
PARSER_VARCHAR * pt_append_varchar (
const PARSER_CONTEXT * parser,
PARSER_VARCHAR * old_string,
const PARSER_VARCHAR * new_tail
)
function pt_count_assignments
int pt_count_assignments (
PARSER_CONTEXT * parser,
PT_NODE * assignments
)
function pt_get_next_assignment
PT_NODE * pt_get_next_assignment (
PT_ASSIGNMENTS_HELPER * ea
)
function pt_get_varchar_bytes
const unsigned char * pt_get_varchar_bytes (
const PARSER_VARCHAR * string
)
function pt_get_varchar_length
int pt_get_varchar_length (
const PARSER_VARCHAR * string
)
function pt_init_assignments_helper
void pt_init_assignments_helper (
PARSER_CONTEXT * parser,
PT_ASSIGNMENTS_HELPER * helper,
PT_NODE * assignment
)
function pt_is_json_doc_type
bool pt_is_json_doc_type (
PT_TYPE_ENUM type
)
function pt_is_json_value_type
bool pt_is_json_value_type (
PT_TYPE_ENUM type
)
Public Static Functions Documentation
function parser_create_node_block
static PT_NODE * parser_create_node_block (
const PARSER_CONTEXT * parser
)
function parser_create_string_block
static PARSER_STRING_BLOCK * parser_create_string_block (
const PARSER_CONTEXT * parser,
const int length
)
function pt_append_bytes_for
static PARSER_VARCHAR * pt_append_bytes_for (
const PARSER_CONTEXT * parser,
PARSER_VARCHAR * old_string,
const char * new_tail,
const int new_tail_length
)
function pt_append_string_for
static char * pt_append_string_for (
const PARSER_CONTEXT * parser,
const char * old_string,
const char * new_tail,
const int wrap_with_single_quote
)
function pt_find_string_block
static PARSER_STRING_BLOCK * pt_find_string_block (
const PARSER_CONTEXT * parser,
const char * old_string
)
function pt_free_a_string_block
static void pt_free_a_string_block (
const PARSER_CONTEXT * parser,
PARSER_STRING_BLOCK * string_to_free
)
function pt_free_node_blocks
static void pt_free_node_blocks (
const PARSER_CONTEXT * parser
)
function pt_free_string_blocks
static void pt_free_string_blocks (
const PARSER_CONTEXT * parser
)
function pt_register_parser
static int pt_register_parser (
const PARSER_CONTEXT * parser
)
function pt_unregister_parser
static void pt_unregister_parser (
const PARSER_CONTEXT * parser
)
Macro Definition Documentation
define HASH_NUMBER
#define HASH_NUMBER `128`
define NODES_PER_BLOCK
#define NODES_PER_BLOCK `256`
define STRINGS_PER_BLOCK
#define STRINGS_PER_BLOCK `(8192-(4* sizeof ( long )+ sizeof ( char *)+40))`
The documentation for this class was generated from the following file cubrid/src/parser/parse_tree.c