00001 /****************************************************** 00002 Query graph global types 00003 00004 (c) 1996 Innobase Oy 00005 00006 Created 5/27/1996 Heikki Tuuri 00007 *******************************************************/ 00008 00009 #ifndef que0types_h 00010 #define que0types_h 00011 00012 #include "data0data.h" 00013 #include "dict0types.h" 00014 00015 /* Pseudotype for all graph nodes */ 00016 typedef void que_node_t; 00017 00018 typedef struct que_fork_struct que_fork_t; 00019 00020 /* Query graph root is a fork node */ 00021 typedef que_fork_t que_t; 00022 00023 typedef struct que_thr_struct que_thr_t; 00024 typedef struct que_common_struct que_common_t; 00025 00026 /* Common struct at the beginning of each query graph node; the name of this 00027 substruct must be 'common' */ 00028 00029 struct que_common_struct{ 00030 ulint type; /* query node type */ 00031 que_node_t* parent; /* back pointer to parent node, or NULL */ 00032 que_node_t* brother;/* pointer to a possible brother node */ 00033 dfield_t val; /* evaluated value for an expression */ 00034 ulint val_buf_size; 00035 /* buffer size for the evaluated value data, 00036 if the buffer has been allocated dynamically: 00037 if this field is != 0, and the node is a 00038 symbol node or a function node, then we 00039 have to free the data field in val 00040 explicitly */ 00041 }; 00042 00043 #endif
1.4.7

