~stewart/drizzle/embedded-innodb-create-select-transaction-arrgh

« back to all changes in this revision

Viewing changes to mysql-test/suite/funcs_1/r/is_columns.result

  • Committer: brian
  • Date: 2008-06-25 05:29:13 UTC
  • Revision ID: brian@localhost.localdomain-20080625052913-6upwo0jsrl4lnapl
clean slate

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
SHOW TABLES FROM information_schema LIKE 'COLUMNS';
 
2
Tables_in_information_schema (COLUMNS)
 
3
COLUMNS
 
4
#######################################################################
 
5
# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT
 
6
#######################################################################
 
7
DROP VIEW      IF EXISTS test.v1;
 
8
DROP PROCEDURE IF EXISTS test.p1;
 
9
DROP FUNCTION  IF EXISTS test.f1;
 
10
CREATE VIEW test.v1 AS     SELECT * FROM information_schema.COLUMNS;
 
11
CREATE PROCEDURE test.p1() SELECT * FROM information_schema.COLUMNS;
 
12
CREATE FUNCTION test.f1() returns BIGINT
 
13
BEGIN
 
14
DECLARE counter BIGINT DEFAULT NULL;
 
15
SELECT COUNT(*) INTO counter FROM information_schema.COLUMNS;
 
16
RETURN counter;
 
17
END//
 
18
# Attention: The printing of the next result sets is disabled.
 
19
SELECT * FROM information_schema.COLUMNS;
 
20
SELECT * FROM test.v1;
 
21
CALL test.p1;
 
22
SELECT test.f1();
 
23
DROP VIEW test.v1;
 
24
DROP PROCEDURE test.p1;
 
25
DROP FUNCTION test.f1;
 
26
#########################################################################
 
27
# Testcase 3.2.6.1: INFORMATION_SCHEMA.COLUMNS layout
 
28
#########################################################################
 
29
DESCRIBE          information_schema.COLUMNS;
 
30
Field   Type    Null    Key     Default Extra
 
31
TABLE_CATALOG   varchar(512)    YES             NULL    
 
32
TABLE_SCHEMA    varchar(64)     NO                      
 
33
TABLE_NAME      varchar(64)     NO                      
 
34
COLUMN_NAME     varchar(64)     NO                      
 
35
ORDINAL_POSITION        bigint(21) unsigned     NO              0       
 
36
COLUMN_DEFAULT  longtext        YES             NULL    
 
37
IS_NULLABLE     varchar(3)      NO                      
 
38
DATA_TYPE       varchar(64)     NO                      
 
39
CHARACTER_MAXIMUM_LENGTH        bigint(21) unsigned     YES             NULL    
 
40
CHARACTER_OCTET_LENGTH  bigint(21) unsigned     YES             NULL    
 
41
NUMERIC_PRECISION       bigint(21) unsigned     YES             NULL    
 
42
NUMERIC_SCALE   bigint(21) unsigned     YES             NULL    
 
43
CHARACTER_SET_NAME      varchar(64)     YES             NULL    
 
44
COLLATION_NAME  varchar(64)     YES             NULL    
 
45
COLUMN_TYPE     longtext        NO              NULL    
 
46
COLUMN_KEY      varchar(3)      NO                      
 
47
EXTRA   varchar(27)     NO                      
 
48
PRIVILEGES      varchar(80)     NO                      
 
49
COLUMN_COMMENT  varchar(1024)   NO                      
 
50
STORAGE varchar(8)      NO                      
 
51
FORMAT  varchar(8)      NO                      
 
52
SHOW CREATE TABLE information_schema.COLUMNS;
 
53
Table   Create Table
 
