Skip to content

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

Type Name
struct parser_node_block
struct parser_node_free_list
struct parser_string_block

Public Types

Type Name
typedef struct parser_node_block PARSER_NODE_BLOCK
typedef struct parser_node_free_list PARSER_NODE_FREE_LIST
typedef struct parser_string_block PARSER_STRING_BLOCK
union aligned

Public Attributes

Type Name
PT_RESERVED_NAME pt_Reserved_name_table

Public Static Attributes

Type Name
pthread_mutex_t blocks_lock = [**PTHREAD\_MUTEX\_INITIALIZER**](broker__monitor_8c.md#function-timeout)
pthread_mutex_t free_lists_lock = [**PTHREAD\_MUTEX\_INITIALIZER**](broker__monitor_8c.md#function-timeout)
PARSER_NODE_BLOCK * parser_Node_blocks
PARSER_NODE_FREE_LIST * parser_Node_free_lists
PARSER_STRING_BLOCK * parser_String_blocks
int parser_id = 1
pthread_mutex_t parser_id_lock = [**PTHREAD\_MUTEX\_INITIALIZER**](broker__monitor_8c.md#function-timeout)
pthread_mutex_t parser_memory_lock = [**PTHREAD\_MUTEX\_INITIALIZER**](broker__monitor_8c.md#function-timeout)

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

Type Name
PT_NODE * parser_create_node_block (const PARSER_CONTEXT * parser)
PARSER_STRING_BLOCK * parser_create_string_block (const PARSER_CONTEXT * parser, const int length)
PARSER_VARCHAR * pt_append_bytes_for (const PARSER_CONTEXT * parser, PARSER_VARCHAR * old_string, const char * new_tail, const int new_tail_length)
char * pt_append_string_for (const PARSER_CONTEXT * parser, const char * old_string, const char * new_tail, const int wrap_with_single_quote)
PARSER_STRING_BLOCK * pt_find_string_block (const PARSER_CONTEXT * parser, const char * old_string)
void pt_free_a_string_block (const PARSER_CONTEXT * parser, PARSER_STRING_BLOCK * string_to_free)
void pt_free_node_blocks (const PARSER_CONTEXT * parser)
void pt_free_string_blocks (const PARSER_CONTEXT * parser)
int pt_register_parser (const PARSER_CONTEXT * parser)
void pt_unregister_parser (const PARSER_CONTEXT * parser)

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

int 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