1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
SELECT ASSERT(1);
SELECT ASSERT(1+1);
SELECT ASSERT(TRUE);
SELECT ASSERT(ASSERT(TRUE));
SELECT ASSERT(1 > 0);
SELECT (SELECT 1) UNION SELECT (SELECT ASSERT(TRUE));
SELECT (SELECT ASSERT(TRUE)) UNION SELECT (SELECT ASSERT(TRUE));
SELECT (SELECT ASSERT(TRUE)) UNION SELECT (SELECT 1);
--error ER_ASSERT
SELECT ASSERT(FALSE);
--error ER_ASSERT
SELECT ASSERT(ASSERT(FALSE));
--error ER_ASSERT_NULL
SELECT ASSERT(NULL);
--error ER_ASSERT
SELECT ASSERT(1 -1);
--error ER_ASSERT
SELECT ASSERT(1 < 0);
--error ER_ASSERT
SELECT (SELECT (SELECT (ASSERT(1 -1))));
--error ER_ASSERT
SELECT 1 FROM (SELECT ASSERT(FALSE)) failure;
--error ER_ASSERT
SELECT (SELECT 1) UNION SELECT (SELECT ASSERT(FALSE));
--error ER_ASSERT
SELECT (SELECT ASSERT(FALSE)) UNION SELECT (SELECT ASSERT(FALSE));
--error ER_ASSERT
SELECT (SELECT ASSERT(FALSE)) UNION SELECT (SELECT 1);
--error ER_ASSERT_NULL
select ASSERT(IF((0 > 1),1, NULL));
# Look at assertions based on table result return
CREATE TABLE t1 (a int);
--error ER_ASSERT
SELECT ASSERT(COUNT(a)) FROM t1;
INSERT INTO t1 VALUES ();
SELECT ASSERT(COUNT(*)) FROM t1;
--error ER_ASSERT
SELECT ASSERT(COUNT(a)) FROM t1;
DROP table t1;
# Look at assertions based on assert during create table
CREATE TABLE t1 AS SELECT ASSERT(TRUE);
SELECT * from t1;
DROP TABLE t1;
--error ER_ASSERT
CREATE TABLE t1 AS SELECT ASSERT(FALSE);
SELECT ASSERT(COUNT(*) = 0) FROM DATA_DICTIONARY.TABLES WHERE TABLE_NAME="t1" AND TABLE_SCHEMA=SCHEMA();
|