func (self *Shard) executeDeleteQuery(querySpec *parser.QuerySpec, processor engine.Processor) error { query := querySpec.DeleteQuery() series := query.GetFromClause() database := querySpec.Database() if series.Type != parser.FromClauseArray { return fmt.Errorf("Merge and Inner joins can't be used with a delete query: %v", series.Type) } for _, name := range series.Names { var err error if regex, ok := name.Name.GetCompiledRegex(); ok { err = self.deleteRangeOfRegex(database, regex, query.GetStartTime(), query.GetEndTime()) } else { err = self.deleteRangeOfSeries(database, name.Name.Name, query.GetStartTime(), query.GetEndTime()) } if err != nil { return err } } self.db.Compact() return nil }