Changeset: 777cd94c802d for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=777cd94c802d Added Files: sql/test/scoping/Tests/ambiguity.sql Modified Files: sql/test/scoping/Tests/All Branch: scoping Log Message:
Another small test case for scopes. diffs (89 lines): diff --git a/sql/test/scoping/Tests/All b/sql/test/scoping/Tests/All --- a/sql/test/scoping/Tests/All +++ b/sql/test/scoping/Tests/All @@ -1,2 +1,3 @@ schema_disambiguity +ambiguity scoping01 diff --git a/sql/test/scoping/Tests/ambiguity.sql b/sql/test/scoping/Tests/ambiguity.sql new file mode 100644 --- /dev/null +++ b/sql/test/scoping/Tests/ambiguity.sql @@ -0,0 +1,77 @@ +-- This is a simple global variable and aims for all kinds of ambiguous use cases +START TRANSACTION; + +DECLARE Gvar string; +SET Gvar='Gvar'; + +CREATE SCHEMA A; +SET SCHEMA A; +DECLARE Avar string; +SET Avar='Avar'; + +CREATE OR REPLACE FUNCTION foo(i string) RETURNS INT +BEGIN DECLARE i string; set i ='i'; return i; END; + +CREATE OR REPLACE FUNCTION foo(gvar string) RETURNS INT +BEGIN DECLARE i string; set i ='i'; return i; END; + +CREATE OR REPLACE FUNCTION foo() RETURNS INT +BEGIN DECLARE i string; set i ='i'; return i; END; +SELECT foo(); + +CREATE OR REPLACE FUNCTION Gvar() RETURNS string +BEGIN DECLARE i string; set i ='function i'; return i; END; +SELECT Gvar(); + +-- now scopes +CREATE OR REPLACE FUNCTION foo() RETURNS string +BEGIN DECLARE i string; set i =gvar; return i; END; +SELECT foo(); + +CREATE OR REPLACE FUNCTION Gvar() RETURNS string +BEGIN DECLARE i string; set i =gvar; return i; END; +SELECT Gvar(); + +CREATE OR REPLACE FUNCTION foo() RETURNS string +BEGIN DECLARE i string; set i = sys.gvar; return i; END; +SELECT foo(); + +CREATE OR REPLACE FUNCTION Gvar() RETURNS string +BEGIN DECLARE i string; set i =sys.gvar; return i; END; +SELECT Gvar(); + +CREATE OR REPLACE FUNCTION foo() RETURNS string +BEGIN DECLARE i string; set i = A.gvar; return i; END; +SELECT foo(); + +CREATE OR REPLACE FUNCTION Gvar() RETURNS string +BEGIN DECLARE i string; set i =A.gvar; return i; END; +SELECT Gvar(); + +-- procedures +CREATE OR REPLACE PROCEDURE foo() +BEGIN DECLARE i string; set i = 'iassigned'; END; +CALL foo(); + +CREATE OR REPLACE PROCEDURE gvar() +BEGIN DECLARE i string; set i = 'iassigned'; END; +CALL foo(); + +CREATE OR REPLACE PROCEDURE foo() +BEGIN set A.avar = 'avar_assigned'; END; +CALL foo(); + +CREATE OR REPLACE PROCEDURE avar() +BEGIN set A.avar = 'avar_assigned'; END; +CALL avar(); + +-- play around with schema changes +CREATE OR REPLACE PROCEDURE avar() +BEGIN SET SCHEMA A; set avar = 'avar_assigned'; END; +CALL avar(); + +CREATE OR REPLACE PROCEDURE avar() +BEGIN SET SCHEMA A; set sys.avar = 'avar_assigned'; END; +CALL avar(); + +ROLLBACK; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list