Changeset: ff26252aa046 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ff26252aa046
Modified Files:
        sql/server/sql_parser.y
        sql/test/escape-sequences/Tests/All
Branch: escape-sequences
Log Message:

like escape


diffs (65 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
@@ -384,7 +384,7 @@ int yydebug=1;
     odbc_time_escape
     odbc_timestamp_escape
     odbc_guid_escape
-    odbc_literal_escape
+    odbc_interval_escape
 
 %type <type>
        data_type
@@ -3783,6 +3783,21 @@ like_exp:
                $$ = _symbol_create_list(SQL_ESCAPE, l);
          }
        }
+ // odbc like escape
+ |  scalar_exp '{' ESCAPE string '}'
+    {
+        const char* esc = $4;
+        if (_strlen(esc) != 1) {
+                   sqlformaterror(m, SQLSTATE(22019) "%s", "ESCAPE must be one 
character");
+            $$= NULL;
+            YYABORT;
+        } else {
+            dlist *l = L();
+            append_symbol(l, $1);
+            append_string(l, esc);
+            $$ = _symbol_create_list(SQL_ESCAPE, l);
+        }
+    }
  ;
 
 test_for_null:
@@ -4882,7 +4897,7 @@ literal:
                } }
  |  odbc_timestamp_escape
  |  interval_expression
- |  odbc_literal_escape
+ |  odbc_interval_escape
  |  blob string
                { sql_subtype t;
                  atom *a= 0;
@@ -6306,12 +6321,14 @@ odbc_guid_escape:
         }
     ;
 
-odbc_literal_escape:
+odbc_interval_escape:
      '{' interval_expression '}' {$$ = $2;}
     ;
 
+
 %%
 
+
 static inline symbol*
 makeAtomNode(mvc *m, const char* typename, const char* val, unsigned int 
digits, unsigned int scale, bool bind) {
     sql_subtype sub_t;
diff --git a/sql/test/escape-sequences/Tests/All 
b/sql/test/escape-sequences/Tests/All
--- a/sql/test/escape-sequences/Tests/All
+++ b/sql/test/escape-sequences/Tests/All
@@ -1,1 +1,2 @@
 literals
+like-sequence
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to