CUBRID Engine  latest
esql_host_variable.h File Reference
#include "config.h"
#include <stdio.h>
#include "esql_hash.h"
#include "variable_string.h"
Include dependency graph for esql_host_variable.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  host_lod
 
struct  structdef
 
struct  ptr_vec
 
struct  declarator
 
struct  specifier
 
struct  link
 
struct  host_var
 
struct  host_ref
 
struct  symbol
 
struct  cursor
 
struct  stmt
 

Macros

#define PTR_VEC_CHUNK_SIZE   4
 
#define NUM_C_VARIABLE_TYPES   C_TYPE_SQLDA
 

Typedefs

typedef enum c_pype C_TYPE
 
typedef enum specifier_noun SPECIFIER_NOUN
 
typedef enum storage_class STORAGE_CLASS
 
typedef enum alias_class ALIAS_CLASS
 
typedef enum dcl_type DCL_TYPE
 
typedef struct ptr_vec PTR_VEC
 
typedef struct link LINK
 
typedef struct host_var HOST_VAR
 
typedef struct host_ref HOST_REF
 
typedef struct symbol SYMBOL
 
typedef struct specifier specifier
 
typedef struct declarator declarator
 
typedef struct structdef STRUCTDEF
 
typedef HASH_TAB SYMTAB
 
typedef struct cursor CURSOR
 
typedef struct stmt STMT
 
typedef struct host_lod HOST_LOD
 
typedef enum link_class LINK_CLASS
 
typedef enum when_condition WHEN_CONDITION
 
typedef enum when_action WHEN_ACTION
 

Enumerations

enum  c_pype {
  C_TYPE_SHORT = 0, C_TYPE_INTEGER = 1, C_TYPE_LONG = 2, C_TYPE_FLOAT = 3,
  C_TYPE_DOUBLE = 4, C_TYPE_CHAR_ARRAY = 5, C_TYPE_CHAR_POINTER = 6, C_TYPE_OBJECTID = 7,
  C_TYPE_BASICSET = 8, C_TYPE_MULTISET = 9, C_TYPE_SEQUENCE = 10, C_TYPE_COLLECTION = 11,
  C_TYPE_TIME = 12, C_TYPE_TIMESTAMP = 13, C_TYPE_DATE = 14, C_TYPE_MONETARY = 15,
  C_TYPE_DB_VALUE = 16, C_TYPE_VARCHAR = 17, C_TYPE_BIT = 18, C_TYPE_VARBIT = 19,
  C_TYPE_NCHAR = 20, C_TYPE_VARNCHAR = 21, C_TYPE_STRING_CONST = 22, C_TYPE_SQLDA = 23,
  C_TYPE_BIGINT = 24, NUM_C_TYPES = 25
}
 
enum  specifier_noun {
  N_INT = 0, N_CHR = 1, N_VOID = 2, N_FLOAT = 3,
  N_STRUCTURE = 4, N_LABEL = 5, N_VARCHAR = 6, N_BIT = 7,
  N_VARBIT = 8
}
 
enum  storage_class {
  C_FIXED = 0, C_REGISTER = 1, C_AUTO = 2, C_TYPEDEF = 3,
  C_CONSTANT = 4
}
 
enum  alias_class { A_DIRECT = 0, A_TYPEDEF = 1, A_STRUCT = 2 }
 
enum  dcl_type { D_POINTER = 0, D_ARRAY = 1, D_FUNCTION = 2 }
 
enum  link_class { DECLARATOR = 0, SPECIFIER = 1 }
 
enum  when_condition { SQLWARNING = 0, SQLERROR = 1, NOT_FOUND = 2 }
 
enum  when_action { CONTINUE = 0, STOP = 1, GOTO = 2, CALL = 3 }
 

Functions

C_TYPE pp_get_type (HOST_REF *ref)
 
char * pp_get_precision (HOST_REF *ref)
 
char * pp_get_input_size (HOST_REF *ref)
 
char * pp_get_output_size (HOST_REF *ref)
 
char * pp_get_expr (HOST_REF *ref)
 
char * pp_get_addr_expr (HOST_REF *ref)
 
char * pp_get_ind_expr (HOST_REF *ref)
 
char * pp_get_ind_addr_expr (HOST_REF *ref)
 
void pp_print_host_ref (HOST_REF *ref, FILE *fp)
 

Macro Definition Documentation

#define NUM_C_VARIABLE_TYPES   C_TYPE_SQLDA

Definition at line 38 of file esql_host_variable.h.

Referenced by pp_check_host_var_list().

#define PTR_VEC_CHUNK_SIZE   4

Definition at line 36 of file esql_host_variable.h.

Referenced by pp_new_ptr_vec().

Typedef Documentation

typedef enum alias_class ALIAS_CLASS
typedef enum c_pype C_TYPE
typedef struct cursor CURSOR

Definition at line 117 of file esql_host_variable.h.

typedef enum dcl_type DCL_TYPE
typedef struct declarator declarator

Definition at line 113 of file esql_host_variable.h.

typedef struct host_lod HOST_LOD

