3130
$$ = new (YYTHD->mem_root) Item_cond_and($1, $3);
3130
$$ = new (YYSession->mem_root) Item_cond_and($1, $3);
3133
3133
| NOT_SYM expr %prec NOT_SYM
3134
{ $$= negate_expression(YYTHD, $2); }
3134
{ $$= negate_expression(YYSession, $2); }
3135
3135
| bool_pri IS TRUE_SYM %prec IS
3136
{ $$= new (YYTHD->mem_root) Item_func_istrue($1); }
3136
{ $$= new (YYSession->mem_root) Item_func_istrue($1); }
3137
3137
| bool_pri IS not TRUE_SYM %prec IS
3138
{ $$= new (YYTHD->mem_root) Item_func_isnottrue($1); }
3138
{ $$= new (YYSession->mem_root) Item_func_isnottrue($1); }
3139
3139
| bool_pri IS FALSE_SYM %prec IS
3140
{ $$= new (YYTHD->mem_root) Item_func_isfalse($1); }
3140
{ $$= new (YYSession->mem_root) Item_func_isfalse($1); }
3141
3141
| bool_pri IS not FALSE_SYM %prec IS
3142
{ $$= new (YYTHD->mem_root) Item_func_isnotfalse($1); }
3142
{ $$= new (YYSession->mem_root) Item_func_isnotfalse($1); }
3143
3143
| bool_pri IS UNKNOWN_SYM %prec IS
3144
3144
{ $$= new Item_func_isnull($1); }
3145
3145
| bool_pri IS not UNKNOWN_SYM %prec IS
3165
3165
bit_expr IN_SYM '(' subselect ')'
3167
$$= new (YYTHD->mem_root) Item_in_subselect($1, $4);
3167
$$= new (YYSession->mem_root) Item_in_subselect($1, $4);
3169
3169
| bit_expr not IN_SYM '(' subselect ')'
3172
Item *item= new (thd->mem_root) Item_in_subselect($1, $5);
3173
$$= negate_expression(thd, item);
3171
Session *session= YYSession;
3172
Item *item= new (session->mem_root) Item_in_subselect($1, $5);
3173
$$= negate_expression(session, item);
3175
3175
| bit_expr IN_SYM '(' expr ')'
3177
$$= handle_sql2003_note184_exception(YYTHD, $1, true, $4);
3177
$$= handle_sql2003_note184_exception(YYSession, $1, true, $4);
3179
3179
| bit_expr IN_SYM '(' expr ',' expr_list ')'
3181
3181
$6->push_front($4);
3182
3182
$6->push_front($1);
3183
$$= new (YYTHD->mem_root) Item_func_in(*$6);
3183
$$= new (YYSession->mem_root) Item_func_in(*$6);
3185
3185
| bit_expr not IN_SYM '(' expr ')'
3187
$$= handle_sql2003_note184_exception(YYTHD, $1, false, $5);
3187
$$= handle_sql2003_note184_exception(YYSession, $1, false, $5);
3189
3189
| bit_expr not IN_SYM '(' expr ',' expr_list ')'
3191
3191
$7->push_front($5);
3192
3192
$7->push_front($1);
3193
Item_func_in *item = new (YYTHD->mem_root) Item_func_in(*$7);
3193
Item_func_in *item = new (YYSession->mem_root) Item_func_in(*$7);
3194
3194
item->negate();
3265
3265
| function_call_conflict
3266
3266
| simple_expr COLLATE_SYM ident_or_text %prec NEG
3269
Item *i1= new (thd->mem_root) Item_string($3.str,
3268
Session *session= YYSession;
3269
Item *i1= new (session->mem_root) Item_string($3.str,
3272
$$= new (thd->mem_root) Item_func_set_collation($1, i1);
3271
session->charset());
3272
$$= new (session->mem_root) Item_func_set_collation($1, i1);
3277
3277
| '+' simple_expr %prec NEG { $$= $2; }
3278
3278
| '-' simple_expr %prec NEG
3279
{ $$= new (YYTHD->mem_root) Item_func_neg($2); }
3279
{ $$= new (YYSession->mem_root) Item_func_neg($2); }
3280
3280
| '(' subselect ')'
3282
$$= new (YYTHD->mem_root) Item_singlerow_subselect($2);
3282
$$= new (YYSession->mem_root) Item_singlerow_subselect($2);
3284
3284
| '(' expr ')' { $$= $2; }
3285
3285
| '(' expr ',' expr_list ')'
3287
3287
$4->push_front($2);
3288
$$= new (YYTHD->mem_root) Item_row(*$4);
3288
$$= new (YYSession->mem_root) Item_row(*$4);
3290
3290
| ROW_SYM '(' expr ',' expr_list ')'
3292
3292
$5->push_front($3);
3293
$$= new (YYTHD->mem_root) Item_row(*$5);
3293
$$= new (YYSession->mem_root) Item_row(*$5);
3295
3295
| EXISTS '(' subselect ')'
3297
$$= new (YYTHD->mem_root) Item_exists_subselect($3);
3297
$$= new (YYSession->mem_root) Item_exists_subselect($3);
3299
3299
| '{' ident expr '}' { $$= $3; }
3300
3300
| BINARY simple_expr %prec NEG
3302
$$= create_func_cast(YYTHD, $2, ITEM_CAST_CHAR, NULL, NULL,
3302
$$= create_func_cast(YYSession, $2, ITEM_CAST_CHAR, NULL, NULL,
3303
3303
&my_charset_bin);
3305
3305
| CAST_SYM '(' expr AS cast_type ')'
3308
$$= create_func_cast(YYTHD, $3, $5, lex->length, lex->dec,
3308
$$= create_func_cast(YYSession, $3, $5, lex->length, lex->dec,
3311
3311
DRIZZLE_YYABORT;
3313
3313
| CASE_SYM opt_expr when_list opt_else END
3314
{ $$= new (YYTHD->mem_root) Item_func_case(* $3, $2, $4 ); }
3314
{ $$= new (YYSession->mem_root) Item_func_case(* $3, $2, $4 ); }
3315
3315
| CONVERT_SYM '(' expr ',' cast_type ')'
3317
$$= create_func_cast(YYTHD, $3, $5, Lex->length, Lex->dec,
3317
$$= create_func_cast(YYSession, $3, $5, Lex->length, Lex->dec,
3320
3320
DRIZZLE_YYABORT;
3322
3322
| DEFAULT '(' simple_ident ')'
3324
$$= new (YYTHD->mem_root) Item_default_value(Lex->current_context(),
3324
$$= new (YYSession->mem_root) Item_default_value(Lex->current_context(),
3327
3327
| VALUES '(' simple_ident_nospvar ')'
3329
$$= new (YYTHD->mem_root) Item_insert_value(Lex->current_context(),
3329
$$= new (YYSession->mem_root) Item_insert_value(Lex->current_context(),
3332
3332
| INTERVAL_SYM expr interval '+' expr %prec INTERVAL_SYM
3333
3333
/* we cannot put interval before - */
3334
{ $$= new (YYTHD->mem_root) Item_date_add_interval($5,$2,$3,0); }
3334
{ $$= new (YYSession->mem_root) Item_date_add_interval($5,$2,$3,0); }
3343
3343
function_call_keyword:
3344
3344
CHAR_SYM '(' expr_list ')'
3345
{ $$= new (YYTHD->mem_root) Item_func_char(*$3); }
3345
{ $$= new (YYSession->mem_root) Item_func_char(*$3); }
3346
3346
| CURRENT_USER optional_braces
3348
$$= new (YYTHD->mem_root) Item_func_current_user(Lex->current_context());
3348
$$= new (YYSession->mem_root) Item_func_current_user(Lex->current_context());
3349
3349
Lex->set_stmt_unsafe();
3351
3351
| DATE_SYM '(' expr ')'
3352
{ $$= new (YYTHD->mem_root) Item_date_typecast($3); }
3352
{ $$= new (YYSession->mem_root) Item_date_typecast($3); }
3353
3353
| DAY_SYM '(' expr ')'
3354
{ $$= new (YYTHD->mem_root) Item_func_dayofmonth($3); }
3354
{ $$= new (YYSession->mem_root) Item_func_dayofmonth($3); }
3355
3355
| HOUR_SYM '(' expr ')'
3356
{ $$= new (YYTHD->mem_root) Item_func_hour($3); }
3356
{ $$= new (YYSession->mem_root) Item_func_hour($3); }
3357
3357
| INSERT '(' expr ',' expr ',' expr ',' expr ')'
3358
{ $$= new (YYTHD->mem_root) Item_func_insert($3,$5,$7,$9); }
3358
{ $$= new (YYSession->mem_root) Item_func_insert($3,$5,$7,$9); }
3359
3359
| INTERVAL_SYM '(' expr ',' expr ')' %prec INTERVAL_SYM
3362
List<Item> *list= new (thd->mem_root) List<Item>;
3361
Session *session= YYSession;
3362
List<Item> *list= new (session->mem_root) List<Item>;
3363
3363
list->push_front($5);
3364
3364
list->push_front($3);
3365
Item_row *item= new (thd->mem_root) Item_row(*list);
3366
$$= new (thd->mem_root) Item_func_interval(item);
3365
Item_row *item= new (session->mem_root) Item_row(*list);
3366
$$= new (session->mem_root) Item_func_interval(item);
3368
3368
| INTERVAL_SYM '(' expr ',' expr ',' expr_list ')' %prec INTERVAL_SYM
3370
Session *session= YYSession;
3371
3371
$7->push_front($5);
3372
3372
$7->push_front($3);
3373
Item_row *item= new (thd->mem_root) Item_row(*$7);
3374
$$= new (thd->mem_root) Item_func_interval(item);
3373
Item_row *item= new (session->mem_root) Item_row(*$7);
3374
$$= new (session->mem_root) Item_func_interval(item);
3376
3376
| LEFT '(' expr ',' expr ')'
3377
{ $$= new (YYTHD->mem_root) Item_func_left($3,$5); }
3377
{ $$= new (YYSession->mem_root) Item_func_left($3,$5); }
3378
3378
| MINUTE_SYM '(' expr ')'
3379
{ $$= new (YYTHD->mem_root) Item_func_minute($3); }
3379
{ $$= new (YYSession->mem_root) Item_func_minute($3); }
3380
3380
| MONTH_SYM '(' expr ')'
3381
{ $$= new (YYTHD->mem_root) Item_func_month($3); }
3381
{ $$= new (YYSession->mem_root) Item_func_month($3); }
3382
3382
| RIGHT '(' expr ',' expr ')'
3383
{ $$= new (YYTHD->mem_root) Item_func_right($3,$5); }
3383
{ $$= new (YYSession->mem_root) Item_func_right($3,$5); }
3384
3384
| SECOND_SYM '(' expr ')'
3385
{ $$= new (YYTHD->mem_root) Item_func_second($3); }
3385
{ $$= new (YYSession->mem_root) Item_func_second($3); }
3386
3386
| TIME_SYM '(' expr ')'
3387
{ $$= new (YYTHD->mem_root) Item_time_typecast($3); }
3387
{ $$= new (YYSession->mem_root) Item_time_typecast($3); }
3388
3388
| TIMESTAMP '(' expr ')'
3389
{ $$= new (YYTHD->mem_root) Item_datetime_typecast($3); }
3389
{ $$= new (YYSession->mem_root) Item_datetime_typecast($3); }
3390
3390
| TIMESTAMP '(' expr ',' expr ')'
3391
{ $$= new (YYTHD->mem_root) Item_func_add_time($3, $5, 1, 0); }
3391
{ $$= new (YYSession->mem_root) Item_func_add_time($3, $5, 1, 0); }
3392
3392
| TRIM '(' expr ')'
3393
{ $$= new (YYTHD->mem_root) Item_func_trim($3); }
3393
{ $$= new (YYSession->mem_root) Item_func_trim($3); }
3394
3394
| TRIM '(' LEADING expr FROM expr ')'
3395
{ $$= new (YYTHD->mem_root) Item_func_ltrim($6,$4); }
3395
{ $$= new (YYSession->mem_root) Item_func_ltrim($6,$4); }
3396
3396
| TRIM '(' TRAILING expr FROM expr ')'
3397
{ $$= new (YYTHD->mem_root) Item_func_rtrim($6,$4); }
3397
{ $$= new (YYSession->mem_root) Item_func_rtrim($6,$4); }
3398
3398
| TRIM '(' BOTH expr FROM expr ')'
3399
{ $$= new (YYTHD->mem_root) Item_func_trim($6,$4); }
3399
{ $$= new (YYSession->mem_root) Item_func_trim($6,$4); }
3400
3400
| TRIM '(' LEADING FROM expr ')'
3401
{ $$= new (YYTHD->mem_root) Item_func_ltrim($5); }
3401
{ $$= new (YYSession->mem_root) Item_func_ltrim($5); }
3402
3402
| TRIM '(' TRAILING FROM expr ')'
3403
{ $$= new (YYTHD->mem_root) Item_func_rtrim($5); }
3403
{ $$= new (YYSession->mem_root) Item_func_rtrim($5); }
3404
3404
| TRIM '(' BOTH FROM expr ')'
3405
{ $$= new (YYTHD->mem_root) Item_func_trim($5); }
3405
{ $$= new (YYSession->mem_root) Item_func_trim($5); }
3406
3406
| TRIM '(' expr FROM expr ')'
3407
{ $$= new (YYTHD->mem_root) Item_func_trim($5,$3); }
3407
{ $$= new (YYSession->mem_root) Item_func_trim($5,$3); }
3410
$$= new (YYTHD->mem_root) Item_func_user();
3410
$$= new (YYSession->mem_root) Item_func_user();
3411
3411
Lex->set_stmt_unsafe();
3413
3413
| YEAR_SYM '(' expr ')'
3414
{ $$= new (YYTHD->mem_root) Item_func_year($3); }
3414
{ $$= new (YYSession->mem_root) Item_func_year($3); }
3429
3429
function_call_nonkeyword:
3430
3430
ADDDATE_SYM '(' expr ',' expr ')'
3432
$$= new (YYTHD->mem_root) Item_date_add_interval($3, $5,
3432
$$= new (YYSession->mem_root) Item_date_add_interval($3, $5,
3433
3433
INTERVAL_DAY, 0);
3435
3435
| ADDDATE_SYM '(' expr ',' INTERVAL_SYM expr interval ')'
3436
{ $$= new (YYTHD->mem_root) Item_date_add_interval($3, $6, $7, 0); }
3436
{ $$= new (YYSession->mem_root) Item_date_add_interval($3, $6, $7, 0); }
3437
3437
| CURDATE optional_braces
3439
$$= new (YYTHD->mem_root) Item_func_curdate_local();
3439
$$= new (YYSession->mem_root) Item_func_curdate_local();
3441
3441
| CURTIME optional_braces
3443
$$= new (YYTHD->mem_root) Item_func_curtime_local();
3443
$$= new (YYSession->mem_root) Item_func_curtime_local();
3445
3445
| CURTIME '(' expr ')'
3447
$$= new (YYTHD->mem_root) Item_func_curtime_local($3);
3447
$$= new (YYSession->mem_root) Item_func_curtime_local($3);
3449
3449
| DATE_ADD_INTERVAL '(' expr ',' INTERVAL_SYM expr interval ')' %prec INTERVAL_SYM
3450
{ $$= new (YYTHD->mem_root) Item_date_add_interval($3,$6,$7,0); }
3450
{ $$= new (YYSession->mem_root) Item_date_add_interval($3,$6,$7,0); }
3451
3451
| DATE_SUB_INTERVAL '(' expr ',' INTERVAL_SYM expr interval ')' %prec INTERVAL_SYM
3452
{ $$= new (YYTHD->mem_root) Item_date_add_interval($3,$6,$7,1); }
3452
{ $$= new (YYSession->mem_root) Item_date_add_interval($3,$6,$7,1); }
3453
3453
| EXTRACT_SYM '(' interval FROM expr ')'
3454
{ $$=new (YYTHD->mem_root) Item_extract( $3, $5); }
3454
{ $$=new (YYSession->mem_root) Item_extract( $3, $5); }
3455
3455
| GET_FORMAT '(' date_time_type ',' expr ')'
3456
{ $$= new (YYTHD->mem_root) Item_func_get_format($3, $5); }
3456
{ $$= new (YYSession->mem_root) Item_func_get_format($3, $5); }
3457
3457
| NOW_SYM optional_braces
3459
$$= new (YYTHD->mem_root) Item_func_now_local();
3459
$$= new (YYSession->mem_root) Item_func_now_local();
3461
3461
| NOW_SYM '(' expr ')'
3463
$$= new (YYTHD->mem_root) Item_func_now_local($3);
3463
$$= new (YYSession->mem_root) Item_func_now_local($3);
3465
3465
| POSITION_SYM '(' bit_expr IN_SYM expr ')'
3466
{ $$ = new (YYTHD->mem_root) Item_func_locate($5,$3); }
3466
{ $$ = new (YYSession->mem_root) Item_func_locate($5,$3); }
3467
3467
| SUBDATE_SYM '(' expr ',' expr ')'
3469
$$= new (YYTHD->mem_root) Item_date_add_interval($3, $5,
3469
$$= new (YYSession->mem_root) Item_date_add_interval($3, $5,
3470
3470
INTERVAL_DAY, 1);
3472
3472
| SUBDATE_SYM '(' expr ',' INTERVAL_SYM expr interval ')'
3473
{ $$= new (YYTHD->mem_root) Item_date_add_interval($3, $6, $7, 1); }
3473
{ $$= new (YYSession->mem_root) Item_date_add_interval($3, $6, $7, 1); }
3474
3474
| SUBSTRING '(' expr ',' expr ',' expr ')'
3475
{ $$= new (YYTHD->mem_root) Item_func_substr($3,$5,$7); }
3475
{ $$= new (YYSession->mem_root) Item_func_substr($3,$5,$7); }
3476
3476
| SUBSTRING '(' expr ',' expr ')'
3477
{ $$= new (YYTHD->mem_root) Item_func_substr($3,$5); }
3477
{ $$= new (YYSession->mem_root) Item_func_substr($3,$5); }
3478
3478
| SUBSTRING '(' expr FROM expr FOR_SYM expr ')'
3479
{ $$= new (YYTHD->mem_root) Item_func_substr($3,$5,$7); }
3479
{ $$= new (YYSession->mem_root) Item_func_substr($3,$5,$7); }
3480
3480
| SUBSTRING '(' expr FROM expr ')'
3481
{ $$= new (YYTHD->mem_root) Item_func_substr($3,$5); }
3481
{ $$= new (YYSession->mem_root) Item_func_substr($3,$5); }
3482
3482
| SYSDATE optional_braces
3484
3484
if (global_system_variables.sysdate_is_now == 0)
3485
$$= new (YYTHD->mem_root) Item_func_sysdate_local();
3485
$$= new (YYSession->mem_root) Item_func_sysdate_local();
3487
$$= new (YYTHD->mem_root) Item_func_now_local();
3487
$$= new (YYSession->mem_root) Item_func_now_local();
3489
3489
| SYSDATE '(' expr ')'
3491
3491
if (global_system_variables.sysdate_is_now == 0)
3492
$$= new (YYTHD->mem_root) Item_func_sysdate_local($3);
3492
$$= new (YYSession->mem_root) Item_func_sysdate_local($3);
3494
$$= new (YYTHD->mem_root) Item_func_now_local($3);
3494
$$= new (YYSession->mem_root) Item_func_now_local($3);
3496
3496
| TIMESTAMP_ADD '(' interval_time_stamp ',' expr ',' expr ')'
3497
{ $$= new (YYTHD->mem_root) Item_date_add_interval($7,$5,$3,0); }
3497
{ $$= new (YYSession->mem_root) Item_date_add_interval($7,$5,$3,0); }
3498
3498
| TIMESTAMP_DIFF '(' interval_time_stamp ',' expr ',' expr ')'
3499
{ $$= new (YYTHD->mem_root) Item_func_timestamp_diff($5,$7,$3); }
3499
{ $$= new (YYSession->mem_root) Item_func_timestamp_diff($5,$7,$3); }
3500
3500
| UTC_DATE_SYM optional_braces
3502
$$= new (YYTHD->mem_root) Item_func_curdate_utc();
3502
$$= new (YYSession->mem_root) Item_func_curdate_utc();
3504
3504
| UTC_TIME_SYM optional_braces
3506
$$= new (YYTHD->mem_root) Item_func_curtime_utc();
3506
$$= new (YYSession->mem_root) Item_func_curtime_utc();
3508
3508
| UTC_TIMESTAMP_SYM optional_braces
3510
$$= new (YYTHD->mem_root) Item_func_now_utc();
3510
$$= new (YYSession->mem_root) Item_func_now_utc();
3519
3519
function_call_conflict:
3520
3520
ASCII_SYM '(' expr ')'
3521
{ $$= new (YYTHD->mem_root) Item_func_ascii($3); }
3521
{ $$= new (YYSession->mem_root) Item_func_ascii($3); }
3522
3522
| COALESCE '(' expr_list ')'
3523
{ $$= new (YYTHD->mem_root) Item_func_coalesce(* $3); }
3523
{ $$= new (YYSession->mem_root) Item_func_coalesce(* $3); }
3524
3524
| COLLATION_SYM '(' expr ')'
3525
{ $$= new (YYTHD->mem_root) Item_func_collation($3); }
3525
{ $$= new (YYSession->mem_root) Item_func_collation($3); }
3526
3526
| DATABASE '(' ')'
3528
$$= new (YYTHD->mem_root) Item_func_database();
3528
$$= new (YYSession->mem_root) Item_func_database();
3530
3530
| IF '(' expr ',' expr ',' expr ')'
3531
{ $$= new (YYTHD->mem_root) Item_func_if($3,$5,$7); }
3531
{ $$= new (YYSession->mem_root) Item_func_if($3,$5,$7); }
3532
3532
| MICROSECOND_SYM '(' expr ')'
3533
{ $$= new (YYTHD->mem_root) Item_func_microsecond($3); }
3533
{ $$= new (YYSession->mem_root) Item_func_microsecond($3); }
3534
3534
| MOD_SYM '(' expr ',' expr ')'
3535
{ $$ = new (YYTHD->mem_root) Item_func_mod( $3, $5); }
3535
{ $$ = new (YYSession->mem_root) Item_func_mod( $3, $5); }
3536
3536
| QUARTER_SYM '(' expr ')'
3537
{ $$ = new (YYTHD->mem_root) Item_func_quarter($3); }
3537
{ $$ = new (YYSession->mem_root) Item_func_quarter($3); }
3538
3538
| REPEAT_SYM '(' expr ',' expr ')'
3539
{ $$= new (YYTHD->mem_root) Item_func_repeat($3,$5); }
3539
{ $$= new (YYSession->mem_root) Item_func_repeat($3,$5); }
3540
3540
| REPLACE '(' expr ',' expr ',' expr ')'
3541
{ $$= new (YYTHD->mem_root) Item_func_replace($3,$5,$7); }
3541
{ $$= new (YYSession->mem_root) Item_func_replace($3,$5,$7); }
3542
3542
| REVERSE_SYM '(' expr ')'
3543
{ $$= new (YYTHD->mem_root) Item_func_reverse($3); }
3543
{ $$= new (YYSession->mem_root) Item_func_reverse($3); }
3544
3544
| TRUNCATE_SYM '(' expr ',' expr ')'
3545
{ $$= new (YYTHD->mem_root) Item_func_round($3,$5,1); }
3545
{ $$= new (YYSession->mem_root) Item_func_round($3,$5,1); }
3546
3546
| WEEK_SYM '(' expr ')'
3549
Item *i1= new (thd->mem_root) Item_int((char*) "0",
3550
thd->variables.default_week_format,
3548
Session *session= YYSession;
3549
Item *i1= new (session->mem_root) Item_int((char*) "0",
3550
session->variables.default_week_format,
3553
$$= new (thd->mem_root) Item_func_week($3, i1);
3553
$$= new (session->mem_root) Item_func_week($3, i1);
3555
3555
| WEEK_SYM '(' expr ',' expr ')'
3556
{ $$= new (YYTHD->mem_root) Item_func_week($3,$5); }
3556
{ $$= new (YYSession->mem_root) Item_func_week($3,$5); }
3557
3557
| WEIGHT_STRING_SYM '(' expr opt_ws_levels ')'
3558
{ $$= new (YYTHD->mem_root) Item_func_weight_string($3, 0, $4); }
3558
{ $$= new (YYSession->mem_root) Item_func_weight_string($3, 0, $4); }
3559
3559
| WEIGHT_STRING_SYM '(' expr AS CHAR_SYM ws_nweights opt_ws_levels ')'
3561
$$= new (YYTHD->mem_root)
3561
$$= new (YYSession->mem_root)
3562
3562
Item_func_weight_string($3, $6, $7|MY_STRXFRM_PAD_WITH_SPACE);
3564
3564
| WEIGHT_STRING_SYM '(' expr AS BINARY ws_nweights ')'
3566
$3= create_func_char_cast(YYTHD, $3, $6, &my_charset_bin);
3567
$$= new (YYTHD->mem_root)
3566
$3= create_func_char_cast(YYSession, $3, $6, &my_charset_bin);
3567
$$= new (YYSession->mem_root)
3568
3568
Item_func_weight_string($3, $6, MY_STRXFRM_PAD_WITH_SPACE);
5660
5660
LEX_STRING tmp;
5662
const CHARSET_INFO * const cs_con= thd->variables.collation_connection;
5663
const CHARSET_INFO * const cs_cli= thd->variables.character_set_client;
5664
uint32_t repertoire= thd->lex->text_string_is_7bit &&
5661
Session *session= YYSession;
5662
const CHARSET_INFO * const cs_con= session->variables.collation_connection;
5663
const CHARSET_INFO * const cs_cli= session->variables.character_set_client;
5664
uint32_t repertoire= session->lex->text_string_is_7bit &&
5665
5665
my_charset_is_ascii_based(cs_cli) ?
5666
5666
MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30;
5667
if (thd->charset_is_collation_connection ||
5667
if (session->charset_is_collation_connection ||
5668
5668
(repertoire == MY_REPERTOIRE_ASCII &&
5669
5669
my_charset_is_ascii_based(cs_con)))
5672
thd->convert_string(&tmp, cs_con, $1.str, $1.length, cs_cli);
5672
session->convert_string(&tmp, cs_con, $1.str, $1.length, cs_cli);
5673
5673
$$= new Item_string(tmp.str, tmp.length, cs_con,
5674
5674
DERIVATION_COERCIBLE, repertoire);
5940
5940
| ident '.' ident '.' ident
5942
Session *session= YYSession;
5943
LEX *lex= session->lex;
5944
5944
SELECT_LEX *sel= lex->current_select;
5945
5945
if (sel->no_table_names_allowed)
5947
5947
my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
5948
MYF(0), $3.str, thd->where);
5948
MYF(0), $3.str, session->where);
5950
5950
$$= (sel->parsing_place != IN_HAVING ||
5951
5951
sel->get_in_sum_expr() > 0) ?
5952
5952
(Item*) new Item_field(Lex->current_context(),
5953
(YYTHD->client_capabilities &
5953
(YYSession->client_capabilities &
5954
5954
CLIENT_NO_SCHEMA ? NULL : $1.str),
5955
5955
$3.str, $5.str) :
5956
5956
(Item*) new Item_ref(Lex->current_context(),
5957
(YYTHD->client_capabilities &
5957
(YYSession->client_capabilities &
5958
5958
CLIENT_NO_SCHEMA ? NULL : $1.str),
5959
5959
$3.str, $5.str);
6022
thd->convert_string(&$$, system_charset_info,
6023
$1.str, $1.length, thd->charset());
6022
session->convert_string(&$$, system_charset_info,
6023
$1.str, $1.length, session->charset());
6027
6027
TEXT_STRING_sys:
6030
Session *session= YYSession;
6032
if (thd->charset_is_system_charset)
6032
if (session->charset_is_system_charset)
6035
thd->convert_string(&$$, system_charset_info,
6036
$1.str, $1.length, thd->charset());
6035
session->convert_string(&$$, system_charset_info,
6036
$1.str, $1.length, session->charset());
6040
6040
TEXT_STRING_literal:
6043
Session *session= YYSession;
6045
if (thd->charset_is_collation_connection)
6045
if (session->charset_is_collation_connection)
6048
thd->convert_string(&$$, thd->variables.collation_connection,
6049
$1.str, $1.length, thd->charset());
6048
session->convert_string(&$$, session->variables.collation_connection,
6049
$1.str, $1.length, session->charset());
6053
6053
TEXT_STRING_filesystem:
6056
Session *session= YYSession;
6058
if (thd->charset_is_character_set_filesystem)
6058
if (session->charset_is_character_set_filesystem)
6061
thd->convert_string(&$$, thd->variables.character_set_filesystem,
6062
$1.str, $1.length, thd->charset());
6061
session->convert_string(&$$, session->variables.character_set_filesystem,
6062
$1.str, $1.length, session->charset());