Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
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