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 -- [email protected]
To unsubscribe send an email to [email protected]