1
1
/*****************************************************************************
3
Copyright (C) 1997, 2009, Innobase Oy. All Rights Reserved.
3
Copyright (c) 1997, 2009, Innobase Oy. All Rights Reserved.
5
5
This program is free software; you can redistribute it and/or modify it under
6
6
the terms of the GNU General Public License as published by the Free Software
305
304
'*' { $$ = pars_select_list(&pars_star_denoter,
307
306
| select_item_list PARS_INTO_TOKEN variable_list
308
{ $$ = pars_select_list(static_cast<sym_node_t *>($1), static_cast<sym_node_t *>($3)); }
307
{ $$ = pars_select_list($1, $3); }
309
308
| select_item_list { $$ = pars_select_list($1, NULL); }
336
335
/* Nothing */ { $$ = NULL; }
337
336
| PARS_ORDER_TOKEN PARS_BY_TOKEN PARS_ID_TOKEN order_direction
338
{ $$ = pars_order_by(static_cast<sym_node_t *>($3), static_cast<pars_res_word_t *>($4)); }
337
{ $$ = pars_order_by($3, $4); }
341
340
select_statement:
345
344
for_update_clause
346
345
lock_shared_clause
347
order_by_clause { $$ = pars_select_statement(static_cast<sel_node_t *>($2), static_cast<sym_node_t *>($4), $5,
348
static_cast<pars_res_word_t *>($6), static_cast<pars_res_word_t *>($7), static_cast<order_node_t *>($8)); }
346
order_by_clause { $$ = pars_select_statement($2, $4, $5,
351
350
insert_statement_start:
356
355
insert_statement:
357
356
insert_statement_start PARS_VALUES_TOKEN '(' exp_list ')'
358
{ $$ = pars_insert_statement(static_cast<sym_node_t *>($1), $4, NULL); }
357
{ $$ = pars_insert_statement($1, $4, NULL); }
359
358
| insert_statement_start select_statement
360
{ $$ = pars_insert_statement(static_cast<sym_node_t *>($1), NULL, static_cast<sel_node_t *>($2)); }
359
{ $$ = pars_insert_statement($1, NULL, $2); }
363
362
column_assignment:
364
PARS_ID_TOKEN '=' exp { $$ = pars_column_assignment(static_cast<sym_node_t *>($1), $3); }
363
PARS_ID_TOKEN '=' exp { $$ = pars_column_assignment($1, $3); }
367
366
column_assignment_list:
380
379
PARS_UPDATE_TOKEN PARS_ID_TOKEN
382
381
column_assignment_list { $$ = pars_update_statement_start(FALSE,
383
static_cast<sym_node_t *>($2), static_cast<col_assign_node_t *>($4)); }
386
385
update_statement_searched:
387
386
update_statement_start
388
search_condition { $$ = pars_update_statement(static_cast<upd_node_t *>($1), NULL, $2); }
387
search_condition { $$ = pars_update_statement($1, NULL, $2); }
391
390
update_statement_positioned:
392
391
update_statement_start
393
cursor_positioned { $$ = pars_update_statement(static_cast<upd_node_t *>($1), static_cast<sym_node_t *>($2), NULL); }
392
cursor_positioned { $$ = pars_update_statement($1, $2, NULL); }
396
395
delete_statement_start:
397
396
PARS_DELETE_TOKEN PARS_FROM_TOKEN
398
397
PARS_ID_TOKEN { $$ = pars_update_statement_start(TRUE,
399
static_cast<sym_node_t *>($3), NULL); }
402
401
delete_statement_searched:
403
402
delete_statement_start
404
search_condition { $$ = pars_update_statement(static_cast<upd_node_t *>($1), NULL, $2); }
403
search_condition { $$ = pars_update_statement($1, NULL, $2); }
407
406
delete_statement_positioned:
408
407
delete_statement_start
409
cursor_positioned { $$ = pars_update_statement(static_cast<upd_node_t *>($1), static_cast<sym_node_t *>($2), NULL); }
408
cursor_positioned { $$ = pars_update_statement($1, $2, NULL); }
412
411
row_printf_statement:
413
412
PARS_ROW_PRINTF_TOKEN select_statement
414
{ $$ = pars_row_printf_statement(static_cast<sel_node_t *>($2)); }
413
{ $$ = pars_row_printf_statement($2); }
417
416
assignment_statement:
418
417
PARS_ID_TOKEN PARS_ASSIGN_TOKEN exp
419
{ $$ = pars_assignment_statement(static_cast<sym_node_t *>($1), $3); }
418
{ $$ = pars_assignment_statement($1, $3); }
456
455
exp PARS_DDOT_TOKEN exp
457
456
PARS_LOOP_TOKEN statement_list
458
457
PARS_END_TOKEN PARS_LOOP_TOKEN
459
{ $$ = pars_for_statement(static_cast<sym_node_t *>($2), $4, $6, $8); }
458
{ $$ = pars_for_statement($2, $4, $6, $8); }
470
469
open_cursor_statement:
471
470
PARS_OPEN_TOKEN PARS_ID_TOKEN
472
{ $$ = pars_open_statement(ROW_SEL_OPEN_CURSOR,
473
static_cast<sym_node_t *>($2)); }
471
{ $$ = pars_open_statement(
472
ROW_SEL_OPEN_CURSOR, $2); }
476
475
close_cursor_statement:
477
476
PARS_CLOSE_TOKEN PARS_ID_TOKEN
478
{ $$ = pars_open_statement(ROW_SEL_CLOSE_CURSOR,
479
static_cast<sym_node_t *>($2)); }
477
{ $$ = pars_open_statement(
478
ROW_SEL_CLOSE_CURSOR, $2); }
483
482
PARS_FETCH_TOKEN PARS_ID_TOKEN PARS_INTO_TOKEN variable_list
484
{ $$ = pars_fetch_statement(static_cast<sym_node_t *>($2), static_cast<sym_node_t *>($4), NULL); }
483
{ $$ = pars_fetch_statement($2, $4, NULL); }
485
484
| PARS_FETCH_TOKEN PARS_ID_TOKEN PARS_INTO_TOKEN user_function_call
486
{ $$ = pars_fetch_statement(static_cast<sym_node_t *>($2), NULL, static_cast<sym_node_t *>($4)); }
485
{ $$ = pars_fetch_statement($2, NULL, $4); }
490
489
PARS_ID_TOKEN type_name opt_column_len opt_unsigned opt_not_null
491
{ $$ = pars_column_def(static_cast<sym_node_t *>($1), static_cast<pars_res_word_t *>($2), static_cast<sym_node_t *>($3), $4, $5); }
490
{ $$ = pars_column_def($1, $2, $3, $4, $5); }
528
527
PARS_CREATE_TOKEN PARS_TABLE_TOKEN
529
528
PARS_ID_TOKEN '(' column_def_list ')'
530
not_fit_in_memory { $$ = pars_create_table(static_cast<sym_node_t *>($3), static_cast<sym_node_t *>($5), $7); }
529
not_fit_in_memory { $$ = pars_create_table($3, $5, $7); }
553
552
PARS_ID_TOKEN PARS_ON_TOKEN PARS_ID_TOKEN
554
'(' column_list ')' { $$ = pars_create_index(static_cast<pars_res_word_t *>($2), static_cast<pars_res_word_t *>($3), static_cast<sym_node_t *>($5), static_cast<sym_node_t *>($7), static_cast<sym_node_t *>($9)); }
553
'(' column_list ')' { $$ = pars_create_index($2, $3, $5, $7, $9); }
557
556
commit_statement:
575
574
parameter_declaration:
576
575
PARS_ID_TOKEN PARS_IN_TOKEN type_name
577
{ $$ = pars_parameter_declaration(static_cast<sym_node_t *>($1),
578
PARS_INPUT, static_cast<pars_res_word_t *>($3)); }
576
{ $$ = pars_parameter_declaration($1,
579
578
| PARS_ID_TOKEN PARS_OUT_TOKEN type_name
580
{ $$ = pars_parameter_declaration(static_cast<sym_node_t *>($1),
581
PARS_OUTPUT, static_cast<pars_res_word_t *>($3)); }
579
{ $$ = pars_parameter_declaration($1,
584
583
parameter_declaration_list:
591
590
variable_declaration:
592
591
PARS_ID_TOKEN type_name ';'
593
{ $$ = pars_variable_declaration(static_cast<sym_node_t *>($1), static_cast<pars_res_word_t *>($2)); }
592
{ $$ = pars_variable_declaration($1, $2); }
596
595
variable_declaration_list:
602
601
cursor_declaration:
603
602
PARS_DECLARE_TOKEN PARS_CURSOR_TOKEN PARS_ID_TOKEN
604
603
PARS_IS_TOKEN select_statement ';'
605
{ $$ = pars_cursor_declaration(static_cast<sym_node_t *>($3), static_cast<sel_node_t *>($5)); }
604
{ $$ = pars_cursor_declaration($3, $5); }
608
607
function_declaration:
609
608
PARS_DECLARE_TOKEN PARS_FUNCTION_TOKEN PARS_ID_TOKEN ';'
610
{ $$ = pars_function_declaration(static_cast<sym_node_t *>($3)); }
609
{ $$ = pars_function_declaration($3); }