86
83
which is represented as
87
84
Item_in_subselect(left, subselect)
89
subselect= expr3->invalidate_and_restore_select_lex();
90
result= new (session->mem_root) Item_in_subselect(left, subselect);
93
result = negate_expression(session, result);
86
Select_Lex* subselect= expr3->invalidate_and_restore_select_lex();
87
Item* result= new (session->mem_root) Item_in_subselect(left, subselect);
88
return equal ? result : negate_expression(session, result);
100
result= new (session->mem_root) Item_func_eq(left, expr);
102
result= new (session->mem_root) Item_func_ne(left, expr);
92
? (Item*) new (session->mem_root) Item_func_eq(left, expr)
93
: (Item*) new (session->mem_root) Item_func_ne(left, expr);
221
210
my_printf_error(ER_PARSE_ERROR_UNKNOWN, ER(ER_PARSE_ERROR_UNKNOWN), MYF(0), message);
224
bool check_reserved_words(lex_string_t *name)
213
bool check_reserved_words(str_ref name)
226
if (!my_strcasecmp(system_charset_info, name->str, "GLOBAL") ||
227
!my_strcasecmp(system_charset_info, name->str, "LOCAL") ||
228
!my_strcasecmp(system_charset_info, name->str, "SESSION"))
215
return not system_charset_info->strcasecmp(name.data(), "GLOBAL")
216
|| not system_charset_info->strcasecmp(name.data(), "LOCAL")
217
|| not system_charset_info->strcasecmp(name.data(), "SESSION");
315
301
opt->set_state(boost::lexical_cast<std::string>(value));
318
void buildSchemaOption(LEX *lex, const char *key, const lex_string_t &value)
304
void buildSchemaOption(LEX *lex, const char *key, str_ref value)
320
statement::CreateSchema *statement= (statement::CreateSchema *)lex->statement;
306
statement::CreateSchema *statement= static_cast<statement::CreateSchema*>(lex->statement);
321
307
message::Engine::Option *opt= statement->schema_message.mutable_engine()->add_options();
322
308
opt->set_name(key);
323
opt->set_state(value.str, value.length);
326
void buildSchemaDefiner(LEX *lex, const lex_string_t &value)
328
statement::CreateSchema *statement= (statement::CreateSchema *)lex->statement;
329
identifier::User user(value.str);
330
message::set_definer(statement->schema_message, user);
309
opt->set_state(value.data(), value.size());
333
312
void buildSchemaDefiner(LEX *lex, const identifier::User &user)
335
statement::CreateSchema *statement= (statement::CreateSchema *)lex->statement;
314
statement::CreateSchema *statement= static_cast<statement::CreateSchema*>(lex->statement);
336
315
message::set_definer(statement->schema_message, user);
339
318
void buildSchemaOption(LEX *lex, const char *key, uint64_t value)
341
statement::CreateSchema *statement= (statement::CreateSchema *)lex->statement;
320
statement::CreateSchema *statement= static_cast<statement::CreateSchema*>(lex->statement);
342
321
message::Engine::Option *opt= statement->schema_message.mutable_engine()->add_options();
343
322
opt->set_name(key);
344
323
opt->set_state(boost::lexical_cast<std::string>(value));
347
bool checkFieldIdent(LEX *lex, const lex_string_t &schema_name, const lex_string_t &table_name)
326
bool checkFieldIdent(LEX *lex, str_ref schema_name, str_ref table_name)
349
328
TableList *table= reinterpret_cast<TableList*>(lex->current_select->table_list.first);
351
if (schema_name.length)
330
if (schema_name.size() && table_alias_charset->strcasecmp(schema_name.data(), table->getSchemaName()))
353
if (my_strcasecmp(table_alias_charset, schema_name.str, table->getSchemaName()))
355
my_error(ER_WRONG_DB_NAME, MYF(0), schema_name.str);
332
my_error(ER_WRONG_DB_NAME, MYF(0), schema_name.data());
360
if (my_strcasecmp(table_alias_charset, table_name.str,
361
table->getTableName()))
336
if (table_alias_charset->strcasecmp(table_name.data(), table->getTableName()))
363
my_error(ER_WRONG_TABLE_NAME, MYF(0), table_name.str);
338
my_error(ER_WRONG_TABLE_NAME, MYF(0), table_name.data());
370
Item *buildIdent(LEX *lex,
371
const lex_string_t &schema_name,
372
const lex_string_t &table_name,
373
const lex_string_t &field_name)
345
Item *buildIdent(LEX *lex, str_ref schema_name, str_ref table_name, str_ref field_name)
375
347
Select_Lex *sel= lex->current_select;
377
if (table_name.length and sel->no_table_names_allowed)
349
if (table_name.size() and sel->no_table_names_allowed)
379
my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
380
MYF(0), table_name.str, lex->session->where());
351
my_error(ER_TABLENAME_NOT_ALLOWED_HERE, MYF(0), table_name.data(), lex->session->where());
383
Item *item= (sel->parsing_place != IN_HAVING or
384
sel->get_in_sum_expr() > 0) ?
385
(Item*) new Item_field(lex->current_context(), schema_name.str, table_name.str, field_name.str) :
386
(Item*) new Item_ref(lex->current_context(), schema_name.str, table_name.str, field_name.str);
354
return sel->parsing_place != IN_HAVING || sel->get_in_sum_expr() > 0
355
? (Item*) new Item_field(lex->current_context(), schema_name.data(), table_name.data(), field_name.data())
356
: (Item*) new Item_ref(lex->current_context(), schema_name.data(), table_name.data(), field_name.data());
391
Item *buildTableWild(LEX *lex, const lex_string_t &schema_name, const lex_string_t &table_name)
359
Item *buildTableWild(LEX *lex, str_ref schema_name, str_ref table_name)
393
361
Select_Lex *sel= lex->current_select;
394
Item *item= new Item_field(lex->current_context(), schema_name.str, table_name.str, "*");
362
Item *item= new Item_field(lex->current_context(), schema_name.data(), table_name.data(), "*");
395
363
sel->with_wild++;
446
413
lex->col_list.clear(); /* Alloced by memory::sql_alloc */
449
void buildForeignKey(LEX *lex, const lex_string_t &name_arg, drizzled::Table_ident *table)
416
void buildForeignKey(LEX *lex, str_ref name_arg, drizzled::Table_ident *table)
451
418
statement::AlterTable *statement= (statement::AlterTable *)lex->statement;
452
Key *key= new Foreign_key(name_arg, lex->col_list,
455
statement->fk_delete_opt,
456
statement->fk_update_opt,
457
statement->fk_match_option);
419
statement->alter_info.key_list.push_back(new Foreign_key(name_arg, lex->col_list, table, lex->ref_list,
420
statement->fk_delete_opt, statement->fk_update_opt, statement->fk_match_option));
459
statement->alter_info.key_list.push_back(key);
460
key= new Key(Key::MULTIPLE, name_arg, &default_key_create_info, 1, lex->col_list);
461
statement->alter_info.key_list.push_back(key);
422
statement->alter_info.key_list.push_back(new Key(Key::MULTIPLE, name_arg, &default_key_create_info, 1, lex->col_list));
462
423
lex->col_list.clear(); /* Alloced by memory::sql_alloc */
463
424
/* Only used for ALTER TABLE. Ignored otherwise. */
464
425
statement->alter_info.flags.set(ALTER_FOREIGN_KEY);