summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <konstantin@mysql.com>2005-06-04 14:58:32 +0400
committerunknown <konstantin@mysql.com>2005-06-04 14:58:32 +0400
commitd6e0883b070cbb66a3dc94384816835964025aba (patch)
tree91657c41a2b675fcb61fa27bfbfa7e79aa8806f9
parenta681af904d4fc8e02042b93b9035855ea989a155 (diff)
downloadmariadb-git-d6e0883b070cbb66a3dc94384816835964025aba.tar.gz
Fix show warnings limit 0 and show warnings limit 0, 0.
Add test coverage for SHOW WARNINGS LIMIT a, b; mysql-test/r/warnings.result: Add test coverage for SHOW WARNINGS LIMIT a,b mysql-test/t/warnings.test: Add test coverage for SHOW WARNINGS LIMIT a,b sql/sql_error.cc: Fix show warnings limit 0 and show warnings limit 0, 0
-rw-r--r--mysql-test/r/warnings.result53
-rw-r--r--mysql-test/t/warnings.test22
-rw-r--r--sql/sql_error.cc4
3 files changed, 77 insertions, 2 deletions
diff --git a/mysql-test/r/warnings.result b/mysql-test/r/warnings.result
index d1d96afa153..e97b309547a 100644
--- a/mysql-test/r/warnings.result
+++ b/mysql-test/r/warnings.result
@@ -179,3 +179,56 @@ drop table t1;
set table_type=MYISAM;
Warnings:
Warning 1287 'table_type' is deprecated; use 'storage_engine' instead
+create table t1 (a int);
+insert into t1 (a) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
+update t1 set a='abc';
+Warnings:
+Warning 1265 Data truncated for column 'a' at row 1
+Warning 1265 Data truncated for column 'a' at row 2
+Warning 1265 Data truncated for column 'a' at row 3
+Warning 1265 Data truncated for column 'a' at row 4
+Warning 1265 Data truncated for column 'a' at row 5
+Warning 1265 Data truncated for column 'a' at row 6
+Warning 1265 Data truncated for column 'a' at row 7
+Warning 1265 Data truncated for column 'a' at row 8
+Warning 1265 Data truncated for column 'a' at row 9
+Warning 1265 Data truncated for column 'a' at row 10
+show warnings limit 2, 1;
+Level Code Message
+Warning 1265 Data truncated for column 'a' at row 3
+show warnings limit 0, 10;
+Level Code Message
+Warning 1265 Data truncated for column 'a' at row 1
+Warning 1265 Data truncated for column 'a' at row 2
+Warning 1265 Data truncated for column 'a' at row 3
+Warning 1265 Data truncated for column 'a' at row 4
+Warning 1265 Data truncated for column 'a' at row 5
+Warning 1265 Data truncated for column 'a' at row 6
+Warning 1265 Data truncated for column 'a' at row 7
+Warning 1265 Data truncated for column 'a' at row 8
+Warning 1265 Data truncated for column 'a' at row 9
+Warning 1265 Data truncated for column 'a' at row 10
+show warnings limit 9, 1;
+Level Code Message
+Warning 1265 Data truncated for column 'a' at row 10
+show warnings limit 10, 1;
+Level Code Message
+show warnings limit 9, 2;
+Level Code Message
+Warning 1265 Data truncated for column 'a' at row 10
+show warnings limit 0, 0;
+Level Code Message
+show warnings limit 1;
+Level Code Message
+Warning 1265 Data truncated for column 'a' at row 1
+show warnings limit 0;
+Level Code Message
+show warnings limit 1, 0;
+Level Code Message
+select * from t1 limit 0;
+a
+select * from t1 limit 1, 0;
+a
+select * from t1 limit 0, 0;
+a
+drop table t1;
diff --git a/mysql-test/t/warnings.test b/mysql-test/t/warnings.test
index 2a90f5f637d..6a6d533ad61 100644
--- a/mysql-test/t/warnings.test
+++ b/mysql-test/t/warnings.test
@@ -133,3 +133,25 @@ drop table t1;
# Test for deprecated table_type variable
#
set table_type=MYISAM;
+
+#
+# Tests for show warnings limit a, b
+#
+create table t1 (a int);
+insert into t1 (a) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
+# should generate 10 warnings
+update t1 set a='abc';
+show warnings limit 2, 1;
+show warnings limit 0, 10;
+show warnings limit 9, 1;
+show warnings limit 10, 1;
+show warnings limit 9, 2;
+show warnings limit 0, 0;
+show warnings limit 1;
+show warnings limit 0;
+show warnings limit 1, 0;
+# make sure behaviour is consistent with select ... limit
+select * from t1 limit 0;
+select * from t1 limit 1, 0;
+select * from t1 limit 0, 0;
+drop table t1;
diff --git a/sql/sql_error.cc b/sql/sql_error.cc
index d19e9fbdb09..a31e15d0745 100644
--- a/sql/sql_error.cc
+++ b/sql/sql_error.cc
@@ -203,6 +203,8 @@ my_bool mysqld_show_warnings(THD *thd, ulong levels_to_show)
offset--;
continue;
}
+ if (limit-- == 0)
+ break;
protocol->prepare_for_resend();
protocol->store(warning_level_names[err->level],
warning_level_length[err->level], system_charset_info);
@@ -210,8 +212,6 @@ my_bool mysqld_show_warnings(THD *thd, ulong levels_to_show)
protocol->store(err->msg, strlen(err->msg), system_charset_info);
if (protocol->write())
DBUG_RETURN(1);
- if (!--limit)
- break;
}
send_eof(thd);
DBUG_RETURN(0);