Hotfix add multistatements param on mysql url (#17428)

Automatic Merge
Этот коммит содержится в:
John Tzikas
2021-04-19 15:36:04 +03:00
коммит произвёл GitHub
родитель 730dc6b985
Коммит 9f203bbc96
2 изменённых файлов: 49 добавлений и 11 удалений

Просмотреть файл

@@ -607,6 +607,44 @@ func TestReplicaLagQuery(t *testing.T) {
}
}
func TestAppendMultipleStatementsFlagMysql(t *testing.T) {
testCases := []struct {
Scenario string
DSN string
ExpectedDSN string
Driver string
}{
{
"Should append multiStatements param to the DSN path with existing params",
"user:rand?&ompasswith@character@unix(/var/run/mysqld/mysqld.sock)/mattermost?writeTimeout=30s",
"user:rand?&ompasswith@character@unix(/var/run/mysqld/mysqld.sock)/mattermost?writeTimeout=30s&multiStatements=true",
model.DATABASE_DRIVER_MYSQL,
},
{
"Should append multiStatements param to the DSN path with no existing params",
"user:rand?&ompasswith@character@unix(/var/run/mysqld/mysqld.sock)/mattermost",
"user:rand?&ompasswith@character@unix(/var/run/mysqld/mysqld.sock)/mattermost?multiStatements=true",
model.DATABASE_DRIVER_MYSQL,
},
{
"Should not multiStatements param to the DSN when driver is not MySQL",
"user:rand?&ompasswith@character@unix(/var/run/mysqld/mysqld.sock)/mattermost",
"user:rand?&ompasswith@character@unix(/var/run/mysqld/mysqld.sock)/mattermost",
model.DATABASE_DRIVER_POSTGRES,
},
}
for _, tc := range testCases {
t.Run(tc.Scenario, func(t *testing.T) {
t.Parallel()
store := &SqlStore{settings: &model.SqlSettings{DriverName: &tc.Driver, DataSource: &tc.DSN}}
res, err := store.appendMultipleStatementsFlag(*store.settings.DataSource)
require.NoError(t, err)
assert.Equal(t, tc.ExpectedDSN, res)
})
}
}
func makeSqlSettings(driver string) *model.SqlSettings {
switch driver {
case model.DATABASE_DRIVER_POSTGRES: