diff --git a/java/timebase/qql/src/main/java/com/epam/deltix/qsrv/hf/tickdb/lang/runtime/FilterIMSImpl.java b/java/timebase/qql/src/main/java/com/epam/deltix/qsrv/hf/tickdb/lang/runtime/FilterIMSImpl.java index 0e51a4d7..860638f3 100644 --- a/java/timebase/qql/src/main/java/com/epam/deltix/qsrv/hf/tickdb/lang/runtime/FilterIMSImpl.java +++ b/java/timebase/qql/src/main/java/com/epam/deltix/qsrv/hf/tickdb/lang/runtime/FilterIMSImpl.java @@ -32,6 +32,7 @@ import com.epam.deltix.qsrv.hf.tickdb.pub.DXTickDB; import com.epam.deltix.qsrv.hf.tickdb.pub.query.FixedMessageSource; import com.epam.deltix.qsrv.hf.tickdb.pub.query.InstrumentMessageSource; +import com.epam.deltix.qsrv.util.json.DateFormatter; import com.epam.deltix.util.collections.IndexedArrayList; import java.util.Arrays; @@ -86,6 +87,8 @@ public abstract class FilterIMSImpl private long firstMessageTimestamp = Long.MIN_VALUE; protected long aggregatedMessages; + + private final DateFormatter datetimeFormatter = new DateFormatter(); protected FilterIMSImpl ( InstrumentMessageSource source, @@ -553,4 +556,8 @@ private int getParamIndex(int n) { return n & ~(TimestampLimits.EXCLUSIVE_BIT | TimestampLimits.NANOS_BIT); } + public DateFormatter datetimeFormatter() { + return datetimeFormatter; + } + } diff --git a/java/timebase/qql/src/main/java/com/epam/deltix/qsrv/hf/tickdb/lang/runtime/FilterState.java b/java/timebase/qql/src/main/java/com/epam/deltix/qsrv/hf/tickdb/lang/runtime/FilterState.java index 02a360a7..88884f76 100644 --- a/java/timebase/qql/src/main/java/com/epam/deltix/qsrv/hf/tickdb/lang/runtime/FilterState.java +++ b/java/timebase/qql/src/main/java/com/epam/deltix/qsrv/hf/tickdb/lang/runtime/FilterState.java @@ -48,8 +48,6 @@ public abstract class FilterState { private final FilterIMSImpl filter; - private final DateFormatter datetimeFormatter = new DateFormatter(); - private final Introspector introspector = Introspector.createEmptyMessageIntrospector(); public FilterState(FilterIMSImpl filter) { @@ -126,7 +124,7 @@ public EnumClassDescriptor getEnumDescriptor(String name) { } public DateFormatter datetimeFormatter() { - return datetimeFormatter; + return filter.datetimeFormatter(); } public void setHavingAccepted(boolean havingAccepted) { diff --git a/java/timebase/qql/src/main/java/com/epam/deltix/qsrv/hf/tickdb/lang/runtime/GroupByFilterState.java b/java/timebase/qql/src/main/java/com/epam/deltix/qsrv/hf/tickdb/lang/runtime/GroupByFilterState.java index d7d30ddd..80e1d84d 100644 --- a/java/timebase/qql/src/main/java/com/epam/deltix/qsrv/hf/tickdb/lang/runtime/GroupByFilterState.java +++ b/java/timebase/qql/src/main/java/com/epam/deltix/qsrv/hf/tickdb/lang/runtime/GroupByFilterState.java @@ -28,7 +28,7 @@ */ public abstract class GroupByFilterState extends FilterState implements Serializer { - protected final MemoryDataOutput mdo = new MemoryDataOutput(); + protected final MemoryDataOutput mdo = new MemoryDataOutput(16); protected final MemoryDataInput mdi = new MemoryDataInput(); public GroupByFilterState(FilterIMSImpl filter) {