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

Reply via email to