func (self *ClusterConfiguration) GetShards(querySpec *parser.QuerySpec) []*ShardData { self.shardsByIdLock.RLock() defer self.shardsByIdLock.RUnlock() shouldQueryShortTerm, shouldQueryLongTerm := querySpec.ShouldQueryShortTermAndLongTerm() if shouldQueryLongTerm && shouldQueryShortTerm { shards := make([]*ShardData, 0) shards = append(shards, self.getShardRange(querySpec, self.shortTermShards)...) shards = append(shards, self.getShardRange(querySpec, self.longTermShards)...) if querySpec.IsAscending() { SortShardsByTimeAscending(shards) } else { SortShardsByTimeDescending(shards) } return shards } var shards []*ShardData if shouldQueryLongTerm { shards = self.getShardRange(querySpec, self.longTermShards) } else { shards = self.getShardRange(querySpec, self.shortTermShards) } if querySpec.IsAscending() { newShards := append([]*ShardData{}, shards...) SortShardsByTimeAscending(newShards) return newShards } return shards }
func (self *ClusterConfiguration) GetShards(querySpec *parser.QuerySpec) []*ShardData { self.shardsByIdLock.RLock() defer self.shardsByIdLock.RUnlock() if querySpec.IsDropSeriesQuery() { seriesName := querySpec.Query().DropSeriesQuery.GetTableName() if seriesName[0] < FIRST_LOWER_CASE_CHARACTER { return self.longTermShards } return self.shortTermShards } shouldQueryShortTerm, shouldQueryLongTerm := querySpec.ShouldQueryShortTermAndLongTerm() if shouldQueryLongTerm && shouldQueryShortTerm { shards := make([]*ShardData, 0) shards = append(shards, self.getShardRange(querySpec, self.shortTermShards)...) shards = append(shards, self.getShardRange(querySpec, self.longTermShards)...) if querySpec.IsAscending() { SortShardsByTimeAscending(shards) } else { SortShardsByTimeDescending(shards) } return shards } var shards []*ShardData if shouldQueryLongTerm { shards = self.getShardRange(querySpec, self.longTermShards) } else { shards = self.getShardRange(querySpec, self.shortTermShards) } if querySpec.IsAscending() { newShards := append([]*ShardData{}, shards...) SortShardsByTimeAscending(newShards) return newShards } return shards }