[sqlite] Generated columns additional tests.

This commit is contained in:
go-jet 2024-02-04 18:45:48 +01:00
parent 71fb1c7cd1
commit 2eaa75345c
5 changed files with 16 additions and 12 deletions

View file

@ -89,7 +89,7 @@ func (p sqliteQuerySet) GetTableColumnsMetaData(db *sql.DB, schemaName string, t
var columns []metadata.Column var columns []metadata.Column
for _, columnInfo := range columnInfos { for _, columnInfo := range columnInfos {
columnType := getColumnType(columnInfo.Type) columnType := strings.TrimSuffix(getColumnType(columnInfo.Type), " GENERATED ALWAYS")
isGenerated := columnInfo.Hidden == 2 || columnInfo.Hidden == 3 // stored or virtual column isGenerated := columnInfo.Hidden == 2 || columnInfo.Hidden == 3 // stored or virtual column
columns = append(columns, metadata.Column{ columns = append(columns, metadata.Column{

2
go.mod
View file

@ -7,7 +7,7 @@ require (
github.com/google/uuid v1.3.0 github.com/google/uuid v1.3.0
github.com/jackc/pgconn v1.14.0 github.com/jackc/pgconn v1.14.0
github.com/lib/pq v1.10.8 github.com/lib/pq v1.10.8
github.com/mattn/go-sqlite3 v1.14.16 github.com/mattn/go-sqlite3 v1.14.17
) )
// test dependencies // test dependencies

4
go.sum
View file

@ -102,8 +102,8 @@ github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope
github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y= github.com/mattn/go-sqlite3 v1.14.17 h1:mCRHCLDUBXgpKAqIKsaAaAsrAlbkeomtRFKXh2L6YIM=
github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/mattn/go-sqlite3 v1.14.17/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/profile v1.7.0 h1:hnbDkaNWPCLMO9wGLdBFTIZvzDrDfBM2072E1S9gJkA= github.com/pkg/profile v1.7.0 h1:hnbDkaNWPCLMO9wGLdBFTIZvzDrDfBM2072E1S9gJkA=

View file

@ -32,7 +32,8 @@ func TestMutableColumnsExcludeGeneratedColumn(t *testing.T) {
SELECT people.people_id AS "people.people_id", SELECT people.people_id AS "people.people_id",
people.people_name AS "people.people_name", people.people_name AS "people.people_name",
people.people_height_cm AS "people.people_height_cm", people.people_height_cm AS "people.people_height_cm",
people.people_height_in AS "people.people_height_in" people.people_height_inch AS "people.people_height_inch",
people.people_height_feet AS "people.people_height_feet"
FROM people FROM people
WHERE people.people_id = ?; WHERE people.people_id = ?;
`) `)
@ -43,7 +44,7 @@ WHERE people.people_id = ?;
require.Equal(t, "Carla", result.PeopleName) require.Equal(t, "Carla", result.PeopleName)
require.Equal(t, 155., *result.PeopleHeightCm) require.Equal(t, 155., *result.PeopleHeightCm)
require.InEpsilon(t, 61.02, *result.PeopleHeightIn, 1e-3) require.InEpsilon(t, 61.02, *result.PeopleHeightInch, 1e-3)
}) })
t.Run("should insert without generated columns", func(t *testing.T) { t.Run("should insert without generated columns", func(t *testing.T) {
@ -53,7 +54,7 @@ WHERE people.people_id = ?;
).MODEL( ).MODEL(
model.People{ model.People{
PeopleName: "Dario", PeopleName: "Dario",
PeopleHeightCm: testutils.Float64Ptr(120), PeopleHeightCm: testutils.Float64Ptr(190),
}, },
).RETURNING( ).RETURNING(
People.AllColumns, People.AllColumns,
@ -61,18 +62,21 @@ WHERE people.people_id = ?;
testutils.AssertDebugStatementSql(t, insertQuery, ` testutils.AssertDebugStatementSql(t, insertQuery, `
INSERT INTO people (people_name, people_height_cm) INSERT INTO people (people_name, people_height_cm)
VALUES ('Dario', 120) VALUES ('Dario', 190)
RETURNING people.people_id AS "people.people_id", RETURNING people.people_id AS "people.people_id",
people.people_name AS "people.people_name", people.people_name AS "people.people_name",
people.people_height_cm AS "people.people_height_cm", people.people_height_cm AS "people.people_height_cm",
people.people_height_in AS "people.people_height_in"; people.people_height_inch AS "people.people_height_inch",
people.people_height_feet AS "people.people_height_feet";
`) `)
var result model.People var result model.People
err := insertQuery.Query(tx, &result) err := insertQuery.Query(tx, &result)
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, "Dario", result.PeopleName) require.Equal(t, "Dario", result.PeopleName)
require.Equal(t, 120., *result.PeopleHeightCm) require.Equal(t, 190., *result.PeopleHeightCm)
require.InEpsilon(t, float32(74.80314), *result.PeopleHeightInch, 1e-3)
require.InEpsilon(t, float32(6.233595), *result.PeopleHeightFeet, 1e-3)
}) })
}) })
} }

View file

@ -183,7 +183,7 @@ RETURNING link.id AS "link.id",
BinaryOperator: 31, BinaryOperator: 31,
CastOperator: "20", CastOperator: "20",
LikeOperator: false, LikeOperator: false,
// IsNull: true, //TODO: uncomment when sqlite driver updates to sqlite version > 3.40.1 IsNull: true,
CaseOperator: "unknown", CaseOperator: "unknown",
}) })
requireLogged(t, stmt) requireLogged(t, stmt)