diff --git a/generator/template/file_templates.go b/generator/template/file_templates.go index 3a4eae9..db30ab7 100644 --- a/generator/template/file_templates.go +++ b/generator/template/file_templates.go @@ -99,10 +99,10 @@ func new{{tableTemplate.TypeName}}Impl(schemaName, tableName, alias string) {{st var tableSqlBuilderSetSchemaTemplate = `package {{package}} -// {{schemaMethodName}} changes all global tables/views with the value returned +// UseSchema changes all global tables/views with the value returned // returned by calling FromSchema on them. Passing an empty string to this function // will cause queries to be generated without any table/view alias. -func {{schemaMethodName}}(schema string) { +func UseSchema(schema string) { {{- range .}} {{ .InstanceName }} = {{ .InstanceName }}.FromSchema(schema) {{- end}} diff --git a/generator/template/process.go b/generator/template/process.go index c661ebd..417c0b2 100644 --- a/generator/template/process.go +++ b/generator/template/process.go @@ -177,25 +177,20 @@ func processTableSQLBuilder(fileTypes, dirPath string, } if len(generatedBuilders) > 0 { - generateUseSchemaFunc(dirPath, fileTypes, schemaMetaData, generatedBuilders) + generateUseSchemaFunc(dirPath, fileTypes, generatedBuilders) } } -func generateUseSchemaFunc(dirPath, fileTypes string, schemaMetadata metadata.Schema, builders []TableSQLBuilder) { +func generateUseSchemaFunc(dirPath, fileTypes string, builders []TableSQLBuilder) { basePath := path.Join(dirPath, builders[0].Path) - schemaIdentifier := utils.ToGoIdentifier(schemaMetadata.Name) - methodName := fmt.Sprintf("Use%sSchema", schemaIdentifier) - - fmt.Printf("Generating global `%s` method for %s\n", methodName, fileTypes) - + fmt.Printf("Generating global `UseSchema` method for %s\n", fileTypes) text, err := generateTemplate( autoGenWarningTemplate+tableSqlBuilderSetSchemaTemplate, builders, template.FuncMap{ - "package": func() string { return builders[0].PackageName() }, - "schemaMethodName": func() string { return methodName }, + "package": func() string { return builders[0].PackageName() }, }, ) throw.OnError(err) diff --git a/tests/mysql/generator_test.go b/tests/mysql/generator_test.go index ebf795c..9e1403d 100644 --- a/tests/mysql/generator_test.go +++ b/tests/mysql/generator_test.go @@ -322,10 +322,10 @@ var tableSetSchemaFile = ` package table -// UseDvdsSchema changes all global tables/views with the value returned +// UseSchema changes all global tables/views with the value returned // returned by calling FromSchema on them. Passing an empty string to this function // will cause queries to be generated without any table/view alias. -func UseDvdsSchema(schema string) { +func UseSchema(schema string) { Actor = Actor.FromSchema(schema) Address = Address.FromSchema(schema) Category = Category.FromSchema(schema) @@ -463,10 +463,10 @@ var viewSetSchemaFile = ` package view -// UseDvdsSchema changes all global tables/views with the value returned +// UseSchema changes all global tables/views with the value returned // returned by calling FromSchema on them. Passing an empty string to this function // will cause queries to be generated without any table/view alias. -func UseDvdsSchema(schema string) { +func UseSchema(schema string) { ActorInfo = ActorInfo.FromSchema(schema) CustomerList = CustomerList.FromSchema(schema) FilmList = FilmList.FromSchema(schema) diff --git a/tests/mysql/update_dvds_test.go b/tests/mysql/update_dvds_test.go new file mode 100644 index 0000000..ea9149d --- /dev/null +++ b/tests/mysql/update_dvds_test.go @@ -0,0 +1,25 @@ +package mysql + +import ( + "testing" + + "github.com/go-jet/jet/v2/internal/testutils" + . "github.com/go-jet/jet/v2/mysql" + . "github.com/go-jet/jet/v2/tests/.gentestdata/mysql/dvds/table" +) + +func TestUpdateWithJoin(t *testing.T) { + statement := Staff.INNER_JOIN(Address, Address.AddressID.EQ(Staff.AddressID)). + UPDATE(Staff.LastName). + SET(String("New staff name")). + WHERE(Staff.StaffID.EQ(Int(1))) + + testutils.AssertStatementSql(t, statement, ` +UPDATE dvds.staff +INNER JOIN dvds.address ON (address.address_id = staff.address_id) +SET last_name = ? +WHERE staff.staff_id = ?; +`, "New staff name", int64(1)) + + testutils.AssertExecAndRollback(t, statement, db) +} diff --git a/tests/mysql/update_test.go b/tests/mysql/update_test.go index 76844eb..909d884 100644 --- a/tests/mysql/update_test.go +++ b/tests/mysql/update_test.go @@ -3,14 +3,15 @@ package mysql import ( "context" "database/sql" - "github.com/go-jet/jet/v2/internal/testutils" - . "github.com/go-jet/jet/v2/mysql" - . "github.com/go-jet/jet/v2/tests/.gentestdata/mysql/dvds/table" - "github.com/go-jet/jet/v2/tests/.gentestdata/mysql/test_sample/model" - . "github.com/go-jet/jet/v2/tests/.gentestdata/mysql/test_sample/table" - "github.com/stretchr/testify/require" "testing" "time" + + "github.com/stretchr/testify/require" + + "github.com/go-jet/jet/v2/internal/testutils" + . "github.com/go-jet/jet/v2/mysql" + "github.com/go-jet/jet/v2/tests/.gentestdata/mysql/test_sample/model" + . "github.com/go-jet/jet/v2/tests/.gentestdata/mysql/test_sample/table" ) func TestUpdateValues(t *testing.T) { @@ -259,22 +260,6 @@ func TestUpdateExecContext(t *testing.T) { require.Error(t, err, "context deadline exceeded") } -func TestUpdateWithJoin(t *testing.T) { - statement := Staff.INNER_JOIN(Address, Address.AddressID.EQ(Staff.AddressID)). - UPDATE(Staff.LastName). - SET(String("New staff name")). - WHERE(Staff.StaffID.EQ(Int(1))) - - testutils.AssertStatementSql(t, statement, ` -UPDATE dvds.staff -INNER JOIN dvds.address ON (address.address_id = staff.address_id) -SET last_name = ? -WHERE staff.staff_id = ?; -`, "New staff name", int64(1)) - - testutils.AssertExecAndRollback(t, statement, db) -} - func TestUpdateOptimizerHints(t *testing.T) { stmt := Link.UPDATE(Link.AllColumns). diff --git a/tests/postgres/generator_test.go b/tests/postgres/generator_test.go index 0a4f92a..2139c82 100644 --- a/tests/postgres/generator_test.go +++ b/tests/postgres/generator_test.go @@ -400,10 +400,10 @@ var actorSQLBuilderTableFile = ` package table -// UseDvdsSchema changes all global tables/views with the value returned +// UseSchema changes all global tables/views with the value returned // returned by calling FromSchema on them. Passing an empty string to this function // will cause queries to be generated without any table/view alias. -func UseDvdsSchema(schema string) { +func UseSchema(schema string) { Film = Film.FromSchema(schema) Address = Address.FromSchema(schema) Actor = Actor.FromSchema(schema) @@ -541,10 +541,10 @@ var actorInfoSQLBuilderViewFile = ` package view -// UseDvdsSchema changes all global tables/views with the value returned +// UseSchema changes all global tables/views with the value returned // returned by calling FromSchema on them. Passing an empty string to this function // will cause queries to be generated without any table/view alias. -func UseDvdsSchema(schema string) { +func UseSchema(schema string) { ActorInfo = ActorInfo.FromSchema(schema) CustomerList = CustomerList.FromSchema(schema) FilmList = FilmList.FromSchema(schema)