mirror of
https://github.com/MariaDB/server.git
synced 2025-01-20 22:12:30 +01:00
4333980a49
for ALTER TABLE, LOAD DATA). ROW_COUNT is now assigned according to the following rules: - In my_ok(): - for DML statements: to the number of affected rows; - for DDL statements: to 0. - In my_eof(): to -1 to indicate that there was a result set. We derive this semantics from the JDBC specification, where int java.sql.Statement.getUpdateCount() is defined to (sic) "return the current result as an update count; if the result is a ResultSet object or there are no more results, -1 is returned". - In my_error(): to -1 to be compatible with the MySQL C API and MySQL ODBC driver. - For SIGNAL statements: to 0 per WL#2110 specification. Zero is used since that's the "default" value of ROW_COUNT in the diagnostics area. sql/protocol.cc: Fix a typo. sql/sql_class.h: - Introduce THD::get_row_count_func() / THD::set_row_count_func(); - Remove the CF_HAS_ROW_COUNT define sql/sql_parse.cc: CF_HAS_ROW_COUNT was eliminated.
79 lines
1.3 KiB
Text
79 lines
1.3 KiB
Text
|
|
# --
|
|
# -- Test case for Bug#21818.
|
|
# --
|
|
|
|
DROP TABLE IF EXISTS t1;
|
|
CREATE TABLE t1(a INT);
|
|
INSERT INTO t1 VALUES (1), (2), (3);
|
|
|
|
# -- Check 1.
|
|
SELECT * FROM t1 INTO OUTFILE "MYSQL_TMP_DIR/bug21818.txt";
|
|
affected rows: 3
|
|
|
|
SELECT ROW_COUNT();
|
|
ROW_COUNT()
|
|
3
|
|
|
|
# -- Check 2.
|
|
SELECT a FROM t1 LIMIT 1 INTO @a;
|
|
affected rows: 1
|
|
|
|
SELECT ROW_COUNT();
|
|
ROW_COUNT()
|
|
1
|
|
|
|
# -- Check 3.
|
|
DROP DATABASE IF EXISTS mysqltest1;
|
|
CREATE DATABASE mysqltest1;
|
|
affected rows: 1
|
|
|
|
SELECT ROW_COUNT();
|
|
ROW_COUNT()
|
|
1
|
|
DROP DATABASE mysqltest1;
|
|
|
|
# -- Check 4.
|
|
DELETE FROM t1;
|
|
LOAD DATA INFILE 'MYSQL_TMP_DIR/bug21818.txt' INTO TABLE t1(a);
|
|
affected rows: 3
|
|
info: Records: 3 Deleted: 0 Skipped: 0 Warnings: 0
|
|
|
|
SELECT ROW_COUNT();
|
|
ROW_COUNT()
|
|
3
|
|
|
|
# -- Check 5.
|
|
ALTER TABLE t1 ADD COLUMN b VARCHAR(255);
|
|
affected rows: 3
|
|
info: Records: 3 Duplicates: 0 Warnings: 0
|
|
|
|
SELECT ROW_COUNT();
|
|
ROW_COUNT()
|
|
3
|
|
|
|
DROP TABLE t1;
|
|
|
|
# -- Check 6.
|
|
DROP TABLE IF EXISTS t2;
|
|
CREATE TABLE t1(a INT);
|
|
CREATE TABLE t2(a INT);
|
|
INSERT INTO t1 VALUES (1), (2), (3);
|
|
INSERT INTO t2 VALUES (ROW_COUNT());
|
|
SELECT * FROM t2;
|
|
a
|
|
3
|
|
DROP TABLE t1;
|
|
DROP TABLE t2;
|
|
|
|
# -- Check 7 (check that SQL errors reset row_count to -1).
|
|
CREATE TABLE t1(a INT);
|
|
INSERT INTO t1 VALUES (1), (2), (3);
|
|
SELECT f1();
|
|
ERROR 42000: FUNCTION test.f1 does not exist
|
|
SELECT ROW_COUNT();
|
|
ROW_COUNT()
|
|
-1
|
|
DROP TABLE t1;
|
|
|
|
# -- End of test case for Bug#21818.
|