5 #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
6 && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
7 && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
8 && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
9 && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
10 && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
11 && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
12 && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
13 && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
14 && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
15 && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
16 && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
17 && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
18 && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
19 && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
20 && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
21 && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
22 && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
23 && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
24 && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
25 && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
26 && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
27 && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
29 #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
32 #line 1 "drizzled/function_hash.gperf"
56 #include <drizzled/foreign_key.h>
57 #include <drizzled/sql_yacc.hh>
58 #include <drizzled/lex_symbol.h>
60 using namespace drizzled;
76 static inline unsigned int hash (
const char *str,
unsigned int len);
78 static const struct SYMBOL *in_word_set (
const char *str,
unsigned int len);
82 function_hash::hash (
register const char *str,
register unsigned int len)
84 static const unsigned char asso_values[] =
86 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
87 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
88 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
89 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
90 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
91 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
92 54, 54, 54, 54, 54, 10, 15, 0, 15, 20,
93 54, 10, 54, 0, 54, 54, 54, 5, 30, 3,
94 3, 54, 10, 0, 10, 0, 0, 20, 5, 54,
95 54, 54, 54, 54, 54, 5, 54, 54, 54, 54,
96 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
97 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
98 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
99 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
100 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
101 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
102 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
103 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
104 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
105 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
106 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
107 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
108 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
109 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
110 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
111 54, 54, 54, 54, 54, 54
113 register int hval = len;
118 hval += asso_values[(
unsigned char)str[5]];
123 hval += asso_values[(
unsigned char)str[2]];
127 hval += asso_values[(
unsigned char)str[0]];
134 function_hash::in_word_set (
register const char *str,
register unsigned int len)
140 MAX_WORD_LENGTH = 12,
145 static const struct SYMBOL wordlist[] =
147 #line 46 "drizzled/function_hash.gperf"
149 #line 47 "drizzled/function_hash.gperf"
151 #line 68 "drizzled/function_hash.gperf"
153 #line 59 "drizzled/function_hash.gperf"
154 {
"POSITION",POSITION_SYM},
155 #line 54 "drizzled/function_hash.gperf"
157 #line 71 "drizzled/function_hash.gperf"
159 #line 60 "drizzled/function_hash.gperf"
160 {
"SESSION_USER",USER},
161 #line 70 "drizzled/function_hash.gperf"
162 {
"SYSTEM_USER",USER},
163 #line 69 "drizzled/function_hash.gperf"
165 #line 61 "drizzled/function_hash.gperf"
167 #line 73 "drizzled/function_hash.gperf"
168 {
"VAR_POP",VARIANCE_SYM},
169 #line 62 "drizzled/function_hash.gperf"
171 #line 49 "drizzled/function_hash.gperf"
173 #line 56 "drizzled/function_hash.gperf"
175 #line 63 "drizzled/function_hash.gperf"
176 {
"STDDEV_POP",STD_SYM},
177 #line 64 "drizzled/function_hash.gperf"
178 {
"STDDEV_SAMP",STDDEV_SAMP_SYM},
179 #line 48 "drizzled/function_hash.gperf"
181 #line 74 "drizzled/function_hash.gperf"
182 {
"VAR_SAMP",VAR_SAMP_SYM},
183 #line 53 "drizzled/function_hash.gperf"
184 {
"GROUP_CONCAT",GROUP_CONCAT_SYM},
185 #line 66 "drizzled/function_hash.gperf"
186 {
"SUBSTR",SUBSTRING},
187 #line 65 "drizzled/function_hash.gperf"
188 {
"SUBDATE",SUBDATE_SYM},
189 #line 51 "drizzled/function_hash.gperf"
190 {
"DATE_SUB",DATE_SUB_INTERVAL},
191 #line 67 "drizzled/function_hash.gperf"
192 {
"SUBSTRING",SUBSTRING},
193 #line 52 "drizzled/function_hash.gperf"
194 {
"EXTRACT",EXTRACT_SYM},
195 #line 57 "drizzled/function_hash.gperf"
197 #line 45 "drizzled/function_hash.gperf"
198 {
"ADDDATE",ADDDATE_SYM},
199 #line 50 "drizzled/function_hash.gperf"
200 {
"DATE_ADD",DATE_ADD_INTERVAL},
201 #line 72 "drizzled/function_hash.gperf"
202 {
"VARIANCE",VARIANCE_SYM},
203 #line 58 "drizzled/function_hash.gperf"
207 static const signed char lookup[] =
209 -1, -1, -1, -1, 0, 1, -1, -1, 2, -1, -1, 3, -1, 4,
210 5, 6, 7, 8, 9, -1, 10, 11, 12, 13, -1, 14, 15, 16,
211 17, -1, 18, 19, 20, 21, 22, -1, -1, 23, 24, -1, -1, -1,
212 25, 26, -1, -1, -1, -1, 27, -1, -1, -1, -1, 28
215 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
217 register int key = hash (str, len);
219 if (key <= MAX_HASH_VALUE && key >= 0)
221 register int index = lookup[key];
225 register const char *s = wordlist[index].name;
227 if (*str == *s && !strcmp (str + 1, s + 1))
228 return &wordlist[index];
234 #line 75 "drizzled/function_hash.gperf"