diff --git a/engine/actions_test.go b/engine/actions_test.go index 4a0dea67e..84d6dcefb 100644 --- a/engine/actions_test.go +++ b/engine/actions_test.go @@ -453,7 +453,7 @@ func TestActionPlanFunctionNotAvailable(t *testing.T) { func TestActionTimingPriorityListSortByWeight(t *testing.T) { at1 := &ActionTiming{Timing: &RateInterval{ Timing: &RITiming{ - Years: utils.Years{2020}, + Years: utils.Years{2040}, Months: utils.Months{time.January, time.February, time.March, time.April, time.May, time.June, time.July, time.August, time.September, time.October, time.November, time.December}, @@ -464,7 +464,7 @@ func TestActionTimingPriorityListSortByWeight(t *testing.T) { }} at2 := &ActionTiming{Timing: &RateInterval{ Timing: &RITiming{ - Years: utils.Years{2020}, + Years: utils.Years{2040}, Months: utils.Months{time.January, time.February, time.March, time.April, time.May, time.June, time.July, time.August, time.September, time.October, time.November, time.December}, @@ -477,7 +477,8 @@ func TestActionTimingPriorityListSortByWeight(t *testing.T) { atpl = append(atpl, at2, at1) atpl.Sort() if atpl[0] != at1 || atpl[1] != at2 { - t.Error("Timing list not sorted correctly: ", at1, at2, atpl) + t.Errorf("Timing list not sorted correctly: \n %+v, \n %+v \n %+v", + utils.ToJSON(at1), utils.ToJSON(at2), utils.ToJSON(atpl)) } } diff --git a/engine/storage_internal_stordb.go b/engine/storage_internal_stordb.go index cfcda0746..459e4628c 100644 --- a/engine/storage_internal_stordb.go +++ b/engine/storage_internal_stordb.go @@ -29,7 +29,22 @@ import ( //implement LoadReader interface func (iDB *InternalDB) GetTpIds(colName string) (ids []string, err error) { - return nil, utils.ErrNotImplemented + tpIDs := utils.NewStringSet(nil) + if colName == "" { // if colName is empty we need to parse all partitions + for _, conNm := range utils.CacheStorDBPartitions.AsSlice() { + keys := iDB.db.GetItemIDs(conNm, utils.EmptyString) + for _, key := range keys { + tpIDs.Add(strings.Split(key, utils.InInFieldSep)[0]) + } + } + // iterate through all columns + } else { + keys := iDB.db.GetItemIDs(colName, utils.EmptyString) + for _, key := range keys { + tpIDs.Add(strings.Split(key, utils.InInFieldSep)[0]) + } + } + return tpIDs.AsSlice(), nil } func (iDB *InternalDB) GetTpTableIds(tpid, table string, distinct utils.TPDistinctIds, diff --git a/utils/consts.go b/utils/consts.go index 8b9400bce..b31bd5274 100755 --- a/utils/consts.go +++ b/utils/consts.go @@ -130,6 +130,11 @@ var ( CacheThresholdFilterIndexes, CacheSupplierFilterIndexes, CacheAttributeFilterIndexes, CacheChargerFilterIndexes, CacheDispatcherFilterIndexes, CacheLoadIDs, CacheAccounts}) + CacheStorDBPartitions = NewStringSet([]string{TBLTPTimings, TBLTPDestinations, TBLTPRates, + TBLTPDestinationRates, TBLTPRatingPlans, TBLTPRateProfiles, TBLTPSharedGroups, + TBLTPActions, TBLTPActionPlans, TBLTPActionTriggers, TBLTPAccountActions, TBLTPResources, TBLTPStats, + TBLTPThresholds, TBLTPFilters, SessionCostsTBL, CDRsTBL, + TBLTPSuppliers, TBLTPAttributes, TBLTPChargers, TBLTPDispatchers, TBLTPDispatcherHosts}) // ProtectedSFlds are the fields that sessions should not alter ProtectedSFlds = NewStringSet([]string{CGRID, OriginHost, OriginID, Usage}) )