mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +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.
115 lines
1.8 KiB
Text
115 lines
1.8 KiB
Text
--echo
|
|
--echo # --
|
|
--echo # -- Test case for Bug#21818.
|
|
--echo # --
|
|
--echo
|
|
|
|
--disable_warnings
|
|
DROP TABLE IF EXISTS t1;
|
|
--enable_warnings
|
|
|
|
CREATE TABLE t1(a INT);
|
|
INSERT INTO t1 VALUES (1), (2), (3);
|
|
|
|
--echo
|
|
--echo # -- Check 1.
|
|
|
|
--enable_info
|
|
--echo SELECT * FROM t1 INTO OUTFILE "MYSQL_TMP_DIR/bug21818.txt";
|
|
--disable_query_log # to avoid $MYSQL_TMP_DIR in query log
|
|
--eval SELECT * FROM t1 INTO OUTFILE "$MYSQL_TMP_DIR/bug21818.txt"
|
|
--enable_query_log
|
|
--disable_info
|
|
|
|
--echo
|
|
SELECT ROW_COUNT();
|
|
|
|
--echo
|
|
--echo # -- Check 2.
|
|
|
|
--enable_info
|
|
SELECT a FROM t1 LIMIT 1 INTO @a;
|
|
--disable_info
|
|
|
|
--echo
|
|
SELECT ROW_COUNT();
|
|
|
|
--echo
|
|
--echo # -- Check 3.
|
|
|
|
--disable_warnings
|
|
DROP DATABASE IF EXISTS mysqltest1;
|
|
--enable_warnings
|
|
|
|
--enable_info
|
|
CREATE DATABASE mysqltest1;
|
|
--disable_info
|
|
|
|
--echo
|
|
SELECT ROW_COUNT();
|
|
|
|
DROP DATABASE mysqltest1;
|
|
|
|
--echo
|
|
--echo # -- Check 4.
|
|
|
|
DELETE FROM t1;
|
|
|
|
--enable_info
|
|
--echo LOAD DATA INFILE 'MYSQL_TMP_DIR/bug21818.txt' INTO TABLE t1(a);
|
|
--disable_query_log # to avoid $MYSQL_TMP_DIR in query log
|
|
--eval LOAD DATA INFILE '$MYSQL_TMP_DIR/bug21818.txt' INTO TABLE t1(a)
|
|
--enable_query_log
|
|
--disable_info
|
|
|
|
--echo
|
|
SELECT ROW_COUNT();
|
|
|
|
--remove_file $MYSQL_TMP_DIR/bug21818.txt
|
|
|
|
--echo
|
|
--echo # -- Check 5.
|
|
|
|
--enable_info
|
|
ALTER TABLE t1 ADD COLUMN b VARCHAR(255);
|
|
--disable_info
|
|
|
|
--echo
|
|
SELECT ROW_COUNT();
|
|
|
|
--echo
|
|
DROP TABLE t1;
|
|
|
|
--echo
|
|
--echo # -- Check 6.
|
|
|
|
--disable_warnings
|
|
DROP TABLE IF EXISTS t2;
|
|
--enable_warnings
|
|
|
|
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;
|
|
|
|
DROP TABLE t1;
|
|
DROP TABLE t2;
|
|
|
|
--echo
|
|
--echo # -- Check 7 (check that SQL errors reset row_count to -1).
|
|
|
|
CREATE TABLE t1(a INT);
|
|
|
|
INSERT INTO t1 VALUES (1), (2), (3);
|
|
--error ER_SP_DOES_NOT_EXIST
|
|
SELECT f1();
|
|
|
|
SELECT ROW_COUNT();
|
|
|
|
DROP TABLE t1;
|
|
|
|
--echo
|
|
--echo # -- End of test case for Bug#21818.
|