-
Notifications
You must be signed in to change notification settings - Fork 4k
/
Copy pathadmin_ensure_collection.test
150 lines (107 loc) · 3.68 KB
/
admin_ensure_collection.test
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
## Admin command: ensure_collection
--source include/xplugin_preamble.inc
--source include/xplugin_create_user.inc
CREATE SCHEMA xtest DEFAULT CHARSET 'utf8mb4';
## Test starts here
--let $xtest_file= $MYSQL_TMP_DIR/admin_ensure_collection_mysqlx.xpl
--write_file $xtest_file
-->quiet
-->macro Make_stmt %CMD% %SCHEMA%
-->stmtadmin %CMD% { %SCHEMA% "name":"books"}
-->endmacro
-->macro Make_collection_with_schema %CMD% %SCHEMA% %ERROR%
-->callmacro Make_stmt %CMD% "schema":"%SCHEMA%",
-->expecterror %ERROR%
-->recvresult
-->stmtsql SHOW TABLES FROM xtest;
-->recvresult
-->endmacro
-->macro Make_collection_without_schema %CMD% %ERROR%
-->callmacro Make_stmt %CMD%
-->expecterror %ERROR%
-->recvresult
-->stmtsql SHOW TABLES FROM xtest;
-->recvresult
-->endmacro
-->macro Make_collection %CMD% %ERROR%
-->callmacro Make_collection_with_schema %CMD% xtest %ERROR%
-->endmacro
-->macro Make_table %DEF% %TEMP%
-->stmtsql CREATE %TEMP% TABLE xtest.books %DEF%;
-->recvresult
-->endmacro
-->macro Drop_table
-->stmtsql DROP TABLE xtest.books;
-->recvresult
-->endmacro
-->macro Make_index %NAME% %TYPE%
-->stmtadmin create_collection_index {"schema": "xtest", "collection":"books", "name":"%NAME%", "unique":true, "fields":{"field":"$.%NAME%", "type":"%TYPE%", "required":false}}
-->recvresult
-->endmacro
-->callmacro Make_collection create_collection 0
-->callmacro Make_collection create_collection 1050
-->callmacro Make_collection ensure_collection 0
-->callmacro Make_index isbn TEXT(13)
-->callmacro Make_collection ensure_collection 0
-->callmacro Make_index pages INT
-->callmacro Make_collection ensure_collection 0
-->stmtsql ALTER TABLE xtest.books ADD COLUMN (nothing INT)
-->recvresult
-->callmacro Make_collection ensure_collection 5156
-->callmacro Drop_table
-->callmacro Make_collection ensure_collection 0
-->callmacro Drop_table
-->callmacro Make_collection create_collection 0
-->stmtsql ALTER TABLE xtest.books DROP _id
-->recvresult
-->callmacro Make_collection ensure_collection 5156
-->callmacro Drop_table
-->callmacro Make_table (doc JSON, _id VARBINARY(32))
-->callmacro Make_collection ensure_collection 5156
-->callmacro Drop_table
-->callmacro Make_table (doc INT, _id VARBINARY(32))
-->callmacro Make_collection ensure_collection 5156
-->callmacro Drop_table
-->callmacro Make_table (doc JSON, _id INT)
-->callmacro Make_collection ensure_collection 5156
-->callmacro Make_collection_with_schema ensure_collection nowhere 1049
-->callmacro Drop_table
-->callmacro Make_collection_without_schema ensure_collection 1046
-->stmtsql USE xtest
-->recvresult
-->callmacro Make_collection_without_schema ensure_collection 0
-->callmacro Drop_table
-->newsession temp
-->callmacro Make_table (it_is_not_collection INT) TEMPORARY
-->callmacro Make_collection ensure_collection 0
-->stmtsql SHOW COLUMNS FROM xtest.books
-->recvresult
-->closesession
-->stmtsql SHOW COLUMNS FROM xtest.books
-->recvresult
-->callmacro Drop_table
-->sql
CREATE USER unpriv;
SET PASSWORD FOR unpriv = 'x';
GRANT SELECT ON xtest.* TO unpriv;
-->endsql
-->newsession unable_to_create unpriv x
-->callmacro Make_collection ensure_collection 1142
-->closesession
-->stmtsql DROP USER unpriv;
-->recvresult
-->callmacro Make_table (it_is_not_collection INT)
-->stmtsql LOCK TABLE xtest.books WRITE;
-->recvresult
-->newsession lock
-->callmacro Make_collection ensure_collection 5156
-->closesession
-->stmtsql UNLOCK TABLES
-->recvresult
EOF
--exec $MYSQLXTEST -ux_root --password='' --file=$xtest_file 2>&1
SHOW STATUS like 'Mysqlx_stmt_create_collection';
SHOW STATUS like 'Mysqlx_stmt_ensure_collection';
SHOW STATUS like 'Mysqlx_stmt_execute_mysqlx';
## Cleanup
--source ../include/xplugin_cleanup.inc