/src/mysql-server/sql/sql_lex_hash.h
Line | Count | Source |
1 | | /* |
2 | | Copyright (c) 2015, 2025, Oracle and/or its affiliates. |
3 | | |
4 | | This program is free software; you can redistribute it and/or modify |
5 | | it under the terms of the GNU General Public License, version 2.0, |
6 | | as published by the Free Software Foundation. |
7 | | |
8 | | This program is designed to work with certain software (including |
9 | | but not limited to OpenSSL) that is licensed under separate terms, |
10 | | as designated in a particular file or component or in included license |
11 | | documentation. The authors of MySQL hereby grant you an additional |
12 | | permission to link the program and your derivative works with the |
13 | | separately licensed software that they have either included with |
14 | | the program or referenced in the documentation. |
15 | | |
16 | | This program is distributed in the hope that it will be useful, |
17 | | but WITHOUT ANY WARRANTY; without even the implied warranty of |
18 | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
19 | | GNU General Public License, version 2.0, for more details. |
20 | | |
21 | | You should have received a copy of the GNU General Public License |
22 | | along with this program; if not, write to the Free Software |
23 | | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ |
24 | | |
25 | | /* |
26 | | Hash accessor function for lexical scanners: |
27 | | * sql_lex.h, sql_lex.cc, |
28 | | * sql_lex_hints.h, sql_lex_hints.cc. |
29 | | */ |
30 | | |
31 | | #ifndef SQL_LEX_HASH_INCLUDED |
32 | | #define SQL_LEX_HASH_INCLUDED |
33 | | |
34 | | class Lex_hash { |
35 | | private: |
36 | | const unsigned char *hash_map; |
37 | | const unsigned int entry_max_len; |
38 | | |
39 | | public: |
40 | | Lex_hash(const unsigned char *hash_map_arg, unsigned int entry_max_len_arg) |
41 | 12 | : hash_map(hash_map_arg), entry_max_len(entry_max_len_arg) {} |
42 | | |
43 | | const struct SYMBOL *get_hash_symbol(const char *s, unsigned int len) const; |
44 | | |
45 | | static const Lex_hash sql_keywords; |
46 | | static const Lex_hash sql_keywords_and_funcs; |
47 | | |
48 | | static const Lex_hash hint_keywords; |
49 | | }; |
50 | | |
51 | | #endif /* SQL_LEX_HASH_INCLUDED */ |