Skip to content

Commit 2238327

Browse files
committed
add logic test
1 parent 42acfb1 commit 2238327

File tree

1 file changed

+105
-0
lines changed

1 file changed

+105
-0
lines changed
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
statement ok
2+
set global enable_experimental_procedure=1;
3+
4+
statement ok
5+
create or replace database test_auto_commit;
6+
7+
statement ok
8+
use test_auto_commit;
9+
10+
statement ok
11+
create table test_table (id int, data string);
12+
13+
statement ok
14+
drop procedure if exists proc_create_table();
15+
16+
statement ok
17+
CREATE PROCEDURE proc_create_table() RETURNS int LANGUAGE SQL AS $$
18+
BEGIN
19+
CREATE TABLE new_table (x int);
20+
INSERT INTO new_table VALUES (42);
21+
RETURN 1;
22+
END;
23+
$$;
24+
25+
statement ok
26+
drop procedure if exists proc_drop_table();
27+
28+
statement ok
29+
CREATE PROCEDURE proc_drop_table() RETURNS int LANGUAGE SQL AS $$
30+
BEGIN
31+
DROP TABLE IF EXISTS new_table;
32+
RETURN 1;
33+
END;
34+
$$;
35+
36+
statement ok
37+
drop procedure if exists proc_only_dml();
38+
39+
statement ok
40+
CREATE PROCEDURE proc_only_dml() RETURNS int LANGUAGE SQL AS $$
41+
BEGIN
42+
INSERT INTO test_table VALUES (2, 'from_proc');
43+
UPDATE test_table SET data = 'updated' WHERE id = 1;
44+
RETURN 1;
45+
END;
46+
$$;
47+
48+
statement ok
49+
begin;
50+
51+
statement ok
52+
insert into test_table values (10, 'txn_data');
53+
54+
statement ok
55+
call procedure proc_create_table();
56+
57+
query I
58+
select count(*) from test_table;
59+
----
60+
1
61+
62+
statement ok
63+
rollback;
64+
65+
query I
66+
select count(*) from test_table;
67+
----
68+
1
69+
70+
statement ok
71+
call procedure proc_drop_table();
72+
73+
statement ok
74+
begin;
75+
76+
statement ok
77+
insert into test_table values (11, 'txn_data2');
78+
79+
statement ok
80+
call procedure proc_only_dml();
81+
82+
query I
83+
select count(*) from test_table;
84+
----
85+
3
86+
87+
statement ok
88+
rollback;
89+
90+
query I
91+
select count(*) from test_table;
92+
----
93+
1
94+
95+
statement ok
96+
drop procedure proc_create_table();
97+
98+
statement ok
99+
drop procedure proc_drop_table();
100+
101+
statement ok
102+
drop procedure proc_only_dml();
103+
104+
statement ok
105+
drop database test_auto_commit;

0 commit comments

Comments
 (0)