From ddc6fb621df8556055369ca722b094e01e638407 Mon Sep 17 00:00:00 2001 From: Kyle Conroy Date: Thu, 10 Nov 2022 00:04:48 -0800 Subject: [PATCH] mysql: Add datatype tests --- .../endtoend/testdata/datatype/mysql/go/db.go | 31 +++++++ .../testdata/datatype/mysql/go/models.go | 91 +++++++++++++++++++ .../testdata/datatype/mysql/sql/character.sql | 31 +++++++ .../testdata/datatype/mysql/sql/datetime.sql | 13 +++ .../testdata/datatype/mysql/sql/numeric.sql | 40 ++++++++ .../testdata/datatype/mysql/sql/query.sql | 1 + .../testdata/datatype/mysql/sqlc.json | 12 +++ 7 files changed, 219 insertions(+) create mode 100644 internal/endtoend/testdata/datatype/mysql/go/db.go create mode 100644 internal/endtoend/testdata/datatype/mysql/go/models.go create mode 100644 internal/endtoend/testdata/datatype/mysql/sql/character.sql create mode 100644 internal/endtoend/testdata/datatype/mysql/sql/datetime.sql create mode 100644 internal/endtoend/testdata/datatype/mysql/sql/numeric.sql create mode 100644 internal/endtoend/testdata/datatype/mysql/sql/query.sql create mode 100644 internal/endtoend/testdata/datatype/mysql/sqlc.json diff --git a/internal/endtoend/testdata/datatype/mysql/go/db.go b/internal/endtoend/testdata/datatype/mysql/go/db.go new file mode 100644 index 0000000000..4d5995c66b --- /dev/null +++ b/internal/endtoend/testdata/datatype/mysql/go/db.go @@ -0,0 +1,31 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.16.0 + +package datatype + +import ( + "context" + "database/sql" +) + +type DBTX interface { + ExecContext(context.Context, string, ...interface{}) (sql.Result, error) + PrepareContext(context.Context, string) (*sql.Stmt, error) + QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error) + QueryRowContext(context.Context, string, ...interface{}) *sql.Row +} + +func New(db DBTX) *Queries { + return &Queries{db: db} +} + +type Queries struct { + db DBTX +} + +func (q *Queries) WithTx(tx *sql.Tx) *Queries { + return &Queries{ + db: tx, + } +} diff --git a/internal/endtoend/testdata/datatype/mysql/go/models.go b/internal/endtoend/testdata/datatype/mysql/go/models.go new file mode 100644 index 0000000000..ef9c747cf9 --- /dev/null +++ b/internal/endtoend/testdata/datatype/mysql/go/models.go @@ -0,0 +1,91 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.16.0 + +package datatype + +import ( + "database/sql" + "time" +) + +type DtCharacter struct { + A sql.NullString + B sql.NullString + C sql.NullString + D sql.NullString + E sql.NullString + F sql.NullString + G sql.NullString + H sql.NullString + I sql.NullString + J sql.NullString + K sql.NullString + L sql.NullString +} + +type DtCharacterNotNull struct { + A string + B string + C string + D string + E string + F string + G string + H string + I string + J string + K string + L string +} + +type DtDatetime struct { + A sql.NullTime + B sql.NullTime + C sql.NullTime +} + +type DtDatetimeNotNull struct { + A time.Time + B time.Time + C time.Time +} + +type DtNumeric struct { + A sql.NullInt32 + B sql.NullInt32 + C sql.NullInt32 + D sql.NullInt32 + E sql.NullInt32 + F sql.NullInt64 + G interface{} + H sql.NullString + I sql.NullString + J interface{} + K sql.NullFloat64 + L sql.NullFloat64 +} + +type DtNumericNotNull struct { + A int32 + B int32 + C int32 + D int32 + E int32 + F int64 + G interface{} + H string + I string + J interface{} + K float64 + L float64 +} + +type DtNumericUnsigned struct { + A sql.NullInt32 + B sql.NullInt32 + C sql.NullInt32 + D sql.NullInt32 + E sql.NullInt32 + F sql.NullInt64 +} diff --git a/internal/endtoend/testdata/datatype/mysql/sql/character.sql b/internal/endtoend/testdata/datatype/mysql/sql/character.sql new file mode 100644 index 0000000000..42130472d9 --- /dev/null +++ b/internal/endtoend/testdata/datatype/mysql/sql/character.sql @@ -0,0 +1,31 @@ +-- Character Types +-- https://dev.mysql.com/doc/refman/8.0/en/string-type-syntax.html +CREATE TABLE dt_character ( + a CHARACTER(32), + b VARCHAR(32), + c CHAR(32), + d BINARY(32), + e VARBINARY(32), + f TINYBLOB, + g TINYTEXT, + h TEXT, + i MEDIUMTEXT, + j MEDIUMBLOB, + k LONGTEXT, + l LONGBLOB +); + +CREATE TABLE dt_character_not_null ( + a CHARACTER(32) NOT NULL, + b VARCHAR(32) NOT NULL, + c CHAR(32) NOT NULL, + d BINARY(32) NOT NULL, + e VARBINARY(32) NOT NULL, + f TINYBLOB NOT NULL, + g TINYTEXT NOT NULL, + h TEXT NOT NULL, + i MEDIUMTEXT NOT NULL, + j MEDIUMBLOB NOT NULL, + k LONGTEXT NOT NULL, + l LONGBLOB NOT NULL +); diff --git a/internal/endtoend/testdata/datatype/mysql/sql/datetime.sql b/internal/endtoend/testdata/datatype/mysql/sql/datetime.sql new file mode 100644 index 0000000000..6008cf6ae6 --- /dev/null +++ b/internal/endtoend/testdata/datatype/mysql/sql/datetime.sql @@ -0,0 +1,13 @@ +-- Date/Time Types +-- https://www.sqlite.org/datatype3.html +CREATE TABLE dt_datetime ( + a DATE, + b DATETIME, + c TIMESTAMP +); + +CREATE TABLE dt_datetime_not_null ( + a DATE NOT NULL, + b DATETIME NOT NULL, + c TIMESTAMP NOT NULL +); diff --git a/internal/endtoend/testdata/datatype/mysql/sql/numeric.sql b/internal/endtoend/testdata/datatype/mysql/sql/numeric.sql new file mode 100644 index 0000000000..ddc1573e63 --- /dev/null +++ b/internal/endtoend/testdata/datatype/mysql/sql/numeric.sql @@ -0,0 +1,40 @@ +-- Numeric Types +-- https://dev.mysql.com/doc/refman/8.0/en/numeric-type-syntax.html +CREATE TABLE dt_numeric ( + a INT, + b INTEGER, + c TINYINT, + d SMALLINT, + e MEDIUMINT, + f BIGINT, + g BIT, + h DECIMAL(10, 5), + i DEC(10, 5), + j FLOAT, + k DOUBLE, + l DOUBLE PRECISION +); + +CREATE TABLE dt_numeric_unsigned ( + a INT UNSIGNED, + b INTEGER UNSIGNED, + c TINYINT UNSIGNED, + d SMALLINT UNSIGNED, + e MEDIUMINT UNSIGNED, + f BIGINT UNSIGNED +); + +CREATE TABLE dt_numeric_not_null ( + a INT NOT NULL, + b INTEGER NOT NULL, + c TINYINT NOT NULL, + d SMALLINT NOT NULL, + e MEDIUMINT NOT NULL, + f BIGINT NOT NULL, + g BIT NOT NULL, + h DECIMAL(10, 5) NOT NULL, + i DEC(10, 5) NOT NULL, + j FLOAT NOT NULL, + k DOUBLE NOT NULL, + l DOUBLE PRECISION NOT NULL +); diff --git a/internal/endtoend/testdata/datatype/mysql/sql/query.sql b/internal/endtoend/testdata/datatype/mysql/sql/query.sql new file mode 100644 index 0000000000..e0ac49d1ec --- /dev/null +++ b/internal/endtoend/testdata/datatype/mysql/sql/query.sql @@ -0,0 +1 @@ +SELECT 1; diff --git a/internal/endtoend/testdata/datatype/mysql/sqlc.json b/internal/endtoend/testdata/datatype/mysql/sqlc.json new file mode 100644 index 0000000000..8bc2cb7ec2 --- /dev/null +++ b/internal/endtoend/testdata/datatype/mysql/sqlc.json @@ -0,0 +1,12 @@ +{ + "version": "1", + "packages": [ + { + "path": "go", + "engine": "mysql", + "name": "datatype", + "schema": "sql/", + "queries": "sql/" + } + ] +}