Changeset: 76829fb3f3cf for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=76829fb3f3cf
Modified Files:
        sql/server/sql_parser.y
        sql/server/sql_scan.c
Branch: trails
Log Message:

Added keywords for default values in streaming tables and continuous queries


diffs (115 lines):

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
@@ -447,7 +447,9 @@ int yydebug=1;
        non_second_datetime_field
        nonzero
        stream_window_set
+       stream_window_update
        stream_stride_set
+       stream_stride_update
        database_object
        cycles_set
        opt_bounds
@@ -542,7 +544,7 @@ int yydebug=1;
 %token <sval> LATERAL LEFT RIGHT FULL OUTER NATURAL CROSS JOIN INNER
 %token <sval> COMMIT ROLLBACK SAVEPOINT RELEASE WORK CHAIN NO PRESERVE ROWS
 %token  CONTINUOUS START_CONTINUOUS STOP STOP_CONTINUOUS PAUSE 
PAUSE_CONTINUOUS RESUME RESUME_CONTINUOUS
-%token  WINDOW STRIDE HEARTBEAT CYCLES
+%token  WINDOW NOWINDOW STRIDE NOSTRIDE HEARTBEAT NOHEARTBEAT CYCLES NOCYCLES
 %token  START TRANSACTION READ WRITE ONLY ISOLATION LEVEL
 %token  UNCOMMITTED COMMITTED sqlREPEATABLE SERIALIZABLE DIAGNOSTICS sqlSIZE 
STORAGE
 
@@ -1037,6 +1039,17 @@ grantee:
 
 /* DOMAIN, ASSERTION, CHARACTER SET, TRANSLATION, TRIGGER */
 
+stream_window_update:
+    WINDOW intval { $$ = $2; }                   /* trigger every N tuples */
+ |  NOWINDOW      { $$ = DEFAULT_TABLE_WINDOW; } /* don't set a window 
constraint, make CP time based */
+ ;
+
+stream_stride_update:
+    STRIDE intval { $$ = $2; }                   /* tumble N tuples each cycle 
*/
+ |  STRIDE ALL    { $$ = STRIDE_ALL; }           /* delete all tuples */
+ |  NOSTRIDE      { $$ = DEFAULT_TABLE_STRIDE; } /* never tumble tuples */
+ ;
+
 alter_statement:
    ALTER TABLE qname ADD opt_column add_table_element
 
@@ -1094,20 +1107,15 @@ alter_statement:
          append_string(p, $10);
          append_list(l, p);
          $$ = _symbol_create_list( SQL_ALTER_USER, l ); }
- | ALTER STREAM TABLE qname SET WINDOW intval
+ | ALTER STREAM TABLE qname SET stream_window_update
        { dlist *l = L();
          append_list(l, $4);
-         append_symbol(l, _symbol_create_int(SQL_STREAM_TABLE_WINDOW, $7));
+         append_symbol(l, _symbol_create_int(SQL_STREAM_TABLE_WINDOW, $6));
          $$ = _symbol_create_list( SQL_ALTER_TABLE, l ); }
- | ALTER STREAM TABLE qname SET STRIDE intval
+ | ALTER STREAM TABLE qname SET stream_stride_update
        { dlist *l = L();
          append_list(l, $4);
-         append_symbol(l, _symbol_create_int(SQL_STREAM_TABLE_STRIDE, $7));
-         $$ = _symbol_create_list( SQL_ALTER_TABLE, l ); }
- | ALTER STREAM TABLE qname SET STRIDE ALL
-       { dlist *l = L();
-         append_list(l, $4);
-         append_symbol(l, _symbol_create_int(SQL_STREAM_TABLE_STRIDE, 
STRIDE_ALL));
+         append_symbol(l, _symbol_create_int(SQL_STREAM_TABLE_STRIDE, $6));
          $$ = _symbol_create_list( SQL_ALTER_TABLE, l ); }
   ;
 
@@ -1348,14 +1356,16 @@ table_opt_storage:
  ;
 
 stream_window_set:
-    /* empty */           { $$ = DEFAULT_TABLE_WINDOW; } /* don't set a window 
constraint, make CP time based */
- |  WINDOW intval         { $$ = $2; }                   /* trigger every N 
tuples */
+    /* empty */   { $$ = DEFAULT_TABLE_WINDOW; } /* don't set a window 
constraint, make CP time based */
+ |  WINDOW intval { $$ = $2; }                   /* trigger every N tuples */
+ |  NOWINDOW      { $$ = DEFAULT_TABLE_WINDOW; }
  ;
 
 stream_stride_set:
     /* empty */   { $$ = DEFAULT_TABLE_STRIDE; } /* never tumble tuples */
  |  STRIDE intval { $$ = $2; }                   /* tumble N tuples each cycle 
*/
  |  STRIDE ALL    { $$ = STRIDE_ALL; }           /* delete all tuples */
+ |  NOSTRIDE      { $$ = DEFAULT_TABLE_STRIDE; }
  ;
 
 stream_table_details:
@@ -2142,11 +2152,13 @@ database_object:
 heartbeat_set:
          /* empty */      { $$ = DEFAULT_CP_HEARTBEAT; } /* CQ never triggered 
by time */
        | HEARTBEAT intval { $$ = $2; }
+       | NOHEARTBEAT      { $$ = DEFAULT_CP_HEARTBEAT; }
        ;
 
 cycles_set:
          /* empty */   { $$ = DEFAULT_CP_CYCLES; } /* the CQ will run forever 
*/
        | CYCLES intval { $$ = $2; }
+       | NOCYCLES      { $$ = DEFAULT_CP_CYCLES; }
        ;
 
 continuous_query_statement:
diff --git a/sql/server/sql_scan.c b/sql/server/sql_scan.c
--- a/sql/server/sql_scan.c
+++ b/sql/server/sql_scan.c
@@ -328,9 +328,13 @@ scanner_init_keywords(void)
        keywords_insert("STOP", STOP);
        keywords_insert("PAUSE", PAUSE);
        keywords_insert("WINDOW", WINDOW);
+       keywords_insert("NOWINDOW", NOWINDOW);
        keywords_insert("STRIDE", STRIDE);
+       keywords_insert("NOSTRIDE", NOSTRIDE);
        keywords_insert("HEARTBEAT", HEARTBEAT);
+       keywords_insert("NOHEARTBEAT", NOHEARTBEAT);
        keywords_insert("CYCLES", CYCLES);
+       keywords_insert("NOCYCLES", NOCYCLES);
        keywords_insert("RESUME", RESUME);
        keywords_insert("TRANSACTION", TRANSACTION);
        keywords_insert("READ", READ);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to