/* Copyright (C) 2000-2003 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef DRIZZLED_PARSER_H #define DRIZZLED_PARSER_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace drizzled { class Session; class Table_ident; class Item; class Item_num; namespace item { class Boolean; class True; class False; } namespace parser { Item* handle_sql2003_note184_exception(Session *session, Item* left, bool equal, Item *expr); bool add_select_to_union_list(Session *session, LEX *lex, bool is_union_distinct); bool setup_select_in_parentheses(Session *session, LEX *lex); Item* reserved_keyword_function(Session *session, const std::string &name, List *item_list); void my_parse_error(Lex_input_stream *lip); void my_parse_error(const char *message); bool check_reserved_words(LEX_STRING *name); void errorOn(drizzled::Session *session, const char *s); bool buildOrderBy(LEX *lex); void buildEngineOption(LEX *lex, const char *key, const LEX_STRING &value); void buildEngineOption(LEX *lex, const char *key, uint64_t value); void buildSchemaOption(LEX *lex, const char *key, const LEX_STRING &value); void buildSchemaOption(LEX *lex, const char *key, uint64_t value); bool checkFieldIdent(LEX *lex, const LEX_STRING &schema_name, const LEX_STRING &table_name); Item *buildIdent(LEX *lex, const LEX_STRING &schema_name, const LEX_STRING &table_name, const LEX_STRING &field_name); Item *buildTableWild(LEX *lex, const LEX_STRING &schema_name, const LEX_STRING &table_name); void buildCreateFieldIdent(LEX *lex); void storeAlterColumnPosition(LEX *lex, const char *position); bool buildCollation(LEX *lex, const CHARSET_INFO *arg); void buildKey(LEX *lex, Key::Keytype type_par, const lex_string_t &name_arg); void buildForeignKey(LEX *lex, const lex_string_t &name_arg, drizzled::Table_ident *table); drizzled::enum_field_types buildIntegerColumn(LEX *lex, drizzled::enum_field_types final_type, const bool is_unsigned); drizzled::enum_field_types buildSerialColumn(LEX *lex); drizzled::enum_field_types buildVarcharColumn(LEX *lex, const char *length); drizzled::enum_field_types buildVarbinaryColumn(LEX *lex, const char *length); drizzled::enum_field_types buildBlobColumn(LEX *lex); drizzled::enum_field_types buildBooleanColumn(LEX *lex); drizzled::enum_field_types buildUuidColumn(LEX *lex); drizzled::enum_field_types buildDoubleColumn(LEX *lex); drizzled::enum_field_types buildTimestampColumn(LEX *lex, const char *length); drizzled::enum_field_types buildDecimalColumn(LEX *lex); void buildKeyOnColumn(LEX *lex); void buildAutoOnColumn(LEX *lex); void buildPrimaryOnColumn(LEX *lex); void buildReplicationOption(LEX *lex, bool arg); void buildAddAlterDropIndex(LEX *lex, const char *name, bool is_foreign_key= false); } // namespace parser } // namespace drizzled #endif /* DRIZZLED_PARSER_H */