Changeset: 1f7a97e8b144 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/1f7a97e8b144
Modified Files:
sql/test/BugTracker-2022/Tests/dependencies.Bug-7328.test
Branch: Sep2022
Log Message:
Extend dependencies test also for function bodies containing:
UPDATE mmtest01 SET name = 'update 1 col';
or
SELECT max(id) as id FROM mmtest01;
or
DELETE FROM mmtest01 WHERE name like '%test';
In case of SELECT and DELETE it correctly lists a dependency on one column.
However for the UPDATE statement it shows dependency on 2 columns (id and name)
where we expect 1 column (name).
diffs (155 lines):
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
@@ -97,12 +97,12 @@ 7
# even when 0 columns are specified in the function mmtest03 body, the insert
statement depends on all (2) columns of a table
-# also check what happens when you specify DELETE instead of INSERT
+# also check what happens when you specify UPDATE instead of INSERT
statement ok
CREATE OR REPLACE FUNCTION mmtest04()
RETURNS int
BEGIN
- DELETE FROM mmtest01;
+ UPDATE mmtest01 SET name = 'update 1 col';
RETURN 1;
END
@@ -112,12 +112,98 @@ select mmtest04()
query IT nosort
SELECT * FROM mmtest01
----
+1
+update 1 col
+2
+update 1 col
+
+query TTII nosort
+SELECT name, function_name, function_type, depend_type
+FROM sys.dependency_columns_on_functions
+WHERE function_name LIKE 'mmtest04'
+ORDER BY name
+----
+name
+mmtest04
+1
+7
+
+# also check what happens when you specify SELECT instead of INSERT
+statement ok
+CREATE OR REPLACE FUNCTION mmtest05()
+RETURNS int
+BEGIN
+ RETURN SELECT max(id) as id FROM mmtest01;
+END
+
+statement ok
+select mmtest05()
+
+query TTII nosort
+SELECT name, function_name, function_type, depend_type
+FROM sys.dependency_columns_on_functions
+WHERE function_name LIKE 'mmtest05'
+ORDER BY name
+----
+id
+mmtest05
+1
+7
+
+# also check what happens when you specify DELETE instead of INSERT
+statement ok
+CREATE OR REPLACE FUNCTION mmtest06()
+RETURNS int
+BEGIN
+ DELETE FROM mmtest01;
+ RETURN 1;
+END
+
+statement ok
+select mmtest06()
+
+query IT nosort
+SELECT * FROM mmtest01
+----
+
+query TTII nosort
+SELECT name, function_name, function_type, depend_type
+FROM sys.dependency_columns_on_functions
+WHERE function_name LIKE 'mmtest06'
+ORDER BY name
+----
+
+statement ok
+CREATE OR REPLACE FUNCTION mmtest07()
+RETURNS int
+BEGIN
+ DELETE FROM mmtest01 WHERE name like '%test';
+ RETURN 1;
+END
+
+statement ok
+select mmtest07()
+
+query IT nosort
+SELECT * FROM mmtest01
+----
+
+query TTII nosort
+SELECT name, function_name, function_type, depend_type
+FROM sys.dependency_columns_on_functions
+WHERE function_name LIKE 'mmtest07'
+ORDER BY name
+----
+name
+mmtest07
+1
+7
query TTII nosort
SELECT table_name, function_name, function_type, depend_type
FROM sys.dependency_tables_on_functions
WHERE table_name LIKE 'mmtest01'
-ORDER BY table_name
+ORDER BY table_name, function_name
----
mmtest01
mmtest02
@@ -131,12 +217,34 @@ mmtest01
mmtest04
1
7
+mmtest01
+mmtest05
+1
+7
+mmtest01
+mmtest06
+1
+7
+mmtest01
+mmtest07
+1
+7
+
+statement ok
+DROP TABLE mmtest01 CASCADE
+
+query TTII nosort
+SELECT table_name, function_name, function_type, depend_type
+FROM sys.dependency_tables_on_functions
+WHERE table_name LIKE 'mmtest01'
+ORDER BY table_name, function_name
+----
query TTII nosort
SELECT name, function_name, function_type, depend_type
FROM sys.dependency_columns_on_functions
-WHERE function_name LIKE 'mmtest04'
-ORDER BY name
+WHERE function_name LIKE 'mmtest0_'
+ORDER BY function_name, name
----
statement ok
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]