Changeset: 6b50d879e364 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/6b50d879e364
Modified Files:
        sql/test/emptydb/Tests/check.stable.out
        sql/test/emptydb/Tests/check.stable.out.32bit
        sql/test/emptydb/Tests/check.stable.out.int128
Branch: extract_types
Log Message:

Merge with default.


diffs (truncated from 423 to 300 lines):

diff --git a/common/stream/iconv_stream.c b/common/stream/iconv_stream.c
--- a/common/stream/iconv_stream.c
+++ b/common/stream/iconv_stream.c
@@ -90,8 +90,7 @@ ic_write(stream *restrict s, const void 
                                /* not enough space in output buffer */
                                break;
                        default:
-                               /* cannot happen (according to manual) */
-                               mnstr_set_error(s, MNSTR_WRITE_ERROR, "iconv 
internal error %d", errno);
+                               mnstr_set_error_errno(s, MNSTR_WRITE_ERROR, 
"iconv reported an error");
                                goto bailout;
                        }
                }
@@ -153,7 +152,7 @@ ic_read(stream *restrict s, void *restri
                        }
                        if (iconv(ic->cd, NULL, NULL, &outbuf, &outbytesleft) 
== (size_t) -1) {
                                /* some error occurred */
-                               mnstr_set_error(s, MNSTR_READ_ERROR, 
"unspecified iconv error occurred");
+                               mnstr_set_error_errno(s, MNSTR_READ_ERROR, 
"iconv reported an error");
                                return -1;
                        }
                        goto exit_func; /* double break */
@@ -176,8 +175,7 @@ ic_read(stream *restrict s, void *restri
                                 * the buffer */
                                goto exit_func;
                        default:
-                               /* cannot happen (according to manual) */
-                               mnstr_set_error(s, MNSTR_READ_ERROR, "inconv 
stream: internal error");
+                               mnstr_set_error_errno(s, MNSTR_READ_ERROR, 
"iconv reported an error");
                                return -1;
                        }
                }
diff --git a/monetdb5/mal/mal_client.c b/monetdb5/mal/mal_client.c
--- a/monetdb5/mal/mal_client.c
+++ b/monetdb5/mal/mal_client.c
@@ -500,6 +500,7 @@ MCcloseClient(Client c)
        c->handshake_options = NULL;
        setClientContext(NULL);
        MT_thread_set_qry_ctx(NULL);
+       assert(c->qryctx.datasize == 0);
        MT_sema_destroy(&c->s);
        MT_lock_set(&mal_contextLock);
        if (shutdowninprogress) {
diff --git a/sql/ChangeLog b/sql/ChangeLog
--- a/sql/ChangeLog
+++ b/sql/ChangeLog
@@ -1,6 +1,10 @@
 # ChangeLog file for sql
 # This file is updated with Maddlog
 
+* Thu Nov  3 2022 Martin van Dinther <martin.van.dint...@monetdbsolutions.com>
+- System views sys.dependency_tables_on_functions and
+  dependency_views_on_functions have been extended with column: function_id.
+
 * Fri Sep 30 2022 Joeri van Ruth <joeri.van.r...@monetdbsolutions.com>
 - When loading data using COPY BINARY INTO, apply default values instead of 
just
   inserting NULLs.
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
@@ -5407,8 +5407,8 @@ sql_update_default(Client c, mvc *sql, s
                                                        " INSERT INTO 
sys.dump_statements VALUES ((SELECT COUNT(*) FROM sys.dump_statements) + 1, 
'COMMIT;');\n"
                                                        " RETURN 
sys.dump_statements;\n"
                                                        "END;\n"
-                                                       "update sys.functions 
set system = true where system <> true and name in ('sq', 
'get_remote_table_expressions', 'prepare_esc') and schema_id = 2000 and type = 
%d;\n"
-                                                       "update sys._tables set 
system = true where system <> true and name in ('describe_tables', 
'dump_create_users', 'dump_partition_tables', 'dump_comments', 'dump_tables') 
and schema_id = 2000;\n"
+                                                       "update sys.functions 
set system = true where system <> true and name in ('sq', 
'get_remote_table_expressions', 'prepare_esc') and schema_id = 2000 and type = 
%d;\n"
+                                                       "update sys._tables set 
system = true where system <> true and name in ('describe_tables', 
'dump_create_users', 'dump_partition_tables', 'dump_comments', 'dump_tables') 
and schema_id = 2000;\n"
                                                        "update sys.functions 
set system = true where system <> true and name = 'dump_table_data' and 
schema_id = 2000 and type = %d;\n"
                                                        "update sys.functions 
set system = true where system <> true and name = 'dump_database' and schema_id 
= 2000 and type = %d;\n"
                                                        "GRANT SELECT ON 
sys.describe_tables TO PUBLIC;\n",
@@ -5421,6 +5421,50 @@ sql_update_default(Client c, mvc *sql, s
                output = NULL;
        }
 
+       /* Add new column 'function_id' to views
+        * sys.dependency_tables_on_functions and dependency_views_on_functions 
*/
+       pos = snprintf(buf, bufsize,
+                                  "SELECT id FROM sys._columns where name = 
'function_id' "
+                                  "and table_id in (select id FROM sys._tables 
where system "
+                                  "and name in 
('dependency_tables_on_functions','dependency_views_on_functions') "
+                                  "and schema_id = 2000);\n");
+       if ((err = SQLstatementIntern(c, buf, "update", true, false, &output)) 
== NULL) {
+               if ((b = BBPquickdesc(output->cols[0].b)) && BATcount(b) != 2) {
+                       sql_table *t;
+                       if ((t = mvc_bind_table(sql, s, 
"dependency_tables_on_functions")) != NULL)
+                               t->system = 0;
+                       if ((t = mvc_bind_table(sql, s, 
"dependency_views_on_functions")) != NULL)
+                               t->system = 0;
+                       pos = 0;
+                       pos += snprintf(buf + pos, bufsize - pos,
+                                                       "drop view if exists 
sys.dependency_tables_on_functions;\n"
+                                                       "drop view if exists 
sys.dependency_views_on_functions;\n"
+                                                       "CREATE VIEW 
sys.dependency_tables_on_functions AS\n"
+                                                       "SELECT t.schema_id AS 
table_schema_id, t.id AS table_id, t.name AS table_name,"
+                                                       " f.id AS function_id, 
f.name AS function_name, f.type AS function_type, dep.depend_type AS 
depend_type\n"
+                                                       "  FROM sys.functions 
AS f, sys.tables AS t, sys.dependencies AS dep\n"
+                                                       " WHERE t.id = dep.id 
AND f.id = dep.depend_id\n"
+                                                       "   AND dep.depend_type 
= 7 AND f.type <> 2 AND t.type NOT IN (1, 11)\n"
+                                                       " ORDER BY t.name, 
t.schema_id, f.name, f.id;\n"
+                                                       "GRANT SELECT ON 
sys.dependency_tables_on_functions TO PUBLIC;\n"
+                                                       "CREATE VIEW 
sys.dependency_views_on_functions AS\n"
+                                                       "SELECT v.schema_id AS 
view_schema_id, v.id AS view_id, v.name AS view_name,"
+                                                       " f.id AS function_id, 
f.name AS function_name, f.type AS function_type, dep.depend_type AS 
depend_type\n"
+                                                       "  FROM sys.functions 
AS f, sys.tables AS v, sys.dependencies AS dep\n"
+                                                       " WHERE v.id = dep.id 
AND f.id = dep.depend_id\n"
+                                                       "   AND dep.depend_type 
= 7 AND f.type <> 2 AND v.type IN (1, 11)\n"
+                                                       " ORDER BY v.name, 
v.schema_id, f.name, f.id;\n"
+                                                       "GRANT SELECT ON 
sys.dependency_views_on_functions TO PUBLIC;\n"
+                                                       "update sys._tables set 
system = true where system <> true and name in "
+                                                       
"('dependency_tables_on_functions','dependency_views_on_functions') and 
schema_id = 2000;\n");
+                       assert(pos < bufsize);
+                       printf("Running database upgrade commands:\n%s\n", buf);
+                       err = SQLstatementIntern(c, buf, "update", true, false, 
NULL);
+               }
+               res_table_destroy(output);
+               output = NULL;
+       }
+
        GDKfree(buf);
        return err;             /* usually MAL_SUCCEED */
 }
diff --git a/sql/scripts/21_dependency_views.sql 
b/sql/scripts/21_dependency_views.sql
--- a/sql/scripts/21_dependency_views.sql
+++ b/sql/scripts/21_dependency_views.sql
@@ -167,7 +167,7 @@ GRANT SELECT ON sys.dependency_schemas_o
 -- SELECT * FROM sys.dependencies_vw WHERE depend_type = 7 ORDER BY obj_type, 
id;
 -- Table t has a dependency on function f.
 CREATE VIEW sys.dependency_tables_on_functions AS
-SELECT t.schema_id AS table_schema_id, t.id AS table_id, t.name AS table_name, 
f.name AS function_name, f.type AS function_type, dep.depend_type AS depend_type
+SELECT t.schema_id AS table_schema_id, t.id AS table_id, t.name AS table_name, 
f.id AS function_id, f.name AS function_name, f.type AS function_type, 
dep.depend_type AS depend_type
   FROM sys.functions AS f, sys.tables AS t, sys.dependencies AS dep
  WHERE t.id = dep.id AND f.id = dep.depend_id
    AND dep.depend_type = 7 AND f.type <> 2 AND t.type NOT IN (1, 11)
@@ -177,7 +177,7 @@ GRANT SELECT ON sys.dependency_tables_on
 
 -- View v has a dependency on function f.
 CREATE VIEW sys.dependency_views_on_functions AS
-SELECT v.schema_id AS view_schema_id, v.id AS view_id, v.name AS view_name, 
f.name AS function_name, f.type AS function_type, dep.depend_type AS depend_type
+SELECT v.schema_id AS view_schema_id, v.id AS view_id, v.name AS view_name, 
f.id AS function_id, f.name AS function_name, f.type AS function_type, 
dep.depend_type AS depend_type
   FROM sys.functions AS f, sys.tables AS v, sys.dependencies AS dep
  WHERE v.id = dep.id AND f.id = dep.depend_id
    AND dep.depend_type = 7 AND f.type <> 2 AND v.type IN (1, 11)
diff --git a/sql/server/rel_statistics.c b/sql/server/rel_statistics.c
--- a/sql/server/rel_statistics.c
+++ b/sql/server/rel_statistics.c
@@ -883,7 +883,8 @@ rel_get_statistics_(visitor *v, sql_rel 
                                                        }
                                                }
                                        }
