Changeset: 7c8256c1645d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7c8256c1645d
Modified Files:
        sql/backends/monet5/sql_upgrades.c
        sql/scripts/76_dump.sql
        sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128
        sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out.32bit
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
        sql/test/emptydb/Tests/check.stable.out.int128
        sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade/Tests/upgrade.stable.out
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.32bit
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: default
Log Message:

When using \ in a string that needs to be interpreted, use E string prefix.


diffs (truncated from 480 to 300 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
@@ -3271,7 +3271,7 @@ sql_update_default(Client c, mvc *sql, c
                                        "\n"
                                        "CREATE PROCEDURE sys.EVAL(stmt STRING) 
EXTERNAL NAME sql.eval;\n"
                                        "\n"
-                                       "CREATE FUNCTION sys.esc(s STRING) 
RETURNS STRING BEGIN RETURN '\"' || 
sys.replace(sys.replace(sys.replace(s,'\\\\', '\\\\\\\\'), '\\n', '\\\\n'), 
'\"', '\\\\\"') || '\"'; END;\n"
+                                       "CREATE FUNCTION sys.esc(s STRING) 
RETURNS STRING BEGIN RETURN '\"' || 
sys.replace(sys.replace(sys.replace(s,E'\\\\', E'\\\\\\\\'), E'\\n', E'\\\\n'), 
'\"', E'\\\\\"') || '\"'; END;\n"
                                        "\n"
                                        "CREATE FUNCTION sys.prepare_esc(s 
STRING, t STRING) RETURNS STRING\n"
                                        "BEGIN\n"
@@ -3320,7 +3320,7 @@ sql_update_default(Client c, mvc *sql, c
                                        "                SET SELECT_DATA_STMT = 
SELECT_DATA_STMT || '|| ''|'' || ' || prepare_esc(cname, ctype);\n"
                                        "            END WHILE;\n"
                                        "\n"
-                                       "            SET COPY_INTO_STMT = 
(COPY_INTO_STMT || ') FROM STDIN USING DELIMITERS ''|'',''\\\\n'',''\"'';');\n"
+                                       "            SET COPY_INTO_STMT = 
(COPY_INTO_STMT || ') FROM STDIN USING DELIMITERS ''|'',E''\\\\n'',''\"'';');\n"
                                        "            SET SELECT_DATA_STMT =  
SELECT_DATA_STMT || ' FROM ' || FQN(sch, tbl);\n"
                                        "\n"
                                        "            insert into 
dump_statements VALUES (current_size_dump_statements() + 1, COPY_INTO_STMT);\n"
diff --git a/sql/scripts/76_dump.sql b/sql/scripts/76_dump.sql
--- a/sql/scripts/76_dump.sql
+++ b/sql/scripts/76_dump.sql
@@ -141,7 +141,7 @@ CREATE VIEW sys.dump_privileges AS
 
 CREATE PROCEDURE sys.EVAL(stmt STRING) EXTERNAL NAME sql.eval;
 
-CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,'\\', '\\\\'), '\n', '\\n'), '"', '\\"') 
|| '"'; END;
+CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,E'\\', E'\\\\'), E'\n', E'\\n'), '"', 
E'\\"') || '"'; END;
 
 CREATE FUNCTION sys.prepare_esc(s STRING, t STRING) RETURNS STRING
 BEGIN
@@ -195,7 +195,7 @@ CREATE PROCEDURE sys._dump_table_data(sc
                                SET SELECT_DATA_STMT = SELECT_DATA_STMT || '|| 
''|'' || ' || prepare_esc(cname, ctype);
                        END WHILE;
 
-                       SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN 
USING DELIMITERS ''|'',''\\n'',''"'';');
+                       SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN 
USING DELIMITERS ''|'',E''\\n'',''"'';');
                        SET SELECT_DATA_STMT =  SELECT_DATA_STMT || ' FROM ' || 
FQN(sch, tbl);
 
                        insert into dump_statements VALUES 
(current_size_dump_statements() + 1, COPY_INTO_STMT);
diff --git a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 
b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
@@ -4894,7 +4894,7 @@ CREATE VIEW sys.dump_privileges AS
 
 CREATE PROCEDURE sys.EVAL(stmt STRING) EXTERNAL NAME sql.eval;
 
-CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,'\\', '\\\\'), '\n', '\\n'), '"', '\\"') 
|| '"'; END;
+CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,E'\\', E'\\\\'), E'\n', E'\\n'), '"', 
E'\\"') || '"'; END;
 
 CREATE FUNCTION sys.prepare_esc(s STRING, t STRING) RETURNS STRING
 BEGIN
