00001 /***************************************************************************** 00002 00003 Copyright (C) 1997, 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 /**************************************************/ 00027 #pragma once 00028 #ifndef eval0eval_h 00029 #define eval0eval_h 00030 00031 #include "univ.i" 00032 #include "que0types.h" 00033 #include "pars0sym.h" 00034 #include "pars0pars.h" 00035 00036 /*****************************************************************/ 00040 UNIV_INTERN 00041 void 00042 eval_node_free_val_buf( 00043 /*===================*/ 00044 que_node_t* node); 00045 /*****************************************************************/ 00047 UNIV_INLINE 00048 void 00049 eval_sym( 00050 /*=====*/ 00051 sym_node_t* sym_node); 00052 /*****************************************************************/ 00054 UNIV_INLINE 00055 void 00056 eval_exp( 00057 /*=====*/ 00058 que_node_t* exp_node); 00059 /*****************************************************************/ 00061 UNIV_INLINE 00062 void 00063 eval_node_set_int_val( 00064 /*==================*/ 00065 que_node_t* node, 00066 lint val); 00067 /*****************************************************************/ 00070 UNIV_INLINE 00071 lint 00072 eval_node_get_int_val( 00073 /*==================*/ 00074 que_node_t* node); 00075 /*****************************************************************/ 00078 UNIV_INLINE 00079 void 00080 eval_node_copy_and_alloc_val( 00081 /*=========================*/ 00082 que_node_t* node, 00083 const byte* str, 00084 ulint len); 00085 /*****************************************************************/ 00087 UNIV_INLINE 00088 void 00089 eval_node_copy_val( 00090 /*===============*/ 00091 que_node_t* node1, 00092 que_node_t* node2); 00093 /*****************************************************************/ 00096 UNIV_INLINE 00097 ibool 00098 eval_node_get_ibool_val( 00099 /*====================*/ 00100 que_node_t* node); 00101 /*****************************************************************/ 00104 UNIV_INTERN 00105 ibool 00106 eval_cmp( 00107 /*=====*/ 00108 func_node_t* cmp_node); 00111 #ifndef UNIV_NONINL 00112 #include "eval0eval.ic" 00113 #endif 00114 00115 #endif