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]