Drizzled Public API Documentation

que0types.h
Go to the documentation of this file.
00001 /*****************************************************************************
00002 
00003 Copyright (C) 1996, 2009, Innobase Oy. All Rights Reserved.
00004 
00005 This program is free software; you can redistribute it and/or modify it under
00006 the terms of the GNU General Public License as published by the Free Software
00007 Foundation; version 2 of the License.
00008 
00009 This program is distributed in the hope that it will be useful, but WITHOUT
00010 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00011 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
00012 
00013 You should have received a copy of the GNU General Public License along with
00014 this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
00015 St, Fifth Floor, Boston, MA 02110-1301 USA
00016 
00017 *****************************************************************************/
00018 
00019 /**************************************************/
00026 #pragma once
00027 #ifndef que0types_h
00028 #define que0types_h
00029 
00030 #include "data0data.h"
00031 #include "dict0types.h"
00032 
00033 /* Pseudotype for all graph nodes */
00034 typedef void  que_node_t;
00035 
00036 typedef struct que_fork_struct  que_fork_t;
00037 
00038 /* Query graph root is a fork node */
00039 typedef que_fork_t  que_t;
00040 
00041 typedef struct que_thr_struct   que_thr_t;
00042 typedef struct que_common_struct  que_common_t;
00043 
00044 /* Common struct at the beginning of each query graph node; the name of this
00045 substruct must be 'common' */
00046 
00047 struct que_common_struct{
00048   ulint   type; 
00049   que_node_t* parent; 
00050   que_node_t* brother;/* pointer to a possible brother node */
00051   dfield_t  val;  
00052   ulint   val_buf_size;
00053         /* buffer size for the evaluated value data,
00054         if the buffer has been allocated dynamically:
00055         if this field is != 0, and the node is a
00056         symbol node or a function node, then we
00057         have to free the data field in val
00058         explicitly */
00059 };
00060 
00061 #endif