summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Docs/manual.texi14
-rw-r--r--client/mysqlshow.c2
-rw-r--r--mysql-test/r/show_check.result8
-rw-r--r--mysql-test/t/alter_table.test2
-rw-r--r--mysql-test/t/rpl000001.test1
-rw-r--r--mysql-test/t/rpl000002.test1
-rw-r--r--mysql-test/t/rpl000003.test1
-rw-r--r--mysql-test/t/rpl000007.test1
-rw-r--r--mysql-test/t/rpl000008.test1
-rw-r--r--mysql-test/t/rpl000009.test1
-rw-r--r--mysql-test/t/rpl000010.test1
-rw-r--r--mysql-test/t/rpl000011.test1
-rw-r--r--mysql-test/t/rpl000012.test1
-rw-r--r--mysql-test/t/rpl000013.test1
-rw-r--r--mysql-test/t/rpl000014.test1
-rw-r--r--mysql-test/t/rpl000015.test1
-rw-r--r--mysql-test/t/rpl000016.test2
-rw-r--r--mysql-test/t/select.test6
-rw-r--r--mysql-test/t/show_check.test2
-rw-r--r--mysql-test/t/type_blob.test4
-rw-r--r--mysql-test/t/type_float.test4
-rw-r--r--mysql-test/t/type_ranges.test10
-rw-r--r--sql/mysql_priv.h3
-rw-r--r--sql/sql_parse.cc3
-rw-r--r--sql/sql_show.cc33
-rw-r--r--sql/sql_yacc.yy19
26 files changed, 81 insertions, 43 deletions
diff --git a/Docs/manual.texi b/Docs/manual.texi
index 3dd919606c1..5e295f4bbc8 100644
--- a/Docs/manual.texi
+++ b/Docs/manual.texi
@@ -20129,7 +20129,7 @@ commands to examine and kill threads.
@example
SHOW DATABASES [LIKE wild]
or SHOW [OPEN] TABLES [FROM db_name] [LIKE wild]
-or SHOW COLUMNS FROM tbl_name [FROM db_name] [LIKE wild]
+or SHOW [FULL] COLUMNS FROM tbl_name [FROM db_name] [LIKE wild]
or SHOW INDEX FROM tbl_name [FROM db_name]
or SHOW TABLE STATUS [FROM db_name] [LIKE wild]
or SHOW STATUS [LIKE wild]
@@ -20188,10 +20188,11 @@ db_name}.
the table cache. @xref{Table cache}. The @code{Comment} field tells
how many times the table is @code{cached} and @code{in_use}.
-@code{SHOW COLUMNS} lists the columns in a given table. If the column
-types are different than you expect them to be based on a @code{CREATE
-TABLE} statement, note that @strong{MySQL} sometimes changes column
-types. @xref{Silent column changes}.
+@code{SHOW COLUMNS} lists the columns in a given table. If you specify
+the @code{FULL} option, you will also get the privileges you have for
+each column. If the column types are different than you expect them to
+be based on a @code{CREATE TABLE} statement, note that @strong{MySQL}
+sometimes changes column types. @xref{Silent column changes}.
The @code{DESCRIBE} statement provides information similar to
@code{SHOW COLUMNS}.
@@ -40712,6 +40713,9 @@ not yet 100 % confident in this code.
@appendixsubsec Changes in release 3.23.32
@itemize @bullet
@item
+Added option @code{FULL} to @code{SHOW COLUMNS}. Now we only show the
+privilege list for the columns if this option is given.
+@item
Fixed bug in @code{SHOW LOGS} when there wheren't any BDB logs.
@item
Fixed a timing problem in replication that could delay sending an update
diff --git a/client/mysqlshow.c b/client/mysqlshow.c
index 3c34b2df4b5..8fffe02a52f 100644
--- a/client/mysqlshow.c
+++ b/client/mysqlshow.c
@@ -397,7 +397,7 @@ list_fields(MYSQL *mysql,const char *db,const char *table,
mysql_error(mysql));
return 1;
}
- end=strmov(strmov(query,"show columns from "),table);
+ end=strmov(strmov(query,"show /*!32332 FULL */ columns from "),table);
if (wild && wild[0])
strxmov(end," like '",wild,"'",NullS);
if (mysql_query(mysql,query) || !(result=mysql_store_result(mysql)))
diff --git a/mysql-test/r/show_check.result b/mysql-test/r/show_check.result
index 9cc9ce0855d..29eeab6bc96 100644
--- a/mysql-test/r/show_check.result
+++ b/mysql-test/r/show_check.result
@@ -12,6 +12,14 @@ test.t1 check status OK
Table Op Msg_type Msg_text
test.t2 check error Table 't2' was not locked with LOCK TABLES
test.t1 check status OK
+Field Type Null Key Default Extra
+a int(11) PRI 0
+b int(11) MUL 0
+c int(11) 0
+Field Type Null Key Default Extra Privileges
+a int(11) PRI 0 select,insert,update,references
+b int(11) MUL 0 select,insert,update,references
+c int(11) 0 select,insert,update,references
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Comment
t1 0 PRIMARY 1 a A 4 NULL NULL
t1 1 b 1 b A 1 NULL NULL
diff --git a/mysql-test/t/alter_table.test b/mysql-test/t/alter_table.test
index e2a6a1af43d..41151ac5f16 100644
--- a/mysql-test/t/alter_table.test
+++ b/mysql-test/t/alter_table.test
@@ -34,7 +34,7 @@ PRIMARY KEY (GROUP_ID,LANG_ID),
KEY NAME (NAME));
#show table status like "t1";
ALTER TABLE t1 CHANGE NAME NAME CHAR(80) not null;
-SHOW COLUMNS FROM t1;
+SHOW FULL COLUMNS FROM t1;
DROP TABLE t1;
#
diff --git a/mysql-test/t/rpl000001.test b/mysql-test/t/rpl000001.test
index c7b1f817e81..0765fc6e318 100644
--- a/mysql-test/t/rpl000001.test
+++ b/mysql-test/t/rpl000001.test
@@ -12,6 +12,7 @@ insert into foo values(1),(2);
save_master_pos;
connection slave;
sync_with_master;
+sleep 1;
use test;
select * from foo;
select sum(length(word)) from t1;
diff --git a/mysql-test/t/rpl000002.test b/mysql-test/t/rpl000002.test
index c982bd54b8c..680deabb6af 100644
--- a/mysql-test/t/rpl000002.test
+++ b/mysql-test/t/rpl000002.test
@@ -9,6 +9,7 @@ save_master_pos;
connection slave;
use test;
sync_with_master;
+sleep 1;
@r/rpl000002.result select * from t1;
connection master;
drop table t1;
diff --git a/mysql-test/t/rpl000003.test b/mysql-test/t/rpl000003.test
index b5957615c5b..2ab4584faf2 100644
--- a/mysql-test/t/rpl000003.test
+++ b/mysql-test/t/rpl000003.test
@@ -7,6 +7,7 @@ insert into t1 values (3);
save_master_pos;
connection slave;
sync_with_master;
+sleep 1;
@r/rpl000003.result select * from t1;
connection master;
drop table t1;
diff --git a/mysql-test/t/rpl000007.test b/mysql-test/t/rpl000007.test
index 5b121afaa99..2834aa4dcc3 100644
--- a/mysql-test/t/rpl000007.test
+++ b/mysql-test/t/rpl000007.test
@@ -18,6 +18,7 @@ insert into bar values(15);
save_master_pos;
connection slave;
sync_with_master;
+sleep 1;
@r/rpl000007.result select foo.n,bar.m from foo,bar;
connection master;
drop table if exists bar,foo;
diff --git a/mysql-test/t/rpl000008.test b/mysql-test/t/rpl000008.test
index 8cbc724c3a6..c4bbdb48a1e 100644
--- a/mysql-test/t/rpl000008.test
+++ b/mysql-test/t/rpl000008.test
@@ -20,6 +20,7 @@ insert into choo values(55);
save_master_pos;
connection slave;
sync_with_master;
+sleep 1;
@r/rpl000008.result select foo.n,bar.m,choo.k from foo,bar,choo;
connection master;
drop table if exists foo,bar,choo;
diff --git a/mysql-test/t/rpl000009.test b/mysql-test/t/rpl000009.test
index 1f20981f7d0..15776384b63 100644
--- a/mysql-test/t/rpl000009.test
+++ b/mysql-test/t/rpl000009.test
@@ -22,6 +22,7 @@ insert into bar.bar values(15);
save_master_pos;
connection slave;
sync_with_master;
+sleep 1;
@r/rpl000009.result select foo.foo.n,bar.bar.m from foo.foo,bar.bar;
connection master;
drop database if exists bar;
diff --git a/mysql-test/t/rpl000010.test b/mysql-test/t/rpl000010.test
index ab68f0ae45f..65ceb98fd68 100644
--- a/mysql-test/t/rpl000010.test
+++ b/mysql-test/t/rpl000010.test
@@ -11,6 +11,7 @@ insert into t1 values(2);
save_master_pos;
connection slave;
sync_with_master;
+sleep 1;
@r/rpl000010.result select n from t1;
connection master;
drop table t1;
diff --git a/mysql-test/t/rpl000011.test b/mysql-test/t/rpl000011.test
index 78483027405..8e9129f875e 100644
--- a/mysql-test/t/rpl000011.test
+++ b/mysql-test/t/rpl000011.test
@@ -16,6 +16,7 @@ save_master_pos;
connection slave;
#let slave catch up
sync_with_master;
+sleep 1;
@r/rpl000011.result select * from t1;
connection master;
drop table t1;
diff --git a/mysql-test/t/rpl000012.test b/mysql-test/t/rpl000012.test
index 495cb81167e..07bff33e482 100644
--- a/mysql-test/t/rpl000012.test
+++ b/mysql-test/t/rpl000012.test
@@ -19,6 +19,7 @@ connection master2;
save_master_pos;
connection slave;
sync_with_master;
+sleep 1;
@r/rpl000012.result select * from t2;
@r/rpl000012.status.result show status like 'Slave_open_temp_tables';
#
diff --git a/mysql-test/t/rpl000013.test b/mysql-test/t/rpl000013.test
index f5056839791..20325b6a36d 100644
--- a/mysql-test/t/rpl000013.test
+++ b/mysql-test/t/rpl000013.test
@@ -22,6 +22,7 @@ connection master2;
save_master_pos;
connection slave;
sync_with_master;
+sleep 1;
@r/rpl000013.result select * from t2;
@r/rpl000013.status.result show status like 'Slave_open_temp_tables';
#
diff --git a/mysql-test/t/rpl000014.test b/mysql-test/t/rpl000014.test
index 34e160a760c..e1d483c7ea5 100644
--- a/mysql-test/t/rpl000014.test
+++ b/mysql-test/t/rpl000014.test
@@ -24,6 +24,7 @@ save_master_pos;
connection slave;
change master to master_log_pos=73;
sync_with_master;
+sleep 1;
select * from foo;
connection master;
drop table foo;
diff --git a/mysql-test/t/rpl000015.test b/mysql-test/t/rpl000015.test
index ac4d5d7d08c..b51a77ec873 100644
--- a/mysql-test/t/rpl000015.test
+++ b/mysql-test/t/rpl000015.test
@@ -21,6 +21,7 @@ insert into foo values (10),(45),(90);
save_master_pos;
connection slave;
sync_with_master;
+sleep 1;
select * from foo;
connection master;
drop table foo;
diff --git a/mysql-test/t/rpl000016.test b/mysql-test/t/rpl000016.test
index 115dea734cf..1a75da49039 100644
--- a/mysql-test/t/rpl000016.test
+++ b/mysql-test/t/rpl000016.test
@@ -18,6 +18,7 @@ insert into t1 values('Could not break slave'),('Tried hard');
save_master_pos;
connection slave;
sync_with_master;
+sleep 1;
select * from t1;
connection master;
flush logs;
@@ -32,6 +33,7 @@ insert into t2 values (65);
save_master_pos;
connection slave;
sync_with_master;
+sleep 1;
select * from t2;
drop table if exists t1,t2;
connection master;
diff --git a/mysql-test/t/select.test b/mysql-test/t/select.test
index 93236993764..79ad5a30491 100644
--- a/mysql-test/t/select.test
+++ b/mysql-test/t/select.test
@@ -1705,9 +1705,9 @@ select period as "Nuvarande period" from t1 group by "Nuvarande period" limit 1;
show tables;
show tables from test like "s%";
show tables from test like "t?";
-show columns from t2;
-show columns from t2 from test like 'f%';
-show columns from t2 from test like 's%';
+show full columns from t2;
+show full columns from t2 from test like 'f%';
+show full columns from t2 from test like 's%';
show keys from t2;
#
diff --git a/mysql-test/t/show_check.test b/mysql-test/t/show_check.test
index e2525a468c6..0e3447716a0 100644
--- a/mysql-test/t/show_check.test
+++ b/mysql-test/t/show_check.test
@@ -11,6 +11,8 @@ repair table t1,t2;
check table t2,t1;
lock tables t1 read;
check table t2,t1;
+show columns from t1;
+show full columns from t1;
show keys from t1;
drop table t1,t2;
diff --git a/mysql-test/t/type_blob.test b/mysql-test/t/type_blob.test
index a975b3e8c95..80c7f3538dd 100644
--- a/mysql-test/t/type_blob.test
+++ b/mysql-test/t/type_blob.test
@@ -37,9 +37,9 @@ insert into t1 values (NULL,NULL,NULL,NULL);
update t1 set c="",b=null where c="1";
lock tables t1 READ;
-show fields from t1;
+show full fields from t1;
lock tables t1 WRITE;
-show fields from t1;
+show full fields from t1;
unlock tables;
select t from t1 where t like "hello";
diff --git a/mysql-test/t/type_float.test b/mysql-test/t/type_float.test
index 7817dc3628a..1496170a256 100644
--- a/mysql-test/t/type_float.test
+++ b/mysql-test/t/type_float.test
@@ -7,7 +7,7 @@ select 6e-05, -6e-05, --6e-05, -6e-05+1.000000;
drop table if exists t1;
create table t1 (f1 float(24),f2 float(52));
-show columns from t1;
+show full columns from t1;
insert into t1 values(10,10),(1e+5,1e+5),(1234567890,1234567890),(1e+10,1e+10),(1e+15,1e+15),(1e+20,1e+20),(1e+50,1e+50),(1e+150,1e+150);
insert into t1 values(-10,-10),(1e-5,1e-5),(1e-10,1e-10),(1e-15,1e-15),(1e-20,1e-20),(1e-50,1e-50),(1e-150,1e-150);
select * from t1;
@@ -32,7 +32,7 @@ drop table t1;
#
create table t1 (f float, f2 float(24), f3 float(6,2), d double, d2 float(53), d3 double(10,3), de decimal, de2 decimal(6), de3 decimal(5,2), n numeric, n2 numeric(8), n3 numeric(5,6));
-show columns from t1;
+show full columns from t1;
drop table t1;
create table t1 (a decimal(7,3) not null, key (a));
diff --git a/mysql-test/t/type_ranges.test b/mysql-test/t/type_ranges.test
index 84e6183c367..a07a1d97f37 100644
--- a/mysql-test/t/type_ranges.test
+++ b/mysql-test/t/type_ranges.test
@@ -43,7 +43,7 @@ CREATE TABLE t1 (
KEY (options,flags)
);
-show fields from t1;
+show full fields from t1;
show keys from t1;
CREATE UNIQUE INDEX test on t1 ( auto ) ;
@@ -117,15 +117,15 @@ drop table t2;
create table t2 select * from t1;
update t2 set string="changed" where auto=16;
-show columns from t1;
-show columns from t2;
+show full columns from t1;
+show full columns from t2;
select t1.auto,t2.auto from t1,t2 where t1.auto=t2.auto and ((t1.string<>t2.string and (t1.string is not null or t2.string is not null)) or (t1.tiny<>t2.tiny and (t1.tiny is not null or t2.tiny is not null)) or (t1.short<>t2.short and (t1.short is not null or t2.short is not null)) or (t1.medium<>t2.medium and (t1.medium is not null or t2.medium is not null)) or (t1.long_int<>t2.long_int and (t1.long_int is not null or t2.long_int is not null)) or (t1.longlong<>t2.longlong and (t1.longlong is not null or t2.longlong is not null)) or (t1.real_float<>t2.real_float and (t1.real_float is not null or t2.real_float is not null)) or (t1.real_double<>t2.real_double and (t1.real_double is not null or t2.real_double is not null)) or (t1.utiny<>t2.utiny and (t1.utiny is not null or t2.utiny is not null)) or (t1.ushort<>t2.ushort and (t1.ushort is not null or t2.ushort is not null)) or (t1.umedium<>t2.umedium and (t1.umedium is not null or t2.umedium is not null)) or (t1.ulong<>t2.ulong and (t1.ulong is not null or t2.ulong is not null)) or (t1.ulonglong<>t2.ulonglong and (t1.ulonglong is not null or t2.ulonglong is not null)) or (t1.time_stamp<>t2.time_stamp and (t1.time_stamp is not null or t2.time_stamp is not null)) or (t1.date_field<>t2.date_field and (t1.date_field is not null or t2.date_field is not null)) or (t1.time_field<>t2.time_field and (t1.time_field is not null or t2.time_field is not null)) or (t1.date_time<>t2.date_time and (t1.date_time is not null or t2.date_time is not null)) or (t1.new_blob_col<>t2.new_blob_col and (t1.new_blob_col is not null or t2.new_blob_col is not null)) or (t1.tinyblob_col<>t2.tinyblob_col and (t1.tinyblob_col is not null or t2.tinyblob_col is not null)) or (t1.mediumblob_col<>t2.mediumblob_col and (t1.mediumblob_col is not null or t2.mediumblob_col is not null)) or (t1.options<>t2.options and (t1.options is not null or t2.options is not null)) or (t1.flags<>t2.flags and (t1.flags is not null or t2.flags is not null)) or (t1.new_field<>t2.new_field and (t1.new_field is not null or t2.new_field is not null)));
select t1.auto,t2.auto from t1,t2 where t1.auto=t2.auto and not (t1.string<=>t2.string and t1.tiny<=>t2.tiny and t1.short<=>t2.short and t1.medium<=>t2.medium and t1.long_int<=>t2.long_int and t1.longlong<=>t2.longlong and t1.real_float<=>t2.real_float and t1.real_double<=>t2.real_double and t1.utiny<=>t2.utiny and t1.ushort<=>t2.ushort and t1.umedium<=>t2.umedium and t1.ulong<=>t2.ulong and t1.ulonglong<=>t2.ulonglong and t1.time_stamp<=>t2.time_stamp and t1.date_field<=>t2.date_field and t1.time_field<=>t2.time_field and t1.date_time<=>t2.date_time and t1.new_blob_col<=>t2.new_blob_col and t1.tinyblob_col<=>t2.tinyblob_col and t1.mediumblob_col<=>t2.mediumblob_col and t1.options<=>t2.options and t1.flags<=>t2.flags and t1.new_field<=>t2.new_field);
drop table t2;
create table t2 (primary key (auto)) select auto+1 as auto,1 as t1, "a" as t2, repeat("a",256) as t3, binary repeat("b",256) as t4 from t1;
-show columns from t2;
+show full columns from t2;
select * from t2;
drop table t1,t2;
@@ -134,7 +134,7 @@ insert into t1 values(1),(2);
create table t2 select * from t1;
!$1060 create table t3 select * from t1, t2; # Should give an error
create table t3 select t1.c AS c1, t2.c AS c2,1 as "const" from t1, t2;
-show columns from t3;
+show full columns from t3;
drop table t1,t2,t3;
create table t1 ( myfield INT NOT NULL, UNIQUE INDEX (myfield), unique (myfield), index(myfield));
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h
index 6b4cfbed59d..d3f208aa6de 100644
--- a/sql/mysql_priv.h
+++ b/sql/mysql_priv.h
@@ -362,7 +362,8 @@ int mysqld_show_dbs(THD *thd,const char *wild);
int mysqld_show_open_tables(THD *thd,const char *db,const char *wild);
int mysqld_show_tables(THD *thd,const char *db,const char *wild);
int mysqld_extend_show_tables(THD *thd,const char *db,const char *wild);
-int mysqld_show_fields(THD *thd,TABLE_LIST *table, const char *wild);
+int mysqld_show_fields(THD *thd,TABLE_LIST *table, const char *wild,
+ bool verbose);
int mysqld_show_keys(THD *thd, TABLE_LIST *table);
int mysqld_show_logs(THD *thd);
void mysqld_list_fields(THD *thd,TABLE_LIST *table, const char *wild);
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 1b46cc51bfc..a43b10e9ad0 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -1545,7 +1545,8 @@ mysql_execute_command(void)
if (grant_option && check_grant(thd,SELECT_ACL,tables,2))
goto error;
res= mysqld_show_fields(thd,tables,
- (lex->wild ? lex->wild->ptr() : NullS));
+ (lex->wild ? lex->wild->ptr() : NullS),
+ lex->verbose);
break;
}
#endif
diff --git a/sql/sql_show.cc b/sql/sql_show.cc
index 52563196a77..ecc31c4c57e 100644
--- a/sql/sql_show.cc
+++ b/sql/sql_show.cc
@@ -412,7 +412,8 @@ int mysqld_extend_show_tables(THD *thd,const char *db,const char *wild)
***************************************************************************/
int
-mysqld_show_fields(THD *thd, TABLE_LIST *table_list,const char *wild)
+mysqld_show_fields(THD *thd, TABLE_LIST *table_list,const char *wild,
+ bool verbose)
{
TABLE *table;
handler *file;
@@ -437,7 +438,8 @@ mysqld_show_fields(THD *thd, TABLE_LIST *table_list,const char *wild)
field_list.push_back(new Item_empty_string("Key",3));
field_list.push_back(new Item_empty_string("Default",NAME_LEN));
field_list.push_back(new Item_empty_string("Extra",20));
- field_list.push_back(new Item_empty_string("Privileges",80));
+ if (verbose)
+ field_list.push_back(new Item_empty_string("Privileges",80));
// Send first number of fields and records
{
@@ -502,18 +504,21 @@ mysqld_show_fields(THD *thd, TABLE_LIST *table_list,const char *wild)
end=strmov(tmp,"auto_increment");
net_store_data(packet,tmp,(uint) (end-tmp));
- /* Add grant options */
- col_access= get_column_grant(thd,table_list,field) & COL_ACLS;
- end=tmp;
- for (uint bitnr=0; col_access ; col_access>>=1,bitnr++)
- {
- if (col_access & 1)
- {
- *end++=',';
- end=strmov(end,grant_types.type_names[bitnr]);
- }
- }
- net_store_data(packet,tmp+1,end == tmp ? 0 : (uint) (end-tmp-1));
+ if (verbose)
+ {
+ /* Add grant options */
+ col_access= get_column_grant(thd,table_list,field) & COL_ACLS;
+ end=tmp;
+ for (uint bitnr=0; col_access ; col_access>>=1,bitnr++)
+ {
+ if (col_access & 1)
+ {
+ *end++=',';
+ end=strmov(end,grant_types.type_names[bitnr]);
+ }
+ }
+ net_store_data(packet,tmp+1,end == tmp ? 0 : (uint) (end-tmp-1));
+ }
if (my_net_write(&thd->net,(char*) packet->ptr(),packet->length()))
DBUG_RETURN(1);
}
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 4c50f50b001..dd1fb916bad 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -2159,12 +2159,12 @@ show_param:
Lex->db= $3;
Lex->options=0;
}
- | COLUMNS FROM table_ident opt_db wild
+ | opt_full COLUMNS FROM table_ident opt_db wild
{
Lex->sql_command= SQLCOM_SHOW_FIELDS;
- if ($4)
- $3->change_db($4);
- if (!add_table_to_list($3,NULL,0))
+ if ($5)
+ $4->change_db($5);
+ if (!add_table_to_list($4,NULL,0))
YYABORT;
}
| MASTER_SYM LOGS_SYM
@@ -2181,10 +2181,8 @@ show_param:
}
| STATUS_SYM wild
{ Lex->sql_command= SQLCOM_SHOW_STATUS; }
- | PROCESSLIST_SYM
- { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST; Lex->verbose=0; }
- | FULL PROCESSLIST_SYM
- { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST; Lex->verbose=1; }
+ | opt_full PROCESSLIST_SYM
+ { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST;}
| VARIABLES wild
{ Lex->sql_command= SQLCOM_SHOW_VARIABLES; }
| LOGS_SYM
@@ -2215,11 +2213,16 @@ wild:
/* empty */
| LIKE text_string { Lex->wild= $2; }
+opt_full:
+ /* empty */ { Lex->verbose=0; }
+ | FULL { Lex->verbose=1; }
+
/* A Oracle compatible synonym for show */
describe:
describe_command table_ident
{
Lex->wild=0;
+ Lex->verbose=0;
Lex->sql_command=SQLCOM_SHOW_FIELDS;
if (!add_table_to_list($2, NULL,0))
YYABORT;