/****************************************************** Query graph global types (c) 1996 Innobase Oy Created 5/27/1996 Heikki Tuuri *******************************************************/ #ifndef que0types_h #define que0types_h #include "data0data.h" #include "dict0types.h" /* Pseudotype for all graph nodes */ typedef void que_node_t; typedef struct que_fork_struct que_fork_t; /* Query graph root is a fork node */ typedef que_fork_t que_t; typedef struct que_thr_struct que_thr_t; typedef struct que_common_struct que_common_t; /* Common struct at the beginning of each query graph node; the name of this substruct must be 'common' */ struct que_common_struct{ ulint type; /* query node type */ que_node_t* parent; /* back pointer to parent node, or NULL */ que_node_t* brother;/* pointer to a possible brother node */ dfield_t val; /* evaluated value for an expression */ ulint val_buf_size; /* buffer size for the evaluated value data, if the buffer has been allocated dynamically: if this field is != 0, and the node is a symbol node or a function node, then we have to free the data field in val explicitly */ }; #endif