~drizzle-trunk/drizzle/development

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();