Changeset: ce9d00d6af1b for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/ce9d00d6af1b Modified Files: sql/server/sql_parser.y sql/server/sql_scan.c sql/test/odbc-escape-sequences/Tests/All sql/test/odbc-escape-sequences/Tests/time-date-interval-functions.test Branch: escape-sequences Log Message:
add dayname odbc func diffs (73 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 @@ -723,6 +723,8 @@ SQLCODE SQLERROR UNDER WHENEVER %token X_BODY %token MAX_MEMORY MAX_WORKERS OPTIMIZER +/* odbc tokens */ +%token DAYNAME /* odbc data type tokens */ %token <sval> SQL_BIGINT @@ -5664,6 +5666,7 @@ non_reserved_word: | ODBC_GUID_ESCAPE_PREFIX { $$ = sa_strdup(SA, "guid"); } | ODBC_FUNC_ESCAPE_PREFIX { $$ = sa_strdup(SA, "fn"); } | ODBC_OJ_ESCAPE_PREFIX { $$ = sa_strdup(SA, "oj"); } +| DAYNAME { $$ = sa_strdup(SA, "dayname"); } ; lngval: @@ -6420,6 +6423,14 @@ odbc_datetime_func: append_symbol(l, $3); $$ = _symbol_create_list( SQL_UNOP, l ); } + | DAYNAME '(' search_condition ')' + { dlist *l = L(); + append_list( l, append_string(L(), sa_strdup(SA, "date_to_str"))); + append_int(l, FALSE); /* ignore distinct */ + append_symbol(l, $3); + append_symbol(l, makeAtomNode(m, "char", "%A", 2, 0, false)); + $$ = _symbol_create_list( SQL_BINOP, l ); + } | MONTH '(' search_condition ')' { dlist *l = L(); append_list( l, append_string(L(), sa_strdup(SA, "month"))); 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 @@ -527,6 +527,7 @@ scanner_init_keywords(void) failed += keywords_insert("guid", ODBC_GUID_ESCAPE_PREFIX); failed += keywords_insert("fn", ODBC_FUNC_ESCAPE_PREFIX); failed += keywords_insert("oj", ODBC_OJ_ESCAPE_PREFIX); + failed += keywords_insert("DAYNAME", DAYNAME); failed += keywords_insert("SQL_BIGINT", SQL_BIGINT); failed += keywords_insert("SQL_BINARY", SQL_BINARY); failed += keywords_insert("SQL_BIT", SQL_BIT); diff --git a/sql/test/odbc-escape-sequences/Tests/All b/sql/test/odbc-escape-sequences/Tests/All --- a/sql/test/odbc-escape-sequences/Tests/All +++ b/sql/test/odbc-escape-sequences/Tests/All @@ -6,3 +6,4 @@ numeric-functions string-functions time-date-interval-functions join +system-functions diff --git a/sql/test/odbc-escape-sequences/Tests/time-date-interval-functions.test b/sql/test/odbc-escape-sequences/Tests/time-date-interval-functions.test --- a/sql/test/odbc-escape-sequences/Tests/time-date-interval-functions.test +++ b/sql/test/odbc-escape-sequences/Tests/time-date-interval-functions.test @@ -18,11 +18,10 @@ select length(cast((select { fn curtime( ---- 1 -# TODO not implemented -# query T rowsort -# select { fn dayname('2022-11-11') } -# ---- -# Friday +query T rowsort +select { fn dayname('2022-11-11') } +---- +Friday query I rowsort select { fn dayofmonth('2022-11-11') } _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org