Changeset: 3fbc357091a2 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/3fbc357091a2 Added Files: sql/test/2023/Tests/btrim.test Modified Files: sql/backends/monet5/sql_upgrades.c sql/scripts/49_strings.sql sql/test/2023/Tests/All Branch: literal_features Log Message:
SQL23 feature: add btrim as an alias to trim diffs (63 lines): diff --git a/sql/backends/monet5/sql_upgrades.c b/sql/backends/monet5/sql_upgrades.c --- a/sql/backends/monet5/sql_upgrades.c +++ b/sql/backends/monet5/sql_upgrades.c @@ -6012,6 +6012,26 @@ sql_update_default(Client c, mvc *sql, s output = NULL; } + + /* 49_strings.sql */ + sql_find_subtype(&tp, "string", 0, 0); + if (sql_bind_func(sql, s->base.name, "btrim", &tp, &tp, F_FUNC, true) == NULL) { + sql->session->status = 0; /* if the function was not found clean the error */ + sql->errstr[0] = '\0'; + const char *cmds = + "create function sys.btrim(x string)\n" + "returns string external name str.trim;\n" + "grant execute on function btrim(string) to public;\n" + + "create function sys.btrim(x string, y string)\n" + "returns string external name str.trim2;\n" + "grant execute on function btrim(string, string) to public;\n" + ; + printf("Running database upgrade commands:\n%s\n", cmds); + fflush(stdout); + err = SQLstatementIntern(c, cmds, "update", true, false, NULL); + } + /* 91_information_schema.sql */ info = mvc_bind_schema(sql, "information_schema"); if (info == NULL) { diff --git a/sql/scripts/49_strings.sql b/sql/scripts/49_strings.sql --- a/sql/scripts/49_strings.sql +++ b/sql/scripts/49_strings.sql @@ -57,3 +57,11 @@ grant execute on filter function contain create filter function sys.contains(x string, y string, icase boolean) external name str.contains; grant execute on filter function contains(string, string, boolean) to public; + +create function sys.btrim(x string) +returns string external name str.trim; +grant execute on function btrim(string) to public; + +create function sys.btrim(x string, y string) +returns string external name str.trim2; +grant execute on function btrim(string, string) to public; diff --git a/sql/test/2023/Tests/All b/sql/test/2023/Tests/All --- a/sql/test/2023/Tests/All +++ b/sql/test/2023/Tests/All @@ -1,1 +1,2 @@ literals +btrim diff --git a/sql/test/2023/Tests/btrim.test b/sql/test/2023/Tests/btrim.test new file mode 100644 --- /dev/null +++ b/sql/test/2023/Tests/btrim.test @@ -0,0 +1,7 @@ + +query TTT rowsort +SELECT btrim(' abc '), btrim('ddddabcdd', 'd'), btrim('dededeedabcedeed', 'de'); +---- +abc +abc +abc _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org