@@ -4943,7 +4943,7 @@ CREATE PROCEDURE sys._dump_table_data(sc
                 SET SELECT_DATA_STMT = SELECT_DATA_STMT || '|| ''|'' || ' || 
prepare_esc(cname, ctype);
             END WHILE;
 
-            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',''\\n'',''"'';');
+            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',E''\\n'',''"'';');
             SET SELECT_DATA_STMT =  SELECT_DATA_STMT || ' FROM ' || FQN(sch, 
tbl);
 
             insert into dump_statements VALUES (current_size_dump_statements() 
+ 1, COPY_INTO_STMT);
diff --git 
a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128 
b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
--- a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
+++ b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
@@ -4894,7 +4894,7 @@ CREATE VIEW sys.dump_privileges AS
 
 CREATE PROCEDURE sys.EVAL(stmt STRING) EXTERNAL NAME sql.eval;
 
-CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,'\\', '\\\\'), '\n', '\\n'), '"', '\\"') 
|| '"'; END;
+CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,E'\\', E'\\\\'), E'\n', E'\\n'), '"', 
E'\\"') || '"'; END;
 
 CREATE FUNCTION sys.prepare_esc(s STRING, t STRING) RETURNS STRING
 BEGIN
@@ -4943,7 +4943,7 @@ CREATE PROCEDURE sys._dump_table_data(sc
                 SET SELECT_DATA_STMT = SELECT_DATA_STMT || '|| ''|'' || ' || 
prepare_esc(cname, ctype);
             END WHILE;
 
-            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',''\\n'',''"'';');
+            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',E''\\n'',''"'';');
             SET SELECT_DATA_STMT =  SELECT_DATA_STMT || ' FROM ' || FQN(sch, 
tbl);
 
             insert into dump_statements VALUES (current_size_dump_statements() 
+ 1, COPY_INTO_STMT);
diff --git a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out 
b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
--- a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
+++ b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
@@ -4299,7 +4299,7 @@ CREATE VIEW sys.dump_privileges AS
 
 CREATE PROCEDURE sys.EVAL(stmt STRING) EXTERNAL NAME sql.eval;
 
-CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,'\\', '\\\\'), '\n', '\\n'), '"', '\\"') 
|| '"'; END;
+CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,E'\\', E'\\\\'), E'\n', E'\\n'), '"', 
E'\\"') || '"'; END;
 
 CREATE FUNCTION sys.prepare_esc(s STRING, t STRING) RETURNS STRING
 BEGIN
@@ -4348,7 +4348,7 @@ CREATE PROCEDURE sys._dump_table_data(sc
                 SET SELECT_DATA_STMT = SELECT_DATA_STMT || '|| ''|'' || ' || 
prepare_esc(cname, ctype);
             END WHILE;
 
-            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',''\\n'',''"'';');
+            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',E''\\n'',''"'';');
             SET SELECT_DATA_STMT =  SELECT_DATA_STMT || ' FROM ' || FQN(sch, 
tbl);
 
             insert into dump_statements VALUES (current_size_dump_statements() 
+ 1, COPY_INTO_STMT);
diff --git a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit 
b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit
--- a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit
+++ b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit
@@ -4299,7 +4299,7 @@ CREATE VIEW sys.dump_privileges AS
 
 CREATE PROCEDURE sys.EVAL(stmt STRING) EXTERNAL NAME sql.eval;
 
-CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,'\\', '\\\\'), '\n', '\\n'), '"', '\\"') 
|| '"'; END;
+CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,E'\\', E'\\\\'), E'\n', E'\\n'), '"', 
E'\\"') || '"'; END;
 
 CREATE FUNCTION sys.prepare_esc(s STRING, t STRING) RETURNS STRING
 BEGIN
@@ -4348,7 +4348,7 @@ CREATE PROCEDURE sys._dump_table_data(sc
                 SET SELECT_DATA_STMT = SELECT_DATA_STMT || '|| ''|'' || ' || 
prepare_esc(cname, ctype);
             END WHILE;
 
-            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',''\\n'',''"'';');
+            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',E''\\n'',''"'';');
             SET SELECT_DATA_STMT =  SELECT_DATA_STMT || ' FROM ' || FQN(sch, 
tbl);
 
             insert into dump_statements VALUES (current_size_dump_statements() 
+ 1, COPY_INTO_STMT);
diff --git a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128 
b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
@@ -4968,7 +4968,7 @@ CREATE VIEW sys.dump_privileges AS
 
 CREATE PROCEDURE sys.EVAL(stmt STRING) EXTERNAL NAME sql.eval;
 
-CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,'\\', '\\\\'), '\n', '\\n'), '"', '\\"') 
|| '"'; END;
+CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,E'\\', E'\\\\'), E'\n', E'\\n'), '"', 
E'\\"') || '"'; END;
 
 CREATE FUNCTION sys.prepare_esc(s STRING, t STRING) RETURNS STRING
 BEGIN
@@ -5017,7 +5017,7 @@ CREATE PROCEDURE sys._dump_table_data(sc
                 SET SELECT_DATA_STMT = SELECT_DATA_STMT || '|| ''|'' || ' || 
prepare_esc(cname, ctype);
             END WHILE;
 
-            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',''\\n'',''"'';');
+            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',E''\\n'',''"'';');
             SET SELECT_DATA_STMT =  SELECT_DATA_STMT || ' FROM ' || FQN(sch, 
tbl);
 
             insert into dump_statements VALUES (current_size_dump_statements() 
+ 1, COPY_INTO_STMT);
diff --git a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64 
b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64
--- a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64
+++ b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64
@@ -4299,7 +4299,7 @@ CREATE VIEW sys.dump_privileges AS
 
 CREATE PROCEDURE sys.EVAL(stmt STRING) EXTERNAL NAME sql.eval;
 
-CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,'\\', '\\\\'), '\n', '\\n'), '"', '\\"') 
|| '"'; END;
+CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,E'\\', E'\\\\'), E'\n', E'\\n'), '"', 
E'\\"') || '"'; END;
 
 CREATE FUNCTION sys.prepare_esc(s STRING, t STRING) RETURNS STRING
 BEGIN
@@ -4348,7 +4348,7 @@ CREATE PROCEDURE sys._dump_table_data(sc
                 SET SELECT_DATA_STMT = SELECT_DATA_STMT || '|| ''|'' || ' || 
prepare_esc(cname, ctype);
             END WHILE;
 
-            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',''\\n'',''"'';');
+            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',E''\\n'',''"'';');
             SET SELECT_DATA_STMT =  SELECT_DATA_STMT || ' FROM ' || FQN(sch, 
tbl);
 
             insert into dump_statements VALUES (current_size_dump_statements() 
+ 1, COPY_INTO_STMT);
diff --git 
a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128 
b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128
--- a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128
+++ b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128
@@ -4968,7 +4968,7 @@ CREATE VIEW sys.dump_privileges AS
 
 CREATE PROCEDURE sys.EVAL(stmt STRING) EXTERNAL NAME sql.eval;
 
-CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,'\\', '\\\\'), '\n', '\\n'), '"', '\\"') 
|| '"'; END;
+CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,E'\\', E'\\\\'), E'\n', E'\\n'), '"', 
E'\\"') || '"'; END;
 
 CREATE FUNCTION sys.prepare_esc(s STRING, t STRING) RETURNS STRING
 BEGIN
@@ -5017,7 +5017,7 @@ CREATE PROCEDURE sys._dump_table_data(sc
                 SET SELECT_DATA_STMT = SELECT_DATA_STMT || '|| ''|'' || ' || 
prepare_esc(cname, ctype);
             END WHILE;
 
-            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',''\\n'',''"'';');
+            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',E''\\n'',''"'';');
             SET SELECT_DATA_STMT =  SELECT_DATA_STMT || ' FROM ' || FQN(sch, 
tbl);
 
             insert into dump_statements VALUES (current_size_dump_statements() 
+ 1, COPY_INTO_STMT);
diff --git a/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128 
b/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
@@ -4894,7 +4894,7 @@ CREATE VIEW sys.dump_privileges AS
 
 CREATE PROCEDURE sys.EVAL(stmt STRING) EXTERNAL NAME sql.eval;
 
-CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,'\\', '\\\\'), '\n', '\\n'), '"', '\\"') 
|| '"'; END;
+CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,E'\\', E'\\\\'), E'\n', E'\\n'), '"', 
E'\\"') || '"'; END;
 
 CREATE FUNCTION sys.prepare_esc(s STRING, t STRING) RETURNS STRING
 BEGIN
@@ -4943,7 +4943,7 @@ CREATE PROCEDURE sys._dump_table_data(sc
                 SET SELECT_DATA_STMT = SELECT_DATA_STMT || '|| ''|'' || ' || 
prepare_esc(cname, ctype);
             END WHILE;
 
-            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',''\\n'',''"'';');
+            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',E''\\n'',''"'';');
             SET SELECT_DATA_STMT =  SELECT_DATA_STMT || ' FROM ' || FQN(sch, 
tbl);
 
             insert into dump_statements VALUES (current_size_dump_statements() 
+ 1, COPY_INTO_STMT);
diff --git a/sql/test/emptydb-upgrade/Tests/upgrade.stable.out 
b/sql/test/emptydb-upgrade/Tests/upgrade.stable.out
--- a/sql/test/emptydb-upgrade/Tests/upgrade.stable.out
+++ b/sql/test/emptydb-upgrade/Tests/upgrade.stable.out
@@ -4299,7 +4299,7 @@ CREATE VIEW sys.dump_privileges AS
 
 CREATE PROCEDURE sys.EVAL(stmt STRING) EXTERNAL NAME sql.eval;
 
-CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,'\\', '\\\\'), '\n', '\\n'), '"', '\\"') 
|| '"'; END;
+CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,E'\\', E'\\\\'), E'\n', E'\\n'), '"', 
E'\\"') || '"'; END;
 
 CREATE FUNCTION sys.prepare_esc(s STRING, t STRING) RETURNS STRING
 BEGIN
@@ -4348,7 +4348,7 @@ CREATE PROCEDURE sys._dump_table_data(sc
                 SET SELECT_DATA_STMT = SELECT_DATA_STMT || '|| ''|'' || ' || 
prepare_esc(cname, ctype);
             END WHILE;
 
-            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',''\\n'',''"'';');
+            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',E''\\n'',''"'';');
             SET SELECT_DATA_STMT =  SELECT_DATA_STMT || ' FROM ' || FQN(sch, 
tbl);
 
             insert into dump_statements VALUES (current_size_dump_statements() 
+ 1, COPY_INTO_STMT);
diff --git a/sql/test/emptydb-upgrade/Tests/upgrade.stable.out.32bit 
b/sql/test/emptydb-upgrade/Tests/upgrade.stable.out.32bit
--- a/sql/test/emptydb-upgrade/Tests/upgrade.stable.out.32bit
+++ b/sql/test/emptydb-upgrade/Tests/upgrade.stable.out.32bit
@@ -4299,7 +4299,7 @@ CREATE VIEW sys.dump_privileges AS
 
 CREATE PROCEDURE sys.EVAL(stmt STRING) EXTERNAL NAME sql.eval;
 
-CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,'\\', '\\\\'), '\n', '\\n'), '"', '\\"') 
|| '"'; END;
+CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,E'\\', E'\\\\'), E'\n', E'\\n'), '"', 
E'\\"') || '"'; END;
 
 CREATE FUNCTION sys.prepare_esc(s STRING, t STRING) RETURNS STRING
 BEGIN
@@ -4348,7 +4348,7 @@ CREATE PROCEDURE sys._dump_table_data(sc
                 SET SELECT_DATA_STMT = SELECT_DATA_STMT || '|| ''|'' || ' || 
prepare_esc(cname, ctype);
             END WHILE;
 
-            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',''\\n'',''"'';');
+            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',E''\\n'',''"'';');
             SET SELECT_DATA_STMT =  SELECT_DATA_STMT || ' FROM ' || FQN(sch, 
tbl);
 
             insert into dump_statements VALUES (current_size_dump_statements() 
+ 1, COPY_INTO_STMT);
diff --git a/sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128 
b/sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
@@ -4968,7 +4968,7 @@ CREATE VIEW sys.dump_privileges AS
 
 CREATE PROCEDURE sys.EVAL(stmt STRING) EXTERNAL NAME sql.eval;
 
-CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,'\\', '\\\\'), '\n', '\\n'), '"', '\\"') 
|| '"'; END;
+CREATE FUNCTION sys.esc(s STRING) RETURNS STRING BEGIN RETURN '"' || 
sys.replace(sys.replace(sys.replace(s,E'\\', E'\\\\'), E'\n', E'\\n'), '"', 
E'\\"') || '"'; END;
 
 CREATE FUNCTION sys.prepare_esc(s STRING, t STRING) RETURNS STRING
 BEGIN
@@ -5017,7 +5017,7 @@ CREATE PROCEDURE sys._dump_table_data(sc
                 SET SELECT_DATA_STMT = SELECT_DATA_STMT || '|| ''|'' || ' || 
prepare_esc(cname, ctype);
             END WHILE;
 
-            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',''\\n'',''"'';');
+            SET COPY_INTO_STMT = (COPY_INTO_STMT || ') FROM STDIN USING 
DELIMITERS ''|'',E''\\n'',''"'';');
             SET SELECT_DATA_STMT =  SELECT_DATA_STMT || ' FROM ' || FQN(sch, 
tbl);
 
             insert into dump_statements VALUES (current_size_dump_statements() 
+ 1, COPY_INTO_STMT);
diff --git a/sql/test/emptydb/Tests/check.stable.out.int128 
b/sql/test/emptydb/Tests/check.stable.out.int128
--- a/sql/test/emptydb/Tests/check.stable.out.int128
+++ b/sql/test/emptydb/Tests/check.stable.out.int128
@@ -1087,7 +1087,7 @@ create view sys.tablestoragemodel as sel
 create view sys.tracelog as select * from sys.tracelog();
 create view sys.users as select u."name" as "name", ui."fullname", 
ui."default_schema", ui."schema_path" from db_users() as u left join 
"sys"."db_user_info" as ui on u."name" = ui."name";
 create view sys.var_values (var_name, value) as select 'current_role', 
current_role union all select 'current_schema', current_schema union all select 
'current_timezone', current_timezone union all select 'current_user', 
current_user union all select 'debug', debug union all select 'last_id', 
last_id union all select 'optimizer', optimizer union all select 'pi', pi() 
union all select 'rowcnt', rowcnt;
-create procedure sys._dump_table_data(sch string, tbl string) begin declare k 
int; set k = (select min(c.id) from columns c, tables t where c.table_id = t.id 
and t.name = tbl); if k is not null then declare cname string; declare ctype 
string; set cname = (select c.name from sys.columns c where c.id = k); set 
ctype = (select c.type from sys.columns c where c.id = k); declare 
copy_into_stmt string; declare _cnt int; set _cnt = (select min(s.count) from 
sys.storage() s where s.schema = sch and s.table = tbl); if _cnt > 0 then set 
copy_into_stmt = 'COPY ' || _cnt || ' RECORDS INTO ' || fqn(sch, tbl) || '(' || 
dq(cname); declare select_data_stmt string; set select_data_stmt = 'SELECT 
current_size_dump_statements() + RANK() OVER(), ' || prepare_esc(cname, ctype); 
declare m int; set m = (select max(c.id) from columns c, tables t where 
c.table_id = t.id and t.name = tbl); while (k < m) do set k = (select min(c.id) 
from columns c, tables t where c.table_id = t.id and t.name = tbl and c.id > 
 k); set cname = (select c.name from sys.columns c where c.id = k); set ctype = 
(select c.type from sys.columns c where c.id = k); set copy_into_stmt = 
(copy_into_stmt || ', ' || dq(cname)); set select_data_stmt = select_data_stmt 
|| '|| \'|\' || ' || prepare_esc(cname, ctype); end while; set copy_into_stmt = 
(copy_into_stmt || ') FROM STDIN USING DELIMITERS \'|\',\'\\n\',\'"\';'); set 
select_data_stmt = select_data_stmt || ' FROM ' || fqn(sch, tbl); insert into 
dump_statements values (current_size_dump_statements() + 1, copy_into_stmt); 
call sys.eval('INSERT INTO dump_statements ' || select_data_stmt || ';'); end 
if; end if; end;
+create procedure sys._dump_table_data(sch string, tbl string) begin declare k 
int; set k = (select min(c.id) from columns c, tables t where c.table_id = t.id 
and t.name = tbl); if k is not null then declare cname string; declare ctype 
string; set cname = (select c.name from sys.columns c where c.id = k); set 
ctype = (select c.type from sys.columns c where c.id = k); declare 
copy_into_stmt string; declare _cnt int; set _cnt = (select min(s.count) from 
sys.storage() s where s.schema = sch and s.table = tbl); if _cnt > 0 then set 
copy_into_stmt = 'COPY ' || _cnt || ' RECORDS INTO ' || fqn(sch, tbl) || '(' || 
dq(cname); declare select_data_stmt string; set select_data_stmt = 'SELECT 
current_size_dump_statements() + RANK() OVER(), ' || prepare_esc(cname, ctype); 
declare m int; set m = (select max(c.id) from columns c, tables t where 
c.table_id = t.id and t.name = tbl); while (k < m) do set k = (select min(c.id) 
from columns c, tables t where c.table_id = t.id and t.name = tbl and c.id > 
 k); set cname = (select c.name from sys.columns c where c.id = k); set ctype = 
(select c.type from sys.columns c where c.id = k); set copy_into_stmt = 
(copy_into_stmt || ', ' || dq(cname)); set select_data_stmt = select_data_stmt 
|| '|| \'|\' || ' || prepare_esc(cname, ctype); end while; set copy_into_stmt = 
(copy_into_stmt || ') FROM STDIN USING DELIMITERS \'|\',E\'\\n\',\'"\';'); set 
select_data_stmt = select_data_stmt || ' FROM ' || fqn(sch, tbl); insert into 
dump_statements values (current_size_dump_statements() + 1, copy_into_stmt); 
call sys.eval('INSERT INTO dump_statements ' || select_data_stmt || ';'); end 
if; end if; end;
 create function "abbrev" (p inet) returns clob external name inet."abbrev";
 create function alpha(pdec double, pradius double) returns double external 
name sql.alpha;
 create function sys.alter_table(s string, t string) returns string begin 
return 'ALTER TABLE ' || fqn(s, t) || ' '; end;
@@ -1167,7 +1167,7 @@ CREATE FUNCTION env() RETURNS TABLE(name
 create function sys.epoch(sec bigint) returns timestamp with time zone 
external name mtime.epoch;
 create function sys.epoch(sec int) returns timestamp with time zone external 
name mtime.epoch;
 create function sys.epoch(ts timestamp with time zone) returns int external 
name mtime.epoch;
-create function sys.esc(s string) returns string begin return '"' || 
sys.replace(sys.replace(sys.replace(s,'\\', '\\\\'), '\n', '\\n'), '"', '\\"') 
|| '"'; end;
+create function sys.esc(s string) returns string begin return '"' || 
sys.replace(sys.replace(sys.replace(s,E'\\', E'\\\\'), E'\n', E'\\n'), '"', 
E'\\"') || '"'; end;
 create procedure sys.eval(stmt string) external name sql.eval;
 create procedure sys.evalalgebra(ra_stmt string, opt bool) external name 
sql."evalAlgebra";
 create procedure fitsattach(fname string) external name fits.attach;
@@ -2503,7 +2503,7 @@ drop function pcre_replace(string, strin
 [ "sys.functions",     "sys",  "=",    "SYSTEM",       "=",    "calc", 
"Internal C",   "Scalar function",      false,  false,  false,  false,  
"res_0",        "boolean",      1,      0,      "out",  "arg_1",        "any",  
0,      0,      "in",   "arg_2",        "any",  0,      0,      "in",   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL    ]
 [ "sys.functions",     "sys",  ">",    "SYSTEM",       ">",    "calc", 
"Internal C",   "Scalar function",      false,  false,  false,  false,  
"res_0",        "boolean",      1,      0,      "out",  "arg_1",        "any",  
0,      0,      "in",   "arg_2",        "any",  0,      0,      "in",   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL    ]
 [ "sys.functions",     "sys",  ">=",   "SYSTEM",       ">=",   "calc", 
"Internal C",   "Scalar function",      false,  false,  false,  false,  
"res_0",        "boolean",      1,      0,      "out",  "arg_1",        "any",  
0,      0,      "in",   "arg_2",        "any",  0,      0,      "in",   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL    ]
-[ "sys.functions",     "sys",  "_dump_table_data",     "SYSTEM",       "create 
procedure sys._dump_table_data(sch string, tbl string) begin declare k int; set 
k = (select min(c.id) from columns c, tables t where c.table_id = t.id and 
t.name = tbl); if k is not null then declare cname string; declare ctype 
string; set cname = (select c.name from sys.columns c where c.id = k); set 
ctype = (select c.type from sys.columns c where c.id = k); declare 
copy_into_stmt string; declare _cnt int; set _cnt = (select min(s.count) from 
sys.storage() s where s.schema = sch and s.table = tbl); if _cnt > 0 then set 
copy_into_stmt = 'COPY ' || _cnt || ' RECORDS INTO ' || fqn(sch, tbl) || '(' || 
dq(cname); declare select_data_stmt string; set select_data_stmt = 'SELECT 
current_size_dump_statements() + RANK() OVER(), ' || prepare_esc(cname, ctype); 
declare m int; set m = (select max(c.id) from columns c, tables t where 
c.table_id = t.id and t.name = tbl); while (k < m) do set k = (select min(c.id) 
from columns c, tabl
 es t where c.table_id = t.id and t.name = tbl and c.id > k); set cname = 
(select c.name from sys.columns c where c.id = k); set ctype = (select c.type 
from sys.columns c where c.id = k); set copy_into_stmt = (copy_into_stmt || ', 
' || dq(cname)); set select_data_stmt = select_data_stmt || '|| \\'|\\' || ' || 
prepare_esc(cname, ctype); end while; set copy_into_stmt = (copy_into_stmt || 
') FROM STDIN USING DELIMITERS \\'|\\',\\'\\\\n\\',\\'\"\\';'); set 
select_data_stmt = select_data_stmt || ' FROM ' || fqn(sch, tbl); insert into 
dump_statements values (current_size_dump_statements() + 1, copy_into_stmt); 
call sys.eval('INSERT INTO dump_statements ' || select_data_stmt || ';'); end 
if; end if; end;",    "user", "SQL",  "Procedure",    true,   false,  false,  
true,   "sch",  "clob", 0,      0,      "in",   "tbl",  "clob", 0,      0,      
"in",   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   N
 ULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    
]
+[ "sys.functions",     "sys",  "_dump_table_data",     "SYSTEM",       "create 
procedure sys._dump_table_data(sch string, tbl string) begin declare k int; set 
k = (select min(c.id) from columns c, tables t where c.table_id = t.id and 
t.name = tbl); if k is not null then declare cname string; declare ctype 
string; set cname = (select c.name from sys.columns c where c.id = k); set 
ctype = (select c.type from sys.columns c where c.id = k); declare 
copy_into_stmt string; declare _cnt int; set _cnt = (select min(s.count) from 
sys.storage() s where s.schema = sch and s.table = tbl); if _cnt > 0 then set 
copy_into_stmt = 'COPY ' || _cnt || ' RECORDS INTO ' || fqn(sch, tbl) || '(' || 
dq(cname); declare select_data_stmt string; set select_data_stmt = 'SELECT 
current_size_dump_statements() + RANK() OVER(), ' || prepare_esc(cname, ctype); 
declare m int; set m = (select max(c.id) from columns c, tables t where 
c.table_id = t.id and t.name = tbl); while (k < m) do set k = (select min(c.id) 
from columns c, tabl
 es t where c.table_id = t.id and t.name = tbl and c.id > k); set cname = 
(select c.name from sys.columns c where c.id = k); set ctype = (select c.type 
from sys.columns c where c.id = k); set copy_into_stmt = (copy_into_stmt || ', 
' || dq(cname)); set select_data_stmt = select_data_stmt || '|| \\'|\\' || ' || 
prepare_esc(cname, ctype); end while; set copy_into_stmt = (copy_into_stmt || 
') FROM STDIN USING DELIMITERS \\'|\\',E\\'\\\\n\\',\\'\"\\';'); set 
select_data_stmt = select_data_stmt || ' FROM ' || fqn(sch, tbl); insert into 
dump_statements values (current_size_dump_statements() + 1, copy_into_stmt); 
call sys.eval('INSERT INTO dump_statements ' || select_data_stmt || ';'); end 
if; end if; end;",   "user", "SQL",  "Procedure",    true,   false,  false,  
true,   "sch",  "clob", 0,      0,      "in",   "tbl",  "clob", 0,      0,      
"in",   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   
 NULL,  NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    
]
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to