3129
$$ = new (YYTHD->mem_root) Item_cond_and($1, $3);
3129
$$ = new (YYSession->mem_root) Item_cond_and($1, $3);
3132
3132
| NOT_SYM expr %prec NOT_SYM
3133
{ $$= negate_expression(YYTHD, $2); }
3133
{ $$= negate_expression(YYSession, $2); }
3134
3134
| bool_pri IS TRUE_SYM %prec IS
3135
{ $$= new (YYTHD->mem_root) Item_func_istrue($1); }
3135
{ $$= new (YYSession->mem_root) Item_func_istrue($1); }
3136
3136
| bool_pri IS not TRUE_SYM %prec IS
3137
{ $$= new (YYTHD->mem_root) Item_func_isnottrue($1); }
3137
{ $$= new (YYSession->mem_root) Item_func_isnottrue($1); }
3138
3138
| bool_pri IS FALSE_SYM %prec IS
3139
{ $$= new (YYTHD->mem_root) Item_func_isfalse($1); }
3139
{ $$= new (YYSession->mem_root) Item_func_isfalse($1); }
3140
3140
| bool_pri IS not FALSE_SYM %prec IS
3141
{ $$= new (YYTHD->mem_root) Item_func_isnotfalse($1); }
3141
{ $$= new (YYSession->mem_root) Item_func_isnotfalse($1); }
3142
3142
| bool_pri IS UNKNOWN_SYM %prec IS
3143
3143
{ $$= new Item_func_isnull($1); }
3144
3144
| bool_pri IS not UNKNOWN_SYM %prec IS
3164
3164
bit_expr IN_SYM '(' subselect ')'
3166
$$= new (YYTHD->mem_root) Item_in_subselect($1, $4);
3166
$$= new (YYSession->mem_root) Item_in_subselect($1, $4);
3168
3168
| bit_expr not IN_SYM '(' subselect ')'
3171
Item *item= new (thd->mem_root) Item_in_subselect($1, $5);
3172
$$= negate_expression(thd, item);
3170
Session *session= YYSession;
3171
Item *item= new (session->mem_root) Item_in_subselect($1, $5);
3172
$$= negate_expression(session, item);
3174
3174
| bit_expr IN_SYM '(' expr ')'
3176
$$= handle_sql2003_note184_exception(YYTHD, $1, true, $4);
3176
$$= handle_sql2003_note184_exception(YYSession, $1, true, $4);
3178
3178
| bit_expr IN_SYM '(' expr ',' expr_list ')'
3180
3180
$6->push_front($4);
3181
3181
$6->push_front($1);
3182
$$= new (YYTHD->mem_root) Item_func_in(*$6);
3182
$$= new (YYSession->mem_root) Item_func_in(*$6);
3184
3184
| bit_expr not IN_SYM '(' expr ')'
3186
$$= handle_sql2003_note184_exception(YYTHD, $1, false, $5);
3186
$$= handle_sql2003_note184_exception(YYSession, $1, false, $5);
3188
3188
| bit_expr not IN_SYM '(' expr ',' expr_list ')'
3190
3190
$7->push_front($5);
3191
3191
$7->push_front($1);
3192
Item_func_in *item = new (YYTHD->mem_root) Item_func_in(*$7);
3192
Item_func_in *item = new (YYSession->mem_root) Item_func_in(*$7);
3193
3193
item->negate();
3264
3264
| function_call_conflict
3265
3265
| simple_expr COLLATE_SYM ident_or_text %prec NEG
3268
Item *i1= new (thd->mem_root) Item_string($3.str,
3267
Session *session= YYSession;
3268
Item *i1= new (session->mem_root) Item_string($3.str,
3271
$$= new (thd->mem_root) Item_func_set_collation($1, i1);
3270
session->charset());
3271
$$= new (session->mem_root) Item_func_set_collation($1, i1);
3276
3276
| '+' simple_expr %prec NEG { $$= $2; }
3277
3277
| '-' simple_expr %prec NEG
3278
{ $$= new (YYTHD->mem_root) Item_func_neg($2); }
3278
{ $$= new (YYSession->mem_root) Item_func_neg($2); }
3279
3279
| '(' subselect ')'
3281
$$= new (YYTHD->mem_root) Item_singlerow_subselect($2);
3281
$$= new (YYSession->mem_root) Item_singlerow_subselect($2);
3283
3283
| '(' expr ')' { $$= $2; }
3284
3284
| '(' expr ',' expr_list ')'
3286
3286
$4->push_front($2);
3287
$$= new (YYTHD->mem_root) Item_row(*$4);
3287
$$= new (YYSession->mem_root) Item_row(*$4);
3289
3289
| ROW_SYM '(' expr ',' expr_list ')'
3291
3291
$5->push_front($3);
3292
$$= new (YYTHD->mem_root) Item_row(*$5);
3292
$$= new (YYSession->mem_root) Item_row(*$5);
3294
3294
| EXISTS '(' subselect ')'
3296
$$= new (YYTHD->mem_root) Item_exists_subselect($3);
3296
$$= new (YYSession->mem_root) Item_exists_subselect($3);
3298
3298
| '{' ident expr '}' { $$= $3; }
3299
3299
| BINARY simple_expr %prec NEG
3301
$$= create_func_cast(YYTHD, $2, ITEM_CAST_CHAR, NULL, NULL,
3301
$$= create_func_cast(YYSession, $2, ITEM_CAST_CHAR, NULL, NULL,
3302
3302
&my_charset_bin);
3304
3304
| CAST_SYM '(' expr AS cast_type ')'
3307
$$= create_func_cast(YYTHD, $3, $5, lex->length, lex->dec,
3307
$$= create_func_cast(YYSession, $3, $5, lex->length, lex->dec,
3310
3310
DRIZZLE_YYABORT;
3312
3312
| CASE_SYM opt_expr when_list opt_else END
3313
{ $$= new (YYTHD->mem_root) Item_func_case(* $3, $2, $4 ); }
3313
{ $$= new (YYSession->mem_root) Item_func_case(* $3, $2, $4 ); }
3314
3314
| CONVERT_SYM '(' expr ',' cast_type ')'
3316
$$= create_func_cast(YYTHD, $3, $5, Lex->length, Lex->dec,
3316
$$= create_func_cast(YYSession, $3, $5, Lex->length, Lex->dec,
3319
3319
DRIZZLE_YYABORT;
3321
3321
| DEFAULT '(' simple_ident ')'
3323
$$= new (YYTHD->mem_root) Item_default_value(Lex->current_context(),
3323
$$= new (YYSession->mem_root) Item_default_value(Lex->current_context(),
3326
3326
| VALUES '(' simple_ident_nospvar ')'
3328
$$= new (YYTHD->mem_root) Item_insert_value(Lex->current_context(),
3328
$$= new (YYSession->mem_root) Item_insert_value(Lex->current_context(),
3331
3331
| INTERVAL_SYM expr interval '+' expr %prec INTERVAL_SYM
3332
3332
/* we cannot put interval before - */
3333
{ $$= new (YYTHD->mem_root) Item_date_add_interval($5,$2,$3,0); }
3333
{ $$= new (YYSession->mem_root) Item_date_add_interval($5,$2,$3,0); }
3342
3342
function_call_keyword:
3343
3343
CHAR_SYM '(' expr_list ')'
3344
{ $$= new (YYTHD->mem_root) Item_func_char(*$3); }
3344
{ $$= new (YYSession->mem_root) Item_func_char(*$3); }
3345
3345
| CURRENT_USER optional_braces
3347
$$= new (YYTHD->mem_root) Item_func_current_user(Lex->current_context());
3347
$$= new (YYSession->mem_root) Item_func_current_user(Lex->current_context());
3348
3348
Lex->set_stmt_unsafe();
3350
3350
| DATE_SYM '(' expr ')'
3351
{ $$= new (YYTHD->mem_root) Item_date_typecast($3); }
3351
{ $$= new (YYSession->mem_root) Item_date_typecast($3); }
3352
3352
| DAY_SYM '(' expr ')'
3353
{ $$= new (YYTHD->mem_root) Item_func_dayofmonth($3); }
3353
{ $$= new (YYSession->mem_root) Item_func_dayofmonth($3); }
3354
3354
| HOUR_SYM '(' expr ')'
3355
{ $$= new (YYTHD->mem_root) Item_func_hour($3); }
3355
{ $$= new (YYSession->mem_root) Item_func_hour($3); }
3356
3356
| INSERT '(' expr ',' expr ',' expr ',' expr ')'
3357
{ $$= new (YYTHD->mem_root) Item_func_insert($3,$5,$7,$9); }
3357
{ $$= new (YYSession->mem_root) Item_func_insert($3,$5,$7,$9); }
3358
3358
| INTERVAL_SYM '(' expr ',' expr ')' %prec INTERVAL_SYM
3361
List<Item> *list= new (thd->mem_root) List<Item>;
3360
Session *session= YYSession;
3361
List<Item> *list= new (session->mem_root) List<Item>;
3362
3362
list->push_front($5);
3363
3363
list->push_front($3);
3364
Item_row *item= new (thd->mem_root) Item_row(*list);
3365
$$= new (thd->mem_root) Item_func_interval(item);
3364
Item_row *item= new (session->mem_root) Item_row(*list);
3365
$$= new (session->mem_root) Item_func_interval(item);
3367
3367
| INTERVAL_SYM '(' expr ',' expr ',' expr_list ')' %prec INTERVAL_SYM
3369
Session *session= YYSession;
3370
3370
$7->push_front($5);
3371
3371
$7->push_front($3);
3372
Item_row *item= new (thd->mem_root) Item_row(*$7);
3373
$$= new (thd->mem_root) Item_func_interval(item);
3372
Item_row *item= new (session->mem_root) Item_row(*$7);
3373
$$= new (session->mem_root) Item_func_interval(item);
3375
3375
| LEFT '(' expr ',' expr ')'
3376
{ $$= new (YYTHD->mem_root) Item_func_left($3,$5); }
3376
{ $$= new (YYSession->mem_root) Item_func_left($3,$5); }
3377
3377
| MINUTE_SYM '(' expr ')'
3378
{ $$= new (YYTHD->mem_root) Item_func_minute($3); }
3378
{ $$= new (YYSession->mem_root) Item_func_minute($3); }
3379
3379
| MONTH_SYM '(' expr ')'
3380
{ $$= new (YYTHD->mem_root) Item_func_month($3); }
3380
{ $$= new (YYSession->mem_root) Item_func_month($3); }
3381
3381
| RIGHT '(' expr ',' expr ')'
3382
{ $$= new (YYTHD->mem_root) Item_func_right($3,$5); }
3382
{ $$= new (YYSession->mem_root) Item_func_right($3,$5); }
3383
3383
| SECOND_SYM '(' expr ')'
3384
{ $$= new (YYTHD->mem_root) Item_func_second($3); }
3384
{ $$= new (YYSession->mem_root) Item_func_second($3); }
3385
3385
| TIME_SYM '(' expr ')'
3386
{ $$= new (YYTHD->mem_root) Item_time_typecast($3); }
3386
{ $$= new (YYSession->mem_root) Item_time_typecast($3); }
3387
3387
| TIMESTAMP '(' expr ')'
3388
{ $$= new (YYTHD->mem_root) Item_datetime_typecast($3); }
3388
{ $$= new (YYSession->mem_root) Item_datetime_typecast($3); }
3389
3389
| TIMESTAMP '(' expr ',' expr ')'
3390
{ $$= new (YYTHD->mem_root) Item_func_add_time($3, $5, 1, 0); }
3390
{ $$= new (YYSession->mem_root) Item_func_add_time($3, $5, 1, 0); }
3391
3391
| TRIM '(' expr ')'
3392
{ $$= new (YYTHD->mem_root) Item_func_trim($3); }
3392
{ $$= new (YYSession->mem_root) Item_func_trim($3); }
3393
3393
| TRIM '(' LEADING expr FROM expr ')'
3394
{ $$= new (YYTHD->mem_root) Item_func_ltrim($6,$4); }
3394
{ $$= new (YYSession->mem_root) Item_func_ltrim($6,$4); }
3395
3395
| TRIM '(' TRAILING expr FROM expr ')'
3396
{ $$= new (YYTHD->mem_root) Item_func_rtrim($6,$4); }
3396
{ $$= new (YYSession->mem_root) Item_func_rtrim($6,$4); }
3397
3397
| TRIM '(' BOTH expr FROM expr ')'
3398
{ $$= new (YYTHD->mem_root) Item_func_trim($6,$4); }
3398
{ $$= new (YYSession->mem_root) Item_func_trim($6,$4); }
3399
3399
| TRIM '(' LEADING FROM expr ')'
3400
{ $$= new (YYTHD->mem_root) Item_func_ltrim($5); }
3400
{ $$= new (YYSession->mem_root) Item_func_ltrim($5); }
3401
3401
| TRIM '(' TRAILING FROM expr ')'
3402
{ $$= new (YYTHD->mem_root) Item_func_rtrim($5); }
3402
{ $$= new (YYSession->mem_root) Item_func_rtrim($5); }
3403
3403
| TRIM '(' BOTH FROM expr ')'
3404
{ $$= new (YYTHD->mem_root) Item_func_trim($5); }
3404
{ $$= new (YYSession->mem_root) Item_func_trim($5); }
3405
3405
| TRIM '(' expr FROM expr ')'
3406
{ $$= new (YYTHD->mem_root) Item_func_trim($5,$3); }
3406
{ $$= new (YYSession->mem_root) Item_func_trim($5,$3); }
3409
$$= new (YYTHD->mem_root) Item_func_user();
3409
$$= new (YYSession->mem_root) Item_func_user();
3410
3410
Lex->set_stmt_unsafe();
3412
3412
| YEAR_SYM '(' expr ')'
3413
{ $$= new (YYTHD->mem_root) Item_func_year($3); }
3413
{ $$= new (YYSession->mem_root) Item_func_year($3); }
3428
3428
function_call_nonkeyword:
3429
3429
ADDDATE_SYM '(' expr ',' expr ')'
3431
$$= new (YYTHD->mem_root) Item_date_add_interval($3, $5,
3431
$$= new (YYSession->mem_root) Item_date_add_interval($3, $5,
3432
3432
INTERVAL_DAY, 0);
3434
3434
| ADDDATE_SYM '(' expr ',' INTERVAL_SYM expr interval ')'
3435
{ $$= new (YYTHD->mem_root) Item_date_add_interval($3, $6, $7, 0); }
3435
{ $$= new (YYSession->mem_root) Item_date_add_interval($3, $6, $7, 0); }
3436
3436
| CURDATE optional_braces
3438
$$= new (YYTHD->mem_root) Item_func_curdate_local();
3438
$$= new (YYSession->mem_root) Item_func_curdate_local();
3440
3440
| CURTIME optional_braces
3442
$$= new (YYTHD->mem_root) Item_func_curtime_local();
3442
$$= new (YYSession->mem_root) Item_func_curtime_local();
3444
3444
| CURTIME '(' expr ')'
3446
$$= new (YYTHD->mem_root) Item_func_curtime_local($3);
3446
$$= new (YYSession->mem_root) Item_func_curtime_local($3);
3448
3448
| DATE_ADD_INTERVAL '(' expr ',' INTERVAL_SYM expr interval ')' %prec INTERVAL_SYM
3449
{ $$= new (YYTHD->mem_root) Item_date_add_interval($3,$6,$7,0); }
3449
{ $$= new (YYSession->mem_root) Item_date_add_interval($3,$6,$7,0); }
3450
3450
| DATE_SUB_INTERVAL '(' expr ',' INTERVAL_SYM expr interval ')' %prec INTERVAL_SYM
3451
{ $$= new (YYTHD->mem_root) Item_date_add_interval($3,$6,$7,1); }
3451
{ $$= new (YYSession->mem_root) Item_date_add_interval($3,$6,$7,1); }
3452
3452
| EXTRACT_SYM '(' interval FROM expr ')'
3453
{ $$=new (YYTHD->mem_root) Item_extract( $3, $5); }
3453
{ $$=new (YYSession->mem_root) Item_extract( $3, $5); }
3454
3454
| GET_FORMAT '(' date_time_type ',' expr ')'
3455
{ $$= new (YYTHD->mem_root) Item_func_get_format($3, $5); }
3455
{ $$= new (YYSession->mem_root) Item_func_get_format($3, $5); }
3456
3456
| NOW_SYM optional_braces
3458
$$= new (YYTHD->mem_root) Item_func_now_local();
3458
$$= new (YYSession->mem_root) Item_func_now_local();
3460
3460
| NOW_SYM '(' expr ')'
3462
$$= new (YYTHD->mem_root) Item_func_now_local($3);
3462
$$= new (YYSession->mem_root) Item_func_now_local($3);
3464
3464
| POSITION_SYM '(' bit_expr IN_SYM expr ')'
3465
{ $$ = new (YYTHD->mem_root) Item_func_locate($5,$3); }
3465
{ $$ = new (YYSession->mem_root) Item_func_locate($5,$3); }
3466
3466
| SUBDATE_SYM '(' expr ',' expr ')'
3468
$$= new (YYTHD->mem_root) Item_date_add_interval($3, $5,
3468
$$= new (YYSession->mem_root) Item_date_add_interval($3, $5,
3469
3469
INTERVAL_DAY, 1);
3471
3471
| SUBDATE_SYM '(' expr ',' INTERVAL_SYM expr interval ')'
3472
{ $$= new (YYTHD->mem_root) Item_date_add_interval($3, $6, $7, 1); }
3472
{ $$= new (YYSession->mem_root) Item_date_add_interval($3, $6, $7, 1); }
3473
3473
| SUBSTRING '(' expr ',' expr ',' expr ')'
3474
{ $$= new (YYTHD->mem_root) Item_func_substr($3,$5,$7); }
3474
{ $$= new (YYSession->mem_root) Item_func_substr($3,$5,$7); }
3475
3475
| SUBSTRING '(' expr ',' expr ')'
3476
{ $$= new (YYTHD->mem_root) Item_func_substr($3,$5); }
3476
{ $$= new (YYSession->mem_root) Item_func_substr($3,$5); }
3477
3477
| SUBSTRING '(' expr FROM expr FOR_SYM expr ')'
3478
{ $$= new (YYTHD->mem_root) Item_func_substr($3,$5,$7); }
3478
{ $$= new (YYSession->mem_root) Item_func_substr($3,$5,$7); }
3479
3479
| SUBSTRING '(' expr FROM expr ')'
3480
{ $$= new (YYTHD->mem_root) Item_func_substr($3,$5); }
3480
{ $$= new (YYSession->mem_root) Item_func_substr($3,$5); }
3481
3481
| SYSDATE optional_braces
3483
3483
if (global_system_variables.sysdate_is_now == 0)
3484
$$= new (YYTHD->mem_root) Item_func_sysdate_local();
3484
$$= new (YYSession->mem_root) Item_func_sysdate_local();
3486
$$= new (YYTHD->mem_root) Item_func_now_local();
3486
$$= new (YYSession->mem_root) Item_func_now_local();
3488
3488
| SYSDATE '(' expr ')'
3490
3490
if (global_system_variables.sysdate_is_now == 0)
3491
$$= new (YYTHD->mem_root) Item_func_sysdate_local($3);
3491
$$= new (YYSession->mem_root) Item_func_sysdate_local($3);
3493
$$= new (YYTHD->mem_root) Item_func_now_local($3);
3493
$$= new (YYSession->mem_root) Item_func_now_local($3);
3495
3495
| TIMESTAMP_ADD '(' interval_time_stamp ',' expr ',' expr ')'
3496
{ $$= new (YYTHD->mem_root) Item_date_add_interval($7,$5,$3,0); }
3496
{ $$= new (YYSession->mem_root) Item_date_add_interval($7,$5,$3,0); }
3497
3497
| TIMESTAMP_DIFF '(' interval_time_stamp ',' expr ',' expr ')'
3498
{ $$= new (YYTHD->mem_root) Item_func_timestamp_diff($5,$7,$3); }
3498
{ $$= new (YYSession->mem_root) Item_func_timestamp_diff($5,$7,$3); }
3499
3499
| UTC_DATE_SYM optional_braces
3501
$$= new (YYTHD->mem_root) Item_func_curdate_utc();
3501
$$= new (YYSession->mem_root) Item_func_curdate_utc();
3503
3503
| UTC_TIME_SYM optional_braces
3505
$$= new (YYTHD->mem_root) Item_func_curtime_utc();
3505
$$= new (YYSession->mem_root) Item_func_curtime_utc();
3507
3507
| UTC_TIMESTAMP_SYM optional_braces
3509
$$= new (YYTHD->mem_root) Item_func_now_utc();
3509
$$= new (YYSession->mem_root) Item_func_now_utc();
3518
3518
function_call_conflict:
3519
3519
ASCII_SYM '(' expr ')'
3520
{ $$= new (YYTHD->mem_root) Item_func_ascii($3); }
3520
{ $$= new (YYSession->mem_root) Item_func_ascii($3); }
3521
3521
| COALESCE '(' expr_list ')'
3522
{ $$= new (YYTHD->mem_root) Item_func_coalesce(* $3); }
3522
{ $$= new (YYSession->mem_root) Item_func_coalesce(* $3); }
3523
3523
| COLLATION_SYM '(' expr ')'
3524
{ $$= new (YYTHD->mem_root) Item_func_collation($3); }
3524
{ $$= new (YYSession->mem_root) Item_func_collation($3); }
3525
3525
| DATABASE '(' ')'
3527
$$= new (YYTHD->mem_root) Item_func_database();
3527
$$= new (YYSession->mem_root) Item_func_database();
3529
3529
| IF '(' expr ',' expr ',' expr ')'
3530
{ $$= new (YYTHD->mem_root) Item_func_if($3,$5,$7); }
3530
{ $$= new (YYSession->mem_root) Item_func_if($3,$5,$7); }
3531
3531
| MICROSECOND_SYM '(' expr ')'
3532
{ $$= new (YYTHD->mem_root) Item_func_microsecond($3); }
3532
{ $$= new (YYSession->mem_root) Item_func_microsecond($3); }
3533
3533
| MOD_SYM '(' expr ',' expr ')'
3534
{ $$ = new (YYTHD->mem_root) Item_func_mod( $3, $5); }
3534
{ $$ = new (YYSession->mem_root) Item_func_mod( $3, $5); }
3535
3535
| QUARTER_SYM '(' expr ')'
3536
{ $$ = new (YYTHD->mem_root) Item_func_quarter($3); }
3536
{ $$ = new (YYSession->mem_root) Item_func_quarter($3); }
3537
3537
| REPEAT_SYM '(' expr ',' expr ')'
3538
{ $$= new (YYTHD->mem_root) Item_func_repeat($3,$5); }
3538
{ $$= new (YYSession->mem_root) Item_func_repeat($3,$5); }
3539
3539
| REPLACE '(' expr ',' expr ',' expr ')'
3540
{ $$= new (YYTHD->mem_root) Item_func_replace($3,$5,$7); }
3540
{ $$= new (YYSession->mem_root) Item_func_replace($3,$5,$7); }
3541
3541
| REVERSE_SYM '(' expr ')'
3542
{ $$= new (YYTHD->mem_root) Item_func_reverse($3); }
3542
{ $$= new (YYSession->mem_root) Item_func_reverse($3); }
3543
3543
| TRUNCATE_SYM '(' expr ',' expr ')'
3544
{ $$= new (YYTHD->mem_root) Item_func_round($3,$5,1); }
3544
{ $$= new (YYSession->mem_root) Item_func_round($3,$5,1); }
3545
3545
| WEEK_SYM '(' expr ')'
3548
Item *i1= new (thd->mem_root) Item_int((char*) "0",
3549
thd->variables.default_week_format,
3547
Session *session= YYSession;
3548
Item *i1= new (session->mem_root) Item_int((char*) "0",
3549
session->variables.default_week_format,
3552
$$= new (thd->mem_root) Item_func_week($3, i1);
3552
$$= new (session->mem_root) Item_func_week($3, i1);
3554
3554
| WEEK_SYM '(' expr ',' expr ')'
3555
{ $$= new (YYTHD->mem_root) Item_func_week($3,$5); }
3555
{ $$= new (YYSession->mem_root) Item_func_week($3,$5); }
3556
3556
| WEIGHT_STRING_SYM '(' expr opt_ws_levels ')'
3557
{ $$= new (YYTHD->mem_root) Item_func_weight_string($3, 0, $4); }
3557
{ $$= new (YYSession->mem_root) Item_func_weight_string($3, 0, $4); }
3558
3558
| WEIGHT_STRING_SYM '(' expr AS CHAR_SYM ws_nweights opt_ws_levels ')'
3560
$$= new (YYTHD->mem_root)
3560
$$= new (YYSession->mem_root)
3561
3561
Item_func_weight_string($3, $6, $7|MY_STRXFRM_PAD_WITH_SPACE);
3563
3563
| WEIGHT_STRING_SYM '(' expr AS BINARY ws_nweights ')'
3565
$3= create_func_char_cast(YYTHD, $3, $6, &my_charset_bin);
3566
$$= new (YYTHD->mem_root)
3565
$3= create_func_char_cast(YYSession, $3, $6, &my_charset_bin);
3566
$$= new (YYSession->mem_root)
3567
3567
Item_func_weight_string($3, $6, MY_STRXFRM_PAD_WITH_SPACE);
5659
5659
LEX_STRING tmp;
5661
const CHARSET_INFO * const cs_con= thd->variables.collation_connection;
5662
const CHARSET_INFO * const cs_cli= thd->variables.character_set_client;
5663
uint32_t repertoire= thd->lex->text_string_is_7bit &&
5660
Session *session= YYSession;
5661
const CHARSET_INFO * const cs_con= session->variables.collation_connection;
5662
const CHARSET_INFO * const cs_cli= session->variables.character_set_client;
5663
uint32_t repertoire= session->lex->text_string_is_7bit &&
5664
5664
my_charset_is_ascii_based(cs_cli) ?
5665
5665
MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30;
5666
if (thd->charset_is_collation_connection ||
5666
if (session->charset_is_collation_connection ||
5667
5667
(repertoire == MY_REPERTOIRE_ASCII &&
5668
5668
my_charset_is_ascii_based(cs_con)))
5671
thd->convert_string(&tmp, cs_con, $1.str, $1.length, cs_cli);
5671
session->convert_string(&tmp, cs_con, $1.str, $1.length, cs_cli);
5672
5672
$$= new Item_string(tmp.str, tmp.length, cs_con,
5673
5673
DERIVATION_COERCIBLE, repertoire);
5939
5939
| ident '.' ident '.' ident
5941
Session *session= YYSession;
5942
LEX *lex= session->lex;
5943
5943
SELECT_LEX *sel= lex->current_select;
5944
5944
if (sel->no_table_names_allowed)
5946
5946
my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
5947
MYF(0), $3.str, thd->where);
5947
MYF(0), $3.str, session->where);
5949
5949
$$= (sel->parsing_place != IN_HAVING ||
5950
5950
sel->get_in_sum_expr() > 0) ?
5951
5951
(Item*) new Item_field(Lex->current_context(),
5952
(YYTHD->client_capabilities &
5952
(YYSession->client_capabilities &
5953
5953
CLIENT_NO_SCHEMA ? NULL : $1.str),
5954
5954
$3.str, $5.str) :
5955
5955
(Item*) new Item_ref(Lex->current_context(),
5956
(YYTHD->client_capabilities &
5956
(YYSession->client_capabilities &
5957
5957
CLIENT_NO_SCHEMA ? NULL : $1.str),
5958
5958
$3.str, $5.str);
6021
thd->convert_string(&$$, system_charset_info,
6022
$1.str, $1.length, thd->charset());
6021
session->convert_string(&$$, system_charset_info,
6022
$1.str, $1.length, session->charset());
6026
6026
TEXT_STRING_sys:
6029
Session *session= YYSession;
6031
if (thd->charset_is_system_charset)
6031
if (session->charset_is_system_charset)
6034
thd->convert_string(&$$, system_charset_info,
6035
$1.str, $1.length, thd->charset());
6034
session->convert_string(&$$, system_charset_info,
6035
$1.str, $1.length, session->charset());
6039
6039
TEXT_STRING_literal:
6042
Session *session= YYSession;
6044
if (thd->charset_is_collation_connection)
6044
if (session->charset_is_collation_connection)
6047
thd->convert_string(&$$, thd->variables.collation_connection,
6048
$1.str, $1.length, thd->charset());
6047
session->convert_string(&$$, session->variables.collation_connection,
6048
$1.str, $1.length, session->charset());
6052
6052
TEXT_STRING_filesystem:
6055
Session *session= YYSession;
6057
if (thd->charset_is_character_set_filesystem)
6057
if (session->charset_is_character_set_filesystem)
6060
thd->convert_string(&$$, thd->variables.character_set_filesystem,
6061
$1.str, $1.length, thd->charset());
6060
session->convert_string(&$$, session->variables.character_set_filesystem,
6061
$1.str, $1.length, session->charset());