~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_yacc.yy

  • Committer: Stewart Smith
  • Date: 2009-05-18 07:00:19 UTC
  • mto: (991.1.8 for-brian)
  • mto: This revision was merged to the branch mainline in revision 1033.
  • Revision ID: stewart@flamingspork.com-20090518070019-jb63dkryh7i89a77
Start work to construct table proto in parser:
- new/delete of message in parser
- fix symbol conflicts from parser with symbols in table.pb.h by adding _SYM to things like VARCHAR

Show diffs side-by-side

added added

removed removed

Lines of Context:
87
87
#include <drizzled/lex_string.h>
88
88
#include <drizzled/function/get_system_var.h>
89
89
#include <mysys/thr_lock.h>
 
90
#include <drizzled/message/table.pb.h>
90
91
 
91
92
class Table_ident;
92
93
class Item;
434
435
%token  BEFORE_SYM                    /* SQL-2003-N */
435
436
%token  BEGIN_SYM                     /* SQL-2003-R */
436
437
%token  BETWEEN_SYM                   /* SQL-2003-R */
437
 
%token  BIGINT                        /* SQL-2003-R */
 
438
%token  BIGINT_SYM                    /* SQL-2003-R */
438
439
%token  BINARY                        /* SQL-2003-R */
439
440
%token  BINLOG_SYM
440
441
%token  BIN_NUM
493
494
%token  DATABASES
494
495
%token  DATAFILE_SYM
495
496
%token  DATA_SYM                      /* SQL-2003-N */
496
 
%token  DATETIME
 
497
%token  DATETIME_SYM
497
498
%token  DATE_ADD_INTERVAL             /* MYSQL-FUNC */
498
499
%token  DATE_SUB_INTERVAL             /* MYSQL-FUNC */
499
500
%token  DATE_SYM                      /* SQL-2003-R */
531
532
%token  ENDS_SYM
532
533
%token  END_OF_INPUT                  /* INTERNAL */
533
534
%token  ENGINE_SYM
534
 
%token  ENUM
 
535
%token  ENUM_SYM
535
536
%token  EQ                            /* OPERATOR */
536
537
%token  EQUAL_SYM                     /* OPERATOR */
537
538
%token  ERRORS
793
794
%token  TABLE_REF_PRIORITY
794
795
%token  TABLE_SYM                     /* SQL-2003-R */
795
796
%token  TABLE_CHECKSUM_SYM
796
 
%token  TEMPORARY                     /* SQL-2003-N */
 
797
%token  TEMPORARY_SYM                 /* SQL-2003-N */
797
798
%token  TEMPTABLE_SYM
798
799
%token  TERMINATED
799
800
%token  TEXT_STRING
800
801
%token  TEXT_SYM
801
802
%token  THAN_SYM
802
803
%token  THEN_SYM                      /* SQL-2003-R */
803
 
%token  TIMESTAMP                     /* SQL-2003-R */
 
804
%token  TIMESTAMP_SYM                 /* SQL-2003-R */
804
805
%token  TIMESTAMP_ADD
805
806
%token  TIMESTAMP_DIFF
806
807
%token  TO_SYM                        /* SQL-2003-R */
832
833
%token  VALUES                        /* SQL-2003-R */
833
834
%token  VALUE_SYM                     /* SQL-2003-R */
834
835
%token  VARBINARY
835
 
%token  VARCHAR                       /* SQL-2003-R */
 
836
%token  VARCHAR_SYM                   /* SQL-2003-R */
836
837
%token  VARIABLES
837
838
%token  VARIANCE_SYM
838
839
%token  VARYING                       /* SQL-2003-R */
1132
1133
            lex->create_info.db_type= ha_default_storage_engine(session);
1133
1134
            lex->create_info.default_table_charset= NULL;
1134
1135
            lex->name.str= 0;
1135
 
            lex->name.length= 0;
 
1136
            lex->create_table_proto= new drizzled::message::Table();
1136
1137
          }
1137
1138
          create2
1138
1139
          {
1289
1290
        ;
1290
1291
 
1291
1292
table_option:
1292
 
          TEMPORARY { $$=HA_LEX_CREATE_TMP_TABLE; }
 
1293
          TEMPORARY_SYM { $$=HA_LEX_CREATE_TMP_TABLE; }
1293
1294
        ;
1294
1295
 
1295
1296
opt_if_not_exists:
1625
1626
          }
1626
1627
        | DATE_SYM
1627
1628
          { $$=DRIZZLE_TYPE_DATE; }
1628
 
        | TIMESTAMP
 
1629
        | TIMESTAMP_SYM
1629
1630
          { $$=DRIZZLE_TYPE_TIMESTAMP; }
1630
 
        | DATETIME
 
1631
        | DATETIME_SYM
1631
1632
          { $$=DRIZZLE_TYPE_DATETIME; }
1632
1633
        | BLOB_SYM
1633
1634
          {
1646
1647
          { $$=DRIZZLE_TYPE_NEWDECIMAL;}
1647
1648
        | FIXED_SYM float_options
1648
1649
          { $$=DRIZZLE_TYPE_NEWDECIMAL;}
1649
 
        | ENUM
 
1650
        | ENUM_SYM
1650
1651
          {Lex->interval_list.empty();}
1651
1652
          '(' string_list ')' opt_binary
1652
1653
          { $$=DRIZZLE_TYPE_ENUM; }
1663
1664
 
1664
1665
varchar:
1665
1666
          char VARYING {}
1666
 
        | VARCHAR {}
 
1667
        | VARCHAR_SYM {}
1667
1668
        ;
1668
1669
 
1669
1670
int_type:
1670
 
          INT_SYM   { $$=DRIZZLE_TYPE_LONG; }
1671
 
        | BIGINT    { $$=DRIZZLE_TYPE_LONGLONG; }
 
1671
          INT_SYM    { $$=DRIZZLE_TYPE_LONG; }
 
1672
        | BIGINT_SYM { $$=DRIZZLE_TYPE_LONGLONG; }
1672
1673
        ;
1673
1674
 
1674
1675
real_type:
3066
3067
          { $$= new (YYSession->mem_root) Item_func_right($3,$5); }
3067
3068
        | SECOND_SYM '(' expr ')'
3068
3069
          { $$= new (YYSession->mem_root) Item_func_second($3); }
3069
 
        | TIMESTAMP '(' expr ')'
 
3070
        | TIMESTAMP_SYM '(' expr ')'
3070
3071
          { $$= new (YYSession->mem_root) Item_datetime_typecast($3); }
3071
3072
        | TRIM '(' expr ')'
3072
3073
          { $$= new (YYSession->mem_root) Item_func_trim($3); }
3444
3445
          { $$=ITEM_CAST_CHAR; Lex->dec= 0; }
3445
3446
        | DATE_SYM
3446
3447
          { $$=ITEM_CAST_DATE; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
3447
 
        | DATETIME
 
3448
        | DATETIME_SYM
3448
3449
          { $$=ITEM_CAST_DATETIME; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
3449
3450
        | DECIMAL_SYM float_options
3450
3451
          { $$=ITEM_CAST_DECIMAL; Lex->charset= NULL; }
4440
4441
 
4441
4442
opt_temporary:
4442
4443
          /* empty */ { $$= 0; }
4443
 
        | TEMPORARY { $$= 1; }
 
4444
        | TEMPORARY_SYM { $$= 1; }
4444
4445
        ;
4445
4446
/*
4446
4447
** Insert : add new data to table
5243
5244
        | HEX_NUM { $$ = new Item_hex_string($1.str, $1.length);}
5244
5245
        | BIN_NUM { $$= new Item_bin_string($1.str, $1.length); }
5245
5246
        | DATE_SYM text_literal { $$ = $2; }
5246
 
        | TIMESTAMP text_literal { $$ = $2; }
 
5247
        | TIMESTAMP_SYM text_literal { $$ = $2; }
5247
5248
        ;
5248
5249
 
5249
5250
NUM_literal:
5570
5571
        | CUBE_SYM                 {}
5571
5572
        | DATA_SYM                 {}
5572
5573
        | DATAFILE_SYM             {}
5573
 
        | DATETIME                 {}
 
5574
        | DATETIME_SYM             {}
5574
5575
        | DATE_SYM                 {}
5575
5576
        | DAY_SYM                  {}
5576
5577
        | DELAY_KEY_WRITE_SYM      {}
5581
5582
        | DUPLICATE_SYM            {}
5582
5583
        | DYNAMIC_SYM              {}
5583
5584
        | ENDS_SYM                 {}
5584
 
        | ENUM                     {}
 
5585
        | ENUM_SYM                 {}
5585
5586
        | ENGINE_SYM               {}
5586
5587
        | ERRORS                   {}
5587
5588
        | ESCAPE_SYM               {}
5697
5698
        | TABLES                   {}
5698
5699
        | TABLE_CHECKSUM_SYM       {}
5699
5700
        | TABLESPACE               {}
5700
 
        | TEMPORARY                {}
 
5701
        | TEMPORARY_SYM            {}
5701
5702
        | TEMPTABLE_SYM            {}
5702
5703
        | TEXT_SYM                 {}
5703
5704
        | THAN_SYM                 {}
5704
5705
        | TRANSACTION_SYM          {}
5705
 
        | TIMESTAMP                {}
 
5706
        | TIMESTAMP_SYM            {}
5706
5707
        | TIMESTAMP_ADD            {}
5707
5708
        | TIMESTAMP_DIFF           {}
5708
5709
        | TYPES_SYM                {}