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

Reply via email to