Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 477B7200B2B for ; Tue, 24 May 2016 03:31:37 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 46251160A2C; Tue, 24 May 2016 01:31:37 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id CE9BE160A2F for ; Tue, 24 May 2016 03:31:34 +0200 (CEST) Received: (qmail 90990 invoked by uid 500); 24 May 2016 01:31:33 -0000 Mailing-List: contact commits-help@asterixdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@asterixdb.apache.org Delivered-To: mailing list commits@asterixdb.apache.org Received: (qmail 90963 invoked by uid 99); 24 May 2016 01:31:33 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 24 May 2016 01:31:33 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 3706FC152C for ; Tue, 24 May 2016 01:31:33 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.646 X-Spam-Level: X-Spam-Status: No, score=-4.646 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.426] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id kgT6WqHxpBba for ; Tue, 24 May 2016 01:31:27 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with SMTP id A8F6E5FCB6 for ; Tue, 24 May 2016 01:31:21 +0000 (UTC) Received: (qmail 90337 invoked by uid 99); 24 May 2016 01:31:19 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 24 May 2016 01:31:19 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 6947AEAC97; Tue, 24 May 2016 01:31:19 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: buyingyi@apache.org To: commits@asterixdb.incubator.apache.org Date: Tue, 24 May 2016 01:31:30 -0000 Message-Id: <10ab82e779b04fc08090b9274c0eeba1@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [12/22] incubator-asterixdb git commit: ASTERIXDB-1228: Add MISSING into the data model. archived-at: Tue, 24 May 2016 01:31:37 -0000 http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/pom.xml ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/pom.xml b/asterixdb/asterix-runtime/pom.xml index eabe06e..3bfe55a 100644 --- a/asterixdb/asterix-runtime/pom.xml +++ b/asterixdb/asterix-runtime/pom.xml @@ -79,5 +79,10 @@ asm-all 5.1 + + com.e-movimento.tinytools + privilegedaccessor + 1.2.2 + http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableAvgAggregateFunction.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableAvgAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableAvgAggregateFunction.java index c3b9b47..41a2d3f 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableAvgAggregateFunction.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableAvgAggregateFunction.java @@ -46,9 +46,9 @@ import org.apache.asterix.runtime.evaluators.common.AccessibleByteArrayEval; import org.apache.asterix.runtime.evaluators.common.ClosedRecordConstructorEvalFactory.ClosedRecordConstructorEval; import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; import org.apache.hyracks.algebricks.common.exceptions.NotImplementedException; -import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluator; import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator; import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory; +import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluator; import org.apache.hyracks.api.context.IHyracksTaskContext; import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer; import org.apache.hyracks.data.std.api.IPointable; @@ -128,7 +128,7 @@ public abstract class AbstractSerializableAvgAggregateFunction implements ISeria long count = BufferSerDeUtil.getLong(state, start + COUNT_OFFSET); ATypeTag typeTag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(bytes[offset]); ATypeTag aggType = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(state[start + AGG_TYPE_OFFSET]); - if (typeTag == ATypeTag.NULL) { + if (typeTag == ATypeTag.MISSING || typeTag == ATypeTag.NULL) { processNull(state, start); return; } else if (aggType == ATypeTag.SYSTEM_NULL) { http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableCountAggregateFunction.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableCountAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableCountAggregateFunction.java index 6270e78..d11997c 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableCountAggregateFunction.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableCountAggregateFunction.java @@ -29,9 +29,9 @@ import org.apache.asterix.om.types.ATypeTag; import org.apache.asterix.om.types.BuiltinType; import org.apache.asterix.om.types.EnumDeserializer; import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; -import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluator; import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator; import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory; +import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluator; import org.apache.hyracks.api.context.IHyracksTaskContext; import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer; import org.apache.hyracks.data.std.api.IPointable; @@ -77,7 +77,7 @@ public abstract class AbstractSerializableCountAggregateFunction implements ISer eval.evaluate(tuple, inputVal); ATypeTag typeTag = EnumDeserializer.ATYPETAGDESERIALIZER .deserialize(inputVal.getByteArray()[inputVal.getStartOffset()]); - if (typeTag == ATypeTag.NULL) { + if (typeTag == ATypeTag.MISSING || typeTag == ATypeTag.NULL) { processNull(state, start); } else { cnt++; http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableSumAggregateFunction.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableSumAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableSumAggregateFunction.java index 03eb2d3..d742d83 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableSumAggregateFunction.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableSumAggregateFunction.java @@ -41,9 +41,9 @@ import org.apache.asterix.om.types.EnumDeserializer; import org.apache.asterix.om.types.hierachy.ATypeHierarchy; import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; import org.apache.hyracks.algebricks.common.exceptions.NotImplementedException; -import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluator; import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator; import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory; +import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluator; import org.apache.hyracks.api.context.IHyracksTaskContext; import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer; import org.apache.hyracks.data.std.api.IPointable; @@ -92,7 +92,7 @@ public abstract class AbstractSerializableSumAggregateFunction implements ISeria int offset = inputVal.getStartOffset(); ATypeTag typeTag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(bytes[offset]); - if (typeTag == ATypeTag.NULL) { + if (typeTag == ATypeTag.MISSING || typeTag == ATypeTag.NULL) { processNull(state, start); return; } else if (aggType == ATypeTag.SYSTEM_NULL) { http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableAvgAggregateFunction.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableAvgAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableAvgAggregateFunction.java index d8c7fe2..346fa76 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableAvgAggregateFunction.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableAvgAggregateFunction.java @@ -57,7 +57,7 @@ public class SerializableAvgAggregateFunction extends AbstractSerializableAvgAgg @Override protected boolean skipStep(byte[] state, int start) { ATypeTag aggType = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(state[start + AGG_TYPE_OFFSET]); - return (aggType == ATypeTag.NULL); + return aggType == ATypeTag.NULL; } } http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalAvgAggregateFunction.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalAvgAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalAvgAggregateFunction.java index 83a856c..3895911 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalAvgAggregateFunction.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalAvgAggregateFunction.java @@ -58,7 +58,7 @@ public class SerializableGlobalAvgAggregateFunction extends AbstractSerializable @Override protected boolean skipStep(byte[] state, int start) { ATypeTag aggType = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(state[start + AGG_TYPE_OFFSET]); - return (aggType == ATypeTag.NULL); + return aggType == ATypeTag.NULL; } } http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateAvgAggregateFunction.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateAvgAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateAvgAggregateFunction.java index 3ea3d76..af2f663 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateAvgAggregateFunction.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateAvgAggregateFunction.java @@ -58,7 +58,7 @@ public class SerializableIntermediateAvgAggregateFunction extends AbstractSerial @Override protected boolean skipStep(byte[] state, int start) { ATypeTag aggType = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(state[start + AGG_TYPE_OFFSET]); - return (aggType == ATypeTag.NULL); + return aggType == ATypeTag.NULL; } } http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalAvgAggregateFunction.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalAvgAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalAvgAggregateFunction.java index c15a937..aa9b385 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalAvgAggregateFunction.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalAvgAggregateFunction.java @@ -58,7 +58,7 @@ public class SerializableLocalAvgAggregateFunction extends AbstractSerializableA @Override protected boolean skipStep(byte[] state, int start) { ATypeTag aggType = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(state[start + AGG_TYPE_OFFSET]); - return (aggType == ATypeTag.NULL); + return aggType == ATypeTag.NULL; } } http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableSumAggregateFunction.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableSumAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableSumAggregateFunction.java index e5190ae..db3de24 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableSumAggregateFunction.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableSumAggregateFunction.java @@ -47,7 +47,7 @@ public class SerializableSumAggregateFunction extends AbstractSerializableSumAgg @Override protected boolean skipStep(byte[] state, int start) { ATypeTag aggType = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(state[start + AGG_TYPE_OFFSET]); - return (aggType == ATypeTag.NULL); + return aggType == ATypeTag.NULL; } @Override http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractAvgAggregateFunction.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractAvgAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractAvgAggregateFunction.java index a57aacd..e403107 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractAvgAggregateFunction.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractAvgAggregateFunction.java @@ -127,7 +127,7 @@ public abstract class AbstractAvgAggregateFunction implements IAggregateEvaluato int offset = inputVal.getStartOffset(); ATypeTag typeTag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(data[offset]); - if (typeTag == ATypeTag.NULL) { + if (typeTag == ATypeTag.MISSING || typeTag == ATypeTag.NULL) { processNull(); return; } else if (aggType == ATypeTag.SYSTEM_NULL) { http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractCountAggregateFunction.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractCountAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractCountAggregateFunction.java index f93617d..ca44fa3 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractCountAggregateFunction.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractCountAggregateFunction.java @@ -67,7 +67,7 @@ public abstract class AbstractCountAggregateFunction implements IAggregateEvalua ATypeTag typeTag = EnumDeserializer.ATYPETAGDESERIALIZER .deserialize(inputVal.getByteArray()[inputVal.getStartOffset()]); // Ignore SYSTEM_NULL. - if (typeTag == ATypeTag.NULL) { + if (typeTag == ATypeTag.NULL || typeTag == ATypeTag.MISSING) { processNull(); } else if (typeTag != ATypeTag.SYSTEM_NULL) { cnt++; http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractMinMaxAggregateFunction.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractMinMaxAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractMinMaxAggregateFunction.java index c5a0104..5372cfb 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractMinMaxAggregateFunction.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractMinMaxAggregateFunction.java @@ -64,15 +64,15 @@ public abstract class AbstractMinMaxAggregateFunction implements IAggregateEvalu @Override public void step(IFrameTupleReference tuple) throws AlgebricksException { + if (skipStep()) { + return; + } eval.evaluate(tuple, inputVal); - ATypeTag typeTag = EnumDeserializer.ATYPETAGDESERIALIZER .deserialize(inputVal.getByteArray()[inputVal.getStartOffset()]); - if (typeTag == ATypeTag.NULL) { + if (typeTag == ATypeTag.MISSING || typeTag == ATypeTag.NULL) { processNull(); return; - } else if (aggType == ATypeTag.NULL) { - return; } else if (aggType == ATypeTag.SYSTEM_NULL) { if (typeTag == ATypeTag.SYSTEM_NULL) { // Ignore. http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractSumAggregateFunction.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractSumAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractSumAggregateFunction.java index 2948887..6938255 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractSumAggregateFunction.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractSumAggregateFunction.java @@ -86,7 +86,7 @@ public abstract class AbstractSumAggregateFunction implements IAggregateEvaluato int offset = inputVal.getStartOffset(); ATypeTag typeTag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(data[offset]); - if (typeTag == ATypeTag.NULL) { + if (typeTag == ATypeTag.MISSING || typeTag == ATypeTag.NULL) { processNull(); return; } else if (aggType == ATypeTag.SYSTEM_NULL) { @@ -131,9 +131,6 @@ public abstract class AbstractSumAggregateFunction implements IAggregateEvaluato sum += val; break; } - case NULL: { - break; - } case SYSTEM_NULL: { processSystemNull(); break; http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AvgAggregateFunction.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AvgAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AvgAggregateFunction.java index fd52df3..b5fd5ed 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AvgAggregateFunction.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AvgAggregateFunction.java @@ -55,7 +55,7 @@ public class AvgAggregateFunction extends AbstractAvgAggregateFunction { @Override protected boolean skipStep() { - return (aggType == ATypeTag.NULL); + return aggType == ATypeTag.NULL; } } http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalAvgAggregateFunction.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalAvgAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalAvgAggregateFunction.java index db01fde..3555863 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalAvgAggregateFunction.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalAvgAggregateFunction.java @@ -55,7 +55,7 @@ public class GlobalAvgAggregateFunction extends AbstractAvgAggregateFunction { @Override protected boolean skipStep() { - return (aggType == ATypeTag.NULL); + return aggType == ATypeTag.NULL; } } http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateAvgAggregateFunction.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateAvgAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateAvgAggregateFunction.java index 1543f95..667ceda 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateAvgAggregateFunction.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateAvgAggregateFunction.java @@ -55,7 +55,7 @@ public class IntermediateAvgAggregateFunction extends AbstractAvgAggregateFuncti @Override protected boolean skipStep() { - return (aggType == ATypeTag.NULL); + return aggType == ATypeTag.NULL; } } http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalAvgAggregateFunction.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalAvgAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalAvgAggregateFunction.java index 0b19900..018a2ca 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalAvgAggregateFunction.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalAvgAggregateFunction.java @@ -55,7 +55,7 @@ public class LocalAvgAggregateFunction extends AbstractAvgAggregateFunction { @Override protected boolean skipStep() { - return (aggType == ATypeTag.NULL); + return aggType == ATypeTag.NULL; } } http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/MinMaxAggregateFunction.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/MinMaxAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/MinMaxAggregateFunction.java index 65ecc32..894f332 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/MinMaxAggregateFunction.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/MinMaxAggregateFunction.java @@ -41,7 +41,7 @@ public class MinMaxAggregateFunction extends AbstractMinMaxAggregateFunction { @Override protected boolean skipStep() { - return (aggType == ATypeTag.NULL); + return aggType == ATypeTag.NULL; } @Override http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/CircleCenterAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/CircleCenterAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/CircleCenterAccessor.java index d59380d..7e9b74c 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/CircleCenterAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/CircleCenterAccessor.java @@ -26,7 +26,6 @@ import org.apache.asterix.dataflow.data.nontagged.serde.ACircleSerializerDeseria import org.apache.asterix.dataflow.data.nontagged.serde.ADoubleSerializerDeserializer; import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider; import org.apache.asterix.om.base.AMutablePoint; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.base.APoint; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; @@ -71,10 +70,6 @@ public class CircleCenterAccessor extends AbstractScalarFunctionDynamicDescripto private final DataOutput out = resultStorage.getDataOutput(); private final IPointable argPtr = new VoidPointable(); private final IScalarEvaluator eval = args[0].createScalarEvaluator(ctx); - - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); private final AMutablePoint aPoint = new AMutablePoint(0, 0); @SuppressWarnings("unchecked") private final ISerializerDeserializer pointSerde = AqlSerializerDeserializerProvider.INSTANCE @@ -97,8 +92,6 @@ public class CircleCenterAccessor extends AbstractScalarFunctionDynamicDescripto + ACircleSerializerDeserializer.getCenterPointCoordinateOffset(Coordinate.Y)); aPoint.setValue(cX, cY); pointSerde.serialize(aPoint, out); - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); } else { throw new AlgebricksException("get-center does not support the type: " + bytes[startOffset] + " It is only implemented for CIRCLE."); http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/CircleRadiusAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/CircleRadiusAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/CircleRadiusAccessor.java index 9771eaf..9ed2802 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/CircleRadiusAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/CircleRadiusAccessor.java @@ -26,7 +26,6 @@ import org.apache.asterix.dataflow.data.nontagged.serde.ADoubleSerializerDeseria import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider; import org.apache.asterix.om.base.ADouble; import org.apache.asterix.om.base.AMutableDouble; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; import org.apache.asterix.om.functions.IFunctionDescriptorFactory; @@ -69,10 +68,6 @@ public class CircleRadiusAccessor extends AbstractScalarFunctionDynamicDescripto private final DataOutput out = resultStorage.getDataOutput(); private final IPointable argPtr = new VoidPointable(); private final IScalarEvaluator eval = args[0].createScalarEvaluator(ctx); - - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); private final AMutableDouble aDouble = new AMutableDouble(0); @SuppressWarnings("unchecked") private final ISerializerDeserializer doubleSerde = AqlSerializerDeserializerProvider.INSTANCE @@ -92,8 +87,6 @@ public class CircleRadiusAccessor extends AbstractScalarFunctionDynamicDescripto startOffset + ACircleSerializerDeserializer.getRadiusOffset()); aDouble.setValue(radius); doubleSerde.serialize(aDouble, out); - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); } else { throw new AlgebricksException("get-radius does not support the type: " + bytes[startOffset] + " It is only implemented for CIRCLE."); http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/LineRectanglePolygonAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/LineRectanglePolygonAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/LineRectanglePolygonAccessor.java index 2439082..e5f74c4 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/LineRectanglePolygonAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/LineRectanglePolygonAccessor.java @@ -30,7 +30,6 @@ import org.apache.asterix.dataflow.data.nontagged.serde.APolygonSerializerDeseri import org.apache.asterix.dataflow.data.nontagged.serde.ARectangleSerializerDeserializer; import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider; import org.apache.asterix.om.base.AMutablePoint; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.base.APoint; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; @@ -80,10 +79,6 @@ public class LineRectanglePolygonAccessor extends AbstractScalarFunctionDynamicD private final OrderedListBuilder listBuilder = new OrderedListBuilder(); private final ArrayBackedValueStorage inputVal = new ArrayBackedValueStorage(); private final AOrderedListType pointListType = new AOrderedListType(BuiltinType.APOINT, null); - - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); private final AMutablePoint aPoint = new AMutablePoint(0, 0); @SuppressWarnings("unchecked") private final ISerializerDeserializer pointSerde = AqlSerializerDeserializerProvider.INSTANCE @@ -157,8 +152,6 @@ public class LineRectanglePolygonAccessor extends AbstractScalarFunctionDynamicD listBuilder.addItem(inputVal); } listBuilder.write(out, true); - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); } else { throw new AlgebricksException( "get-points does not support the type: " + bytes[startOffset] http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/PointXCoordinateAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/PointXCoordinateAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/PointXCoordinateAccessor.java index cf00b12..878747b 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/PointXCoordinateAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/PointXCoordinateAccessor.java @@ -27,7 +27,6 @@ import org.apache.asterix.dataflow.data.nontagged.serde.APointSerializerDeserial import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider; import org.apache.asterix.om.base.ADouble; import org.apache.asterix.om.base.AMutableDouble; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; import org.apache.asterix.om.functions.IFunctionDescriptorFactory; @@ -70,10 +69,6 @@ public class PointXCoordinateAccessor extends AbstractScalarFunctionDynamicDescr private final DataOutput out = resultStorage.getDataOutput(); private final IPointable argPtr = new VoidPointable(); private final IScalarEvaluator eval = args[0].createScalarEvaluator(ctx); - - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); private final AMutableDouble aDouble = new AMutableDouble(0); @SuppressWarnings("unchecked") private final ISerializerDeserializer doubleSerde = AqlSerializerDeserializerProvider.INSTANCE @@ -93,8 +88,6 @@ public class PointXCoordinateAccessor extends AbstractScalarFunctionDynamicDescr startOffset + APointSerializerDeserializer.getCoordinateOffset(Coordinate.X)); aDouble.setValue(x); doubleSerde.serialize(aDouble, out); - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); } else { throw new AlgebricksException("get-x does not support the type: " + bytes[startOffset] + " It is only implemented for POINT."); http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/PointYCoordinateAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/PointYCoordinateAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/PointYCoordinateAccessor.java index c36a869..99e396c 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/PointYCoordinateAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/PointYCoordinateAccessor.java @@ -27,7 +27,6 @@ import org.apache.asterix.dataflow.data.nontagged.serde.APointSerializerDeserial import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider; import org.apache.asterix.om.base.ADouble; import org.apache.asterix.om.base.AMutableDouble; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; import org.apache.asterix.om.functions.IFunctionDescriptorFactory; @@ -73,10 +72,6 @@ public class PointYCoordinateAccessor extends AbstractScalarFunctionDynamicDescr private final DataOutput out = resultStorage.getDataOutput(); private final IPointable argPtr = new VoidPointable(); private final IScalarEvaluator eval = args[0].createScalarEvaluator(ctx); - - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); private final AMutableDouble aDouble = new AMutableDouble(0); @SuppressWarnings("unchecked") private final ISerializerDeserializer doubleSerde = AqlSerializerDeserializerProvider.INSTANCE @@ -96,8 +91,6 @@ public class PointYCoordinateAccessor extends AbstractScalarFunctionDynamicDescr startOffset + APointSerializerDeserializer.getCoordinateOffset(Coordinate.Y)); aDouble.setValue(y); doubleSerde.serialize(aDouble, out); - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); } else { throw new AlgebricksException("get-y does not support the type: " + bytes[startOffset] + " It is only implemented for POINT."); http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalDayAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalDayAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalDayAccessor.java index 1dcb6c9..3732954 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalDayAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalDayAccessor.java @@ -28,7 +28,6 @@ import org.apache.asterix.dataflow.data.nontagged.serde.AInt64SerializerDeserial import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider; import org.apache.asterix.om.base.AInt64; import org.apache.asterix.om.base.AMutableInt64; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.base.temporal.GregorianCalendarSystem; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; @@ -84,9 +83,6 @@ public class TemporalDayAccessor extends AbstractScalarFunctionDynamicDescriptor private final ISerializerDeserializer intSerde = AqlSerializerDeserializerProvider.INSTANCE .getSerializerDeserializer(BuiltinType.AINT64); private final AMutableInt64 aMutableInt64 = new AMutableInt64(0); - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); @Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException { @@ -117,10 +113,6 @@ public class TemporalDayAccessor extends AbstractScalarFunctionDynamicDescriptor * GregorianCalendarSystem.CHRONON_OF_DAY; } else if (bytes[startOffset] == ATypeTag.SERIALIZED_DATETIME_TYPE_TAG) { chrononTimeInMs = AInt64SerializerDeserializer.getLong(bytes, startOffset + 1); - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); - result.set(resultStorage); - return; } else { throw new AlgebricksException("Inapplicable input type: " + bytes[startOffset]); } http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalHourAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalHourAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalHourAccessor.java index 969dfe9..dc10d71 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalHourAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalHourAccessor.java @@ -28,7 +28,6 @@ import org.apache.asterix.dataflow.data.nontagged.serde.AInt64SerializerDeserial import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider; import org.apache.asterix.om.base.AInt64; import org.apache.asterix.om.base.AMutableInt64; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.base.temporal.GregorianCalendarSystem; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; @@ -85,9 +84,6 @@ public class TemporalHourAccessor extends AbstractScalarFunctionDynamicDescripto private final ISerializerDeserializer intSerde = AqlSerializerDeserializerProvider.INSTANCE .getSerializerDeserializer(BuiltinType.AINT64); private final AMutableInt64 aMutableInt64 = new AMutableInt64(0); - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); @Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException { @@ -117,10 +113,6 @@ public class TemporalHourAccessor extends AbstractScalarFunctionDynamicDescripto chrononTimeInMs = AInt32SerializerDeserializer.getInt(bytes, startOffset + 1); } else if (bytes[startOffset] == ATypeTag.SERIALIZED_DATETIME_TYPE_TAG) { chrononTimeInMs = AInt64SerializerDeserializer.getLong(bytes, startOffset + 1); - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); - result.set(resultStorage); - return; } else { throw new AlgebricksException("Inapplicable input type: " + bytes[startOffset]); } http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndAccessor.java index d8525dd..54ad490 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndAccessor.java @@ -28,7 +28,6 @@ import org.apache.asterix.om.base.ADateTime; import org.apache.asterix.om.base.AMutableDate; import org.apache.asterix.om.base.AMutableDateTime; import org.apache.asterix.om.base.AMutableTime; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.base.ATime; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; @@ -88,9 +87,6 @@ public class TemporalIntervalEndAccessor extends AbstractScalarFunctionDynamicDe private final ISerializerDeserializer timeSerde = AqlSerializerDeserializerProvider.INSTANCE .getSerializerDeserializer(BuiltinType.ATIME); private final AMutableTime aTime = new AMutableTime(0); - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); @Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException { @@ -100,11 +96,7 @@ public class TemporalIntervalEndAccessor extends AbstractScalarFunctionDynamicDe resultStorage.reset(); try { - if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); - result.set(resultStorage); - return; - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG) { + if (bytes[startOffset] == ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG) { byte timeType = AIntervalSerializerDeserializer.getIntervalTimeType(bytes, startOffset + 1); long endTime = AIntervalSerializerDeserializer.getIntervalEnd(bytes, startOffset + 1); http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndDateAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndDateAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndDateAccessor.java index 3a9aa5a..ae7b7f1 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndDateAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndDateAccessor.java @@ -25,7 +25,6 @@ import org.apache.asterix.dataflow.data.nontagged.serde.AIntervalSerializerDeser import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider; import org.apache.asterix.om.base.ADate; import org.apache.asterix.om.base.AMutableDate; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; import org.apache.asterix.om.functions.IFunctionDescriptorFactory; @@ -76,10 +75,6 @@ public class TemporalIntervalEndDateAccessor extends AbstractScalarFunctionDynam .getSerializerDeserializer(BuiltinType.ADATE); private final AMutableDate aDate = new AMutableDate(0); - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); - @Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException { eval.evaluate(tuple, argPtr); @@ -88,11 +83,7 @@ public class TemporalIntervalEndDateAccessor extends AbstractScalarFunctionDynam resultStorage.reset(); try { - if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); - result.set(resultStorage); - return; - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG) { + if (bytes[startOffset] == ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG) { byte timeType = AIntervalSerializerDeserializer.getIntervalTimeType(bytes, startOffset + 1); long endTime = AIntervalSerializerDeserializer.getIntervalEnd(bytes, startOffset + 1); http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndDatetimeAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndDatetimeAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndDatetimeAccessor.java index 925d88d..0c28a6d 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndDatetimeAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndDatetimeAccessor.java @@ -25,7 +25,6 @@ import org.apache.asterix.dataflow.data.nontagged.serde.AIntervalSerializerDeser import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider; import org.apache.asterix.om.base.ADateTime; import org.apache.asterix.om.base.AMutableDateTime; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; import org.apache.asterix.om.functions.IFunctionDescriptorFactory; @@ -77,9 +76,6 @@ public class TemporalIntervalEndDatetimeAccessor extends AbstractScalarFunctionD private final ISerializerDeserializer datetimeSerde = AqlSerializerDeserializerProvider.INSTANCE .getSerializerDeserializer(BuiltinType.ADATETIME); private final AMutableDateTime aDateTime = new AMutableDateTime(0); - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); @Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException { @@ -89,11 +85,7 @@ public class TemporalIntervalEndDatetimeAccessor extends AbstractScalarFunctionD resultStorage.reset(); try { - if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); - result.set(resultStorage); - return; - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG) { + if (bytes[startOffset] == ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG) { byte timeType = AIntervalSerializerDeserializer.getIntervalTimeType(bytes, startOffset + 1); long endTime = AIntervalSerializerDeserializer.getIntervalEnd(bytes, startOffset + 1); http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndTimeAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndTimeAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndTimeAccessor.java index a393846..1008d9b 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndTimeAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalEndTimeAccessor.java @@ -24,7 +24,6 @@ import java.io.IOException; import org.apache.asterix.dataflow.data.nontagged.serde.AIntervalSerializerDeserializer; import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider; import org.apache.asterix.om.base.AMutableTime; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.base.ATime; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; @@ -75,9 +74,6 @@ public class TemporalIntervalEndTimeAccessor extends AbstractScalarFunctionDynam private final ISerializerDeserializer timeSerde = AqlSerializerDeserializerProvider.INSTANCE .getSerializerDeserializer(BuiltinType.ATIME); private final AMutableTime aTime = new AMutableTime(0); - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); @Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException { @@ -87,11 +83,7 @@ public class TemporalIntervalEndTimeAccessor extends AbstractScalarFunctionDynam resultStorage.reset(); try { - if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); - result.set(resultStorage); - return; - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG) { + if (bytes[startOffset] == ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG) { byte timeType = AIntervalSerializerDeserializer.getIntervalTimeType(bytes, startOffset + 1); long endTime = AIntervalSerializerDeserializer.getIntervalEnd(bytes, startOffset + 1); http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartAccessor.java index ef391b2..7ab7f27 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartAccessor.java @@ -28,7 +28,6 @@ import org.apache.asterix.om.base.ADateTime; import org.apache.asterix.om.base.AMutableDate; import org.apache.asterix.om.base.AMutableDateTime; import org.apache.asterix.om.base.AMutableTime; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.base.ATime; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; @@ -87,9 +86,6 @@ public class TemporalIntervalStartAccessor extends AbstractScalarFunctionDynamic private final ISerializerDeserializer timeSerde = AqlSerializerDeserializerProvider.INSTANCE .getSerializerDeserializer(BuiltinType.ATIME); private final AMutableTime aTime = new AMutableTime(0); - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); @Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException { @@ -99,11 +95,7 @@ public class TemporalIntervalStartAccessor extends AbstractScalarFunctionDynamic resultStorage.reset(); try { - if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); - result.set(resultStorage); - return; - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG) { + if (bytes[startOffset] == ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG) { byte timeType = AIntervalSerializerDeserializer.getIntervalTimeType(bytes, startOffset + 1); long startTime = AIntervalSerializerDeserializer.getIntervalStart(bytes, http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartDateAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartDateAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartDateAccessor.java index e2d8883..35b17a2 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartDateAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartDateAccessor.java @@ -25,7 +25,6 @@ import org.apache.asterix.dataflow.data.nontagged.serde.AIntervalSerializerDeser import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider; import org.apache.asterix.om.base.ADate; import org.apache.asterix.om.base.AMutableDate; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; import org.apache.asterix.om.functions.IFunctionDescriptorFactory; @@ -75,9 +74,6 @@ public class TemporalIntervalStartDateAccessor extends AbstractScalarFunctionDyn private final ISerializerDeserializer dateSerde = AqlSerializerDeserializerProvider.INSTANCE .getSerializerDeserializer(BuiltinType.ADATE); private final AMutableDate aDate = new AMutableDate(0); - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); @Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException { @@ -87,11 +83,7 @@ public class TemporalIntervalStartDateAccessor extends AbstractScalarFunctionDyn resultStorage.reset(); try { - if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); - result.set(resultStorage); - return; - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG) { + if (bytes[startOffset] == ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG) { byte timeType = AIntervalSerializerDeserializer.getIntervalTimeType(bytes, startOffset + 1); long startTime = AIntervalSerializerDeserializer.getIntervalStart(bytes, http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartDatetimeAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartDatetimeAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartDatetimeAccessor.java index b3a89c1..7a1376b 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartDatetimeAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartDatetimeAccessor.java @@ -25,7 +25,6 @@ import org.apache.asterix.dataflow.data.nontagged.serde.AIntervalSerializerDeser import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider; import org.apache.asterix.om.base.ADateTime; import org.apache.asterix.om.base.AMutableDateTime; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; import org.apache.asterix.om.functions.IFunctionDescriptorFactory; @@ -75,9 +74,6 @@ public class TemporalIntervalStartDatetimeAccessor extends AbstractScalarFunctio private final ISerializerDeserializer datetimeSerde = AqlSerializerDeserializerProvider.INSTANCE .getSerializerDeserializer(BuiltinType.ADATETIME); private final AMutableDateTime aDateTime = new AMutableDateTime(0); - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); @Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException { @@ -87,11 +83,7 @@ public class TemporalIntervalStartDatetimeAccessor extends AbstractScalarFunctio resultStorage.reset(); try { - if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); - result.set(resultStorage); - return; - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG) { + if (bytes[startOffset] == ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG) { byte timeType = AIntervalSerializerDeserializer.getIntervalTimeType(bytes, startOffset + 1); long startTime = AIntervalSerializerDeserializer.getIntervalStart(bytes, http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartTimeAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartTimeAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartTimeAccessor.java index 12ee1f0..ae4fb4d 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartTimeAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalIntervalStartTimeAccessor.java @@ -24,7 +24,6 @@ import java.io.IOException; import org.apache.asterix.dataflow.data.nontagged.serde.AIntervalSerializerDeserializer; import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider; import org.apache.asterix.om.base.AMutableTime; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.base.ATime; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; @@ -75,9 +74,6 @@ public class TemporalIntervalStartTimeAccessor extends AbstractScalarFunctionDyn private final ISerializerDeserializer timeSerde = AqlSerializerDeserializerProvider.INSTANCE .getSerializerDeserializer(BuiltinType.ATIME); private final AMutableTime aTime = new AMutableTime(0); - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); @Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException { @@ -87,11 +83,7 @@ public class TemporalIntervalStartTimeAccessor extends AbstractScalarFunctionDyn resultStorage.reset(); try { - if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); - result.set(resultStorage); - return; - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG) { + if (bytes[startOffset] == ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG) { byte timeType = AIntervalSerializerDeserializer.getIntervalTimeType(bytes, startOffset + 1); long startTime = AIntervalSerializerDeserializer.getIntervalStart(bytes, http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalMillisecondAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalMillisecondAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalMillisecondAccessor.java index a0bef32..453aae0 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalMillisecondAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalMillisecondAccessor.java @@ -28,7 +28,6 @@ import org.apache.asterix.dataflow.data.nontagged.serde.AInt64SerializerDeserial import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider; import org.apache.asterix.om.base.AInt64; import org.apache.asterix.om.base.AMutableInt64; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.base.temporal.GregorianCalendarSystem; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; @@ -84,9 +83,6 @@ public class TemporalMillisecondAccessor extends AbstractScalarFunctionDynamicDe private final ISerializerDeserializer intSerde = AqlSerializerDeserializerProvider.INSTANCE .getSerializerDeserializer(BuiltinType.AINT64); private final AMutableInt64 aMutableInt64 = new AMutableInt64(0); - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); @Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException { @@ -116,10 +112,6 @@ public class TemporalMillisecondAccessor extends AbstractScalarFunctionDynamicDe chrononTimeInMs = AInt32SerializerDeserializer.getInt(bytes, startOffset + 1); } else if (bytes[startOffset] == ATypeTag.SERIALIZED_DATETIME_TYPE_TAG) { chrononTimeInMs = AInt64SerializerDeserializer.getLong(bytes, startOffset + 1); - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); - result.set(resultStorage); - return; } else { throw new AlgebricksException("Inapplicable input type: " + bytes[startOffset]); } http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalMinuteAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalMinuteAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalMinuteAccessor.java index cdd0f8a..6455c4f 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalMinuteAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalMinuteAccessor.java @@ -28,7 +28,6 @@ import org.apache.asterix.dataflow.data.nontagged.serde.AInt64SerializerDeserial import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider; import org.apache.asterix.om.base.AInt64; import org.apache.asterix.om.base.AMutableInt64; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.base.temporal.GregorianCalendarSystem; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; @@ -87,9 +86,6 @@ public class TemporalMinuteAccessor extends AbstractScalarFunctionDynamicDescrip private final ISerializerDeserializer intSerde = AqlSerializerDeserializerProvider.INSTANCE .getSerializerDeserializer(BuiltinType.AINT64); private final AMutableInt64 aMutableInt64 = new AMutableInt64(0); - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); @Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException { @@ -119,10 +115,6 @@ public class TemporalMinuteAccessor extends AbstractScalarFunctionDynamicDescrip chrononTimeInMs = AInt32SerializerDeserializer.getInt(bytes, startOffset + 1); } else if (bytes[startOffset] == ATypeTag.SERIALIZED_DATETIME_TYPE_TAG) { chrononTimeInMs = AInt64SerializerDeserializer.getLong(bytes, startOffset + 1); - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); - result.set(resultStorage); - return; } else { throw new AlgebricksException("Inapplicable input type: " + bytes[startOffset]); } http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalMonthAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalMonthAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalMonthAccessor.java index 4a27e82..e6fb01f 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalMonthAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalMonthAccessor.java @@ -28,7 +28,6 @@ import org.apache.asterix.dataflow.data.nontagged.serde.AYearMonthDurationSerial import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider; import org.apache.asterix.om.base.AInt64; import org.apache.asterix.om.base.AMutableInt64; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.base.temporal.GregorianCalendarSystem; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; @@ -84,9 +83,6 @@ public class TemporalMonthAccessor extends AbstractScalarFunctionDynamicDescript private final ISerializerDeserializer intSerde = AqlSerializerDeserializerProvider.INSTANCE .getSerializerDeserializer(BuiltinType.AINT64); private final AMutableInt64 aMutableInt64 = new AMutableInt64(0); - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); @Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException { @@ -117,10 +113,6 @@ public class TemporalMonthAccessor extends AbstractScalarFunctionDynamicDescript * GregorianCalendarSystem.CHRONON_OF_DAY; } else if (bytes[startOffset] == ATypeTag.SERIALIZED_DATETIME_TYPE_TAG) { chrononTimeInMs = AInt64SerializerDeserializer.getLong(bytes, startOffset + 1); - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); - result.set(resultStorage); - return; } else { throw new AlgebricksException("Inapplicable input type: " + bytes[startOffset]); } http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalSecondAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalSecondAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalSecondAccessor.java index 6abe7a3..e14d08d 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalSecondAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalSecondAccessor.java @@ -28,7 +28,6 @@ import org.apache.asterix.dataflow.data.nontagged.serde.AInt64SerializerDeserial import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider; import org.apache.asterix.om.base.AInt64; import org.apache.asterix.om.base.AMutableInt64; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.base.temporal.GregorianCalendarSystem; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; @@ -84,9 +83,6 @@ public class TemporalSecondAccessor extends AbstractScalarFunctionDynamicDescrip private final ISerializerDeserializer intSerde = AqlSerializerDeserializerProvider.INSTANCE .getSerializerDeserializer(BuiltinType.AINT64); private final AMutableInt64 aMutableInt64 = new AMutableInt64(0); - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); @Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException { @@ -117,10 +113,6 @@ public class TemporalSecondAccessor extends AbstractScalarFunctionDynamicDescrip chrononTimeInMs = AInt32SerializerDeserializer.getInt(bytes, startOffset + 1); } else if (bytes[startOffset] == ATypeTag.SERIALIZED_DATETIME_TYPE_TAG) { chrononTimeInMs = AInt64SerializerDeserializer.getLong(bytes, startOffset + 1); - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); - result.set(resultStorage); - return; } else { throw new AlgebricksException("Inapplicable input type: " + bytes[startOffset]); } http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalYearAccessor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalYearAccessor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalYearAccessor.java index ccf54c6..41c123b 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalYearAccessor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/accessors/TemporalYearAccessor.java @@ -28,7 +28,6 @@ import org.apache.asterix.dataflow.data.nontagged.serde.AYearMonthDurationSerial import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider; import org.apache.asterix.om.base.AInt64; import org.apache.asterix.om.base.AMutableInt64; -import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.base.temporal.GregorianCalendarSystem; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.functions.IFunctionDescriptor; @@ -85,9 +84,6 @@ public class TemporalYearAccessor extends AbstractScalarFunctionDynamicDescripto private final ISerializerDeserializer intSerde = AqlSerializerDeserializerProvider.INSTANCE .getSerializerDeserializer(BuiltinType.AINT64); private final AMutableInt64 aMutableInt64 = new AMutableInt64(0); - @SuppressWarnings("unchecked") - private final ISerializerDeserializer nullSerde = AqlSerializerDeserializerProvider.INSTANCE - .getSerializerDeserializer(BuiltinType.ANULL); @Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException { @@ -119,10 +115,6 @@ public class TemporalYearAccessor extends AbstractScalarFunctionDynamicDescripto * GregorianCalendarSystem.CHRONON_OF_DAY; } else if (bytes[startOffset] == ATypeTag.SERIALIZED_DATETIME_TYPE_TAG) { chrononTimeInMs = AInt64SerializerDeserializer.getLong(bytes, startOffset + 1); - } else if (bytes[startOffset] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - nullSerde.serialize(ANull.NULL, out); - result.set(resultStorage); - return; } else if (bytes[startOffset] == ATypeTag.SERIALIZED_STRING_TYPE_TAG) { int year; strExprPtr.set(bytes, startOffset + 1, len - 1); http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/AbstractTypeCheckEvaluator.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/AbstractTypeCheckEvaluator.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/AbstractTypeCheckEvaluator.java new file mode 100644 index 0000000..800afd7 --- /dev/null +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/AbstractTypeCheckEvaluator.java @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.asterix.runtime.evaluators.common; + +import java.io.DataOutput; + +import org.apache.asterix.dataflow.data.nontagged.serde.AObjectSerializerDeserializer; +import org.apache.asterix.om.base.ABoolean; +import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; +import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator; +import org.apache.hyracks.api.exceptions.HyracksDataException; +import org.apache.hyracks.data.std.api.IPointable; +import org.apache.hyracks.data.std.primitive.VoidPointable; +import org.apache.hyracks.data.std.util.ArrayBackedValueStorage; +import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference; + +public abstract class AbstractTypeCheckEvaluator implements IScalarEvaluator { + + private final ArrayBackedValueStorage resultStorage = new ArrayBackedValueStorage(); + private final DataOutput out = resultStorage.getDataOutput(); + private final IPointable argPtr = new VoidPointable(); + private final IScalarEvaluator eval; + private static final AObjectSerializerDeserializer aObjSerDer = AObjectSerializerDeserializer.INSTANCE; + + public AbstractTypeCheckEvaluator(IScalarEvaluator argEval) { + this.eval = argEval; + } + + @Override + public void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException { + eval.evaluate(tuple, argPtr); + boolean match = isMatch(argPtr.getByteArray()[argPtr.getStartOffset()]); + ABoolean res = match ? ABoolean.TRUE : ABoolean.FALSE; + try { + resultStorage.reset(); + aObjSerDer.serialize(res, out); + result.set(resultStorage); + } catch (HyracksDataException e) { + throw new AlgebricksException(e); + } + } + + protected abstract boolean isMatch(byte typeTag); + +} http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/535d86b5/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/ClosedRecordConstructorEvalFactory.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/ClosedRecordConstructorEvalFactory.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/ClosedRecordConstructorEvalFactory.java index 6ebb684..5a95707 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/ClosedRecordConstructorEvalFactory.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/ClosedRecordConstructorEvalFactory.java @@ -82,10 +82,13 @@ public class ClosedRecordConstructorEvalFactory implements IScalarEvaluatorFacto recBuilder.init(); for (int i = 0; i < evalFields.length; i++) { evalFields[i].evaluate(tuple, fieldValuePointable); - if (fieldValuePointable.getByteArray()[fieldValuePointable - .getStartOffset()] != ATypeTag.SERIALIZED_NULL_TYPE_TAG) { - recBuilder.addField(i, fieldValuePointable); + byte[] data = fieldValuePointable.getByteArray(); + int offset = fieldValuePointable.getStartOffset(); + if (data[offset] == ATypeTag.SERIALIZED_MISSING_TYPE_TAG) { + // Turns MISSING into NULL for a closed field. + data[offset] = ATypeTag.SERIALIZED_NULL_TYPE_TAG; } + recBuilder.addField(i, fieldValuePointable); } recBuilder.write(out, true); result.set(resultStorage);