mirror of
https://github.com/MariaDB/server.git
synced 2025-05-27 01:57:48 +03:00
Syntax. Server support. Test cases. InnoDB bugfixes: * don't mess around with system sprintf's, always use my_error() for errors. * don't use InnoDB internal error codes where OS error codes are expected. * don't say "file not found", when it was.
164 lines
6.5 KiB
Plaintext
164 lines
6.5 KiB
Plaintext
####################################
|
|
# SETUP
|
|
####################################
|
|
CREATE DATABASE statements_digest;
|
|
USE statements_digest;
|
|
CREATE TABLE t1(a int);
|
|
CREATE TABLE t2(a int);
|
|
CREATE TABLE t3(a int, b int);
|
|
CREATE TABLE t4(a int, b int);
|
|
CREATE TABLE t5(a int, b int, c int);
|
|
CREATE TABLE t6(a int, b int, c int, d int);
|
|
CREATE TABLE t11 (c CHAR(4));
|
|
CREATE TABLE t12 (c CHAR(4));
|
|
TRUNCATE TABLE performance_schema.events_statements_summary_by_digest;
|
|
####################################
|
|
# EXECUTION
|
|
####################################
|
|
SELECT 1 FROM t1;
|
|
1
|
|
SELECT 1 FROM `t1`;
|
|
1
|
|
SELECT 1,2 FROM t1;
|
|
1 2
|
|
SELECT 1, 2, 3, 4 FROM t1;
|
|
1 2 3 4
|
|
SELECT 1 FROM t2;
|
|
1
|
|
SELECT 1,2 FROM t2;
|
|
1 2
|
|
SELECT 1, 2, 3, 4 FROM t2;
|
|
1 2 3 4
|
|
INSERT INTO t1 VALUES (1);
|
|
INSERT INTO t2 VALUES (1);
|
|
INSERT INTO t3 VALUES (1, 2);
|
|
INSERT INTO t4 VALUES (1, 2);
|
|
INSERT INTO t5 VALUES (1, 2, 3);
|
|
INSERT INTO t1 VALUES (1), (2), (3);
|
|
INSERT INTO t1 VALUES (1), (2), (3), (4);
|
|
INSERT INTO t3 VALUES (1, 2), (3, 4), (5, 6);
|
|
INSERT INTO t5 VALUES (1, 2, 3), (4, 5, 6), (7, 8, 9);
|
|
INSERT INTO t1 VALUES (NULL);
|
|
INSERT INTO t3 VALUES (NULL,NULL);
|
|
INSERT INTO t3 VALUES (1,NULL);
|
|
INSERT INTO t3 VALUES (NULL,1);
|
|
INSERT INTO t6 VALUES (NULL, NULL, NULL, NULL);
|
|
INSERT INTO t6 VALUES (1, NULL, NULL, NULL);
|
|
INSERT INTO t6 VALUES (NULL, 2, NULL, NULL);
|
|
INSERT INTO t6 VALUES (1, 2, 3, NULL);
|
|
INSERT INTO t6 VALUES (1, 2, NULL, 4);
|
|
SELECT 1 + 1;
|
|
1 + 1
|
|
2
|
|
SELECT 1;
|
|
1
|
|
1
|
|
SELECT 1 /* This is an inline comment */ + 1;
|
|
1 /* This is an inline comment */ + 1
|
|
2
|
|
SELECT 1+
|
|
/*
|
|
this is a
|
|
multiple-line comment
|
|
*/
|
|
1;
|
|
1+
|
|
/*
|
|
this is a
|
|
multiple-line comment
|
|
*/
|
|
1
|
|
2
|
|
CREATE SCHEMA statements_digest_temp;
|
|
DROP SCHEMA statements_digest_temp;
|
|
CREATE DATABASE statements_digest_temp;
|
|
DROP DATABASE statements_digest_temp;
|
|
SELECT 1 FROM no_such_table;
|
|
ERROR 42S02: Table 'statements_digest.no_such_table' doesn't exist
|
|
CREATE TABLE dup_table (c char(4));
|
|
CREATE TABLE dup_table (c char(4));
|
|
ERROR 42S01: Table 'dup_table' already exists
|
|
DROP TABLE dup_table;
|
|
INSERT INTO t11 VALUES("MySQL");
|
|
Warnings:
|
|
Warning 1265 Data truncated for column 'c' at row 1
|
|
PREPARE stmt FROM "SELECT * FROM t12";
|
|
EXECUTE stmt;
|
|
c
|
|
EXECUTE stmt;
|
|
c
|
|
DEALLOCATE PREPARE stmt;
|
|
CREATE PROCEDURE p1() BEGIN SELECT * FROM t12; END//
|
|
CALL p1();
|
|
c
|
|
CALL p1();
|
|
c
|
|
DROP PROCEDURE p1;
|
|
CREATE FUNCTION `func`(a INT, b INT) RETURNS int(11) RETURN a+b //
|
|
select func(3,4);
|
|
func(3,4)
|
|
7
|
|
select func(13,42);
|
|
func(13,42)
|
|
55
|
|
DROP FUNCTION func;
|
|
CREATE TRIGGER trg BEFORE INSERT ON t12 FOR EACH ROW SET @a:=1;
|
|
INSERT INTO t12 VALUES ("abc");
|
|
INSERT INTO t12 VALUES ("def");
|
|
DROP TRIGGER trg;
|
|
####################################
|
|
# QUERYING PS STATEMENT DIGEST
|
|
####################################
|
|
SELECT SCHEMA_NAME, DIGEST, DIGEST_TEXT, COUNT_STAR, SUM_ROWS_AFFECTED, SUM_WARNINGS,
|
|
SUM_ERRORS FROM performance_schema.events_statements_summary_by_digest;
|
|
SCHEMA_NAME DIGEST DIGEST_TEXT COUNT_STAR SUM_ROWS_AFFECTED SUM_WARNINGS SUM_ERRORS
|
|
statements_digest 0e98ee6a98e296530ec59c12dbc08dfe TRUNCATE TABLE performance_schema . events_statements_summary_by_digest 1 0 0 0
|
|
statements_digest 954f43425c3234acc8e194afd97e8a0a SELECT ? FROM t1 1 0 0 0
|
|
statements_digest fc365a54bc19d746bd24c27aba46b990 SELECT ? FROM `t1` 1 0 0 0
|
|
statements_digest 27ba28f6252e4ae0e9b14b36da536fbe SELECT ?, ... FROM t1 2 0 0 0
|
|
statements_digest 81d03922612900032ec4b81934ab4841 SELECT ? FROM t2 1 0 0 0
|
|
statements_digest adce8aec12b6b5046cd4bf55951014c7 SELECT ?, ... FROM t2 2 0 0 0
|
|
statements_digest 59a1bd93c424b10802fe66bb6dcd94d2 INSERT INTO t1 VALUES (?) 1 1 0 0
|
|
statements_digest 91b2da58b0eb49c35a38fbc49f5e491d INSERT INTO t2 VALUES (?) 1 1 0 0
|
|
statements_digest 967114adbf91d8a4a99ec5e49e909ff4 INSERT INTO t3 VALUES (...) 4 4 0 0
|
|
statements_digest 8f25e7a48487e0aa7377e816816bb658 INSERT INTO t4 VALUES (...) 1 1 0 0
|
|
statements_digest 4e51253af793867fba66166de1f314f7 INSERT INTO t5 VALUES (...) 1 1 0 0
|
|
statements_digest fa47b3109e117216cd10209690d28596 INSERT INTO t1 VALUES (?) /* , ... */ 2 7 0 0
|
|
statements_digest 72409f84bc236e6fe9f2f7b4d727f2d3 INSERT INTO t3 VALUES (...) /* , ... */ 1 3 0 0
|
|
statements_digest d40aaddb41ed794d65dd8273f0c75700 INSERT INTO t5 VALUES (...) /* , ... */ 1 3 0 0
|
|
statements_digest 57a82b28388e52e99fc64339dd30edde INSERT INTO t1 VALUES ( NULL ) 1 1 0 0
|
|
statements_digest 6a56b694106442474cb0e5fb7575c8b9 INSERT INTO t6 VALUES (...) 5 5 0 0
|
|
statements_digest c9abf55e296c4317dbaf2d14ef907ad7 SELECT ? + ? 3 0 0 0
|
|
statements_digest 156304a0851a3e3626b39fb3da841a82 SELECT ? 1 0 0 0
|
|
statements_digest 3b085ab0d2063dfca1a39212e3ea1831 CREATE SCHEMA statements_digest_temp 2 2 0 0
|
|
statements_digest 09f9fabef2feb9a54ba01455e5ae83b9 DROP SCHEMA statements_digest_temp 2 0 0 0
|
|
statements_digest 7910a63ffd31cbcb742e15270c8958c8 SELECT ? FROM no_such_table 1 0 0 1
|
|
statements_digest fa34540a438bc672478b1162505ee28c CREATE TABLE dup_table ( c CHARACTER (?) ) 2 0 0 1
|
|
statements_digest 2c720f176bb7c8510ff8aca8921b9945 DROP TABLE dup_table 1 0 0 0
|
|
statements_digest 0c7d9fd8c27ab067511da41ca3bcdff3 INSERT INTO t11 VALUES (?) 1 1 1 0
|
|
statements_digest 81681ff345065ed72bcd1e9407ab85e4 SHOW WARNINGS 1 0 0 0
|
|
statements_digest d766f5823ae5d8e4cf4602b8e7a3fb80 PREPARE stmt FROM ? 1 0 0 0
|
|
statements_digest 3ab1e87eabd9688edf919754cce6348b EXECUTE stmt 2 0 0 0
|
|
statements_digest 470094469d250b9f45cab45bf610efe8 DEALLOCATE PREPARE stmt 1 0 0 0
|
|
statements_digest 1b4d25358e08b35ad54e49dfe5eaf3e4 CREATE PROCEDURE p1 ( ) BEGIN SELECT * FROM t12 ; END 1 0 0 0
|
|
statements_digest 84554971243e91106214dcb8f4eaa89b CALL p1 ( ) 2 0 0 0
|
|
statements_digest 77206e4bf30979c56752a7ed9150213a DROP PROCEDURE p1 1 0 0 0
|
|
statements_digest 03b91dcdba6b0e29f7fb240ae4bcd97f CREATE FUNCTION `func` ( a INTEGER , b INTEGER ) RETURNS INTEGER (?) RETURN a + b 1 0 0 0
|
|
statements_digest 72bc532f308f2dca62f5291df8c50e6f SELECT func (...) 2 0 0 0
|
|
statements_digest 0b5a5297689c5036def6af8e8a8ce113 DROP FUNCTION func 1 0 0 0
|
|
statements_digest d08331e42c67555ece50e46eef0f2b47 CREATE TRIGGER trg BEFORE INSERT ON t12 FOR EACH ROW SET @ ? := ? 1 0 0 0
|
|
statements_digest 754a49a4de995c5a729e9ab52f135f59 INSERT INTO t12 VALUES (?) 2 2 0 0
|
|
statements_digest 68df17752bca7c2c8ee2a6a19a0674e7 DROP TRIGGER trg 1 0 0 0
|
|
####################################
|
|
# CLEANUP
|
|
####################################
|
|
DROP TABLE IF EXISTS t1;
|
|
DROP TABLE IF EXISTS t2;
|
|
DROP TABLE IF EXISTS t3;
|
|
DROP TABLE IF EXISTS t4;
|
|
DROP TABLE IF EXISTS t5;
|
|
DROP TABLE IF EXISTS t6;
|
|
DROP TABLE IF EXISTS t11;
|
|
DROP TABLE IF EXISTS t12;
|
|
DROP DATABASE IF EXISTS statements_digest;
|