Changeset: b5fa83c00dfe for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b5fa83c00dfe
Modified Files:
sql/backends/monet5/sql_upgrades.c
Branch: analyze-fix
Log Message:
Added upgrade code
diffs (122 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
@@ -4497,12 +4497,118 @@ sql_update_jan2022(Client c, mvc *sql, c
"update sys.functions set system = true
where system <> true and schema_id = (select id from sys.schemas where name =
'wlc') and name in ('clock', 'tick');\n"
"update sys.functions set system = true
where system <> true and schema_id = (select id from sys.schemas where name =
'wlr') and name in ('clock', 'tick');\n"
);
+
/* 99_system.sql */
t = mvc_bind_table(sql, s, "systemfunctions");
t->system = 0;
pos += snprintf(buf + pos, bufsize - pos,
"drop view sys.systemfunctions;\n");
+ /* 80_statistics.sql */
+ t = mvc_bind_table(sql, s, "statistics");
+ t->system = 0;
+ pos += snprintf(buf + pos, bufsize - pos,
+ "drop table sys.statistics;\n"
+ "drop procedure sys.analyze(int,bigint);\n"
+ "drop procedure
sys.analyze(int,bigint,string);\n"
+ "drop procedure
sys.analyze(int,bigint,string,string);\n"
+ "drop procedure
sys.analyze(int,bigint,string,string,string);\n"
+ "create procedure sys.\"analyze\"()\n"
+ "external name sql.\"analyze\";\n"
+ "grant execute on procedure sys.\"analyze\"()
to public;\n"
+ "create procedure sys.\"analyze\"(\"sname\"
varchar(1024))\n"
+ "external name sql.\"analyze\";\n"
+ "grant execute on procedure
sys.\"analyze\"(varchar(1024)) to public;\n"
+ "create procedure sys.\"analyze\"(\"sname\"
varchar(1024), \"tname\" varchar(1024))\n"
+ "external name sql.\"analyze\";\n"
+ "grant execute on procedure
sys.\"analyze\"(varchar(1024),varchar(1024)) to public;\n"
+ "create procedure sys.\"analyze\"(\"sname\"
varchar(1024), \"tname\" varchar(1024), \"cname\" varchar(1024))\n"
+ "external name sql.\"analyze\";\n"
+ "grant execute on procedure
sys.\"analyze\"(varchar(1024),varchar(1024),varchar(1024)) to public;\n"
+ "create function sys.\"statistics\"()\n"
+ "returns table (\n"
+ " \"column_id\" integer,\n"
+ " \"schema\" varchar(1024),\n"
+ " \"table\" varchar(1024),\n"
+ " \"column\" varchar(1024),\n"
+ " \"type\" varchar(1024),\n"
+ " \"width\" integer,\n"
+ " \"count\" bigint,\n"
+ " \"unique\" boolean,\n"
+ " \"nils\" boolean,\n"
+ " \"minval\" string,\n"
+ " \"maxval\" string,\n"
+ " \"sorted\" boolean,\n"
+ " \"revsorted\" boolean\n"
+ ")\n"
+ "external name sql.\"statistics\";\n"
+ "grant execute on function sys.\"statistics\"()
to public;\n"
+ "create view sys.\"statistics\" as\n"
+ "select * from sys.\"statistics\"()\n"
+ "-- exclude system tables\n"
+ "where (\"schema\", \"table\") in (\n"
+ " SELECT sch.\"name\", tbl.\"name\"\n"
+ " FROM sys.\"tables\" AS tbl JOIN
sys.\"schemas\" AS sch ON tbl.schema_id = sch.id\n"
+ " WHERE tbl.\"system\" = FALSE)\n"
+ "order by \"schema\", \"table\", \"column\";\n"
+ "grant select on sys.\"statistics\" to
public;\n"
+ "create function sys.\"statistics\"(\"sname\"
varchar(1024))\n"
+ "returns table (\n"
+ " \"column_id\" integer,\n"
+ " \"schema\" varchar(1024),\n"
+ " \"table\" varchar(1024),\n"
+ " \"column\" varchar(1024),\n"
+ " \"type\" varchar(1024),\n"
+ " \"width\" integer,\n"
+ " \"count\" bigint,\n"
+ " \"unique\" boolean,\n"
+ " \"nils\" boolean,\n"
+ " \"minval\" string,\n"
+ " \"maxval\" string,\n"
+ " \"sorted\" boolean,\n"
+ " \"revsorted\" boolean\n"
+ ")\n"
+ "external name sql.\"statistics\";\n"
+ "grant execute on function
sys.\"statistics\"(varchar(1024)) to public;\n"
+ "create function sys.\"statistics\"(\"sname\"
varchar(1024), \"tname\" varchar(1024))\n"
+ "returns table (\n"
+ " \"column_id\" integer,\n"
+ " \"schema\" varchar(1024),\n"
+ " \"table\" varchar(1024),\n"
+ " \"column\" varchar(1024),\n"
+ " \"type\" varchar(1024),\n"
+ " \"width\" integer,\n"
+ " \"count\" bigint,\n"
+ " \"unique\" boolean,\n"
+ " \"nils\" boolean,\n"
+ " \"minval\" string,\n"
+ " \"maxval\" string,\n"
+ " \"sorted\" boolean,\n"
+ " \"revsorted\" boolean\n"
+ ")\n"
+ "external name sql.\"statistics\";\n"
+ "grant execute on function
sys.\"statistics\"(varchar(1024),varchar(1024)) to public;\n"
+ "create function sys.\"statistics\"(\"sname\"
varchar(1024), \"tname\" varchar(1024), \"cname\" varchar(1024))\n"
+ "returns table (\n"
+ " \"column_id\" integer,\n"
+ " \"schema\" varchar(1024),\n"
+ " \"table\" varchar(1024),\n"
+ " \"column\" varchar(1024),\n"
+ " \"type\" varchar(1024),\n"
+ " \"width\" integer,\n"
+ " \"count\" bigint,\n"
+ " \"unique\" boolean,\n"
+ " \"nils\" boolean,\n"
+ " \"minval\" string,\n"
+ " \"maxval\" string,\n"
+ " \"sorted\" boolean,\n"
+ " \"revsorted\" boolean\n"
+ ")\n"
+ "external name sql.\"statistics\";\n"
+ "grant execute on function
sys.\"statistics\"(varchar(1024),varchar(1024),varchar(1024)) to public;\n"
+ "update sys._tables set system = true where
system <> true and schema_id = 2000 and name = 'statistics';\n"
+ "update sys.functions set system = true where
system <> true and schema_id = 2000 and name in ('analyze','statistics');\n");
+
assert(pos < bufsize);
printf("Running database upgrade commands:\n%s\n", buf);
err = SQLstatementIntern(c, buf, "update", true, false, NULL);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list