You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by bi...@apache.org on 2012/11/08 17:57:46 UTC
svn commit: r1407165 - in /accumulo/branches/1.4/src/core/src:
main/java/org/apache/accumulo/core/iterators/user/TimestampFilter.java
test/java/org/apache/accumulo/core/iterators/user/FilterTest.java
Author: billie
Date: Thu Nov 8 16:57:46 2012
New Revision: 1407165
URL: http://svn.apache.org/viewvc?rev=1407165&view=rev
Log:
ACCUMULO-776 reverted 1.4 changes to timestamp filter
Modified:
accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/iterators/user/TimestampFilter.java
accumulo/branches/1.4/src/core/src/test/java/org/apache/accumulo/core/iterators/user/FilterTest.java
Modified: accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/iterators/user/TimestampFilter.java
URL: http://svn.apache.org/viewvc/accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/iterators/user/TimestampFilter.java?rev=1407165&r1=1407164&r2=1407165&view=diff
==============================================================================
--- accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/iterators/user/TimestampFilter.java (original)
+++ accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/iterators/user/TimestampFilter.java Thu Nov 8 16:57:46 2012
@@ -17,8 +17,8 @@
package org.apache.accumulo.core.iterators.user;
import java.io.IOException;
-import java.text.ParseException;
import java.text.SimpleDateFormat;
+import java.util.Date;
import java.util.Map;
import java.util.TimeZone;
@@ -33,7 +33,6 @@ import org.apache.accumulo.core.iterator
* A Filter that matches entries whose timestamps fall within a range.
*/
public class TimestampFilter extends Filter {
- private static final String LONG_PREFIX = "LONG";
private final SimpleDateFormat dateParser = initDateParser();
private static SimpleDateFormat initDateParser() {
@@ -87,20 +86,10 @@ public class TimestampFilter extends Fil
throw new IllegalArgumentException("must have either start or end for " + TimestampFilter.class.getName());
try {
- if (hasStart) {
- String s = options.get(START);
- if (s.startsWith(LONG_PREFIX))
- start = Long.valueOf(s.substring(LONG_PREFIX.length()));
- else
- start = dateParser.parse(s).getTime();
- }
- if (hasEnd) {
- String s = options.get(END);
- if (s.startsWith(LONG_PREFIX))
- end = Long.valueOf(s.substring(LONG_PREFIX.length()));
- else
- end = dateParser.parse(s).getTime();
- }
+ if (hasStart)
+ start = dateParser.parse(options.get(START)).getTime();
+ if (hasEnd)
+ end = dateParser.parse(options.get(END)).getTime();
} catch (Exception e) {
throw new IllegalArgumentException(e);
}
@@ -127,8 +116,8 @@ public class TimestampFilter extends Fil
IteratorOptions io = super.describeOptions();
io.setName("tsfilter");
io.setDescription("TimestampFilter displays entries with timestamps between specified values");
- io.addNamedOption("start", "start timestamp (yyyyMMddHHmmssz or LONG<longstring>)");
- io.addNamedOption("end", "end timestamp (yyyyMMddHHmmssz or LONG<longstring>)");
+ io.addNamedOption("start", "start timestamp (yyyyMMddHHmmssz)");
+ io.addNamedOption("end", "end timestamp (yyyyMMddHHmmssz)");
io.addNamedOption("startInclusive", "true or false");
io.addNamedOption("endInclusive", "true or false");
return io;
@@ -137,27 +126,11 @@ public class TimestampFilter extends Fil
@Override
public boolean validateOptions(Map<String,String> options) {
super.validateOptions(options);
- boolean hasStart = false;
- boolean hasEnd = false;
try {
- if (options.containsKey(START)) {
- hasStart = true;
- String s = options.get(START);
- if (s.startsWith(LONG_PREFIX))
- Long.valueOf(s.substring(LONG_PREFIX.length()));
- else
- dateParser.parse(s);
- }
- if (options.containsKey(END)) {
- hasEnd = true;
- String s = options.get(END);
- if (s.startsWith(LONG_PREFIX))
- Long.valueOf(s.substring(LONG_PREFIX.length()));
- else
- dateParser.parse(s);
- }
- if (!hasStart && !hasEnd)
- return false;
+ if (options.containsKey(START))
+ dateParser.parse(options.get(START));
+ if (options.containsKey(END))
+ dateParser.parse(options.get(END));
if (options.get(START_INCL) != null)
Boolean.parseBoolean(options.get(START_INCL));
if (options.get(END_INCL) != null)
@@ -212,13 +185,8 @@ public class TimestampFilter extends Fil
* boolean indicating whether the start is inclusive
*/
public static void setStart(IteratorSetting is, String start, boolean startInclusive) {
- SimpleDateFormat dateParser = initDateParser();
- try {
- long startTS = dateParser.parse(start).getTime();
- setStart(is, startTS, startInclusive);
- } catch (ParseException e) {
- throw new IllegalArgumentException("couldn't parse " + start);
- }
+ is.addOption(START, start);
+ is.addOption(START_INCL, Boolean.toString(startInclusive));
}
/**
@@ -232,13 +200,8 @@ public class TimestampFilter extends Fil
* boolean indicating whether the end is inclusive
*/
public static void setEnd(IteratorSetting is, String end, boolean endInclusive) {
- SimpleDateFormat dateParser = initDateParser();
- try {
- long endTS = dateParser.parse(end).getTime();
- setEnd(is, endTS, endInclusive);
- } catch (ParseException e) {
- throw new IllegalArgumentException("couldn't parse " + end);
- }
+ is.addOption(END, end);
+ is.addOption(END_INCL, Boolean.toString(endInclusive));
}
/**
@@ -285,7 +248,8 @@ public class TimestampFilter extends Fil
* boolean indicating whether the start is inclusive
*/
public static void setStart(IteratorSetting is, long start, boolean startInclusive) {
- is.addOption(START, LONG_PREFIX + Long.toString(start));
+ SimpleDateFormat dateParser = initDateParser();
+ is.addOption(START, dateParser.format(new Date(start)));
is.addOption(START_INCL, Boolean.toString(startInclusive));
}
@@ -300,7 +264,8 @@ public class TimestampFilter extends Fil
* boolean indicating whether the end is inclusive
*/
public static void setEnd(IteratorSetting is, long end, boolean endInclusive) {
- is.addOption(END, LONG_PREFIX + Long.toString(end));
+ SimpleDateFormat dateParser = initDateParser();
+ is.addOption(END, dateParser.format(new Date(end)));
is.addOption(END_INCL, Boolean.toString(endInclusive));
}
}
Modified: accumulo/branches/1.4/src/core/src/test/java/org/apache/accumulo/core/iterators/user/FilterTest.java
URL: http://svn.apache.org/viewvc/accumulo/branches/1.4/src/core/src/test/java/org/apache/accumulo/core/iterators/user/FilterTest.java?rev=1407165&r1=1407164&r2=1407165&view=diff
==============================================================================
--- accumulo/branches/1.4/src/core/src/test/java/org/apache/accumulo/core/iterators/user/FilterTest.java (original)
+++ accumulo/branches/1.4/src/core/src/test/java/org/apache/accumulo/core/iterators/user/FilterTest.java Thu Nov 8 16:57:46 2012
@@ -17,7 +17,6 @@
package org.apache.accumulo.core.iterators.user;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
@@ -198,8 +197,6 @@ public class FilterTest {
AgeOffFilter.setTTL(is, 101l);
AgeOffFilter.setCurrentTime(is, 1001l);
AgeOffFilter.setNegate(is, true);
- assertTrue(((AgeOffFilter) a).validateOptions(is.getOptions()));
- assertFalse(((AgeOffFilter) a).validateOptions(EMPTY_OPTS));
a.init(new SortedMapIterator(tm), is.getOptions(), null);
a = a.deepCopy(null);
SortedKeyValueIterator<Key,Value> copy = a.deepCopy(null);
@@ -226,7 +223,6 @@ public class FilterTest {
assertTrue(tm.size() == 1000);
ColumnAgeOffFilter a = new ColumnAgeOffFilter();
- assertTrue(a.validateOptions(is.getOptions()));
a.init(new SortedMapIterator(tm), is.getOptions(), new DefaultIteratorEnvironment());
a.overrideCurrentTime(ts);
a.seek(new Range(), EMPTY_COL_FAMS, false);
@@ -433,7 +429,6 @@ public class FilterTest {
assertEquals(size(a), 89);
TimestampFilter.setStart(is, "19990101000011GMT", false);
- assertTrue(a.validateOptions(is.getOptions()));
a.init(new SortedMapIterator(tm), is.getOptions(), null);
a.seek(new Range(), EMPTY_COL_FAMS, false);
assertEquals(size(a), 88);
@@ -445,29 +440,9 @@ public class FilterTest {
assertEquals(size(a), 32);
TimestampFilter.setEnd(is, "19990101000031GMT", false);
- assertTrue(a.validateOptions(is.getOptions()));
a.init(new SortedMapIterator(tm), is.getOptions(), null);
a.seek(new Range(), EMPTY_COL_FAMS, false);
assertEquals(size(a), 31);
-
- TimestampFilter.setEnd(is, 253402300800001l, true);
- a.init(new SortedMapIterator(tm), is.getOptions(), null);
-
- is.clearOptions();
- is.addOption(TimestampFilter.START, "19990101000011GMT");
- assertTrue(a.validateOptions(is.getOptions()));
- a.init(new SortedMapIterator(tm), is.getOptions(), null);
- a.seek(new Range(), EMPTY_COL_FAMS, false);
- assertEquals(size(a), 89);
-
- is.clearOptions();
- is.addOption(TimestampFilter.END, "19990101000031GMT");
- assertTrue(a.validateOptions(is.getOptions()));
- a.init(new SortedMapIterator(tm), is.getOptions(), null);
- a.seek(new Range(), EMPTY_COL_FAMS, false);
- assertEquals(size(a), 32);
-
- assertFalse(a.validateOptions(EMPTY_OPTS));
}
@Test