[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
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
columns = append(columns, metadata.Column{

2
go.mod
View file

@ -7,7 +7,7 @@ require (
github.com/google/uuid v1.3.0
github.com/jackc/pgconn v1.14.0
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

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.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
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.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
github.com/mattn/go-sqlite3 v1.14.17 h1:mCRHCLDUBXgpKAqIKsaAaAsrAlbkeomtRFKXh2L6YIM=
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/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
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",
people.people_name AS "people.people_name",
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
WHERE people.people_id = ?;
`)
@ -43,7 +44,7 @@ WHERE people.people_id = ?;
require.Equal(t, "Carla", result.PeopleName)
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) {
@ -53,7 +54,7 @@ WHERE people.people_id = ?;
).MODEL(
model.People{
PeopleName: "Dario",
PeopleHeightCm: testutils.Float64Ptr(120),
PeopleHeightCm: testutils.Float64Ptr(190),
},
).RETURNING(
People.AllColumns,
@ -61,18 +62,21 @@ WHERE people.people_id = ?;
testutils.AssertDebugStatementSql(t, insertQuery, `
INSERT INTO people (people_name, people_height_cm)
VALUES ('Dario', 120)
VALUES ('Dario', 190)
RETURNING people.people_id AS "people.people_id",
people.people_name AS "people.people_name",
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
err := insertQuery.Query(tx, &result)
require.NoError(t, err)
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,
CastOperator: "20",
LikeOperator: false,
// IsNull: true, //TODO: uncomment when sqlite driver updates to sqlite version > 3.40.1
IsNull: true,
CaseOperator: "unknown",
})
requireLogged(t, stmt)