Definition at line 119 of file esql_host_variable.h.

typedef struct host_ref HOST_REF

Definition at line 110 of file esql_host_variable.h.

typedef struct host_var HOST_VAR

Definition at line 109 of file esql_host_variable.h.

typedef struct link LINK

Definition at line 108 of file esql_host_variable.h.

typedef enum link_class LINK_CLASS

Definition at line 221 of file esql_host_variable.h.

typedef struct ptr_vec PTR_VEC

Definition at line 107 of file esql_host_variable.h.

typedef struct specifier specifier

Definition at line 112 of file esql_host_variable.h.

typedef struct stmt STMT

Definition at line 118 of file esql_host_variable.h.

typedef struct structdef STRUCTDEF

Definition at line 114 of file esql_host_variable.h.

typedef struct symbol SYMBOL

Definition at line 111 of file esql_host_variable.h.

typedef HASH_TAB SYMTAB

Definition at line 116 of file esql_host_variable.h.

typedef enum when_action WHEN_ACTION

Enumeration Type Documentation

Enumerator
A_DIRECT 
A_TYPEDEF 
A_STRUCT 

Definition at line 93 of file esql_host_variable.h.

enum c_pype
Enumerator
C_TYPE_SHORT 
C_TYPE_INTEGER 
C_TYPE_LONG 
C_TYPE_FLOAT 
C_TYPE_DOUBLE 
C_TYPE_CHAR_ARRAY 
C_TYPE_CHAR_POINTER 
C_TYPE_OBJECTID 
C_TYPE_BASICSET 
C_TYPE_MULTISET 
C_TYPE_SEQUENCE 
C_TYPE_COLLECTION 
C_TYPE_TIME 
C_TYPE_TIMESTAMP 
C_TYPE_DATE 
C_TYPE_MONETARY 
C_TYPE_DB_VALUE 
C_TYPE_VARCHAR 
C_TYPE_BIT 
C_TYPE_VARBIT 
C_TYPE_NCHAR 
C_TYPE_VARNCHAR 
C_TYPE_STRING_CONST 
C_TYPE_SQLDA 
C_TYPE_BIGINT 
NUM_C_TYPES 

Definition at line 41 of file esql_host_variable.h.

enum dcl_type
Enumerator
D_POINTER 
D_ARRAY 
D_FUNCTION 

Definition at line 100 of file esql_host_variable.h.

enum link_class
Enumerator
DECLARATOR 
SPECIFIER 

Definition at line 216 of file esql_host_variable.h.

Enumerator
N_INT 
N_CHR 
N_VOID 
N_FLOAT 
N_STRUCTURE 
N_LABEL 
N_VARCHAR 
N_BIT 
N_VARBIT 

Definition at line 71 of file esql_host_variable.h.

Enumerator
C_FIXED 
C_REGISTER 
C_AUTO 
C_TYPEDEF 
C_CONSTANT 

Definition at line 84 of file esql_host_variable.h.

Enumerator
CONTINUE 
STOP 
GOTO 
CALL 

Definition at line 268 of file esql_host_variable.h.

Enumerator
SQLWARNING 
SQLERROR 
NOT_FOUND 

Definition at line 261 of file esql_host_variable.h.

Function Documentation

char* pp_get_addr_expr ( HOST_REF ref)

Definition at line 878 of file esql_host_variable.c.

References host_ref::addr_expr_buf, NULL, pp_addr_expr(), host_ref::var, vs_new(), vs_str(), and vs_strcpy().

Referenced by emit_get_db_value(), emit_put_db_value(), and get_quasi_string().

Here is the caller graph for this function:

char* pp_get_ind_addr_expr ( HOST_REF ref)

Definition at line 925 of file esql_host_variable.c.

References host_ref::ind, host_ref::ind_addr_expr_buf, NULL, pp_addr_expr(), pp_internal_ind, vs_new(), vs_str(), and vs_strcpy().

Referenced by emit_get_db_value(), and emit_put_db_value().

Here is the caller graph for this function:

char* pp_get_ind_expr ( HOST_REF ref)

Definition at line 901 of file esql_host_variable.c.

References host_ref::ind, host_ref::ind_expr_buf, NULL, pp_expr(), vs_new(), vs_str(), and vs_strcpy().

Referenced by pp_print_host_ref().

Here is the caller graph for this function:

char* pp_get_output_size ( HOST_REF ref)
C_TYPE pp_get_type ( HOST_REF ref)

Definition at line 614 of file esql_host_variable.c.

References assert, NULL, pp_check(), host_ref::uci_type, UNINITIALIZED, and host_ref::var.

Referenced by emit_get_db_value(), emit_put_db_value(), get_quasi_string(), pp_check_host_var_list(), and pp_check_type().

Here is the caller graph for this function:

void pp_print_host_ref ( HOST_REF ref,
FILE *  fp 
)

Definition at line 961 of file esql_host_variable.c.

References NULL, p, pp_get_expr(), pp_get_ind_expr(), pp_get_input_size(), and host_ref::var.

Referenced by pp_print_cursor().

Here is the caller graph for this function: