Changeset: 4190168fabf1 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4190168fabf1
Modified Files:
        sql/server/rel_select.c
        sql/server/rel_semantic.c
        sql/server/sql_parser.h
        sql/server/sql_parser.y
Branch: sciql
Log Message:

minor changes in the parser


diffs (153 lines):

diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -443,7 +443,7 @@ rel_arrayslice(mvc *sql, sql_table *t, c
        sql_subfunc *sf = NULL;
        exp_kind ek = {type_value, card_value, FALSE};
 
-       assert(dimref->token == SQL_ARRAY_INDEX);
+       assert(dimref->token == SQL_ARRAY_DIM_SLICE);
 
        if (t->ndims)
                return sql_error(sql, 02, "array slicing over a table ('%s')not 
allowed", t->base.name);
diff --git a/sql/server/rel_semantic.c b/sql/server/rel_semantic.c
--- a/sql/server/rel_semantic.c
+++ b/sql/server/rel_semantic.c
@@ -299,7 +299,7 @@ rel_semantic(mvc *sql, symbol *s)
                return rel_selects(sql, s);
 
        case SQL_ARRAY:
-       case SQL_ARRAY_INDEX:
+       case SQL_ARRAY_DIM_SLICE:
        case SQL_DIMENSION:
                return sql_error(sql, 02, "Array not type checked yet");
        default:
diff --git a/sql/server/sql_parser.h b/sql/server/sql_parser.h
--- a/sql/server/sql_parser.h
+++ b/sql/server/sql_parser.h
@@ -179,7 +179,7 @@ typedef enum tokens {
        SQL_DROP_ARRAY,
        SQL_ALTER_ARRAY,
        SQL_ARRAY,
-       SQL_ARRAY_INDEX,
+       SQL_ARRAY_DIM_SLICE,
        SQL_DIMENSION
 } tokens;
 
diff --git a/sql/server/sql_parser.y b/sql/server/sql_parser.y
--- a/sql/server/sql_parser.y
+++ b/sql/server/sql_parser.y
@@ -268,9 +268,8 @@ int yydebug=1;
        XML_primary
        opt_comma_string_value_expression
 
-       group_item /* sciql structural grouping */
        dimension
-       array_dim_ref
+       array_dim_slice
        array_cell_ref
        index_term
 
@@ -322,7 +321,6 @@ int yydebug=1;
        ident_commalist
        opt_corresponding
        column_ref_commalist
-       group_ref_commalist
        name_commalist
        schema_name_list
        column_ref
@@ -398,6 +396,7 @@ int yydebug=1;
        index_exp /* position indices of array cells */
        index_exp_list
        array_element_def_list
+       tiling_commalist
 
 %type <i_val>
        any_all_some
@@ -3229,13 +3228,13 @@ table_ref:
                                { $$ = $2;
                                  append_symbol($2->data.lval, $4); }
 */
- |  array_dim_ref { /* allow "s1.a1[x][1:2]" */
+ |  array_dim_slice { /* allow "s1.a1[x][1:2]" */
        dlist *l = L();
        append_symbol(l, $1);
        append_symbol(l, NULL);
        $$ = _symbol_create_list( SQL_ARRAY, l);
        }
- |  array_dim_ref table_name { /* allow "s1.a1[x][1:2] AS <ident>" */
+ |  array_dim_slice table_name { /* allow "s1.a1[x][1:2] AS <ident>" */
        dlist *l = L();
        append_symbol(l, $1);
        append_symbol(l, $2);
@@ -3285,21 +3284,16 @@ table_name:
 opt_group_by_clause:
     /* empty */                  { $$ = NULL; }
  |  sqlGROUP BY column_ref_commalist { $$ = _symbol_create_list( SQL_GROUPBY, 
$3 );}
- |  sqlGROUP BY group_ref_commalist { $$ = _symbol_create_list( SQL_GROUPBY, 
append_int($3,0) );}
- |  sqlGROUP BY DISTINCT group_ref_commalist { $$ = _symbol_create_list( 
SQL_GROUPBY, append_int($4,1) );}
- ;
-
-group_ref_commalist:
-    group_item         { $$ = append_symbol(L(),$1);}
- |  group_ref_commalist ',' group_item
+ |  sqlGROUP BY tiling_commalist { $$ = _symbol_create_list( SQL_GROUPBY, 
append_int($3,0) );}
+ |  sqlGROUP BY DISTINCT tiling_commalist { $$ = _symbol_create_list( 
SQL_GROUPBY, append_int($4,1) );}
+ ;
+
+tiling_commalist:
+    array_dim_slice { $$ = append_symbol(L(),$1);}
+ |  tiling_commalist ',' array_dim_slice
                        { $$ = append_symbol( $1, $3);}
  ;
 
-group_item:
-       array_dim_ref { $$ = $1; }
- |  array_cell_ref { $$ = $1; }
-;
-
 column_ref_commalist:
     column_ref         { $$ = append_symbol(L(),
                               _symbol_create_list(SQL_COLUMN,$1)); }
@@ -3684,7 +3678,7 @@ value_exp:
  |  cast_exp
  |  XML_value_function
  |  param
- |  array_dim_ref
+ |  array_dim_slice
  |  array_cell_ref
  |  ARRAY '(' scalar_exp_list ')' {
        dlist *l = L();
@@ -3693,19 +3687,19 @@ value_exp:
        }
 ;
 
-array_dim_ref:
+array_dim_slice:
        qname index_exp_list { 
                dlist *l = L();
                append_list(l, $1);
                append_list(l, $2);
-               $$ = _symbol_create_list( SQL_ARRAY_INDEX, l);
+               $$ = _symbol_create_list( SQL_ARRAY_DIM_SLICE, l);
                }
 ;
 
 /* TODO: haven't all uses of this syntax been replaced with:
- * SELECT <ident> FROM <array_dim_ref>? */
+ * SELECT <ident> FROM <array_dim_slice>? */
 array_cell_ref:
-       array_dim_ref '.' ident { 
+       array_dim_slice '.' ident { 
                dlist *l = L();
                append_symbol(l, $1);
                append_string(l, $3);
@@ -5806,7 +5800,7 @@ char *token2string(int token)
        SQL(XMLVALIDATE);
        SQL(XMLNAMESPACES);
        SQL(ARRAY);
-       SQL(ARRAY_INDEX);
+       SQL(ARRAY_DIM_SLICE);
        SQL(DIMENSION);
        }
        return "unknown";       /* just needed for broken compilers ! */
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to