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]

Reply via email to