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