~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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# Drizzle's data dictionary.

CREATE SCHEMA data_dictionary;

--replace_column 1 #
SELECT ID FROM data_dictionary.processlist;

--replace_column 1 #
SELECT ID FROM data_dictionary.processlist ORDER BY ID;

--replace_column 1 #
SELECT a.ID FROM data_dictionary.processlist as a, data_dictionary.processlist as b ORDER BY ID;

--replace_column 1 #
SELECT a.ID FROM data_dictionary.processlist as a, data_dictionary.processlist as b;

--replace_column 1 #
SELECT count(*) FROM data_dictionary.plugins;

--replace_column 1 #
SELECT count(*) FROM data_dictionary.columns;

--replace_column 1 #
SELECT count(*) FROM data_dictionary.indexes;

--replace_column 1 #
SELECT count(*) FROM data_dictionary.index_parts;

--replace_column 1 #
SELECT count(*) FROM data_dictionary.modules;

SELECT * FROM data_dictionary.character_sets ORDER BY CHARACTER_SET_NAME;

SELECT * FROM data_dictionary.collations ORDER BY COLLATION_NAME;

--replace_column 1 #
SELECT SCHEMA_NAME  FROM data_dictionary.schemas;

--replace_column 1 #
SELECT COLUMN_NAME  FROM data_dictionary.columns;

--replace_column 1 #
SELECT count(*) FROM data_dictionary.GLOBAL_STATEMENTS;

--replace_column 1 #
SELECT count(*) FROM data_dictionary.GLOBAL_STATUS;

--replace_column 1 #
SELECT count(*) FROM data_dictionary.GLOBAL_VARIABLES;

--replace_column 1 #
SELECT count(*) FROM data_dictionary.SESSION_STATEMENTS;

--replace_column 1 #
SELECT count(*) FROM data_dictionary.SESSION_STATUS;

--replace_column 1 #
SELECT count(*) FROM data_dictionary.SESSION_VARIABLES;

# Make sure we don't change the names of the columns

use data_dictionary;

show create table CHARACTER_SETS ;
show create table COLLATIONS ;
show create table COLUMNS ;
show create table GLOBAL_STATUS ;
show create table GLOBAL_STATEMENTS ;
show create table GLOBAL_VARIABLES ;
show create table INDEXES ;
show create table INDEX_PARTS ;
show create table LOCAL_TABLE_NAMES;
show create table MODULES ;
show create table PLUGINS ;
show create table PROCESSLIST ;
show create table REFERENTIAL_CONSTRAINTS ;
show create table SCHEMAS ;
show create table SCHEMA_NAMES;
show create table SESSION_STATEMENTS;
show create table SESSION_STATUS;
show create table SESSION_VARIABLES;
show create table TABLES ;
show create table TABLE_CONSTRAINTS ;

# Test the behavior of LOCAL_TABLE_NAMES
select * from LOCAL_TABLE_NAMES;


# Slap tests for concurrency
CREATE SCHEMA drizzleslap;

--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="select * from data_dictionary.SESSION_STATEMENTS" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="select * from data_dictionary.SESSION_STATUS" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="select * from data_dictionary.character_sets" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="select * from data_dictionary.collations" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="select * from data_dictionary.columns" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="select * from data_dictionary.global_statements" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="select * from data_dictionary.global_status" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="select * from data_dictionary.global_variables" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="select * from data_dictionary.index_parts" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="select * from data_dictionary.indexes" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="select * from data_dictionary.modules" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="select * from data_dictionary.plugins" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="select * from data_dictionary.processlist" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="select * from data_dictionary.referential_constraints" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="select * from data_dictionary.schemas" --delimiter=";"
#--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="select * from data_dictionary.table_constraints" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="select * from data_dictionary.tables" --delimiter=";"

--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="SELECT a.VARIABLE_NAME FROM data_dictionary.GLOBAL_STATEMENTS as a, data_dictionary.GLOBAL_STATEMENTS as b ORDER BY VARIABLE_NAME" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="SELECT a.VARIABLE_NAME FROM data_dictionary.GLOBAL_STATUS as a, data_dictionary.GLOBAL_STATUS as b ORDER BY VARIABLE_NAME" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="SELECT a.VARIABLE_NAME FROM data_dictionary.GLOBAL_VARIABLES as a, data_dictionary.GLOBAL_VARIABLES as b" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="SELECT a.VARIABLE_NAME FROM data_dictionary.SESSION_STATEMENTS as a, data_dictionary.SESSION_STATEMENTS as b ORDER BY VARIABLE_NAME" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="SELECT a.VARIABLE_NAME FROM data_dictionary.SESSION_STATUS as a, data_dictionary.SESSION_STATUS as b ORDER BY VARIABLE_NAME" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="SELECT a.VARIABLE_NAME FROM data_dictionary.SESSION_VARIABLES as a, data_dictionary.SESSION_VARIABLES as b ORDER BY VARIABLE_NAME" --delimiter=";"
--exec $DRIZZLE_SLAP --silent  --concurrency=5 --iterations=20  --query="SELECT a.ID FROM data_dictionary.processlist as a, data_dictionary.processlist as b ORDER BY ID" --delimiter=";"

DROP SCHEMA drizzleslap;
DROP SCHEMA data_dictionary;

# Test that the data dictionary is not leaking its tables to other schema
CREATE SCHEMA A;
use A;
create table A (a int);
SELECT COUNT(*) FROM data_dictionary.tables WHERE TABLE_NAME = "A";

# Test the behavior of LOCAL_TABLE_NAMES
select * from data_dictionary.LOCAL_TABLE_NAMES;

DROP SCHEMA A;