-                                       set_count_prop(v->sql->sa, rel, cnt/u);
+                                       /* u is an *estimate*, so don't set 
count_prop to 0 unless cnt is 0 */
+                                       set_count_prop(v->sql->sa, rel, cnt == 
0 ? 0 : u > cnt ? 1 : cnt/u);
                                } else {
                                        set_count_prop(v->sql->sa, rel, 
get_rel_count(l));
                                }
diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -62,6 +62,29 @@ static void merge_delta( sql_delta *obat
                ((!seg->deleted && VALID_4_READ(seg->ts, tr)) || \
                 (seg->deleted && OLD_VALID_4_READ(seg->ts, seg->oldts, tr)))
 
+static inline void
+transfer_to_systrans(BAT *b)
+{
+       /* transfer a BAT from the TRANSIENT farm to the SYSTRANS farm */
+       MT_lock_set(&b->theaplock);
+       if (b->theap->farmid == TRANSIENT ||
+               (b->tvheap && b->tvheap->farmid == TRANSIENT)) {
+               QryCtx *qc = MT_thread_get_qry_ctx();
+               if (qc) {
+                       if (b->theap->farmid == TRANSIENT && b->theap->parentid 
== b->batCacheid) {
+                               ATOMIC_SUB(&qc->datasize, b->theap->size);
+                               b->theap->farmid = SYSTRANS;
+                               b->batRole = SYSTRANS;
+                       }
+                       if (b->tvheap && b->tvheap->farmid == TRANSIENT && 
b->tvheap->parentid == b->batCacheid) {
+                               ATOMIC_SUB(&qc->datasize, b->tvheap->size);
+                               b->tvheap->farmid = SYSTRANS;
+                       }
+               }
+       }
+       MT_lock_unset(&b->theaplock);
+}
+
 static void
 lock_table(sqlstore *store, sqlid id)
 {
@@ -1279,6 +1302,7 @@ dict_append_bat(sql_trans *tr, sql_delta
                                if (cs->bid && !new)
                                        temp_destroy(cs->bid);
                                bat_set_access(n, BAT_READ);
+                               transfer_to_systrans(n);
                                cs->bid = temp_create(n);
                                bat_destroy(n);
                                if (cs->ebid && !new)
@@ -1321,6 +1345,7 @@ dict_append_bat(sql_trans *tr, sql_delta
                                if (cs->bid && !new)
                                        temp_destroy(cs->bid);
                                bat_set_access(n, BAT_READ);
+                               transfer_to_systrans(n);
                                cs->bid = temp_create(n);
                                bat_destroy(n);
                                cs->cleared = true;
@@ -1373,6 +1398,7 @@ for_append_bat(column_storage *cs, BAT *
                        if (cs->bid)
                                temp_destroy(cs->bid);
                        bat_set_access(n, BAT_READ);
+                       transfer_to_systrans(n);
                        cs->bid = temp_create(n);
                        cs->ucnt = 0;
                        if (cs->uibid)
@@ -1626,6 +1652,8 @@ cs_update_bat( sql_trans *tr, sql_delta 
                                } else {
                                        temp_destroy(cs->uibid);
                                        temp_destroy(cs->uvbid);
+                                       transfer_to_systrans(ui);
+                                       transfer_to_systrans(uv);
                                        cs->uibid = temp_create(ui);
                                        cs->uvbid = temp_create(uv);
                                        cs->ucnt = BATcount(ui);
@@ -1718,6 +1746,8 @@ cs_update_bat( sql_trans *tr, sql_delta 
                                                if (res == LOG_OK) {
                                                        temp_destroy(cs->uibid);
                                                        temp_destroy(cs->uvbid);
+                                                       
transfer_to_systrans(nui);
+                                                       
transfer_to_systrans(nuv);
                                                        cs->uibid = 
temp_create(nui);
                                                        cs->uvbid = 
temp_create(nuv);
                                                        cs->ucnt = 
BATcount(nui);
@@ -1808,6 +1838,7 @@ dict_append_val(sql_trans *tr, sql_delta
                                if (cs->bid && !new)
                                        temp_destroy(cs->bid);
                                bat_set_access(n, BAT_READ);
+                               transfer_to_systrans(n);
                                cs->bid = temp_create(n);
                                bat_destroy(n);
                                if (cs->ebid && !new)
@@ -1845,6 +1876,7 @@ dict_append_val(sql_trans *tr, sql_delta
                                if (cs->bid)
                                        temp_destroy(cs->bid);
                                bat_set_access(n, BAT_READ);
+                               transfer_to_systrans(n);
                                cs->bid = temp_create(n);
                                bat_destroy(n);
                                cs->cleared = true;
@@ -1881,6 +1913,7 @@ for_append_val(column_storage *cs, void 
                        if (cs->bid)
                                temp_destroy(cs->bid);
                        bat_set_access(n, BAT_READ);
+                       transfer_to_systrans(n);
                        cs->bid = temp_create(n);
                        cs->st = ST_DEFAULT;
                        /* at append_col the column's storage type is cleared */
@@ -4971,10 +5004,12 @@ col_compress(sql_trans *tr, sql_column *
        if (d->cs.bid)
                temp_destroy(d->cs.bid);
        bat_set_access(o, BAT_READ);
+       transfer_to_systrans(o);
        d->cs.bid = temp_create(o);
        if (u) {
                if (d->cs.ebid)
                        temp_destroy(d->cs.ebid);
+               transfer_to_systrans(u);
                d->cs.ebid = temp_create(u);
        }
        return LOG_OK;
diff --git a/sql/test/BugTracker-2022/Tests/dependencies.Bug-7328.test 
b/sql/test/BugTracker-2022/Tests/dependencies.Bug-7328.test
--- a/sql/test/BugTracker-2022/Tests/dependencies.Bug-7328.test
+++ b/sql/test/BugTracker-2022/Tests/dependencies.Bug-7328.test
@@ -123,6 +123,10 @@ FROM sys.dependency_columns_on_functions
 WHERE function_name LIKE 'mmtest04'
 ORDER BY name
 ----
+id
+mmtest04
+1
+7
 name
 mmtest04
 1
diff --git a/sql/test/emptydb/Tests/check.stable.out 
b/sql/test/emptydb/Tests/check.stable.out
--- a/sql/test/emptydb/Tests/check.stable.out
+++ b/sql/test/emptydb/Tests/check.stable.out
@@ -451,13 +451,13 @@ select 'null in value_partitions.value',
 [ "sys._tables",       "sys",  "dependency_owners_on_schemas", "create view 
sys.dependency_owners_on_schemas as select a.name as owner_name, s.id as 
schema_id, s.name as schema_name, cast(1 as smallint) as depend_type from 
sys.schemas as s, sys.auths as a where s.owner = a.id order by a.name, 
s.name;",        "VIEW", true,   "COMMIT",       "WRITABLE",     NULL    ]
 [ "sys._tables",       "sys",  "dependency_schemas_on_users",  "create view 
sys.dependency_schemas_on_users as select s.id as schema_id, s.name as 
schema_name, u.name as user_name, cast(6 as smallint) as depend_type from 
sys.db_user_info as u, sys.schemas as s where u.default_schema = s.id order by 
s.name, u.name;",  "VIEW", true,   "COMMIT",       "WRITABLE",     NULL    ]
 [ "sys._tables",       "sys",  "dependency_tables_on_foreignkeys",     "create 
view sys.dependency_tables_on_foreignkeys as select t.schema_id as 
table_schema_id, t.id as table_id, t.name as table_name, fk.name as fk_name, 
cast(k.type as smallint) as key_type, cast(11 as smallint) as depend_type from 
sys.tables as t, sys.keys as k, sys.keys as fk where fk.rkey = k.id and 
k.table_id = t.id order by t.schema_id, t.name, fk.name;",       "VIEW", true,  
 "COMMIT",       "WRITABLE",     NULL    ]
-[ "sys._tables",       "sys",  "dependency_tables_on_functions",       "create 
view sys.dependency_tables_on_functions as select t.schema_id as 
table_schema_id, t.id as table_id, t.name as table_name, f.name as 
function_name, f.type as function_type, dep.depend_type as depend_type from 
sys.functions as f, sys.tables as t, sys.dependencies as dep where t.id = 
dep.id and f.id = dep.depend_id and dep.depend_type = 7 and f.type <> 2 and 
t.type not in (1, 11) order by t.name, t.schema_id, f.name, f.id;",       
"VIEW", true,   "COMMIT",       "WRITABLE",     NULL    ]
+[ "sys._tables",       "sys",  "dependency_tables_on_functions",       "create 
view sys.dependency_tables_on_functions as select t.schema_id as 
table_schema_id, t.id as table_id, t.name as table_name, f.id as function_id, 
f.name as function_name, f.type as function_type, dep.depend_type as 
depend_type from sys.functions as f, sys.tables as t, sys.dependencies as dep 
where t.id = dep.id and f.id = dep.depend_id and dep.depend_type = 7 and f.type 
<> 2 and t.type not in (1, 11) order by t.name, t.schema_id, f.name, f.id;",  
"VIEW", true,   "COMMIT",       "WRITABLE",     NULL    ]
 [ "sys._tables",       "sys",  "dependency_tables_on_indexes", "create view 
sys.dependency_tables_on_indexes as select t.schema_id as table_schema_id, t.id 
as table_id, t.name as table_name, i.id as index_id, i.name as index_name, 
i.type as index_type, cast(10 as smallint) as depend_type from sys.tables as t, 
sys.idxs as i where i.table_id = t.id and (i.table_id, i.name) not in (select 
k.table_id, k.name from sys.keys k) order by t.schema_id, t.name, i.name;",     
  "VIEW", true,   "COMMIT",       "WRITABLE",     NULL    ]
 [ "sys._tables",       "sys",  "dependency_tables_on_procedures",      "create 
view sys.dependency_tables_on_procedures as select t.schema_id as 
table_schema_id, t.id as table_id, t.name as table_name, p.id as procedure_id, 
p.name as procedure_name, p.type as procedure_type, dep.depend_type as 
depend_type from sys.functions as p, sys.tables as t, sys.dependencies as dep 
where t.id = dep.id and p.id = dep.depend_id and dep.depend_type = 13 and 
p.type = 2 and t.type not in (1, 11) order by t.name, t.schema_id, p.name, 
p.id;",      "VIEW", true,   "COMMIT",       "WRITABLE",     NULL    ]
 [ "sys._tables",       "sys",  "dependency_tables_on_triggers",        "create 
view sys.dependency_tables_on_triggers as (select t.schema_id as 
table_schema_id, t.id as table_id, t.name as table_name, tri.id as trigger_id, 
tri.name as trigger_name, cast(8 as smallint) as depend_type from sys.tables as 
t, sys.triggers as tri where tri.table_id = t.id) union (select t.schema_id as 
table_schema_id, t.id as table_id, t.name as table_name, tri.id as trigger_id, 
tri.name as trigger_name, dep.depend_type as depend_type from sys.tables as t, 
sys.triggers as tri, sys.dependencies as dep where dep.id = t.id and 
dep.depend_id = tri.id and dep.depend_type = 8) order by table_schema_id, 
table_name, trigger_name;", "VIEW", true,   "COMMIT",       "WRITABLE",     
NULL    ]
 [ "sys._tables",       "sys",  "dependency_tables_on_views",   "create view 
sys.dependency_tables_on_views as select t.schema_id as table_schema_id, t.id 
as table_id, t.name as table_name, v.schema_id as view_schema_id, v.id as 
view_id, v.name as view_name, dep.depend_type as depend_type from sys.tables as 
t, sys.tables as v, sys.dependencies as dep where t.id = dep.id and v.id = 
dep.depend_id and dep.depend_type = 5 and t.type not in (1, 11) and v.type in 
(1, 11) order by t.schema_id, t.name, v.schema_id, v.name;",      "VIEW", true, 
  "COMMIT",       "WRITABLE",     NULL    ]
 [ "sys._tables",       "sys",  "dependency_types",     NULL,   "TABLE",        
true,   "COMMIT",       "READONLY",     NULL    ]
-[ "sys._tables",       "sys",  "dependency_views_on_functions",        "create 
view sys.dependency_views_on_functions as select v.schema_id as view_schema_id, 
v.id as view_id, v.name as view_name, f.name as function_name, f.type as 
function_type, dep.depend_type as depend_type from sys.functions as f, 
sys.tables as v, sys.dependencies as dep where v.id = dep.id and f.id = 
dep.depend_id and dep.depend_type = 7 and f.type <> 2 and v.type in (1, 11) 
order by v.name, v.schema_id, f.name, f.id;",       "VIEW", true,   "COMMIT",   
    "WRITABLE",     NULL    ]
+[ "sys._tables",       "sys",  "dependency_views_on_functions",        "create 
view sys.dependency_views_on_functions as select v.schema_id as view_schema_id, 
v.id as view_id, v.name as view_name, f.id as function_id, f.name as 
function_name, f.type as function_type, dep.depend_type as depend_type from 
sys.functions as f, sys.tables as v, sys.dependencies as dep where v.id = 
dep.id and f.id = dep.depend_id and dep.depend_type = 7 and f.type <> 2 and 
v.type in (1, 11) order by v.name, v.schema_id, f.name, f.id;",  "VIEW", true,  
 "COMMIT",       "WRITABLE",     NULL    ]
 [ "sys._tables",       "sys",  "dependency_views_on_procedures",       "create 
view sys.dependency_views_on_procedures as select v.schema_id as 
view_schema_id, v.id as view_id, v.name as view_name, p.id as procedure_id, 
p.name as procedure_name, p.type as procedure_type, dep.depend_type as 
depend_type from sys.functions as p, sys.tables as v, sys.dependencies as dep 
where v.id = dep.id and p.id = dep.depend_id and dep.depend_type = 13 and 
p.type = 2 and v.type in (1, 11) order by v.name, v.schema_id, p.name, p.id;",  
    "VIEW", true,   "COMMIT",       "WRITABLE",     NULL    ]
 [ "sys._tables",       "sys",  "dependency_views_on_views",    "create view 
sys.dependency_views_on_views as select v1.schema_id as view1_schema_id, v1.id 
as view1_id, v1.name as view1_name, v2.schema_id as view2_schema_id, v2.id as 
view2_id, v2.name as view2_name, dep.depend_type as depend_type from sys.tables 
as v1, sys.tables as v2, sys.dependencies as dep where v1.id = dep.id and v2.id 
= dep.depend_id and dep.depend_type = 5 and v1.type in (1, 11) and v2.type in 
(1, 11) order by v1.schema_id, v1.name, v2.schema_id, v2.name;",        "VIEW", 
true,   "COMMIT",       "WRITABLE",     NULL    ]
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to