/* 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 */ #pragma once #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 { namespace parser { Item* handle_sql2003_note184_exception(Session*, Item* left, bool equal, Item *expr); bool add_select_to_union_list(Session*, LEX*, bool is_union_distinct); bool setup_select_in_parentheses(Session*, LEX*); Item* reserved_keyword_function(Session*, const std::string &name, List *item_list); void my_parse_error(Lex_input_stream*); void my_parse_error(const char*); bool check_reserved_words(str_ref); void errorOn(Session*, const char *s); bool buildOrderBy(LEX*); void buildEngineOption(LEX*, const char *key, str_ref value); void buildEngineOption(LEX*, const char *key, uint64_t value); void buildSchemaOption(LEX*, const char *key, str_ref value); void buildSchemaOption(LEX*, const char *key, uint64_t value); void buildSchemaDefiner(LEX*, const identifier::User&); bool checkFieldIdent(LEX*, str_ref schema_name, str_ref table_name); Item *buildIdent(LEX*, str_ref schema_name, str_ref table_name, str_ref field_name); Item *buildTableWild(LEX*, str_ref schema_name, str_ref table_name); void buildCreateFieldIdent(LEX*); void storeAlterColumnPosition(LEX*, const char *position); bool buildCollation(LEX*, const charset_info_st *arg); void buildKey(LEX*, Key::Keytype type_par, str_ref name_arg); void buildForeignKey(LEX*, str_ref name_arg, Table_ident *table); enum_field_types buildIntegerColumn(LEX*, enum_field_types final_type, const bool is_unsigned); enum_field_types buildSerialColumn(LEX*); enum_field_types buildVarcharColumn(LEX*, const char *length); enum_field_types buildVarbinaryColumn(LEX*, const char *length); enum_field_types buildBlobColumn(LEX*); enum_field_types buildBooleanColumn(LEX*); enum_field_types buildUuidColumn(LEX*); enum_field_types buildIPv6Column(LEX*); enum_field_types buildDoubleColumn(LEX*); enum_field_types buildTimestampColumn(LEX*, const char *length); enum_field_types buildDecimalColumn(LEX*); void buildKeyOnColumn(LEX*); void buildAutoOnColumn(LEX*); void buildPrimaryOnColumn(LEX*); void buildReplicationOption(LEX*, bool arg); void buildAddAlterDropIndex(LEX*, const char *name, bool is_foreign_key= false); } // namespace parser } // namespace drizzled