Improve database to golang name mapping.

This commit is contained in:
go-jet 2019-07-03 16:27:14 +02:00
parent 3e7277015d
commit 950663dadb
19 changed files with 538 additions and 122 deletions

View file

@ -198,4 +198,34 @@ CREATE TABLE test_sample.person(
DROP TYPE IF EXISTS test_sample.MOOD CASCADE;
CREATE TYPE test_sample.MOOD AS ENUM ('sad', 'ok', 'happy');
CREATE TYPE test_sample.MOOD AS ENUM ('sad', 'ok', 'happy');
-- WEIRD TABLE NAMES --------------
DROP TABLE IF EXISTS test_sample."WEIRD NAMES TABLE";
CREATE TABLE test_sample."WEIRD NAMES TABLE"(
"weird_column_name1" varchar(100) NOT NULL,
"Weird_Column_Name2" varchar(100) NOT NULL,
"wEiRd_cOluMn_nAmE3" varchar(100) NOT NULL,
"WeIrd_CoLuMN_Name4" varchar(100) NOT NULL,
"WEIRD_COLUMN_NAME5" varchar(100) NOT NULL,
"WeirdColumnName6" varchar(100) NOT NULL,
"weirdColumnName7" varchar(100) NOT NULL,
"weirdcolumnname8" varchar(100),
"weird col name9" varchar(100) NOT NULL,
"wEiRd cOlu nAmE10" varchar(100) NOT NULL,
"WEIRD COLU NAME11" varchar(100) NOT NULL,
"Weird Colu Name12" varchar(100) NOT NULL,
"weird-col-name13" varchar(100) NOT NULL,
"wEiRd-cOlu-nAmE14" varchar(100) NOT NULL,
"WEIRD-COLU-NAME15" varchar(100) NOT NULL,
"Weird-Colu-Name16" varchar(100) NOT NULL
);
INSERT INTO test_sample."WEIRD NAMES TABLE"
VALUES ('Doe', 'Doe', 'Doe', 'Doe','Doe', 'Doe', 'Doe', 'Doe','Doe', 'Doe', 'Doe', 'Doe','Doe', 'Doe', 'Doe', 'Doe');

View file

@ -116,3 +116,35 @@ ORDER BY employee.employee_id;
ManagerID: int32Ptr(3),
})
}
func TestWierdNamesTable(t *testing.T) {
stmt := WeirdNamesTable.SELECT(WeirdNamesTable.AllColumns)
fmt.Println(stmt.DebugSql())
dest := []model.WeirdNamesTable{}
err := stmt.Query(db, &dest)
assert.NilError(t, err)
assert.Equal(t, len(dest), 1)
assert.DeepEqual(t, dest[0], model.WeirdNamesTable{
WeirdColumnName1: "Doe",
WeirdColumnName2: "Doe",
WeirdColumnName3: "Doe",
WeirdColumnName4: "Doe",
WeirdColumnName5: "Doe",
WeirdColumnName6: "Doe",
WeirdColumnName7: "Doe",
Weirdcolumnname8: stringPtr("Doe"),
WeirdColName9: "Doe",
WeirdColuName10: "Doe",
WeirdColuName11: "Doe",
WeirdColuName12: "Doe",
WeirdColName13: "Doe",
WeirdColuName14: "Doe",
WeirdColuName15: "Doe",
WeirdColuName16: "Doe",
})
}

View file

@ -467,7 +467,7 @@ func TestScanToSlice(t *testing.T) {
t.Run("slice of structs with slice of ints", func(t *testing.T) {
var dest []struct {
model.Film
IDs []int32 `alias:"Inventory.inventory_id"`
IDs []int32 `alias:"inventory.inventory_id"`
}
err := query.Query(db, &dest)
@ -483,7 +483,7 @@ func TestScanToSlice(t *testing.T) {
t.Run("slice of structs with slice of pointer to ints", func(t *testing.T) {
var dest []struct {
model.Film
IDs []*int32 `alias:"inventory.InventoryId"`
IDs []*int32 `alias:"inventory.inventory_id"`
}
err := query.Query(db, &dest)
@ -796,7 +796,7 @@ var store1 = model.Store{
LastUpdate: *timestampWithoutTimeZone("2006-02-15 09:57:12", 0),
}
var pgRating = model.MpaaRating_PG
var pgRating = model.MpaaRating_Pg
var gRating = model.MpaaRating_G
var language1 = model.Language{

View file

@ -291,7 +291,7 @@ LIMIT 15;
query := Film.
INNER_JOIN(Language, Film.LanguageID.EQ(Language.LanguageID)).
SELECT(Language.AllColumns, Film.AllColumns).
WHERE(Film.Rating.EQ(enum.MpaaRating.NC17)).
WHERE(Film.Rating.EQ(enum.MpaaRating.Nc17)).
LIMIT(15)
assertStatementSql(t, query, expectedSql, int64(15))
@ -304,7 +304,7 @@ LIMIT 15;
englishFilms := filmsPerLanguage[0]
assert.Equal(t, *englishFilms.Film[0].Rating, model.MpaaRating_NC17)
assert.Equal(t, *englishFilms.Film[0].Rating, model.MpaaRating_Nc17)
filmsPerLanguageWithPtrs := []*FilmsPerLanguage{}
err = query.Query(db, &filmsPerLanguageWithPtrs)
@ -1237,6 +1237,7 @@ ORDER BY actor.actor_id ASC, film.film_id ASC;
}
func TestQuickStartWithSubQueries(t *testing.T) {
filmLogerThan180 := Film.
SELECT(Film.AllColumns).
WHERE(Film.Length.GT(Int(180))).