MySQL 8.0.40
Source Code Documentation
|
By default, the mysqltest test engine produces output only from select, show, and other SQL statements that you expect to produce output (that is, statements that create a result set).
It also produces output from certain commands such as echo and exec. mysqltest can be instructed to be more or less verbose.
Suppose that we want to include in the result the number of rows affected by or returned by SQL statements. To do this, add the following line to the test case file preceding the first table-creation statement:
--enable_info
After rerunning the test by invoking mysql-test-run.pl with the --record
option to record the new result, the result file will contain more information:
DROP TABLE IF EXISTS t1,t2; CREATE TABLE t1 ( Period SMALLINT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL, Varor_period SMALLINT(4) UNSIGNED DEFAULT '0' NOT NULL ); affected rows: 0 CREATE TABLE t2 (Period SMALLINT); affected rows: 0 INSERT INTO t1 VALUES (9410,9412); affected rows: 1 INSERT INTO t2 VALUES (9410),(9411),(9412),(9413); affected rows: 4 info: Records: 4 Duplicates: 0 Warnings: 0 SELECT period FROM t1; period 9410 affected rows: 1 SELECT * FROM t1; Period Varor_period 9410 9412 affected rows: 1 SELECT t1.* FROM t1; Period Varor_period 9410 9412 affected rows: 1 SELECT * FROM t1 INNER JOIN t2 USING (Period); Period Varor_period 9410 9412 affected rows: 1 DROP TABLE t1, t2; affected rows: 0 ok
To turn off the affected-rows reporting, add this command to the test case file:
--disable_info
In general, options can be enabled and disabled for different parts of the test file. Suppose that we are interested in the internals of the database as well. We could enable the display of query metadata using enable_metadata. With this option enabled, the test output is a bit verbose. However, as mentioned earlier, the option can be enabled and disabled selectively so that it is enabled only for those parts of the test case where it interests you to know more.
If you perform an operation for which you have no interest in seeing the statements logged to the result, you can disable statement logging. For example, you might be initializing a table where you don't really expect a failure, and you are not interested in seeing the initialization statements in the test result. You can use the disable_query_log command to temporarily disable recording of input SQL statements, and enable recording again with enable_query_log. You can disable the recording of the output from executing commands using disable_result_log and enable recording again with enable_result_log.