diff --git a/mysql/resource_ti_resource_group.go b/mysql/resource_ti_resource_group.go index c84bce62..4913f8f7 100644 --- a/mysql/resource_ti_resource_group.go +++ b/mysql/resource_ti_resource_group.go @@ -33,7 +33,9 @@ func (rg *ResourceGroup) buildSQLQuery(prefix string) string { query = append(query, fmt.Sprintf(`PRIORITY = %s`, rg.Priority)) - if rg.QueryLimit != DefaultResourceGroup.QueryLimit { + if rg.QueryLimit == "" { + query = append(query, fmt.Sprintf(`QUERY_LIMIT=NULL`)) + } else { query = append(query, fmt.Sprintf(`QUERY_LIMIT=(%s)`, rg.QueryLimit)) } diff --git a/mysql/resource_ti_resource_group_test.go b/mysql/resource_ti_resource_group_test.go index 105660f7..b809af58 100644 --- a/mysql/resource_ti_resource_group_test.go +++ b/mysql/resource_ti_resource_group_test.go @@ -12,7 +12,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" ) -func TestTIDBResourceGroup_basic(t *testing.T) { +func TestTIDBResourceGroup_basic_to_full(t *testing.T) { varName := "rg100" varResourceUnits := 100 varNewResourceUnits := 1000 @@ -53,6 +53,47 @@ func TestTIDBResourceGroup_basic(t *testing.T) { }) } +func TestTIDBResourceGroup_full_to_basic(t *testing.T) { + varName := "rg100" + varResourceUnits := 1000 + varNewResourceUnits := 100 + varQueryLimit := "EXEC_ELAPSED='15s', ACTION=COOLDOWN, WATCH=SIMILAR DURATION='10m0s'" + varNewQueryLimit := "" + varBurstable := true + varPriority := "low" + resourceName := "mysql_ti_resource_group.test" + + resource.Test(t, resource.TestCase{ + PreCheck: func() { + testAccPreCheck(t) + testAccPreCheckSkipNotTiDB(t) + testAccPreCheckSkipNotTiDBVersionMin(t, ResourceGroupTiDBMinVersion) + }, + ProviderFactories: testAccProviderFactories, + CheckDestroy: testAccResourceGroupCheckDestroy(varName), + Steps: []resource.TestStep{ + { + Config: testAccResourceGroupConfigFull(varName, varResourceUnits, varQueryLimit, varBurstable, varPriority), + Check: resource.ComposeTestCheckFunc( + testAccResourceGroupExists(varName), + resource.TestCheckResourceAttr(resourceName, "name", varName), + resource.TestCheckResourceAttr(resourceName, "query_limit", varQueryLimit), + resource.TestCheckResourceAttr(resourceName, "burstable", fmt.Sprintf("%t", varBurstable)), + resource.TestCheckResourceAttr(resourceName, "priority", varPriority), + ), + }, + { + Config: testAccResourceGroupConfigBasic(varName, varNewResourceUnits, varNewQueryLimit), + Check: resource.ComposeTestCheckFunc( + testAccResourceGroupExists(varName), + resource.TestCheckResourceAttr(resourceName, "name", varName), + resource.TestCheckResourceAttr(resourceName, "query_limit", varNewQueryLimit), + ), + }, + }, + }) +} + func testAccResourceGroupExists(varName string) resource.TestCheckFunc { return func(s *terraform.State) error { rg, err := getResourceGroup(varName)