Skip to content

Commit 33398b7

Browse files
XanderAtGoingDutchXanderAtBackboneSystems
XanderAtGoingDutch
andauthored
feat(config): Enables the configuration of copyfrom.go similar to quierer and friends (#2727)
* enables the configration of copyfrom.go similar to quierer and friends * adds a copyfrom to the output_file_name tests that support it --------- Co-authored-by: xander <xander@backbonesystems.nl>
1 parent b3c3474 commit 33398b7

File tree

25 files changed

+362
-166
lines changed

25 files changed

+362
-166
lines changed

docs/reference/config.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,8 @@ The `gen` mapping supports the following keys:
160160
- Customize the name of the models file. Defaults to `models.go`.
161161
- `output_querier_file_name`:
162162
- Customize the name of the querier file. Defaults to `querier.go`.
163+
- `output_copyfrom_file_name`:
164+
- Customize the name of the copyfrom file. Defaults to `copyfrom.go`.
163165
- `output_files_suffix`:
164166
- If specified the suffix will be added to the name of the generated files.
165167
- `query_parameter_limit`:
@@ -469,6 +471,7 @@ packages:
469471
output_db_file_name: "db.go"
470472
output_models_file_name: "models.go"
471473
output_querier_file_name: "querier.go"
474+
output_copyfrom_file_name: "copyfrom.go"
472475
```
473476

474477
### packages
@@ -527,6 +530,8 @@ Each mapping in the `packages` collection has the following keys:
527530
- Customize the name of the models file. Defaults to `models.go`.
528531
- `output_querier_file_name`:
529532
- Customize the name of the querier file. Defaults to `querier.go`.
533+
- `output_copyfrom_file_name`:
534+
- Customize the name of the copyfrom file. Defaults to `copyfrom.go`.
530535
- `output_files_suffix`:
531536
- If specified the suffix will be added to the name of the generated files.
532537
- `query_parameter_limit`:

internal/cmd/shim.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ func pluginGoCode(s config.SQLGo) *plugin.GoCode {
105105
OutputBatchFileName: s.OutputBatchFileName,
106106
OutputModelsFileName: s.OutputModelsFileName,
107107
OutputQuerierFileName: s.OutputQuerierFileName,
108+
OutputCopyfromFileName: s.OutputCopyFromFileName,
108109
OutputFilesSuffix: s.OutputFilesSuffix,
109110
InflectionExcludeTableNames: s.InflectionExcludeTableNames,
110111
QueryParameterLimit: s.QueryParameterLimit,

internal/codegen/golang/gen.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,9 @@ func generate(req *plugin.CodeGenRequest, enums []Enum, structs []Struct, querie
230230
querierFileName = golang.OutputQuerierFileName
231231
}
232232
copyfromFileName := "copyfrom.go"
233-
// TODO(Jille): Make this configurable.
233+
if golang.OutputCopyfromFileName != "" {
234+
copyfromFileName = golang.OutputCopyfromFileName
235+
}
234236

235237
batchFileName := "batch.go"
236238
if golang.OutputBatchFileName != "" {

internal/codegen/golang/imports.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,9 @@ func (i *importer) Imports(filename string) [][]ImportSpec {
8989
querierFileName = i.Settings.Go.OutputQuerierFileName
9090
}
9191
copyfromFileName := "copyfrom.go"
92+
if i.Settings.Go.OutputCopyfromFileName != "" {
93+
copyfromFileName = i.Settings.Go.OutputCopyfromFileName
94+
}
9295
batchFileName := "batch.go"
9396
if i.Settings.Go.OutputBatchFileName != "" {
9497
batchFileName = i.Settings.Go.OutputBatchFileName

internal/config/config.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ type SQLGo struct {
155155
OutputDBFileName string `json:"output_db_file_name,omitempty" yaml:"output_db_file_name"`
156156
OutputModelsFileName string `json:"output_models_file_name,omitempty" yaml:"output_models_file_name"`
157157
OutputQuerierFileName string `json:"output_querier_file_name,omitempty" yaml:"output_querier_file_name"`
158+
OutputCopyFromFileName string `json:"output_copyfrom_file_name,omitempty" yaml:"output_copyfrom_file_name"`
158159
OutputFilesSuffix string `json:"output_files_suffix,omitempty" yaml:"output_files_suffix"`
159160
InflectionExcludeTableNames []string `json:"inflection_exclude_table_names,omitempty" yaml:"inflection_exclude_table_names"`
160161
QueryParameterLimit *int32 `json:"query_parameter_limit,omitempty" yaml:"query_parameter_limit"`

internal/config/v_one.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ type v1PackageSettings struct {
4747
OutputDBFileName string `json:"output_db_file_name,omitempty" yaml:"output_db_file_name"`
4848
OutputModelsFileName string `json:"output_models_file_name,omitempty" yaml:"output_models_file_name"`
4949
OutputQuerierFileName string `json:"output_querier_file_name,omitempty" yaml:"output_querier_file_name"`
50+
OutputCopyFromFileName string `json:"output_copyfrom_file_name,omitempty" yaml:"output_copyfrom_file_name"`
5051
OutputFilesSuffix string `json:"output_files_suffix,omitempty" yaml:"output_files_suffix"`
5152
StrictFunctionChecks bool `json:"strict_function_checks" yaml:"strict_function_checks"`
5253
StrictOrderBy *bool `json:"strict_order_by" yaml:"strict_order_by"`
@@ -173,6 +174,7 @@ func (c *V1GenerateSettings) Translate() Config {
173174
OutputDBFileName: pkg.OutputDBFileName,
174175
OutputModelsFileName: pkg.OutputModelsFileName,
175176
OutputQuerierFileName: pkg.OutputQuerierFileName,
177+
OutputCopyFromFileName: pkg.OutputCopyFromFileName,
176178
OutputFilesSuffix: pkg.OutputFilesSuffix,
177179
QueryParameterLimit: pkg.QueryParameterLimit,
178180
OmitUnusedStructs: pkg.OmitUnusedStructs,

internal/config/v_one.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,9 @@
218218
"output_querier_file_name": {
219219
"type": "string"
220220
},
221+
"output_copyfrom_file_name": {
222+
"type": "string"
223+
},
221224
"output_files_suffix": {
222225
"type": "string"
223226
},

internal/config/v_two.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,9 @@
233233
"output_querier_file_name": {
234234
"type": "string"
235235
},
236+
"output_copyfrom_file_name": {
237+
"type": "string"
238+
},
236239
"output_files_suffix": {
237240
"type": "string"
238241
},

internal/endtoend/testdata/codegen_json/gen/codegen.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"output_db_file_name": "",
3535
"output_models_file_name": "",
3636
"output_querier_file_name": "",
37+
"output_copyfrom_file_name": "",
3738
"output_files_suffix": "",
3839
"emit_enum_valid_method": false,
3940
"emit_all_enum_values": false,

internal/endtoend/testdata/output_file_names/pgx/v4/go/copyfrom_gen.go

Lines changed: 42 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/output_file_names/pgx/v4/go/db_gen.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/output_file_names/pgx/v4/go/querier_gen.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/output_file_names/pgx/v4/query.sql

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,9 @@ SELECT "user".* FROM "user";
66
-- name: UsersB :batchmany
77
SELECT * FROM "user"
88
WHERE id = $1;
9+
10+
-- name: UsersC :copyfrom
11+
INSERT INTO "user"
12+
(id)
13+
VALUES
14+
($1);

internal/endtoend/testdata/output_file_names/pgx/v4/sqlc.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
"output_batch_file_name": "batch_gen.go",
1313
"output_db_file_name": "db_gen.go",
1414
"output_models_file_name": "models_gen.go",
15-
"output_querier_file_name": "querier_gen.go"
15+
"output_querier_file_name": "querier_gen.go",
16+
"output_copyfrom_file_name": "copyfrom_gen.go"
1617
}
1718
]
1819
}

internal/endtoend/testdata/output_file_names/pgx/v5/go/copyfrom_gen.go

Lines changed: 42 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/output_file_names/pgx/v5/go/db_gen.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/output_file_names/pgx/v5/go/querier_gen.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/output_file_names/pgx/v5/query.sql

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,9 @@ SELECT "user".* FROM "user";
66
-- name: UsersB :batchmany
77
SELECT * FROM "user"
88
WHERE id = $1;
9+
10+
-- name: UsersC :copyfrom
11+
INSERT INTO "user"
12+
(id)
13+
VALUES
14+
($1);

internal/endtoend/testdata/output_file_names/pgx/v5/sqlc.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
"output_batch_file_name": "batch_gen.go",
1313
"output_db_file_name": "db_gen.go",
1414
"output_models_file_name": "models_gen.go",
15-
"output_querier_file_name": "querier_gen.go"
15+
"output_querier_file_name": "querier_gen.go",
16+
"output_copyfrom_file_name": "copyfrom_gen.go"
1617
}
1718
]
1819
}

internal/endtoend/testdata/output_file_names/stdlib/sqlc.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
"emit_interface": true,
1010
"output_db_file_name": "db_gen.go",
1111
"output_models_file_name": "models_gen.go",
12-
"output_querier_file_name": "querier_gen.go"
12+
"output_querier_file_name": "querier_gen.go",
13+
"output_copyfrom_file_name": "copyfrom_gen.go"
1314
}
1415
]
1516
}

internal/endtoend/testdata/process_plugin_disabled/gen/codegen.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"output_db_file_name": "",
3535
"output_models_file_name": "",
3636
"output_querier_file_name": "",
37+
"output_copyfrom_file_name": "",
3738
"output_files_suffix": "",
3839
"emit_enum_valid_method": false,
3940
"emit_all_enum_values": false,

internal/endtoend/testdata/process_plugin_sqlc_gen_json/gen/codegen.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"output_db_file_name": "",
3535
"output_models_file_name": "",
3636
"output_querier_file_name": "",
37+
"output_copyfrom_file_name": "",
3738
"output_files_suffix": "",
3839
"emit_enum_valid_method": false,
3940
"emit_all_enum_values": false,

0 commit comments

Comments
 (0)