Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
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
5 changes: 5 additions & 0 deletions connection.go
Original file line number Diff line number Diff line change
Expand Up @@ -323,6 +323,11 @@ func (c *conn) executeStatement(ctx context.Context, query string, args []driver
req.Parameters = parameters
}

// Add enforce embedded schema correctness if enabled
if c.cfg.EnforceEmbeddedSchemaCorrectness {
req.EnforceEmbeddedSchemaCorrectness = &c.cfg.EnforceEmbeddedSchemaCorrectness
}

resp, err := c.client.ExecuteStatement(ctx, &req)
var log *logger.DBSQLLogger
log, ctx = client.LoggerAndContext(ctx, resp)
Expand Down
9 changes: 9 additions & 0 deletions connector.go
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,15 @@ func WithEnableMetricViewMetadata(enable bool) ConnOption {
}
}

// WithEnforceEmbeddedSchemaCorrectness enables enforcement of embedded schema correctness
// in query execution. When set to true, the server will enforce embedded schema correctness.
// Default is false.
func WithEnforceEmbeddedSchemaCorrectness(enforce bool) ConnOption {
return func(c *config.Config) {
c.EnforceEmbeddedSchemaCorrectness = enforce
}
}

// Setup of Oauth M2m authentication
func WithClientCredentials(clientID, clientSecret string) ConnOption {
return func(c *config.Config) {
Expand Down
52 changes: 52 additions & 0 deletions internal/cli_service/cli_service.go

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

12 changes: 10 additions & 2 deletions internal/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,9 @@ type UserConfig struct {
RetryWaitMax time.Duration
RetryMax int
Transport http.RoundTripper
UseLz4Compression bool
EnableMetricViewMetadata bool
UseLz4Compression bool
EnableMetricViewMetadata bool
EnforceEmbeddedSchemaCorrectness bool
CloudFetchConfig
}

Expand Down Expand Up @@ -282,6 +283,13 @@ func ParseDSN(dsn string) (UserConfig, error) {
ucfg.EnableMetricViewMetadata = enableMetricViewMetadata
}

if enforceEmbeddedSchemaCorrectness, ok, err := params.extractAsBool("enforceEmbeddedSchemaCorrectness"); ok {
if err != nil {
return UserConfig{}, err
}
ucfg.EnforceEmbeddedSchemaCorrectness = enforceEmbeddedSchemaCorrectness
}

// for timezone we do a case insensitive key match.
// We use getNoCase because we want to leave timezone in the params so that it will also
// be used as a session param.
Expand Down