From d1b0ca348817a3637a3140624c28b8739485dd24 Mon Sep 17 00:00:00 2001 From: Damandeep Singh Date: Wed, 26 Feb 2025 00:46:34 +0530 Subject: [PATCH 01/13] feat:logging Added Log Format provision --- go/libraries/doltcore/servercfg/yaml_config.go | 1 + 1 file changed, 1 insertion(+) diff --git a/go/libraries/doltcore/servercfg/yaml_config.go b/go/libraries/doltcore/servercfg/yaml_config.go index 5f370f3350..75fcf475eb 100644 --- a/go/libraries/doltcore/servercfg/yaml_config.go +++ b/go/libraries/doltcore/servercfg/yaml_config.go @@ -127,6 +127,7 @@ type UserSessionVars struct { // YAMLConfig is a ServerConfig implementation which is read from a yaml file type YAMLConfig struct { LogLevelStr *string `yaml:"log_level,omitempty"` + LogFormatStr *string `yaml:"log_format,omitempty"` MaxQueryLenInLogs *int `yaml:"max_logged_query_len,omitempty"` EncodeLoggedQuery *bool `yaml:"encode_logged_query,omitempty"` BehaviorConfig BehaviorYAMLConfig `yaml:"behavior,omitempty"` From 909d197d807bec1c005334665068bff162a2036e Mon Sep 17 00:00:00 2001 From: Damandeep Singh Date: Wed, 26 Feb 2025 01:05:34 +0530 Subject: [PATCH 02/13] Added to server config --- go/libraries/doltcore/servercfg/yaml_config.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/go/libraries/doltcore/servercfg/yaml_config.go b/go/libraries/doltcore/servercfg/yaml_config.go index 75fcf475eb..cf343913a7 100644 --- a/go/libraries/doltcore/servercfg/yaml_config.go +++ b/go/libraries/doltcore/servercfg/yaml_config.go @@ -182,6 +182,7 @@ func ServerConfigAsYAMLConfig(cfg ServerConfig) *YAMLConfig { autoGCBehavior := toAutoGCBehaviorYAML(cfg.AutoGCBehavior()) return &YAMLConfig{ LogLevelStr: ptr(string(cfg.LogLevel())), + LogFormatStr: ptr(string(cfg.LogFormat())), MaxQueryLenInLogs: nillableIntPtr(cfg.MaxLoggedQueryLen()), EncodeLoggedQuery: nillableBoolPtr(cfg.ShouldEncodeLoggedQuery()), BehaviorConfig: BehaviorYAMLConfig{ @@ -252,6 +253,7 @@ func ServerConfigSetValuesAsYAMLConfig(cfg ServerConfig) *YAMLConfig { return &YAMLConfig{ LogLevelStr: zeroIf(ptr(string(cfg.LogLevel())), !cfg.ValueSet(LogLevelKey)), + LogFormatStr: zeroIf(ptr(string(cfg.LogFormat())), !cfg.ValueSet(LogFormatKey)), MaxQueryLenInLogs: zeroIf(ptr(cfg.MaxLoggedQueryLen()), !cfg.ValueSet(MaxLoggedQueryLenKey)), EncodeLoggedQuery: zeroIf(ptr(cfg.ShouldEncodeLoggedQuery()), !cfg.ValueSet(ShouldEncodeLoggedQueryKey)), BehaviorConfig: BehaviorYAMLConfig{ From c723ce55d1ae403f1605b820ba28a9d83d8da98b Mon Sep 17 00:00:00 2001 From: Damandeep Singh Date: Wed, 26 Feb 2025 02:29:11 +0530 Subject: [PATCH 03/13] changes for log_format --- .../commands/sqlserver/command_line_config.go | 7 +++++++ go/cmd/dolt/commands/sqlserver/sqlserver.go | 1 + go/libraries/doltcore/servercfg/serverconfig.go | 15 +++++++++++++++ go/libraries/doltcore/servercfg/yaml_config.go | 11 +++++++++++ 4 files changed, 34 insertions(+) diff --git a/go/cmd/dolt/commands/sqlserver/command_line_config.go b/go/cmd/dolt/commands/sqlserver/command_line_config.go index 5d0d8cde29..3b5064e678 100755 --- a/go/cmd/dolt/commands/sqlserver/command_line_config.go +++ b/go/cmd/dolt/commands/sqlserver/command_line_config.go @@ -36,6 +36,7 @@ type commandLineServerConfig struct { timeout uint64 readOnly bool logLevel servercfg.LogLevel + logFormat servercfg.LogFormat dataDir string cfgDir string autoCommit bool @@ -68,6 +69,7 @@ func DefaultCommandLineServerConfig() *commandLineServerConfig { timeout: servercfg.DefaultTimeout, readOnly: servercfg.DefaultReadOnly, logLevel: servercfg.DefaultLogLevel, + logFormat: servercfg.DefaultLogFormat autoCommit: servercfg.DefaultAutoCommit, maxConnections: servercfg.DefaultMaxConnections, dataDir: servercfg.DefaultDataDir, @@ -232,6 +234,11 @@ func (cfg *commandLineServerConfig) LogLevel() servercfg.LogLevel { return cfg.logLevel } +// LogFornat returns the format of logging that the server will use. +func (cfg *commandLineServerConfig) LogFormat() servercfg.LogFormat { + return cfg.logFormat +} + // AutoCommit defines the value of the @@autocommit session variable used on every connection func (cfg *commandLineServerConfig) AutoCommit() bool { return cfg.autoCommit diff --git a/go/cmd/dolt/commands/sqlserver/sqlserver.go b/go/cmd/dolt/commands/sqlserver/sqlserver.go index 5e39dfacd8..1f5453531f 100644 --- a/go/cmd/dolt/commands/sqlserver/sqlserver.go +++ b/go/cmd/dolt/commands/sqlserver/sqlserver.go @@ -43,6 +43,7 @@ const ( timeoutFlag = "timeout" readonlyFlag = "readonly" logLevelFlag = "loglevel" + logFormatFlag = "logformat" noAutoCommitFlag = "no-auto-commit" configFileFlag = "config" queryParallelismFlag = "query-parallelism" diff --git a/go/libraries/doltcore/servercfg/serverconfig.go b/go/libraries/doltcore/servercfg/serverconfig.go index 79aa01c958..2a405eacf8 100644 --- a/go/libraries/doltcore/servercfg/serverconfig.go +++ b/go/libraries/doltcore/servercfg/serverconfig.go @@ -39,6 +39,13 @@ const ( LogLevel_Panic LogLevel = "panic" ) +type LogFormat string + +const ( + LogFormat_Text LogFormat = "text" + LogFormat_JSON LogFormat = "json" +) + const ( DefaultHost = "localhost" DefaultPort = 3306 @@ -47,6 +54,7 @@ const ( DefaultTimeout = 8 * 60 * 60 * 1000 // 8 hours, same as MySQL DefaultReadOnly = false DefaultLogLevel = LogLevel_Info + DefaultLogFormat = "text" DefaultAutoCommit = true DefaultAutoGCBehaviorEnable = false DefaultDoltTransactionCommit = false @@ -138,6 +146,8 @@ type ServerConfig interface { ReadOnly() bool // LogLevel returns the level of logging that the server will use. LogLevel() LogLevel + // LogFormat returns the format of logging that the server will use. + LogFormat() LogFormat // Autocommit defines the value of the @@autocommit session variable used on every connection AutoCommit() bool // DoltTransactionCommit defines the value of the @@dolt_transaction_commit session variable that enables Dolt @@ -211,6 +221,7 @@ func DefaultServerConfig() ServerConfig { func defaultServerConfigYAML() *YAMLConfig { return &YAMLConfig{ LogLevelStr: ptr(string(DefaultLogLevel)), + LogFormatStr: ptr(string(DefaultLogFormat)), MaxQueryLenInLogs: ptr(DefaultMaxLoggedQueryLen), EncodeLoggedQuery: ptr(DefaultEncodeLoggedQuery), BehaviorConfig: BehaviorYAMLConfig{ @@ -270,6 +281,9 @@ func ValidateConfig(config ServerConfig) error { if config.LogLevel().String() == "unknown" { return fmt.Errorf("loglevel is invalid: %v\n", string(config.LogLevel())) } + if config.LogFormat() != "text" && config.LogFormat() != "json" { + return fmt.Errorf("logformat is invalid: %v\n", config.LogFormat()) + } if config.RequireSecureTransport() && config.TLSCert() == "" && config.TLSKey() == "" { return fmt.Errorf("require_secure_transport can only be `true` when a tls_key and tls_cert are provided.") } @@ -285,6 +299,7 @@ const ( WriteTimeoutKey = "net_write_timeout" ReadOnlyKey = "read_only" LogLevelKey = "log_level" + LogFormatKey = "log_format" AutoCommitKey = "autocommit" DoltTransactionCommitKey = "dolt_transaction_commit" DataDirKey = "data_dir" diff --git a/go/libraries/doltcore/servercfg/yaml_config.go b/go/libraries/doltcore/servercfg/yaml_config.go index cf343913a7..4f339208b3 100644 --- a/go/libraries/doltcore/servercfg/yaml_config.go +++ b/go/libraries/doltcore/servercfg/yaml_config.go @@ -455,6 +455,9 @@ func (cfg YAMLConfig) withDefaultsFilledIn() YAMLConfig { if withDefaults.LogLevelStr == nil { withDefaults.LogLevelStr = defaults.LogLevelStr } + if withDefaults.LogFormatStr == nil { + withDefaults.LogFormatStr = defaults.LogFormatStr + } if withDefaults.MaxQueryLenInLogs == nil { withDefaults.MaxQueryLenInLogs = defaults.MaxQueryLenInLogs } @@ -634,6 +637,14 @@ func (cfg YAMLConfig) LogLevel() LogLevel { return LogLevel(*cfg.LogLevelStr) } +// LogFormatStr returns the log format that the server will use. +func (cfg YAMLConfig) LogFormat() LogFormat { + if cfg.LogFormatStr == nil { + return DefaultLogFormat + } + + return LogFormat(*cfg.LogFormatStr) +} // MaxConnections returns the maximum number of simultaneous connections the server will allow. The default is 1 func (cfg YAMLConfig) MaxConnections() uint64 { From bd70972cdf0a898952420e57ac17a06bd735d761 Mon Sep 17 00:00:00 2001 From: Damandeep Singh Date: Wed, 26 Feb 2025 12:27:49 +0530 Subject: [PATCH 04/13] configured logger for logFormat --- go/cmd/dolt/commands/sqlserver/server.go | 6 ++++++ go/libraries/doltcore/servercfg/serverconfig.go | 2 +- go/libraries/doltcore/servercfg/yaml_config_test.go | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/go/cmd/dolt/commands/sqlserver/server.go b/go/cmd/dolt/commands/sqlserver/server.go index dd6dd83784..3477bb5bb4 100644 --- a/go/cmd/dolt/commands/sqlserver/server.go +++ b/go/cmd/dolt/commands/sqlserver/server.go @@ -123,6 +123,12 @@ func ConfigureServices( return err } logrus.SetLevel(level) + switch serverConfig.LogFormat() { + case "json": + logrus.SetFormatter(&logrus.JSONFormatter{}) + default: + logrus.SetFormatter(&logrus.TextFormatter{}) + } sql.SystemVariables.AddSystemVariables([]sql.SystemVariable{ &sql.MysqlSystemVariable{ diff --git a/go/libraries/doltcore/servercfg/serverconfig.go b/go/libraries/doltcore/servercfg/serverconfig.go index 2a405eacf8..c9e3fe198b 100644 --- a/go/libraries/doltcore/servercfg/serverconfig.go +++ b/go/libraries/doltcore/servercfg/serverconfig.go @@ -54,7 +54,7 @@ const ( DefaultTimeout = 8 * 60 * 60 * 1000 // 8 hours, same as MySQL DefaultReadOnly = false DefaultLogLevel = LogLevel_Info - DefaultLogFormat = "text" + DefaultLogFormat = LogFormat_Text DefaultAutoCommit = true DefaultAutoGCBehaviorEnable = false DefaultDoltTransactionCommit = false diff --git a/go/libraries/doltcore/servercfg/yaml_config_test.go b/go/libraries/doltcore/servercfg/yaml_config_test.go index 5f6dd64c62..ca9c755b0b 100644 --- a/go/libraries/doltcore/servercfg/yaml_config_test.go +++ b/go/libraries/doltcore/servercfg/yaml_config_test.go @@ -329,6 +329,7 @@ func TestYAMLConfigDefaults(t *testing.T) { assert.Equal(t, uint64(DefaultTimeout), cfg.ReadTimeout()) assert.Equal(t, DefaultReadOnly, cfg.ReadOnly()) assert.Equal(t, DefaultLogLevel, cfg.LogLevel()) + assert.Equal(t, DefaultLogFormat, cfg.LogFormat()) assert.Equal(t, DefaultAutoCommit, cfg.AutoCommit()) assert.Equal(t, DefaultDoltTransactionCommit, cfg.DoltTransactionCommit()) assert.Equal(t, uint64(DefaultMaxConnections), cfg.MaxConnections()) From 20fadb718b87380223c83ba9e1da64315b4c8b72 Mon Sep 17 00:00:00 2001 From: Damandeep Singh Date: Wed, 26 Feb 2025 13:06:44 +0530 Subject: [PATCH 05/13] typo fix --- go/cmd/dolt/commands/sqlserver/command_line_config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/cmd/dolt/commands/sqlserver/command_line_config.go b/go/cmd/dolt/commands/sqlserver/command_line_config.go index 3b5064e678..8c1aada579 100755 --- a/go/cmd/dolt/commands/sqlserver/command_line_config.go +++ b/go/cmd/dolt/commands/sqlserver/command_line_config.go @@ -234,7 +234,7 @@ func (cfg *commandLineServerConfig) LogLevel() servercfg.LogLevel { return cfg.logLevel } -// LogFornat returns the format of logging that the server will use. +// LogFormat returns the format of logging that the server will use. func (cfg *commandLineServerConfig) LogFormat() servercfg.LogFormat { return cfg.logFormat } From 3337591a4610a8c872af76df1c3002f60a692f1a Mon Sep 17 00:00:00 2001 From: Damandeep Singh Date: Wed, 26 Feb 2025 13:19:01 +0530 Subject: [PATCH 06/13] Added log_format in TestUnmarshall --- go/libraries/doltcore/servercfg/yaml_config_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/libraries/doltcore/servercfg/yaml_config_test.go b/go/libraries/doltcore/servercfg/yaml_config_test.go index ca9c755b0b..0710097f22 100644 --- a/go/libraries/doltcore/servercfg/yaml_config_test.go +++ b/go/libraries/doltcore/servercfg/yaml_config_test.go @@ -27,7 +27,7 @@ var trueValue = true func TestUnmarshall(t *testing.T) { testStr := ` log_level: info - +log_format: text behavior: read_only: false autocommit: true From 1b54546db812852e2aefffa86171c7fa1f993791 Mon Sep 17 00:00:00 2001 From: Damandeep Singh Date: Wed, 26 Feb 2025 15:53:14 +0530 Subject: [PATCH 07/13] Added missing ',' --- go/cmd/dolt/commands/sqlserver/command_line_config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/cmd/dolt/commands/sqlserver/command_line_config.go b/go/cmd/dolt/commands/sqlserver/command_line_config.go index 8c1aada579..7423f30b98 100755 --- a/go/cmd/dolt/commands/sqlserver/command_line_config.go +++ b/go/cmd/dolt/commands/sqlserver/command_line_config.go @@ -69,7 +69,7 @@ func DefaultCommandLineServerConfig() *commandLineServerConfig { timeout: servercfg.DefaultTimeout, readOnly: servercfg.DefaultReadOnly, logLevel: servercfg.DefaultLogLevel, - logFormat: servercfg.DefaultLogFormat + logFormat: servercfg.DefaultLogFormat, autoCommit: servercfg.DefaultAutoCommit, maxConnections: servercfg.DefaultMaxConnections, dataDir: servercfg.DefaultDataDir, From fd2757a8d409ec4a194f3b4c11d7a3f11c9af7c0 Mon Sep 17 00:00:00 2001 From: Damandeep Singh Date: Thu, 27 Feb 2025 20:50:28 +0530 Subject: [PATCH 08/13] chore: changes for adding test case for log_format --- go/cmd/dolt/commands/sqlserver/command_line_config.go | 9 +++++++++ go/cmd/dolt/commands/sqlserver/server_test.go | 2 ++ go/cmd/dolt/commands/sqlserver/sqlserver.go | 1 + 3 files changed, 12 insertions(+) diff --git a/go/cmd/dolt/commands/sqlserver/command_line_config.go b/go/cmd/dolt/commands/sqlserver/command_line_config.go index 7423f30b98..124b4d0126 100755 --- a/go/cmd/dolt/commands/sqlserver/command_line_config.go +++ b/go/cmd/dolt/commands/sqlserver/command_line_config.go @@ -145,6 +145,9 @@ func NewCommandLineConfig(creds *cli.UserPassword, apr *argparser.ArgParseResult if logLevel, ok := apr.GetValue(logLevelFlag); ok { config.withLogLevel(servercfg.LogLevel(strings.ToLower(logLevel))) } + if logFormat, ok := apr.GetValue(logFormatFlag); ok { + config.withLogFormat(servercfg.LogFormat(strings.ToLower(logFormat))) + } if dataDir, ok := apr.GetValue(commands.MultiDBDirFlag); ok { config.withDataDir(dataDir) @@ -406,6 +409,12 @@ func (cfg *commandLineServerConfig) withLogLevel(loglevel servercfg.LogLevel) *c cfg.valuesSet[servercfg.LogLevelKey] = struct{}{} return cfg } +// withLogFormat updates the log format and returns the called `*commandLineServerConfig`, which is useful for chaining calls. +func (cfg *commandLineServerConfig) withLogFormat(logformat servercfg.LogFormat) *commandLineServerConfig { + cfg.logFormat = logformat + cfg.valuesSet[servercfg.LogFormatKey] = struct{}{} + return cfg +} // withMaxConnections updates the maximum number of concurrent connections and returns the called // `*commandLineServerConfig`, which is useful for chaining calls. diff --git a/go/cmd/dolt/commands/sqlserver/server_test.go b/go/cmd/dolt/commands/sqlserver/server_test.go index 3c9bdf83cd..15cda78fba 100644 --- a/go/cmd/dolt/commands/sqlserver/server_test.go +++ b/go/cmd/dolt/commands/sqlserver/server_test.go @@ -203,6 +203,8 @@ func TestServerGoodParams(t *testing.T) { DefaultCommandLineServerConfig().withLogLevel(servercfg.LogLevel_Info).WithPort(15408), DefaultCommandLineServerConfig().withReadOnly(true).WithPort(15409), DefaultCommandLineServerConfig().withUser("testusernamE").withPassword("hunter2").withTimeout(4).WithPort(15410), + DefaultCommandLineServerConfig().withLogFormat(servercfg.LogFormat_Text).WithPort(15411), + DefaultCommandLineServerConfig().withLogFormat(servercfg.LogFormat_JSON).WithPort(15412), DefaultCommandLineServerConfig().withAllowCleartextPasswords(true), } diff --git a/go/cmd/dolt/commands/sqlserver/sqlserver.go b/go/cmd/dolt/commands/sqlserver/sqlserver.go index 1f5453531f..9dd3bdddad 100644 --- a/go/cmd/dolt/commands/sqlserver/sqlserver.go +++ b/go/cmd/dolt/commands/sqlserver/sqlserver.go @@ -168,6 +168,7 @@ func (cmd SqlServerCmd) ArgParserWithName(name string) *argparser.ArgParser { ap.SupportsInt(timeoutFlag, "t", "connection timeout", fmt.Sprintf("Defines the timeout, in seconds, used for connections\nA value of `0` represents an infinite timeout. Defaults to `%v`.", serverConfig.ReadTimeout())) ap.SupportsFlag(readonlyFlag, "r", "Disable modification of the database.") ap.SupportsString(logLevelFlag, "l", "log level", fmt.Sprintf("Defines the level of logging provided\nOptions are: `trace`, `debug`, `info`, `warning`, `error`, `fatal`. Defaults to `%v`.", serverConfig.LogLevel())) + ap.SupportsString(logFormatFlag, "f", "log format", fmt.Sprintf("Defines the level of format provided\nOptions are: `text`, `json`. Defaults to `%v`.", serverConfig.LogFormat())) ap.SupportsString(commands.DataDirFlag, "", "directory", "Defines a directory to find databases to serve. Defaults to the current directory.") ap.SupportsString(commands.MultiDBDirFlag, "", "directory", "Deprecated, use `--data-dir` instead.") ap.SupportsString(commands.CfgDirFlag, "", "directory", "Defines a directory that contains non-database storage for dolt. Defaults to `$data-dir/.doltcfg`. Will be created automatically as needed.") From 5ce7ea7aa04785cc7f9de577f1608a2eb76184fe Mon Sep 17 00:00:00 2001 From: Damandeep Singh Date: Thu, 27 Feb 2025 21:23:51 +0530 Subject: [PATCH 09/13] chore: added test case for log_format --- go/cmd/dolt/commands/sqlserver/server.go | 3 ++- .../doltcore/servercfg/serverconfig.go | 7 ++--- integration-tests/bats/sql-server.bats | 26 +++++++++++++++++++ 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/go/cmd/dolt/commands/sqlserver/server.go b/go/cmd/dolt/commands/sqlserver/server.go index 3477bb5bb4..007f3df7af 100644 --- a/go/cmd/dolt/commands/sqlserver/server.go +++ b/go/cmd/dolt/commands/sqlserver/server.go @@ -123,7 +123,8 @@ func ConfigureServices( return err } logrus.SetLevel(level) - switch serverConfig.LogFormat() { + format := strings.ToLower(fmt.Sprintf("%v", serverConfig.LogFormat())) + switch format { case "json": logrus.SetFormatter(&logrus.JSONFormatter{}) default: diff --git a/go/libraries/doltcore/servercfg/serverconfig.go b/go/libraries/doltcore/servercfg/serverconfig.go index c9e3fe198b..9b500e23cc 100644 --- a/go/libraries/doltcore/servercfg/serverconfig.go +++ b/go/libraries/doltcore/servercfg/serverconfig.go @@ -281,9 +281,10 @@ func ValidateConfig(config ServerConfig) error { if config.LogLevel().String() == "unknown" { return fmt.Errorf("loglevel is invalid: %v\n", string(config.LogLevel())) } - if config.LogFormat() != "text" && config.LogFormat() != "json" { - return fmt.Errorf("logformat is invalid: %v\n", config.LogFormat()) - } + if strings.ToLower(fmt.Sprintf("%v", config.LogFormat())) != "text" && + strings.ToLower(fmt.Sprintf("%v", config.LogFormat())) != "json" { + return fmt.Errorf("logformat is invalid: %v\n", config.LogFormat()) + } if config.RequireSecureTransport() && config.TLSCert() == "" && config.TLSKey() == "" { return fmt.Errorf("require_secure_transport can only be `true` when a tls_key and tls_cert are provided.") } diff --git a/integration-tests/bats/sql-server.bats b/integration-tests/bats/sql-server.bats index 01b63bc78d..6732f66bfd 100644 --- a/integration-tests/bats/sql-server.bats +++ b/integration-tests/bats/sql-server.bats @@ -145,6 +145,32 @@ EOF dolt sql -q "show databases;" stop_sql_server } +@test "sql-server: logformats are case insensitive" { + # assert that logformat on command line is not case sensitive + cd repo1 + PORT=$( definePORT ) + dolt sql-server --logformat jSon --port=$PORT --socket "dolt.$PORT.sock" > log.txt 2>&1 & + SERVER_PID=$! + wait_for_connection $PORT 8500 + dolt sql -q "show databases;" + stop_sql_server + + # assert that logformat in yaml config is not case sensitive + cat >config.yml < Date: Fri, 28 Feb 2025 11:35:17 +0530 Subject: [PATCH 10/13] added test for output verification --- integration-tests/bats/sql-server.bats | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/integration-tests/bats/sql-server.bats b/integration-tests/bats/sql-server.bats index 6732f66bfd..ba3b1f9b95 100644 --- a/integration-tests/bats/sql-server.bats +++ b/integration-tests/bats/sql-server.bats @@ -155,6 +155,11 @@ EOF dolt sql -q "show databases;" stop_sql_server + # Assert that log is in JSON format (checking if logs contain `{...}`) + if ! grep -q '^{.*}$' log.txt; then + exit 1 + fi + # assert that logformat in yaml config is not case sensitive cat >config.yml < Date: Fri, 28 Feb 2025 11:47:19 +0530 Subject: [PATCH 11/13] simplified test --- integration-tests/bats/sql-server.bats | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/integration-tests/bats/sql-server.bats b/integration-tests/bats/sql-server.bats index ba3b1f9b95..dfe4fe15a8 100644 --- a/integration-tests/bats/sql-server.bats +++ b/integration-tests/bats/sql-server.bats @@ -156,10 +156,7 @@ EOF stop_sql_server # Assert that log is in JSON format (checking if logs contain `{...}`) - if ! grep -q '^{.*}$' log.txt; then - exit 1 - fi - + grep -q '^{.*}$' log.txt # assert that logformat in yaml config is not case sensitive cat >config.yml < Date: Fri, 28 Feb 2025 12:21:38 +0530 Subject: [PATCH 12/13] Fixed go>sqlserver test cases --- go/cmd/dolt/commands/sqlserver/server_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/go/cmd/dolt/commands/sqlserver/server_test.go b/go/cmd/dolt/commands/sqlserver/server_test.go index 15cda78fba..b6fe44f65d 100644 --- a/go/cmd/dolt/commands/sqlserver/server_test.go +++ b/go/cmd/dolt/commands/sqlserver/server_test.go @@ -554,6 +554,8 @@ func TestGenerateYamlConfig(t *testing.T) { # log_level: info +# log_format: text + # max_logged_query_len: 0 # encode_logged_query: false From 7ebe0288d771b9e44ceb8e20b60ed673802b9b12 Mon Sep 17 00:00:00 2001 From: Damandeep Singh Date: Tue, 4 Mar 2025 08:36:31 +0530 Subject: [PATCH 13/13] chore: log_foramt functionality added as separate test case --- integration-tests/bats/sql-server.bats | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/integration-tests/bats/sql-server.bats b/integration-tests/bats/sql-server.bats index dfe4fe15a8..db48a23199 100644 --- a/integration-tests/bats/sql-server.bats +++ b/integration-tests/bats/sql-server.bats @@ -155,8 +155,6 @@ EOF dolt sql -q "show databases;" stop_sql_server - # Assert that log is in JSON format (checking if logs contain `{...}`) - grep -q '^{.*}$' log.txt # assert that logformat in yaml config is not case sensitive cat >config.yml < log.txt 2>&1 & + SERVER_PID=$! + wait_for_connection $PORT 8500 + dolt sql -q "show databases;" + stop_sql_server + + # Assert that log is in JSON format (checking if logs contain `{...}`) + grep -q '^{.*}$' log.txt +} @test "sql-server: server assumes existing user" { cd repo1