mirror of
https://github.com/boostorg/mysql.git
synced 2026-01-29 19:52:11 +00:00
205 lines
7.3 KiB
SQL
205 lines
7.3 KiB
SQL
-- Databse
|
|
DROP DATABASE IF EXISTS awesome;
|
|
CREATE DATABASE awesome;
|
|
USE awesome;
|
|
|
|
-- Tables
|
|
CREATE TABLE inserts_table (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
field_varchar VARCHAR(255) NOT NULL,
|
|
field_date DATE
|
|
) ENGINE=INNODB;
|
|
|
|
CREATE TABLE updates_table (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
field_varchar VARCHAR(255) NOT NULL,
|
|
field_int INT
|
|
) ENGINE=INNODB;
|
|
INSERT INTO updates_table (field_varchar, field_int)
|
|
VALUES ('f0', 42), ('f1', 43);
|
|
|
|
CREATE TABLE empty_table (
|
|
id INT,
|
|
field_varchar VARCHAR(255)
|
|
);
|
|
|
|
CREATE TABLE one_row_table (
|
|
id INT,
|
|
field_varchar VARCHAR(255)
|
|
);
|
|
INSERT INTO one_row_table VALUES (1, 'f0');
|
|
|
|
CREATE TABLE two_rows_table (
|
|
id INT,
|
|
field_varchar VARCHAR(255)
|
|
);
|
|
INSERT INTO two_rows_table VALUES (1, 'f0'), (2, 'f1');
|
|
|
|
CREATE TABLE three_rows_table (
|
|
id INT,
|
|
field_varchar VARCHAR(255)
|
|
);
|
|
INSERT INTO three_rows_table VALUES (1, 'f0'), (2, 'f1'), (3, 'f2');
|
|
|
|
-- Tables to test we retrieve correctly values of every possible type
|
|
-- Every type gets a separate table. Each field within the table is a possible variant of this same type
|
|
-- Every row is a test case, identified by the id column.
|
|
|
|
-- Integer types
|
|
CREATE TABLE types_tinyint(
|
|
id VARCHAR(50) NOT NULL PRIMARY KEY,
|
|
field_signed TINYINT,
|
|
field_unsigned TINYINT UNSIGNED,
|
|
field_width TINYINT(4),
|
|
field_zerofill TINYINT(6) ZEROFILL
|
|
);
|
|
INSERT INTO types_tinyint VALUES
|
|
("regular", 20, 20, 20, 20),
|
|
("negative", -20, NULL, -20, NULL),
|
|
("min", -0x80, 0, NULL, 0),
|
|
("max", 0x7f, 0xff, NULL, NULL)
|
|
;
|
|
|
|
CREATE TABLE types_smallint(
|
|
id VARCHAR(50) NOT NULL PRIMARY KEY,
|
|
field_signed SMALLINT,
|
|
field_unsigned SMALLINT UNSIGNED,
|
|
field_width SMALLINT(8),
|
|
field_zerofill SMALLINT(7) ZEROFILL
|
|
);
|
|
INSERT INTO types_smallint VALUES
|
|
("regular", 20, 20, 20, 20),
|
|
("negative", -20, NULL, -20, NULL),
|
|
("min", -0x8000, 0, NULL, 0),
|
|
("max", 0x7fff, 0xffff, NULL, NULL)
|
|
;
|
|
|
|
CREATE TABLE types_mediumint(
|
|
id VARCHAR(50) NOT NULL PRIMARY KEY,
|
|
field_signed MEDIUMINT,
|
|
field_unsigned MEDIUMINT UNSIGNED,
|
|
field_width MEDIUMINT(8),
|
|
field_zerofill MEDIUMINT(7) ZEROFILL
|
|
);
|
|
INSERT INTO types_mediumint VALUES
|
|
("regular", 20, 20, 20, 20),
|
|
("negative", -20, NULL, -20, NULL),
|
|
("min", -0x800000, 0, NULL, 0),
|
|
("max", 0x7fffff, 0xffffff, NULL, NULL)
|
|
;
|
|
|
|
CREATE TABLE types_int(
|
|
id VARCHAR(50) NOT NULL PRIMARY KEY,
|
|
field_signed INT,
|
|
field_unsigned INT UNSIGNED,
|
|
field_width INT(8),
|
|
field_zerofill INT(7) ZEROFILL
|
|
);
|
|
INSERT INTO types_int VALUES
|
|
("regular", 20, 20, 20, 20),
|
|
("negative", -20, NULL, -20, NULL),
|
|
("min", -0x80000000, 0, NULL, 0),
|
|
("max", 0x7fffffff, 0xffffffff, NULL, NULL)
|
|
;
|
|
|
|
CREATE TABLE types_bigint(
|
|
id VARCHAR(50) NOT NULL PRIMARY KEY,
|
|
field_signed BIGINT,
|
|
field_unsigned BIGINT UNSIGNED,
|
|
field_width BIGINT(8),
|
|
field_zerofill BIGINT(7) ZEROFILL
|
|
);
|
|
INSERT INTO types_bigint VALUES
|
|
("regular", 20, 20, 20, 20),
|
|
("negative", -20, NULL, -20, NULL),
|
|
("min", -0x8000000000000000, 0, NULL, 0),
|
|
("max", 0x7fffffffffffffff, 0xffffffffffffffff, NULL, NULL)
|
|
;
|
|
|
|
-- Floating point types
|
|
CREATE TABLE types_float(
|
|
id VARCHAR(50) NOT NULL PRIMARY KEY,
|
|
field_signed FLOAT,
|
|
field_unsigned FLOAT UNSIGNED,
|
|
field_width FLOAT(30, 10),
|
|
field_zerofill FLOAT(20) ZEROFILL
|
|
);
|
|
INSERT INTO types_float VALUES
|
|
("zero", 0, 0, 0, 0),
|
|
("int_positive", 4, NULL, NULL, NULL),
|
|
("int_negative", -4, NULL, NULL, NULL),
|
|
("fractional_positive", 4.2, 4.2, 4.2, 4.2),
|
|
("fractional_negative", -4.2, NULL, -4.2, NULL),
|
|
("positive_exp_positive_int", 3e20, NULL, NULL, NULL),
|
|
("positive_exp_negative_int", -3e20, NULL, NULL, NULL),
|
|
("positive_exp_positive_fractional", 3.14e20, NULL, NULL, 3.14e20),
|
|
("positive_exp_negative_fractional", -3.14e20, NULL, NULL, NULL),
|
|
("negative_exp_positive_fractional", 3.14e-20, NULL, NULL, 3.14e-20)
|
|
;
|
|
|
|
CREATE TABLE types_double(
|
|
id VARCHAR(50) NOT NULL PRIMARY KEY,
|
|
field_signed DOUBLE,
|
|
field_unsigned DOUBLE UNSIGNED,
|
|
field_width DOUBLE(60, 10),
|
|
field_zerofill FLOAT(40) ZEROFILL
|
|
);
|
|
INSERT INTO types_double VALUES
|
|
("zero", 0, 0, 0, 0),
|
|
("int_positive", 4, NULL, NULL, NULL),
|
|
("int_negative", -4, NULL, NULL, NULL),
|
|
("fractional_positive", 4.2, 4.2, 4.2, 4.2),
|
|
("fractional_negative", -4.2, NULL, -4.2, NULL),
|
|
("positive_exp_positive_int", 3e200, NULL, NULL, NULL),
|
|
("positive_exp_negative_int", -3e200, NULL, NULL, NULL),
|
|
("positive_exp_positive_fractional", 3.14e200, NULL, NULL, 3.14e200),
|
|
("positive_exp_negative_fractional", -3.14e200, NULL, NULL, NULL),
|
|
("negative_exp_positive_fractional", 3.14e-200, NULL, NULL, 3.14e-200)
|
|
;
|
|
|
|
-- Dates and times
|
|
CREATE TABLE types_date(
|
|
id VARCHAR(50) NOT NULL PRIMARY KEY,
|
|
field_date DATE
|
|
);
|
|
INSERT INTO types_date VALUES
|
|
("regular", "2010-03-28"),
|
|
("leap", "1788-02-29"),
|
|
("min", "1000-01-01"),
|
|
("max", "9999-12-31")
|
|
;
|
|
|
|
CREATE TABLE types_datetime(
|
|
id VARCHAR(50) NOT NULL PRIMARY KEY,
|
|
field_0 DATETIME(0),
|
|
field_1 DATETIME(1),
|
|
field_2 DATETIME(2),
|
|
field_3 DATETIME(3),
|
|
field_4 DATETIME(4),
|
|
field_5 DATETIME(5),
|
|
field_6 DATETIME(6)
|
|
);
|
|
INSERT INTO types_datetime VALUES
|
|
("date", "2010-05-02 00:00:00", "2010-05-02 00:00:00", "2010-05-02 00:00:00", "2010-05-02 00:00:00", "2010-05-02 00:00:00", "2010-05-02 00:00:00", "2010-05-02 00:00:00"),
|
|
("h", "2010-05-02 23:00:00", "2010-05-02 23:00:00", "2010-05-02 23:00:00", "2010-05-02 23:00:00", "2010-05-02 23:00:00", "2010-05-02 23:00:00", "2010-05-02 23:00:00"),
|
|
("hm", "2010-05-02 23:01:00", "2010-05-02 23:01:00", "2010-05-02 23:01:00", "2010-05-02 23:01:00", "2010-05-02 23:01:00", "2010-05-02 23:01:00", "2010-05-02 23:01:00"),
|
|
("hms", "2010-05-02 23:01:50", "2010-05-02 23:01:50", "2010-05-02 23:01:50", "2010-05-02 23:01:50", "2010-05-02 23:01:50", "2010-05-02 23:01:50", "2010-05-02 23:01:50"),
|
|
("hmsu", NULL, "2010-05-02 23:01:50.1", "2010-05-02 23:01:50.12", "2010-05-02 23:01:50.123", "2010-05-02 23:01:50.1234", "2010-05-02 23:01:50.12345", "2010-05-02 23:01:50.123456"),
|
|
("min", "1000-01-01", "1000-01-01", "1000-01-01", "1000-01-01", "1000-01-01", "1000-01-01", "1000-01-01"),
|
|
("max", "9999-12-31 23:59:59", "9999-12-31 23:59:59.9", "9999-12-31 23:59:59.99", "9999-12-31 23:59:59.999", "9999-12-31 23:59:59.9999", "9999-12-31 23:59:59.99999", "9999-12-31 23:59:59.999999")
|
|
;
|
|
|
|
CREATE TABLE test_times(
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
field_date DATE,
|
|
field_time0 TIME,
|
|
field_time1 TIME(1),
|
|
field_time6 TIME(6)
|
|
);
|
|
INSERT INTO test_times (field_date, field_time0, field_time1, field_time6)
|
|
VALUES ('1999-08-01', '-838:59:59', '838:59:58.9', '838:59:58.999999');
|
|
|
|
-- Users
|
|
DROP USER IF EXISTS empty_password_user;
|
|
CREATE USER empty_password_user IDENTIFIED BY '';
|
|
GRANT ALL PRIVILEGES ON awesome.* TO 'empty_password_user'; |