54
COLUMNS CREATE TEMPORARY TABLE `COLUMNS` (
 
55
  `TABLE_CATALOG` varchar(512) DEFAULT NULL,
 
56
  `TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
 
57
  `TABLE_NAME` varchar(64) NOT NULL DEFAULT '',
 
58
  `COLUMN_NAME` varchar(64) NOT NULL DEFAULT '',
 
59
  `ORDINAL_POSITION` bigint(21) unsigned NOT NULL DEFAULT '0',
 
60
  `COLUMN_DEFAULT` longtext,
 
61
  `IS_NULLABLE` varchar(3) NOT NULL DEFAULT '',
 
62
  `DATA_TYPE` varchar(64) NOT NULL DEFAULT '',
 
63
  `CHARACTER_MAXIMUM_LENGTH` bigint(21) unsigned DEFAULT NULL,
 
64
  `CHARACTER_OCTET_LENGTH` bigint(21) unsigned DEFAULT NULL,
 
65
  `NUMERIC_PRECISION` bigint(21) unsigned DEFAULT NULL,
 
66
  `NUMERIC_SCALE` bigint(21) unsigned DEFAULT NULL,
 
67
  `CHARACTER_SET_NAME` varchar(64) DEFAULT NULL,
 
68
  `COLLATION_NAME` varchar(64) DEFAULT NULL,
 
69
  `COLUMN_TYPE` longtext NOT NULL,
 
70
  `COLUMN_KEY` varchar(3) NOT NULL DEFAULT '',
 
71
  `EXTRA` varchar(27) NOT NULL DEFAULT '',
 
72
  `PRIVILEGES` varchar(80) NOT NULL DEFAULT '',
 
73
  `COLUMN_COMMENT` varchar(1024) NOT NULL DEFAULT '',
 
74
  `STORAGE` varchar(8) NOT NULL DEFAULT '',
 
75
  `FORMAT` varchar(8) NOT NULL DEFAULT ''
 
76
) ENGINE=MyISAM DEFAULT CHARSET=utf8
 
77
SHOW COLUMNS FROM information_schema.COLUMNS;
 
78
Field   Type    Null    Key     Default Extra
 
79
TABLE_CATALOG   varchar(512)    YES             NULL    
 
80
TABLE_SCHEMA    varchar(64)     NO                      
 
81
TABLE_NAME      varchar(64)     NO                      
 
82
COLUMN_NAME     varchar(64)     NO                      
 
83
ORDINAL_POSITION        bigint(21) unsigned     NO              0       
 
84
COLUMN_DEFAULT  longtext        YES             NULL    
 
85
IS_NULLABLE     varchar(3)      NO                      
 
86
DATA_TYPE       varchar(64)     NO                      
 
87
CHARACTER_MAXIMUM_LENGTH        bigint(21) unsigned     YES             NULL    
 
88
CHARACTER_OCTET_LENGTH  bigint(21) unsigned     YES             NULL    
 
89
NUMERIC_PRECISION       bigint(21) unsigned     YES             NULL    
 
90
NUMERIC_SCALE   bigint(21) unsigned     YES             NULL    
 
91
CHARACTER_SET_NAME      varchar(64)     YES             NULL    
 
92
COLLATION_NAME  varchar(64)     YES             NULL    
 
93
COLUMN_TYPE     longtext        NO              NULL    
 
94
COLUMN_KEY      varchar(3)      NO                      
 
95
EXTRA   varchar(27)     NO                      
 
96
PRIVILEGES      varchar(80)     NO                      
 
97
COLUMN_COMMENT  varchar(1024)   NO                      
 
98
STORAGE varchar(8)      NO                      
 
99
FORMAT  varchar(8)      NO                      
 
100
SELECT table_catalog, table_schema, table_name, column_name
 
101
FROM information_schema.columns WHERE table_catalog IS NOT NULL;
 
102
table_catalog   table_schema    table_name      column_name
 
103
###############################################################################
 
104
# Testcase 3.2.6.2 + 3.2.6.3: INFORMATION_SCHEMA.COLUMNS accessible information
 
105
###############################################################################
 
106
DROP DATABASE IF EXISTS db_datadict;
 
107
CREATE DATABASE db_datadict;
 
108
DROP   USER 'testuser1'@'localhost';
 
109
CREATE USER 'testuser1'@'localhost';
 
110
DROP   USER 'testuser2'@'localhost';
 
111
CREATE USER 'testuser2'@'localhost';
 
112
CREATE TABLE db_datadict.t1
 
113
(f1 CHAR(10), f2 TEXT, f3 DATE, f4 INT AUTO_INCREMENT,
 
114
UNIQUE INDEX MUL_IDX(f1,f3), PRIMARY KEY (f4))
 
115
ENGINE = <other_engine_type>;
 
116
CREATE VIEW db_datadict.v1 AS SELECT 1 AS f1, 1 AS f2;
 
117
GRANT SELECT(f1, f2) ON db_datadict.t1 TO 'testuser1'@'localhost';
 
118
GRANT SELECT(f2)     ON db_datadict.v1 TO 'testuser1'@'localhost';
 
119
CREATE TABLE db_datadict.t2
 
120
(f1 CHAR(10), f2 TEXT, f3 DATE, f4 INT, PRIMARY KEY (f1,f4))
 
121
ENGINE = <other_engine_type>;
 
122
GRANT INSERT(f1, f2) ON db_datadict.t2 TO 'testuser2'@'localhost';
 
123
SELECT * FROM information_schema.columns
 
124
WHERE table_schema = 'db_datadict'
 
125
ORDER BY table_schema, table_name, ordinal_position;
 
126
TABLE_CATALOG   TABLE_SCHEMA    TABLE_NAME      COLUMN_NAME     ORDINAL_POSITION        COLUMN_DEFAULT  IS_NULLABLE     DATA_TYPE       CHARACTER_MAXIMUM_LENGTH        CHARACTER_OCTET_LENGTH  NUMERIC_PRECISION       NUMERIC_SCALE   CHARACTER_SET_NAME      COLLATION_NAME  COLUMN_TYPE     COLUMN_KEY      EXTRA   PRIVILEGES      COLUMN_COMMENT  STORAGE FORMAT
 
127
NULL    db_datadict     t1      f1      1       NULL    YES     char    10      10      NULL    NULL    latin1  latin1_swedish_ci       char(10)        MUL             select,insert,update,references         Default Default
 
128
NULL    db_datadict     t1      f2      2       NULL    YES     text    65535   65535   NULL    NULL    latin1  latin1_swedish_ci       text                    select,insert,update,references         Default Default
 
129
NULL    db_datadict     t1      f3      3       NULL    YES     date    NULL    NULL    NULL    NULL    NULL    NULL    date                    select,insert,update,references         Default Default
 
130
NULL    db_datadict     t1      f4      4       NULL    NO      int     NULL    NULL    10      0       NULL    NULL    int(11) PRI     auto_increment  select,insert,update,references         Default Default
 
131
NULL    db_datadict     t2      f1      1               NO      char    10      10      NULL    NULL    latin1  latin1_swedish_ci       char(10)        PRI             select,insert,update,references         Default Default
 
132
NULL    db_datadict     t2      f2      2       NULL    YES     text    65535   65535   NULL    NULL    latin1  latin1_swedish_ci       text                    select,insert,update,references         Default Default
 
133
NULL    db_datadict     t2      f3      3       NULL    YES     date    NULL    NULL    NULL    NULL    NULL    NULL    date                    select,insert,update,references         Default Default
 
134
NULL    db_datadict     t2      f4      4       0       NO      int     NULL    NULL    10      0       NULL    NULL    int(11) PRI             select,insert,update,references         Default Default
 
135
NULL    db_datadict     v1      f1      1       0       NO      int     NULL    NULL    10      0       NULL    NULL    int(1)                  select,insert,update,references         Default Default
 
136
NULL    db_datadict     v1      f2      2       0       NO      int     NULL    NULL    10      0       NULL    NULL    int(1)                  select,insert,update,references         Default Default
 
137
SHOW COLUMNS FROM db_datadict.t1;
 
138
Field   Type    Null    Key     Default Extra
 
139
f1      char(10)        YES     MUL     NULL    
 
140
f2      text    YES             NULL    
 
141
f3      date    YES             NULL    
 
142
f4      int(11) NO      PRI     NULL    auto_increment
 
143
SHOW COLUMNS FROM db_datadict.t2;
 
144
Field   Type    Null    Key     Default Extra
 
145
f1      char(10)        NO      PRI             
 
146
f2      text    YES             NULL    
 
147
f3      date    YES             NULL    
 
148
f4      int(11) NO      PRI     0       
 
149
SHOW COLUMNS FROM db_datadict.v1;
 
150
Field   Type    Null    Key     Default Extra
 
151
f1      int(1)  NO              0       
 
152
f2      int(1)  NO              0       
 
153
# Establish connection testuser1 (user=testuser1)
 
154
SELECT * FROM information_schema.columns
 
155
WHERE table_schema = 'db_datadict'
 
156
ORDER BY table_schema, table_name, ordinal_position;
 
157
TABLE_CATALOG   TABLE_SCHEMA    TABLE_NAME      COLUMN_NAME     ORDINAL_POSITION        COLUMN_DEFAULT  IS_NULLABLE     DATA_TYPE       CHARACTER_MAXIMUM_LENGTH        CHARACTER_OCTET_LENGTH  NUMERIC_PRECISION       NUMERIC_SCALE   CHARACTER_SET_NAME      COLLATION_NAME  COLUMN_TYPE     COLUMN_KEY      EXTRA   PRIVILEGES      COLUMN_COMMENT  STORAGE FORMAT
 
158
NULL    db_datadict     t1      f1      1       NULL    YES     char    10      10      NULL    NULL    latin1  latin1_swedish_ci       char(10)        MUL             select          Default Default
 
159
NULL    db_datadict     t1      f2      2       NULL    YES     text    65535   65535   NULL    NULL    latin1  latin1_swedish_ci       text                    select          Default Default
 
160
NULL    db_datadict     v1      f2      2       0       NO      int     NULL    NULL    10      0       NULL    NULL    int(1)                  select          Default Default
 
161
SHOW COLUMNS FROM db_datadict.t1;
 
162
Field   Type    Null    Key     Default Extra
 
163
f1      char(10)        YES     MUL     NULL    
 
164
f2      text    YES             NULL    
 
165
SHOW COLUMNS FROM db_datadict.t2;
 
166
ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 't2'
 
167
SHOW COLUMNS FROM db_datadict.v1;
 
168
Field   Type    Null    Key     Default Extra
 
169
f2      int(1)  NO              0       
 
170
# Establish connection testuser2 (user=testuser2)
 
171
SELECT * FROM information_schema.columns
 
172
WHERE table_schema = 'db_datadict'
 
173
ORDER BY table_schema, table_name, ordinal_position;
 
174
TABLE_CATALOG   TABLE_SCHEMA    TABLE_NAME      COLUMN_NAME     ORDINAL_POSITION        COLUMN_DEFAULT  IS_NULLABLE     DATA_TYPE       CHARACTER_MAXIMUM_LENGTH        CHARACTER_OCTET_LENGTH  NUMERIC_PRECISION       NUMERIC_SCALE   CHARACTER_SET_NAME      COLLATION_NAME  COLUMN_TYPE     COLUMN_KEY      EXTRA   PRIVILEGES      COLUMN_COMMENT  STORAGE FORMAT
 
175
NULL    db_datadict     t2      f1      1               NO      char    10      10      NULL    NULL    latin1  latin1_swedish_ci       char(10)        PRI             insert          Default Default
 
176
NULL    db_datadict     t2      f2      2       NULL    YES     text    65535   65535   NULL    NULL    latin1  latin1_swedish_ci       text                    insert          Default Default
 
177
SHOW COLUMNS FROM db_datadict.t1;
 
178
ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table 't1'
 
179
SHOW COLUMNS FROM db_datadict.t2;
 
180
Field   Type    Null    Key     Default Extra
 
181
f1      char(10)        NO      PRI             
 
182
f2      text    YES             NULL    
 
183
SHOW COLUMNS FROM db_datadict.v1;
 
184
ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table 'v1'
 
185
# Switch to connection default and close connections testuser1, testuser2
 
186
DROP USER 'testuser1'@'localhost';
 
187
DROP USER 'testuser2'@'localhost';
 
188
DROP DATABASE IF EXISTS db_datadict;
 
189
###############################################################################
 
190
# Testcase 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.COLUMNS modifications
 
191
###############################################################################
 
192
DROP TABLE IF EXISTS test.t1_my_table;
 
193
DROP DATABASE IF EXISTS db_datadict;
 
194
CREATE DATABASE db_datadict;
 
195
SELECT table_name FROM information_schema.columns
 
196
WHERE table_name LIKE 't1_my_table%';
 
197
table_name
 
198
CREATE TABLE test.t1_my_table (f1 CHAR(12))
 
199
DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci
 
200
ENGINE = <engine_type>;
 
201
SELECT * FROM information_schema.columns
 
202
WHERE table_name = 't1_my_table';
 
203
TABLE_CATALOG   NULL
 
204
TABLE_SCHEMA    test
 
205
TABLE_NAME      t1_my_table
 
206
COLUMN_NAME     f1
 
207
ORDINAL_POSITION        1
 
208
COLUMN_DEFAULT  NULL
 
209
IS_NULLABLE     YES
 
210
DATA_TYPE       char
 
211
CHARACTER_MAXIMUM_LENGTH        12
 
212
CHARACTER_OCTET_LENGTH  12
 
213
NUMERIC_PRECISION       NULL
 
214
NUMERIC_SCALE   NULL
 
215
CHARACTER_SET_NAME      latin1
 
216
COLLATION_NAME  latin1_swedish_ci
 
217
COLUMN_TYPE     char(12)
 
218
COLUMN_KEY      
 
219
EXTRA   
 
220
PRIVILEGES      select,insert,update,references
 
221
COLUMN_COMMENT  
 
222
STORAGE Default
 
223
FORMAT  Default
 
224
SELECT table_name FROM information_schema.columns
 
225
WHERE table_name LIKE 't1_my_table%';
 
226
table_name
 
227
t1_my_table
 
228
RENAME TABLE test.t1_my_table TO test.t1_my_tablex;
 
229
SELECT table_name FROM information_schema.columns
 
230
WHERE table_name LIKE 't1_my_table%';
 
231
table_name
 
232
t1_my_tablex
 
233
SELECT table_schema,table_name FROM information_schema.columns
 
234
WHERE table_name = 't1_my_tablex';
 
235
table_schema    table_name
 
236
test    t1_my_tablex
 
237
RENAME TABLE test.t1_my_tablex TO db_datadict.t1_my_tablex;
 
238
SELECT table_schema,table_name FROM information_schema.columns
 
239
WHERE table_name = 't1_my_tablex';
 
240
table_schema    table_name
 
241
db_datadict     t1_my_tablex
 
242
SELECT table_name, column_name FROM information_schema.columns
 
243
WHERE table_name = 't1_my_tablex';
 
244
table_name      column_name
 
245
t1_my_tablex    f1
 
246
ALTER TABLE db_datadict.t1_my_tablex CHANGE COLUMN f1 first_col CHAR(12);
 
247
SELECT table_name, column_name FROM information_schema.columns
 
248
WHERE table_name = 't1_my_tablex';
 
249
table_name      column_name
 
250
t1_my_tablex    first_col
 
251
SELECT table_name, column_name, character_maximum_length,
 
252
character_octet_length, column_type
 
253
FROM information_schema.columns
 
254
WHERE table_name = 't1_my_tablex';
 
255
table_name      column_name     character_maximum_length        character_octet_length  column_type
 
256
t1_my_tablex    first_col       12      12      char(12)
 
257
ALTER TABLE db_datadict.t1_my_tablex
 
258
MODIFY COLUMN first_col CHAR(20);
 
259
SELECT table_name, column_name, character_maximum_length,
 
260
character_octet_length, column_type
 
261
FROM information_schema.columns
 
262
WHERE table_name = 't1_my_tablex';
 
263
table_name      column_name     character_maximum_length        character_octet_length  column_type
 
264
t1_my_tablex    first_col       20      20      char(20)
 
265
SELECT table_name, column_name, character_maximum_length,
 
266
character_octet_length, column_type
 
267
FROM information_schema.columns
 
268
WHERE table_name = 't1_my_tablex';
 
269
table_name      column_name     character_maximum_length        character_octet_length  column_type
 
270
t1_my_tablex    first_col       20      20      char(20)
 
271
ALTER TABLE db_datadict.t1_my_tablex
 
272
MODIFY COLUMN first_col VARCHAR(20);
 
273
SELECT table_name, column_name, character_maximum_length,
 
274
character_octet_length, column_type
 
275
FROM information_schema.columns
 
276
WHERE table_name = 't1_my_tablex';
 
277
table_name      column_name     character_maximum_length        character_octet_length  column_type
 
278
t1_my_tablex    first_col       20      20      varchar(20)
 
279
SELECT table_name, column_name, column_default
 
280
FROM information_schema.columns
 
281
WHERE table_name = 't1_my_tablex';
 
282
table_name      column_name     column_default
 
283
t1_my_tablex    first_col       NULL
 
284
ALTER TABLE db_datadict.t1_my_tablex
 
285
MODIFY COLUMN first_col CHAR(10) DEFAULT 'hello';
 
286
SELECT table_name, column_name, column_default
 
287
FROM information_schema.columns
 
288
WHERE table_name = 't1_my_tablex';
 
289
table_name      column_name     column_default
 
290
t1_my_tablex    first_col       hello
 
291
SELECT table_name, column_name, is_nullable
 
292
FROM information_schema.columns
 
293
WHERE table_name = 't1_my_tablex';
 
294
table_name      column_name     is_nullable
 
295
t1_my_tablex    first_col       YES
 
296
ALTER TABLE db_datadict.t1_my_tablex
 
297
MODIFY COLUMN first_col CHAR(10) NOT NULL;
 
298
SELECT table_name, column_name, is_nullable
 
299
FROM information_schema.columns
 
300
WHERE table_name = 't1_my_tablex';
 
301
table_name      column_name     is_nullable
 
302
t1_my_tablex    first_col       NO
 
303
SELECT table_name, column_name, collation_name
 
304
FROM information_schema.columns
 
305
WHERE table_name = 't1_my_tablex';
 
306
table_name      column_name     collation_name
 
307
t1_my_tablex    first_col       latin1_swedish_ci
 
308
ALTER TABLE db_datadict.t1_my_tablex
 
309
MODIFY COLUMN first_col CHAR(10) COLLATE 'latin1_general_cs';
 
310
SELECT table_name, column_name, collation_name
 
311
FROM information_schema.columns
 
312
WHERE table_name = 't1_my_tablex';
 
313
table_name      column_name     collation_name
 
314
t1_my_tablex    first_col       latin1_general_cs
 
315
SELECT table_name, column_name, character_maximum_length,
 
316
character_octet_length, character_set_name
 
317
FROM information_schema.columns
 
318
WHERE table_name = 't1_my_tablex';
 
319
table_name      column_name     character_maximum_length        character_octet_length  character_set_name
 
320
t1_my_tablex    first_col       10      10      latin1
 
321
ALTER TABLE db_datadict.t1_my_tablex
 
322
MODIFY COLUMN first_col CHAR(10) CHARACTER SET utf8;
 
323
SELECT table_name, column_name, character_maximum_length,
 
324
character_octet_length, character_set_name
 
325
FROM information_schema.columns
 
326
WHERE table_name = 't1_my_tablex';
 
327
table_name      column_name     character_maximum_length        character_octet_length  character_set_name
 
328
t1_my_tablex    first_col       10      40      utf8
 
329
SELECT table_name, column_name, column_comment
 
330
FROM information_schema.columns
 
331
WHERE table_name = 't1_my_tablex';
 
332
table_name      column_name     column_comment
 
333
t1_my_tablex    first_col       
 
334
ALTER TABLE db_datadict.t1_my_tablex
 
335
MODIFY COLUMN first_col CHAR(10) COMMENT 'Hello';
 
336
SELECT table_name, column_name, column_comment
 
337
FROM information_schema.columns
 
338
WHERE table_name = 't1_my_tablex';
 
339
table_name      column_name     column_comment
 
340
t1_my_tablex    first_col       Hello
 
341
SELECT table_name, column_name
 
342
FROM information_schema.columns
 
343
WHERE table_name = 't1_my_tablex';
 
344
table_name      column_name
 
345
t1_my_tablex    first_col
 
346
ALTER TABLE db_datadict.t1_my_tablex
 
347
ADD COLUMN second_col CHAR(10);
 
348
SELECT table_name, column_name
 
349
FROM information_schema.columns
 
350
WHERE table_name = 't1_my_tablex';
 
351
table_name      column_name
 
352
t1_my_tablex    first_col
 
353
t1_my_tablex    second_col
 
354
SELECT table_name, column_name, ordinal_position
 
355
FROM information_schema.columns
 
356
WHERE table_name = 't1_my_tablex'
 
357
ORDER BY table_name, column_name;
 
358
table_name      column_name     ordinal_position
 
359
t1_my_tablex    first_col       1
 
360
t1_my_tablex    second_col      2
 
361
ALTER TABLE db_datadict.t1_my_tablex
 
362
MODIFY COLUMN second_col CHAR(10) FIRST;
 
363
SELECT table_name, column_name, ordinal_position
 
364
FROM information_schema.columns
 
365
WHERE table_name = 't1_my_tablex'
 
366
ORDER BY table_name, column_name;
 
367
table_name      column_name     ordinal_position
 
368
t1_my_tablex    first_col       2
 
369
t1_my_tablex    second_col      1
 
370
SELECT table_name, column_name
 
371
FROM information_schema.columns
 
372
WHERE table_name = 't1_my_tablex';
 
373
table_name      column_name
 
374
t1_my_tablex    second_col
 
375
t1_my_tablex    first_col
 
376
ALTER TABLE db_datadict.t1_my_tablex
 
377
DROP COLUMN first_col;
 
378
SELECT table_name, column_name
 
379
FROM information_schema.columns
 
380
WHERE table_name = 't1_my_tablex';
 
381
table_name      column_name
 
382
t1_my_tablex    second_col
 
383
SELECT table_name, column_name, column_key
 
384
FROM information_schema.columns
 
385
WHERE table_name = 't1_my_tablex';
 
386
table_name      column_name     column_key
 
387
t1_my_tablex    second_col      
 
388
ALTER TABLE db_datadict.t1_my_tablex
 
389
ADD UNIQUE INDEX IDX(second_col);
 
390
SELECT table_name, column_name, column_key
 
391
FROM information_schema.columns
 
392
WHERE table_name = 't1_my_tablex';
 
393
table_name      column_name     column_key
 
394
t1_my_tablex    second_col      UNI
 
395
SELECT table_name, column_name
 
396
FROM information_schema.columns
 
397
WHERE table_name = 't1_my_tablex';
 
398
table_name      column_name
 
399
t1_my_tablex    second_col
 
400
DROP TABLE db_datadict.t1_my_tablex;
 
401
SELECT table_name, column_name
 
402
FROM information_schema.columns
 
403
WHERE table_name = 't1_my_tablex';
 
404
table_name      column_name
 
405
CREATE VIEW test.t1_my_tablex
 
406
AS SELECT 1 AS "col1", 'A' collate latin1_german1_ci AS "col2";
 
407
SELECT * FROM information_schema.columns
 
408
WHERE table_name = 't1_my_tablex'
 
409
ORDER BY table_name, column_name;
 
410
TABLE_CATALOG   NULL
 
411
TABLE_SCHEMA    test
 
412
TABLE_NAME      t1_my_tablex
 
413
COLUMN_NAME     col1
 
414
ORDINAL_POSITION        1
 
415
COLUMN_DEFAULT  0
 
416
IS_NULLABLE     NO
 
417
DATA_TYPE       int
 
418
CHARACTER_MAXIMUM_LENGTH        NULL
 
419
CHARACTER_OCTET_LENGTH  NULL
 
420
NUMERIC_PRECISION       10
 
421
NUMERIC_SCALE   0
 
422
CHARACTER_SET_NAME      NULL
 
423
COLLATION_NAME  NULL
 
424
COLUMN_TYPE     int(1)
 
425
COLUMN_KEY      
 
426
EXTRA   
 
427
PRIVILEGES      select,insert,update,references
 
428
COLUMN_COMMENT  
 
429
STORAGE Default
 
430
FORMAT  Default
 
431
TABLE_CATALOG   NULL
 
432
TABLE_SCHEMA    test
 
433
TABLE_NAME      t1_my_tablex
 
434
COLUMN_NAME     col2
 
435
ORDINAL_POSITION        2
 
436
COLUMN_DEFAULT  
 
437
IS_NULLABLE     NO
 
438
DATA_TYPE       varchar
 
439
CHARACTER_MAXIMUM_LENGTH        1
 
440
CHARACTER_OCTET_LENGTH  1
 
441
NUMERIC_PRECISION       NULL
 
442
NUMERIC_SCALE   NULL
 
443
CHARACTER_SET_NAME      latin1
 
444
COLLATION_NAME  latin1_german1_ci
 
445
COLUMN_TYPE     varchar(1)
 
446
COLUMN_KEY      
 
447
EXTRA   
 
448
PRIVILEGES      select,insert,update,references
 
449
COLUMN_COMMENT  
 
450
STORAGE Default
 
451
FORMAT  Default
 
452
DROP VIEW test.t1_my_tablex;
 
453
SELECT table_name FROM information_schema.columns
 
454
WHERE table_name = 't1_my_tablex';
 
455
table_name
 
456
CREATE TABLE db_datadict.t1_my_tablex
 
457
ENGINE = <engine_type> AS
 
458
SELECT 1;
 
459
SELECT table_name FROM information_schema.columns
 
460
WHERE table_name = 't1_my_tablex';
 
461
table_name
 
462
t1_my_tablex
 
463
DROP DATABASE db_datadict;
 
464
SELECT table_name FROM information_schema.columns
 
465
WHERE table_name = 't1_my_tablex';
 
466
table_name
 
467
########################################################################
 
468
# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and
 
469
#           DDL on INFORMATION_SCHEMA table are not supported
 
470
########################################################################
 
471
DROP DATABASE IF EXISTS db_datadict;
 
472
DROP TABLE IF EXISTS test.t1;
 
473
CREATE DATABASE db_datadict;
 
474
CREATE TABLE test.t1 (f1 BIGINT);
 
475
INSERT INTO information_schema.columns (table_schema,table_name,column_name)
 
476
VALUES('test','t1', 'f2');
 
477
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
 
478
INSERT INTO information_schema.columns (table_schema,table_name,column_name)
 
479
VALUES('test','t2', 'f1');
 
480
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
 
481
UPDATE information_schema.columns SET table_name = 't4' WHERE table_name = 't1';
 
482
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
 
483
DELETE FROM information_schema.columns WHERE table_name = 't1';
 
484
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
 
485
TRUNCATE information_schema.columns;
 
486
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
 
487
CREATE INDEX i3 ON information_schema.columns(table_name);
 
488
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
 
489
ALTER TABLE information_schema.columns ADD f1 INT;
 
490
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
 
491
DROP TABLE information_schema.columns;
 
492
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
 
493
ALTER TABLE information_schema.columns RENAME db_datadict.columns;
 
494
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
 
495
ALTER TABLE information_schema.columns RENAME information_schema.xcolumns;
 
496
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
 
497
DROP TABLE test.t1;
 
498
DROP DATABASE db_datadict;