Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Introduce assertions generators part2 #2956

Merged
merged 97 commits into from
Jul 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
3e158bc
Add PoC of snowflake parameters assertions
sfc-gh-asawicki Jul 19, 2024
751d730
Add all user parameters assertions
sfc-gh-asawicki Jul 19, 2024
79cf4a0
Use assertions in user integration tests
sfc-gh-asawicki Jul 19, 2024
86b6890
Fix the tests
sfc-gh-asawicki Jul 19, 2024
262f776
Add generic checks
sfc-gh-asawicki Jul 19, 2024
077a861
Add generic default checks
sfc-gh-asawicki Jul 19, 2024
47bb554
Add TODOs
sfc-gh-asawicki Jul 19, 2024
74412d2
Add TODOs
sfc-gh-asawicki Jul 19, 2024
ed54823
Add default checks for user parameters
sfc-gh-asawicki Jul 19, 2024
52f99e9
Add level assertions
sfc-gh-asawicki Jul 19, 2024
ff89925
Move gen utils to separate gencommons
sfc-gh-asawicki Jul 19, 2024
b4a8c71
Move struct details extractor to separate gencommons
sfc-gh-asawicki Jul 19, 2024
cbb2026
Extract write to file helper func
sfc-gh-asawicki Jul 19, 2024
50fbd3a
Rename to struct details
sfc-gh-asawicki Jul 19, 2024
b4cf5ef
Extract a common func for template execution for all objects
sfc-gh-asawicki Jul 19, 2024
2b8f725
Move common func to generate and print
sfc-gh-asawicki Jul 19, 2024
93fe57c
Prepare a generator skeleton (WIP)
sfc-gh-asawicki Jul 19, 2024
e2143e3
Rewrite show output generator using the generator skeleton
sfc-gh-asawicki Jul 19, 2024
0d3f120
Fix the gen
sfc-gh-asawicki Jul 19, 2024
f5ae021
Move helper funcs to the generator
sfc-gh-asawicki Jul 19, 2024
97e861d
Add flags to the generator skeleton
sfc-gh-asawicki Jul 19, 2024
f9fd204
Allow passing the arguments to the generator
sfc-gh-asawicki Jul 19, 2024
088b5c4
Extract common template functions
sfc-gh-asawicki Jul 19, 2024
da74f1e
Extract mapper commons
sfc-gh-asawicki Jul 19, 2024
423fd33
Take template helper func by name
sfc-gh-asawicki Jul 19, 2024
a3702a6
Remove already done TODOs
sfc-gh-asawicki Jul 19, 2024
a3e1004
Allow using multiple flags (hacky)
sfc-gh-asawicki Jul 19, 2024
6c10a18
Add possibility to filter objects
sfc-gh-asawicki Jul 19, 2024
43fd094
Add example filter
sfc-gh-asawicki Jul 19, 2024
0bae099
Prepare snowflake object assertions generator (WIP)
sfc-gh-asawicki Jul 21, 2024
f8cb936
Add add assertion func
sfc-gh-asawicki Jul 21, 2024
4e50d80
Add assertion through method
sfc-gh-asawicki Jul 21, 2024
a3a0525
Add additional standard imports (quick and dirty)
sfc-gh-asawicki Jul 21, 2024
67b13cc
Extract list of objects
sfc-gh-asawicki Jul 21, 2024
fc9d1ef
Move generate snowflake object to the destination package
sfc-gh-asawicki Jul 21, 2024
0c7ce27
Reorganize
sfc-gh-asawicki Jul 21, 2024
0968d59
Prepare snowflake object parameters generation
sfc-gh-asawicki Jul 21, 2024
c01ec37
Rename templates
sfc-gh-asawicki Jul 21, 2024
94e58f4
Continue objects parameters assertions generation
sfc-gh-asawicki Jul 21, 2024
1ab5384
Add generic checks generation
sfc-gh-asawicki Jul 21, 2024
c0ad76c
Expose snowflake parameters assertions and helpers
sfc-gh-asawicki Jul 21, 2024
22af4ff
Add aggregated generic checks
sfc-gh-asawicki Jul 21, 2024
66b1831
Add value checks
sfc-gh-asawicki Jul 21, 2024
043e9bf
Add all other specific object parameter checks
sfc-gh-asawicki Jul 21, 2024
d450052
Clean up templates a bit
sfc-gh-asawicki Jul 21, 2024
8e2d238
Add all user parameters
sfc-gh-asawicki Jul 21, 2024
839b2db
Change names
sfc-gh-asawicki Jul 21, 2024
0d768e9
Update comment
sfc-gh-asawicki Jul 22, 2024
351797f
Generate snowflake object assertion for warehouse and user
sfc-gh-asawicki Jul 22, 2024
202d92a
Fix the package and use generated user assertions
sfc-gh-asawicki Jul 22, 2024
341001d
Add a quick workaround for user param
sfc-gh-asawicki Jul 22, 2024
38b77ed
Remove manually created user parameters
sfc-gh-asawicki Jul 22, 2024
f3c55f2
Remove manually created warehouse object assertions
sfc-gh-asawicki Jul 22, 2024
9646487
Update readme
sfc-gh-asawicki Jul 22, 2024
8c81ebb
Add README to the generator commons
sfc-gh-asawicki Jul 22, 2024
7f7d4fa
Run make pre-push
sfc-gh-asawicki Jul 22, 2024
bd561e9
Add explicit field names
sfc-gh-asawicki Jul 22, 2024
edfddf2
Use the generated assertions in warehouse acceptance tests
sfc-gh-asawicki Jul 22, 2024
3015e4b
Update readme and TODOs
sfc-gh-asawicki Jul 22, 2024
b358270
Fix the tests
sfc-gh-asawicki Jul 23, 2024
cef6917
Run acceptance tests regardless of the integration tests result
sfc-gh-asawicki Jul 23, 2024
849c199
assertions generators part 2 starts here
sfc-gh-asawicki Jul 22, 2024
fe4e849
Add skeleton for resource assertions generation
sfc-gh-asawicki Jul 22, 2024
0005b6e
Add definitions generation (WIP)
sfc-gh-asawicki Jul 22, 2024
438d197
Generate definitions
sfc-gh-asawicki Jul 22, 2024
0ff1ab1
Prepare assertions generation
sfc-gh-asawicki Jul 22, 2024
57846fb
Add AddAssertion helper method
sfc-gh-asawicki Jul 22, 2024
1f3df44
Generate resource assertions
sfc-gh-asawicki Jul 22, 2024
09b851a
Use generated warehouse resource assertions in tests
sfc-gh-asawicki Jul 22, 2024
e05025e
Set up resource parameters assertions generation
sfc-gh-asawicki Jul 23, 2024
54aa31d
Generate the checks for resource parameters assertions
sfc-gh-asawicki Jul 23, 2024
129ceb8
Replace warehouse resource parameters assertions with the generated ones
sfc-gh-asawicki Jul 23, 2024
7f0bd31
Prepare resource show output assertions
sfc-gh-asawicki Jul 23, 2024
ff74df7
Aggregate all cleanups and generators
sfc-gh-asawicki Jul 23, 2024
e20d3ed
Generate definition for show output assertions
sfc-gh-asawicki Jul 23, 2024
aedc7b8
Add assertions generation for resource show output
sfc-gh-asawicki Jul 23, 2024
3bc8f1e
Generate assertions for resource show output
sfc-gh-asawicki Jul 23, 2024
1e5bcc7
Use generated assertions for resource show output
sfc-gh-asawicki Jul 23, 2024
2b2b552
Fix the generated content message
sfc-gh-asawicki Jul 23, 2024
c6eb309
Prepare config model builder generator
sfc-gh-asawicki Jul 23, 2024
58a10aa
Prepare config model builder constructors (WIP)
sfc-gh-asawicki Jul 23, 2024
2c3879d
Finish config model builder constructors
sfc-gh-asawicki Jul 23, 2024
bb86356
Add builder generation
sfc-gh-asawicki Jul 23, 2024
e6187c0
Handle basic types
sfc-gh-asawicki Jul 23, 2024
a2cea72
Use generated warehouse model
sfc-gh-asawicki Jul 23, 2024
8f2b5d9
Remove unnecessary sdk import
sfc-gh-asawicki Jul 23, 2024
6e2b034
Fix after review
sfc-gh-asawicki Jul 24, 2024
962dbdd
Merge branch 'main' into assertions-generators-part1
sfc-gh-asawicki Jul 24, 2024
e7bdf8f
Merge branch 'assertions-generators-part1' into assertions-generators…
sfc-gh-asawicki Jul 24, 2024
8ddd8fc
Fix after merge
sfc-gh-asawicki Jul 24, 2024
7b3163a
Add tabulators to template files
sfc-gh-asawicki Jul 24, 2024
2fd1cd5
Add example extension with reasoning
sfc-gh-asawicki Jul 24, 2024
34e4872
Update readme and regenerate
sfc-gh-asawicki Jul 24, 2024
8845282
Improve the makefile and the documentation
sfc-gh-asawicki Jul 24, 2024
cbbfc82
Generate user to improve handling of unsupported attribute type
sfc-gh-asawicki Jul 24, 2024
2866e09
Update TODOs and README
sfc-gh-asawicki Jul 24, 2024
680555c
Run pre-push
sfc-gh-asawicki Jul 24, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -135,4 +135,32 @@ generate-snowflake-object-parameters-assertions: ## Generate snowflake object pa
clean-snowflake-object-parameters-assertions: ## Clean snowflake object parameters assertions
rm -f ./pkg/acceptance/bettertestspoc/assert/objectparametersassert/*_gen.go

generate-resource-assertions: ## Generate resource assertions
go generate ./pkg/acceptance/bettertestspoc/assert/resourceassert/generate.go

clean-resource-assertions: ## Clean resource assertions
rm -f ./pkg/acceptance/bettertestspoc/assert/resourceassert/*_gen.go

generate-resource-parameters-assertions: ## Generate resource parameters assertions
go generate ./pkg/acceptance/bettertestspoc/assert/resourceparametersassert/generate.go

clean-resource-parameters-assertions: ## Clean resource parameters assertions
rm -f ./pkg/acceptance/bettertestspoc/assert/resourceparametersassert/*_gen.go

generate-resource-show-output-assertions: ## Generate resource parameters assertions
go generate ./pkg/acceptance/bettertestspoc/assert/resourceshowoutputassert/generate.go

clean-resource-show-output-assertions: ## Clean resource parameters assertions
rm -f ./pkg/acceptance/bettertestspoc/assert/resourceshowoutputassert/*_gen.go

generate-resource-model-builders: ## Generate resource model builders
go generate ./pkg/acceptance/bettertestspoc/config/model/generate.go

clean-resource-model-builder: ## Clean resource model builders
rm -f ./pkg/acceptance/bettertestspoc/config/model/*_gen.go

clean-all-assertions-and-config-models: clean-snowflake-object-assertions clean-snowflake-object-parameters-assertions clean-resource-assertions clean-resource-parameters-assertions clean-resource-show-output-assertions clean-resource-model-builder ## clean all generated assertions and config models

generate-all-assertions-and-config-models: generate-snowflake-object-assertions generate-snowflake-object-parameters-assertions generate-resource-assertions generate-resource-parameters-assertions generate-resource-show-output-assertions generate-resource-model-builders ## generate all assertions and config models

.PHONY: build-local clean-generator-poc dev-setup dev-cleanup docs docs-check fmt fmt-check fumpt help install lint lint-fix mod mod-check pre-push pre-push-check sweep test test-acceptance uninstall-tf
526 changes: 198 additions & 328 deletions pkg/acceptance/bettertestspoc/README.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -5,51 +5,18 @@ package main
import (
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/bettertestspoc/assert/objectassert/gen"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/internal/genhelpers"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/sdk"
)

func main() {
genhelpers.NewGenerator(
getSdkObjectDetails,
gen.GetSdkObjectDetails,
gen.ModelFromSdkObjectDetails,
getFilename,
gen.AllTemplates,
).
RunAndHandleOsReturn()
}

type SdkObjectDef struct {
idType string
objectType sdk.ObjectType
objectStruct any
}

func getSdkObjectDetails() []genhelpers.SdkObjectDetails {
allSdkObjectsDetails := make([]genhelpers.SdkObjectDetails, len(allStructs))
for idx, d := range allStructs {
structDetails := genhelpers.ExtractStructDetails(d.objectStruct)
allSdkObjectsDetails[idx] = genhelpers.SdkObjectDetails{
IdType: d.idType,
ObjectType: d.objectType,
StructDetails: structDetails,
}
}
return allSdkObjectsDetails
}

func getFilename(_ genhelpers.SdkObjectDetails, model gen.SnowflakeObjectAssertionsModel) string {
return genhelpers.ToSnakeCase(model.Name) + "_snowflake" + "_gen.go"
}

var allStructs = []SdkObjectDef{
{
idType: "sdk.AccountObjectIdentifier",
objectType: sdk.ObjectTypeUser,
objectStruct: sdk.User{},
},
{
idType: "sdk.AccountObjectIdentifier",
objectType: sdk.ObjectTypeWarehouse,
objectStruct: sdk.Warehouse{},
},
}
14 changes: 1 addition & 13 deletions pkg/acceptance/bettertestspoc/assert/objectassert/gen/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package gen

import (
"os"
"slices"
"strings"

"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/internal/genhelpers"
Expand Down Expand Up @@ -35,19 +34,8 @@ type SnowflakeObjectFieldAssertion struct {
func ModelFromSdkObjectDetails(sdkObject genhelpers.SdkObjectDetails) SnowflakeObjectAssertionsModel {
name, _ := strings.CutPrefix(sdkObject.Name, "sdk.")
fields := make([]SnowflakeObjectFieldAssertion, len(sdkObject.Fields))
imports := make(map[string]struct{})
for idx, field := range sdkObject.Fields {
fields[idx] = MapToSnowflakeObjectFieldAssertion(field)
additionalImport, isImportedType := field.GetImportedType()
if isImportedType {
imports[additionalImport] = struct{}{}
}
}
additionalImports := make([]string, 0)
for k := range imports {
if !slices.Contains([]string{"sdk"}, k) {
additionalImports = append(additionalImports, k)
}
}

packageWithGenerateDirective := os.Getenv("GOPACKAGE")
Expand All @@ -58,7 +46,7 @@ func ModelFromSdkObjectDetails(sdkObject genhelpers.SdkObjectDetails) SnowflakeO
Fields: fields,
PreambleModel: PreambleModel{
PackageName: packageWithGenerateDirective,
AdditionalStandardImports: additionalImports,
AdditionalStandardImports: genhelpers.AdditionalStandardImports(sdkObject.Fields),
},
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package gen

import (
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/internal/genhelpers"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/sdk"
)

type SdkObjectDef struct {
IdType string
ObjectType sdk.ObjectType
ObjectStruct any
}

var allStructs = []SdkObjectDef{
{
IdType: "sdk.AccountObjectIdentifier",
ObjectType: sdk.ObjectTypeUser,
ObjectStruct: sdk.User{},
},
{
IdType: "sdk.AccountObjectIdentifier",
ObjectType: sdk.ObjectTypeWarehouse,
ObjectStruct: sdk.Warehouse{},
},
}

func GetSdkObjectDetails() []genhelpers.SdkObjectDetails {
allSdkObjectsDetails := make([]genhelpers.SdkObjectDetails, len(allStructs))
for idx, d := range allStructs {
structDetails := genhelpers.ExtractStructDetails(d.ObjectStruct)
allSdkObjectsDetails[idx] = genhelpers.SdkObjectDetails{
IdType: d.IdType,
ObjectType: d.ObjectType,
StructDetails: structDetails,
}
}
return allSdkObjectsDetails
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{{- /*gotype: github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/bettertestspoc/assert/objectassert/gen.PreambleModel*/ -}}

