Skip to content

Commit d0eb0e4

Browse files
authored
Merge pull request #2610 from ControlSystemStudio/CSSTUDIO-1877
Avoid archiver queries if no data is found
2 parents a788fa1 + 9d04626 commit d0eb0e4

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed

app/databrowser/src/main/java/org/phoebus/archive/reader/appliance/ApplianceArchiveReader.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,11 @@ public ValueIterator getOptimizedValues(String name, Instant start, Instant end,
138138
if (it == null) {
139139
try {
140140
int points = getNumberOfPoints(name, start, end);
141-
if (points <= count) {
141+
// No points found, return "empty" iterator to suppress request for raw data
142+
if(points == 0){
143+
it = new EmptyRawValueIterator(this, name, start, end, this);
144+
}
145+
else if (points <= count) {
142146
it = new ApplianceRawValueIterator(this, name, start, end, this);
143147
} else {
144148
//only fetch if binning is "still" supported
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/*
2+
* Copyright (C) 2020 European Spallation Source ERIC.
3+
*
4+
* This program is free software; you can redistribute it and/or
5+
* modify it under the terms of the GNU General Public License
6+
* as published by the Free Software Foundation; either version 2
7+
* of the License, or (at your option) any later version.
8+
*
9+
* This program is distributed in the hope that it will be useful,
10+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+
* GNU General Public License for more details.
13+
*
14+
* You should have received a copy of the GNU General Public License
15+
* along with this program; if not, write to the Free Software
16+
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17+
*
18+
*/
19+
20+
package org.phoebus.archive.reader.appliance;
21+
22+
import java.time.Instant;
23+
24+
/**
25+
* A {@link ApplianceValueIterator} used to indicate that no data was found.
26+
*/
27+
public class EmptyRawValueIterator extends ApplianceValueIterator{
28+
29+
public EmptyRawValueIterator(ApplianceArchiveReader reader,
30+
String name, Instant start, Instant end, IteratorListener listener){
31+
super(reader, name, start, end, listener);
32+
}
33+
34+
@Override
35+
public boolean hasNext(){
36+
return false;
37+
}
38+
}

0 commit comments

Comments
 (0)