summaryrefslogtreecommitdiff
path: root/client/mysqlshow.c
diff options
context:
space:
mode:
Diffstat (limited to 'client/mysqlshow.c')
-rw-r--r--client/mysqlshow.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/client/mysqlshow.c b/client/mysqlshow.c
index eee96a9c3eb..5631d296a54 100644
--- a/client/mysqlshow.c
+++ b/client/mysqlshow.c
@@ -611,6 +611,7 @@ list_fields(MYSQL *mysql,const char *db,const char *table,
char query[1024],*end;
MYSQL_RES *result;
MYSQL_ROW row;
+ ulong rows;
if (mysql_select_db(mysql,db))
{
@@ -618,6 +619,17 @@ list_fields(MYSQL *mysql,const char *db,const char *table,
mysql_error(mysql));
return 1;
}
+ sprintf(query,"select count(*) from `%s`", table);
+ if (mysql_query(mysql,query) || !(result=mysql_store_result(mysql)))
+ {
+ fprintf(stderr,"%s: Cannot get record count for db: %s, table: %s: %s\n",
+ my_progname,db,table,mysql_error(mysql));
+ return 1;
+ }
+ row = mysql_fetch_row(result);
+ rows = (ulong) strtoull(row[0], (char**) 0, 10);
+ mysql_free_result(result);
+
end=strmov(strmov(strmov(query,"show /*!32332 FULL */ columns from `"),table),"`");
if (wild && wild[0])
strxmov(end," like '",wild,"'",NullS);
@@ -628,8 +640,8 @@ list_fields(MYSQL *mysql,const char *db,const char *table,
return 1;
}
- printf("Database: %s Table: %s Rows: %lu", db,table,
- (ulong) mysql->extra_info);
+ printf("Database: %s Table: %s Rows: %lu", db, table, rows);
+
if (wild && wild[0])
printf(" Wildcard: %s",wild);
putchar('\n');