// Code generated by sdk-to-schema generator; DO NOT EDIT.
// Code generated by assertions generator; DO NOT EDIT.

package {{ .PackageName }}

Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,105 +5,18 @@ package main
import (
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/bettertestspoc/assert/objectparametersassert/gen"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/internal/genhelpers"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/sdk"
)

func main() {
genhelpers.NewGenerator(
getAllSnowflakeObjectParameters,
gen.GetAllSnowflakeObjectParameters,
gen.ModelFromSnowflakeObjectParameters,
getFilename,
gen.AllTemplates,
).
RunAndHandleOsReturn()
}

func getAllSnowflakeObjectParameters() []gen.SnowflakeObjectParameters {
return allObjectsParameters
}

func getFilename(_ gen.SnowflakeObjectParameters, model gen.SnowflakeObjectParametersAssertionsModel) string {
return genhelpers.ToSnakeCase(model.Name) + "_parameters_snowflake" + "_gen.go"
}

// TODO [SNOW-1501905]: use SDK definition after parameters rework (+ preprocessing here)
var allObjectsParameters = []gen.SnowflakeObjectParameters{
{
Name: "User",
IdType: "sdk.AccountObjectIdentifier",
Level: sdk.ParameterTypeUser,
Parameters: []gen.SnowflakeParameter{
{ParameterName: string(sdk.UserParameterEnableUnredactedQuerySyntaxError), ParameterType: "bool", DefaultValue: "false", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterNetworkPolicy), ParameterType: "string", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterPreventUnloadToInternalStages), ParameterType: "bool", DefaultValue: "false", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterAbortDetachedQuery), ParameterType: "bool", DefaultValue: "false", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterAutocommit), ParameterType: "bool", DefaultValue: "true", DefaultLevel: "sdk.ParameterTypeAccount"},
{ParameterName: string(sdk.UserParameterBinaryInputFormat), ParameterType: "sdk.BinaryInputFormat", DefaultValue: "sdk.BinaryInputFormatHex", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterBinaryOutputFormat), ParameterType: "sdk.BinaryOutputFormat", DefaultValue: "sdk.BinaryOutputFormatHex", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterClientMemoryLimit), ParameterType: "int", DefaultValue: "1536", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterClientMetadataRequestUseConnectionCtx), ParameterType: "bool", DefaultValue: "false", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterClientPrefetchThreads), ParameterType: "int", DefaultValue: "4", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterClientResultChunkSize), ParameterType: "int", DefaultValue: "160", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterClientResultColumnCaseInsensitive), ParameterType: "bool", DefaultValue: "false", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterClientSessionKeepAlive), ParameterType: "bool", DefaultValue: "false", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterClientSessionKeepAliveHeartbeatFrequency), ParameterType: "int", DefaultValue: "3600", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterClientTimestampTypeMapping), ParameterType: "sdk.ClientTimestampTypeMapping", DefaultValue: "sdk.ClientTimestampTypeMappingLtz", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterDateInputFormat), ParameterType: "string", DefaultValue: "AUTO", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterDateOutputFormat), ParameterType: "string", DefaultValue: "YYYY-MM-DD", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterEnableUnloadPhysicalTypeOptimization), ParameterType: "bool", DefaultValue: "true", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterErrorOnNondeterministicMerge), ParameterType: "bool", DefaultValue: "true", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterErrorOnNondeterministicUpdate), ParameterType: "bool", DefaultValue: "false", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterGeographyOutputFormat), ParameterType: "sdk.GeographyOutputFormat", DefaultValue: "sdk.GeographyOutputFormatGeoJSON", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterGeometryOutputFormat), ParameterType: "sdk.GeometryOutputFormat", DefaultValue: "sdk.GeometryOutputFormatGeoJSON", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterJdbcTreatDecimalAsInt), ParameterType: "bool", DefaultValue: "true", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterJdbcTreatTimestampNtzAsUtc), ParameterType: "bool", DefaultValue: "false", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterJdbcUseSessionTimezone), ParameterType: "bool", DefaultValue: "true", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterJsonIndent), ParameterType: "int", DefaultValue: "2", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterLockTimeout), ParameterType: "int", DefaultValue: "43200", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterLogLevel), ParameterType: "sdk.LogLevel", DefaultValue: "sdk.LogLevelOff", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterMultiStatementCount), ParameterType: "int", DefaultValue: "1", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterNoorderSequenceAsDefault), ParameterType: "bool", DefaultValue: "true", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterOdbcTreatDecimalAsInt), ParameterType: "bool", DefaultValue: "false", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterQueryTag), ParameterType: "string", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterQuotedIdentifiersIgnoreCase), ParameterType: "bool", DefaultValue: "false", DefaultLevel: "sdk.ParameterTypeAccount"},
{ParameterName: string(sdk.UserParameterRowsPerResultset), ParameterType: "int", DefaultValue: "0", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterS3StageVpceDnsName), ParameterType: "string", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterSearchPath), ParameterType: "string", DefaultValue: "$current, $public", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterSimulatedDataSharingConsumer), ParameterType: "string", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterStatementQueuedTimeoutInSeconds), ParameterType: "int", DefaultValue: "0", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterStatementTimeoutInSeconds), ParameterType: "int", DefaultValue: "172800", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterStrictJsonOutput), ParameterType: "bool", DefaultValue: "false", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterTimestampDayIsAlways24h), ParameterType: "bool", DefaultValue: "false", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterTimestampInputFormat), ParameterType: "string", DefaultValue: "AUTO", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterTimestampLtzOutputFormat), ParameterType: "string", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterTimestampNtzOutputFormat), ParameterType: "string", DefaultValue: "YYYY-MM-DD HH24:MI:SS.FF3", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterTimestampOutputFormat), ParameterType: "string", DefaultValue: "YYYY-MM-DD HH24:MI:SS.FF3 TZHTZM", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterTimestampTypeMapping), ParameterType: "sdk.TimestampTypeMapping", DefaultValue: "sdk.TimestampTypeMappingNtz", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterTimestampTzOutputFormat), ParameterType: "string", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterTimezone), ParameterType: "string", DefaultValue: "America/Los_Angeles", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterTimeInputFormat), ParameterType: "string", DefaultValue: "AUTO", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterTimeOutputFormat), ParameterType: "string", DefaultValue: "HH24:MI:SS", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterTraceLevel), ParameterType: "sdk.TraceLevel", DefaultValue: "sdk.TraceLevelOff", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterTransactionAbortOnError), ParameterType: "bool", DefaultValue: "false", DefaultLevel: "sdk.ParameterTypeAccount"},
{ParameterName: string(sdk.UserParameterTransactionDefaultIsolationLevel), ParameterType: "sdk.TransactionDefaultIsolationLevel", DefaultValue: "sdk.TransactionDefaultIsolationLevelReadCommitted", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterTwoDigitCenturyStart), ParameterType: "int", DefaultValue: "1970", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
// TODO: quick workaround for now: lowercase for ignore in snowflake by default but uppercase for FAIL
{ParameterName: string(sdk.UserParameterUnsupportedDdlAction), ParameterType: "sdk.UnsupportedDDLAction", DefaultValue: "sdk.UnsupportedDDLAction(strings.ToLower(string(sdk.UnsupportedDDLActionIgnore)))", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterUseCachedResult), ParameterType: "bool", DefaultValue: "true", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterWeekOfYearPolicy), ParameterType: "int", DefaultValue: "0", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.UserParameterWeekStart), ParameterType: "int", DefaultValue: "0", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
},
// for the quickfix above
AdditionalImports: []string{"strings"},
},
{
Name: "Warehouse",
IdType: "sdk.AccountObjectIdentifier",
Level: sdk.ParameterTypeWarehouse,
Parameters: []gen.SnowflakeParameter{
{ParameterName: string(sdk.WarehouseParameterMaxConcurrencyLevel), ParameterType: "int", DefaultValue: "8", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.WarehouseParameterStatementQueuedTimeoutInSeconds), ParameterType: "int", DefaultValue: "0", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
{ParameterName: string(sdk.WarehouseParameterStatementTimeoutInSeconds), ParameterType: "int", DefaultValue: "172800", DefaultLevel: "sdk.ParameterTypeSnowflakeDefault"},
},
},
}
Loading
Loading