@@ -798,6 +798,11 @@ func buildSubscriptionCreatePlanDatabases(memoryStorage string, planMap map[stri
798798 datasetSizeInGB = v .(float64 )
799799 }
800800
801+ queryPerformanceFactor := ""
802+ if v , ok := planMap ["queryPerformanceFactor" ]; ok && v != nil {
803+ queryPerformanceFactor = v .(string )
804+ }
805+
801806 var diags diag.Diagnostics
802807 if memoryStorage == databases .MemoryStorageRam && averageItemSizeInBytes != 0 {
803808 // TODO This should be changed to an error when releasing 2.0 of the provider
@@ -824,7 +829,7 @@ func buildSubscriptionCreatePlanDatabases(memoryStorage string, planMap map[stri
824829 for _ , v := range planModules {
825830 modules = append (modules , & subscriptions.CreateModules {Name : v })
826831 }
827- createDatabases = append (createDatabases , createDatabase (dbName , & idx , modules , throughputMeasurementBy , throughputMeasurementValue , memoryLimitInGB , datasetSizeInGB , averageItemSizeInBytes , supportOSSClusterAPI , replication , numDatabases )... )
832+ createDatabases = append (createDatabases , createDatabase (dbName , & idx , modules , throughputMeasurementBy , throughputMeasurementValue , memoryLimitInGB , datasetSizeInGB , averageItemSizeInBytes , supportOSSClusterAPI , replication , numDatabases , queryPerformanceFactor )... )
828833 } else {
829834 // make RedisGraph module the first module, then append the rest of the modules
830835 var modules []* subscriptions.CreateModules
@@ -835,20 +840,20 @@ func buildSubscriptionCreatePlanDatabases(memoryStorage string, planMap map[stri
835840 }
836841 }
837842 // create a DB with the RedisGraph module
838- createDatabases = append (createDatabases , createDatabase (dbName , & idx , modules [:1 ], throughputMeasurementBy , throughputMeasurementValue , memoryLimitInGB , datasetSizeInGB , averageItemSizeInBytes , supportOSSClusterAPI , replication , 1 )... )
843+ createDatabases = append (createDatabases , createDatabase (dbName , & idx , modules [:1 ], throughputMeasurementBy , throughputMeasurementValue , memoryLimitInGB , datasetSizeInGB , averageItemSizeInBytes , supportOSSClusterAPI , replication , 1 , queryPerformanceFactor )... )
839844 if numDatabases == 1 {
840845 // create one extra DB with all other modules
841- createDatabases = append (createDatabases , createDatabase (dbName , & idx , modules [1 :], throughputMeasurementBy , throughputMeasurementValue , memoryLimitInGB , datasetSizeInGB , averageItemSizeInBytes , supportOSSClusterAPI , replication , 1 )... )
846+ createDatabases = append (createDatabases , createDatabase (dbName , & idx , modules [1 :], throughputMeasurementBy , throughputMeasurementValue , memoryLimitInGB , datasetSizeInGB , averageItemSizeInBytes , supportOSSClusterAPI , replication , 1 , queryPerformanceFactor )... )
842847 } else if numDatabases > 1 {
843848 // create the remaining DBs with all other modules
844- createDatabases = append (createDatabases , createDatabase (dbName , & idx , modules [1 :], throughputMeasurementBy , throughputMeasurementValue , memoryLimitInGB , datasetSizeInGB , averageItemSizeInBytes , supportOSSClusterAPI , replication , numDatabases - 1 )... )
849+ createDatabases = append (createDatabases , createDatabase (dbName , & idx , modules [1 :], throughputMeasurementBy , throughputMeasurementValue , memoryLimitInGB , datasetSizeInGB , averageItemSizeInBytes , supportOSSClusterAPI , replication , numDatabases - 1 , queryPerformanceFactor )... )
845850 }
846851 }
847852 return createDatabases , diags
848853}
849854
850855// createDatabase returns a CreateDatabase struct with the given parameters
851- func createDatabase (dbName string , idx * int , modules []* subscriptions.CreateModules , throughputMeasurementBy string , throughputMeasurementValue int , memoryLimitInGB float64 , datasetSizeInGB float64 , averageItemSizeInBytes int , supportOSSClusterAPI bool , replication bool , numDatabases int ) []* subscriptions.CreateDatabase {
856+ func createDatabase (dbName string , idx * int , modules []* subscriptions.CreateModules , throughputMeasurementBy string , throughputMeasurementValue int , memoryLimitInGB float64 , datasetSizeInGB float64 , averageItemSizeInBytes int , supportOSSClusterAPI bool , replication bool , numDatabases int , queryPerformanceFactor string ) []* subscriptions.CreateDatabase {
852857 createThroughput := & subscriptions.CreateThroughput {
853858 By : redis .String (throughputMeasurementBy ),
854859 Value : redis .Int (throughputMeasurementValue ),
@@ -887,6 +892,11 @@ func createDatabase(dbName string, idx *int, modules []*subscriptions.CreateModu
887892 if memoryLimitInGB > 0 {
888893 createDatabase .MemoryLimitInGB = redis .Float64 (memoryLimitInGB )
889894 }
895+
896+ if queryPerformanceFactor != "" {
897+ createDatabase .QueryPerformanceFactor = redis .String (queryPerformanceFactor )
898+ }
899+
890900 * idx ++
891901 dbs = append (dbs , & createDatabase )
892902 }
0 commit comments