You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by im...@apache.org on 2015/08/20 04:27:47 UTC
[2/9] incubator-asterixdb git commit: Changed metadata storage format
for nullable field types. Moved field name generation to the client out of
metadata node code. Changed naming scheme for autogenerated types. Moved
GroupName, CompactionPolicy & Compac
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/InjectFailureTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/InjectFailureTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/InjectFailureTypeComputer.java
index 4787699..73e5895 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/InjectFailureTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/InjectFailureTypeComputer.java
@@ -42,14 +42,12 @@ public class InjectFailureTypeComputer implements IResultTypeComputer {
IAType t0 = (IAType) env.getType(fce.getArguments().get(0).getValue());
IAType t1 = (IAType) env.getType(fce.getArguments().get(0).getValue());
ATypeTag tag1 = t1.getTypeTag();
- if (t1.getTypeTag() == ATypeTag.UNION && NonTaggedFormatUtil.isOptionalField((AUnionType) t1))
- tag1 = ((AUnionType) t1).getUnionList().get(AUnionType.OPTIONAL_TYPE_INDEX_IN_UNION_LIST)
- .getTypeTag();
+ if (NonTaggedFormatUtil.isOptional(t1))
+ tag1 = ((AUnionType) t1).getNullableType().getTypeTag();
if (tag1 != ATypeTag.BOOLEAN)
throw new AlgebricksException(errMsg2);
return t0;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedCollectionMemberResultType.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedCollectionMemberResultType.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedCollectionMemberResultType.java
index 3dae5f8..48e2b9b 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedCollectionMemberResultType.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedCollectionMemberResultType.java
@@ -39,8 +39,8 @@ public class NonTaggedCollectionMemberResultType implements IResultTypeComputer
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
AbstractFunctionCallExpression f = (AbstractFunctionCallExpression) expression;
IAType type = (IAType) env.getType(f.getArguments().get(0).getValue());
- if (type.getTypeTag() == ATypeTag.UNION && NonTaggedFormatUtil.isOptionalField((AUnionType) type)) {
- type = ((AUnionType) type).getUnionList().get(AUnionType.OPTIONAL_TYPE_INDEX_IN_UNION_LIST);
+ if (NonTaggedFormatUtil.isOptional(type)) {
+ type = ((AUnionType) type).getNullableType();
}
if (type.getTypeTag() == ATypeTag.ANY) {
return BuiltinType.ANY;
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedFieldAccessByNameResultType.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedFieldAccessByNameResultType.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedFieldAccessByNameResultType.java
index bddff9c..7b7d105 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedFieldAccessByNameResultType.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedFieldAccessByNameResultType.java
@@ -80,7 +80,7 @@ public class NonTaggedFieldAccessByNameResultType implements IResultTypeComputer
case UNION: {
AUnionType u = (AUnionType) type0;
if (u.isNullableType()) {
- IAType t1 = u.getUnionList().get(1);
+ IAType t1 = u.getNullableType();
if (t1.getTypeTag() == ATypeTag.RECORD) {
return (ARecordType) t1;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedGetItemResultType.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedGetItemResultType.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedGetItemResultType.java
index 633af06..972cc09 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedGetItemResultType.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedGetItemResultType.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.types.AOrderedListType;
import edu.uci.ics.asterix.om.types.ATypeTag;
@@ -42,17 +39,14 @@ public class NonTaggedGetItemResultType implements IResultTypeComputer {
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
AbstractFunctionCallExpression f = (AbstractFunctionCallExpression) expression;
IAType type = (IAType) env.getType(f.getArguments().get(0).getValue());
- if (type.getTypeTag() == ATypeTag.UNION && NonTaggedFormatUtil.isOptionalField((AUnionType) type))
- type = ((AUnionType) type).getUnionList().get(AUnionType.OPTIONAL_TYPE_INDEX_IN_UNION_LIST);
+ if (NonTaggedFormatUtil.isOptional(type))
+ type = ((AUnionType) type).getNullableType();
if (type.getTypeTag() == ATypeTag.ANY)
return BuiltinType.ANY;
else {
if (((AOrderedListType) type).getItemType().getTypeTag() == ATypeTag.NULL)
return BuiltinType.ANULL;
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(((AOrderedListType) type).getItemType());
- return new AUnionType(unionList, "GetItemResult");
+ return AUnionType.createNullableType(((AOrderedListType) type).getItemType(), "GetItemResult");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedLocalAvgTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedLocalAvgTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedLocalAvgTypeComputer.java
index 22c7f6f..6e0316f 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedLocalAvgTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedLocalAvgTypeComputer.java
@@ -15,9 +15,6 @@
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.common.exceptions.AsterixException;
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.types.ARecordType;
@@ -37,12 +34,9 @@ public class NonTaggedLocalAvgTypeComputer implements IResultTypeComputer {
@Override
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.ADOUBLE);
try {
return new ARecordType(null, new String[] { "sum", "count" }, new IAType[] {
- new AUnionType(unionList, "OptionalDouble"), BuiltinType.AINT32 }, false);
+ AUnionType.createNullableType(BuiltinType.ADOUBLE, "OptionalDouble"), BuiltinType.AINT32 }, false);
} catch (AsterixException | HyracksDataException e) {
throw new AlgebricksException(e);
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedMinMaxAggTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedMinMaxAggTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedMinMaxAggTypeComputer.java
index c4d3248..ec6bd0b 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedMinMaxAggTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedMinMaxAggTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.types.ATypeTag;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -49,52 +46,50 @@ public class NonTaggedMinMaxAggTypeComputer implements IResultTypeComputer {
}
ATypeTag tag1;
- if (t1.getTypeTag() == ATypeTag.UNION && NonTaggedFormatUtil.isOptionalField((AUnionType) t1)) {
- tag1 = ((AUnionType) t1).getUnionList().get(AUnionType.OPTIONAL_TYPE_INDEX_IN_UNION_LIST)
- .getTypeTag();
+ if (NonTaggedFormatUtil.isOptional(t1)) {
+ tag1 = ((AUnionType) t1).getNullableType().getTypeTag();
} else {
tag1 = t1.getTypeTag();
}
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
+ IAType type;
switch (tag1) {
case DOUBLE:
- unionList.add(BuiltinType.ADOUBLE);
+ type = BuiltinType.ADOUBLE;
break;
case FLOAT:
- unionList.add(BuiltinType.AFLOAT);
+ type = BuiltinType.AFLOAT;
break;
case INT64:
- unionList.add(BuiltinType.AINT64);
+ type = BuiltinType.AINT64;
break;
case INT32:
- unionList.add(BuiltinType.AINT32);
+ type = BuiltinType.AINT32;
break;
case INT16:
- unionList.add(BuiltinType.AINT16);
+ type = BuiltinType.AINT16;
break;
case INT8:
- unionList.add(BuiltinType.AINT8);
+ type = BuiltinType.AINT8;
break;
case STRING:
- unionList.add(BuiltinType.ASTRING);
+ type = BuiltinType.ASTRING;
break;
case DATE:
- unionList.add(BuiltinType.ADATE);
+ type = BuiltinType.ADATE;
break;
case TIME:
- unionList.add(BuiltinType.ATIME);
+ type = BuiltinType.ATIME;
break;
case DATETIME:
- unionList.add(BuiltinType.ADATETIME);
+ type = BuiltinType.ADATETIME;
break;
case YEARMONTHDURATION:
- unionList.add(BuiltinType.AYEARMONTHDURATION);
+ type = BuiltinType.AYEARMONTHDURATION;
break;
case DAYTIMEDURATION:
- unionList.add(BuiltinType.ADAYTIMEDURATION);
+ type = BuiltinType.ADAYTIMEDURATION;
break;
case ANY:
return BuiltinType.ANY;
@@ -102,6 +97,6 @@ public class NonTaggedMinMaxAggTypeComputer implements IResultTypeComputer {
throw new NotImplementedException(errMsg + tag1);
}
}
- return new AUnionType(unionList, "SumResult");
+ return AUnionType.createNullableType(type, "SumResult");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericAddSubMulDivTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericAddSubMulDivTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericAddSubMulDivTypeComputer.java
index e39fb84..138913f 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericAddSubMulDivTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericAddSubMulDivTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.types.ATypeTag;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -58,15 +55,13 @@ public class NonTaggedNumericAddSubMulDivTypeComputer implements IResultTypeComp
}
ATypeTag tag1, tag2;
- if (t1.getTypeTag() == ATypeTag.UNION && NonTaggedFormatUtil.isOptionalField((AUnionType) t1))
- tag1 = ((AUnionType) t1).getUnionList().get(AUnionType.OPTIONAL_TYPE_INDEX_IN_UNION_LIST)
- .getTypeTag();
+ if (NonTaggedFormatUtil.isOptional(t1))
+ tag1 = ((AUnionType) t1).getNullableType().getTypeTag();
else
tag1 = t1.getTypeTag();
- if (t2.getTypeTag() == ATypeTag.UNION && NonTaggedFormatUtil.isOptionalField((AUnionType) t2))
- tag2 = ((AUnionType) t2).getUnionList().get(AUnionType.OPTIONAL_TYPE_INDEX_IN_UNION_LIST)
- .getTypeTag();
+ if (NonTaggedFormatUtil.isOptional(t2))
+ tag2 = ((AUnionType) t2).getNullableType().getTypeTag();
else
tag2 = t2.getTypeTag();
@@ -74,8 +69,7 @@ public class NonTaggedNumericAddSubMulDivTypeComputer implements IResultTypeComp
return BuiltinType.ANULL;
}
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
+ IAType type;
switch (tag1) {
case DOUBLE: {
@@ -86,7 +80,7 @@ public class NonTaggedNumericAddSubMulDivTypeComputer implements IResultTypeComp
case INT64:
case FLOAT:
case DOUBLE:
- unionList.add(BuiltinType.ADOUBLE);
+ type = BuiltinType.ADOUBLE;
break;
case ANY:
return BuiltinType.ANY;
@@ -103,10 +97,10 @@ public class NonTaggedNumericAddSubMulDivTypeComputer implements IResultTypeComp
case INT32:
case INT64:
case FLOAT:
- unionList.add(BuiltinType.AFLOAT);
+ type = BuiltinType.AFLOAT;
break;
case DOUBLE:
- unionList.add(BuiltinType.ADOUBLE);
+ type = BuiltinType.ADOUBLE;
break;
case ANY:
return BuiltinType.ANY;
@@ -122,13 +116,13 @@ public class NonTaggedNumericAddSubMulDivTypeComputer implements IResultTypeComp
case INT16:
case INT32:
case INT64:
- unionList.add(BuiltinType.AINT64);
+ type = BuiltinType.AINT64;
break;
case FLOAT:
- unionList.add(BuiltinType.AFLOAT);
+ type = BuiltinType.AFLOAT;
break;
case DOUBLE:
- unionList.add(BuiltinType.ADOUBLE);
+ type = BuiltinType.ADOUBLE;
break;
case ANY:
return BuiltinType.ANY;
@@ -143,16 +137,16 @@ public class NonTaggedNumericAddSubMulDivTypeComputer implements IResultTypeComp
case INT8:
case INT16:
case INT32:
- unionList.add(BuiltinType.AINT32);
+ type = BuiltinType.AINT32;
break;
case INT64:
- unionList.add(BuiltinType.AINT64);
+ type = BuiltinType.AINT64;
break;
case FLOAT:
- unionList.add(BuiltinType.AFLOAT);
+ type = BuiltinType.AFLOAT;
break;
case DOUBLE:
- unionList.add(BuiltinType.ADOUBLE);
+ type = BuiltinType.ADOUBLE;
break;
case ANY:
return BuiltinType.ANY;
@@ -166,19 +160,19 @@ public class NonTaggedNumericAddSubMulDivTypeComputer implements IResultTypeComp
switch (tag2) {
case INT8:
case INT16:
- unionList.add(BuiltinType.AINT16);
+ type = BuiltinType.AINT16;
break;
case INT32:
- unionList.add(BuiltinType.AINT32);
+ type = BuiltinType.AINT32;
break;
case INT64:
- unionList.add(BuiltinType.AINT64);
+ type = BuiltinType.AINT64;
break;
case FLOAT:
- unionList.add(BuiltinType.AFLOAT);
+ type = BuiltinType.AFLOAT;
break;
case DOUBLE:
- unionList.add(BuiltinType.ADOUBLE);
+ type = BuiltinType.ADOUBLE;
break;
case ANY:
return BuiltinType.ANY;
@@ -191,22 +185,22 @@ public class NonTaggedNumericAddSubMulDivTypeComputer implements IResultTypeComp
case INT8: {
switch (tag2) {
case INT8:
- unionList.add(BuiltinType.AINT8);
+ type = BuiltinType.AINT8;
break;
case INT16:
- unionList.add(BuiltinType.AINT16);
+ type = BuiltinType.AINT16;
break;
case INT32:
- unionList.add(BuiltinType.AINT32);
+ type = BuiltinType.AINT32;
break;
case INT64:
- unionList.add(BuiltinType.AINT64);
+ type = BuiltinType.AINT64;
break;
case FLOAT:
- unionList.add(BuiltinType.AFLOAT);
+ type = BuiltinType.AFLOAT;
break;
case DOUBLE:
- unionList.add(BuiltinType.ADOUBLE);
+ type = BuiltinType.ADOUBLE;
break;
case ANY:
return BuiltinType.ANY;
@@ -234,12 +228,12 @@ public class NonTaggedNumericAddSubMulDivTypeComputer implements IResultTypeComp
case DATE: {
switch (tag2) {
case DATE:
- unionList.add(BuiltinType.ADURATION);
+ type = BuiltinType.ADURATION;
break;
case YEARMONTHDURATION:
case DAYTIMEDURATION:
case DURATION:
- unionList.add(BuiltinType.ADATE);
+ type = BuiltinType.ADATE;
break;
default: {
throw new NotImplementedException(errMsg + tag2);
@@ -250,12 +244,12 @@ public class NonTaggedNumericAddSubMulDivTypeComputer implements IResultTypeComp
case TIME: {
switch (tag2) {
case TIME:
- unionList.add(BuiltinType.ADURATION);
+ type = BuiltinType.ADURATION;
break;
case YEARMONTHDURATION:
case DAYTIMEDURATION:
case DURATION:
- unionList.add(BuiltinType.ATIME);
+ type = BuiltinType.ATIME;
break;
default: {
throw new NotImplementedException(errMsg + tag2);
@@ -266,12 +260,12 @@ public class NonTaggedNumericAddSubMulDivTypeComputer implements IResultTypeComp
case DATETIME: {
switch (tag2) {
case DATETIME:
- unionList.add(BuiltinType.ADURATION);
+ type = BuiltinType.ADURATION;
break;
case YEARMONTHDURATION:
case DAYTIMEDURATION:
case DURATION:
- unionList.add(BuiltinType.ADATETIME);
+ type = BuiltinType.ADATETIME;
break;
default: {
throw new NotImplementedException(errMsg + tag2);
@@ -282,13 +276,13 @@ public class NonTaggedNumericAddSubMulDivTypeComputer implements IResultTypeComp
case DURATION: {
switch (tag2) {
case DATE:
- unionList.add(BuiltinType.ADATE);
+ type = BuiltinType.ADATE;
break;
case TIME:
- unionList.add(BuiltinType.ATIME);
+ type = BuiltinType.ATIME;
break;
case DATETIME:
- unionList.add(BuiltinType.ADATETIME);
+ type = BuiltinType.ADATETIME;
break;
default: {
throw new NotImplementedException(errMsg + tag2);
@@ -299,16 +293,16 @@ public class NonTaggedNumericAddSubMulDivTypeComputer implements IResultTypeComp
case YEARMONTHDURATION: {
switch (tag2) {
case DATE:
- unionList.add(BuiltinType.ADATE);
+ type = BuiltinType.ADATE;
break;
case TIME:
- unionList.add(BuiltinType.ATIME);
+ type = BuiltinType.ATIME;
break;
case DATETIME:
- unionList.add(BuiltinType.ADATETIME);
+ type = BuiltinType.ADATETIME;
break;
case YEARMONTHDURATION:
- unionList.add(BuiltinType.AYEARMONTHDURATION);
+ type = BuiltinType.AYEARMONTHDURATION;
break;
default: {
throw new NotImplementedException(errMsg + tag2);
@@ -319,16 +313,16 @@ public class NonTaggedNumericAddSubMulDivTypeComputer implements IResultTypeComp
case DAYTIMEDURATION: {
switch (tag2) {
case DATE:
- unionList.add(BuiltinType.ADATE);
+ type = BuiltinType.ADATE;
break;
case TIME:
- unionList.add(BuiltinType.ATIME);
+ type = BuiltinType.ATIME;
break;
case DATETIME:
- unionList.add(BuiltinType.ADATETIME);
+ type = BuiltinType.ADATETIME;
break;
case DAYTIMEDURATION:
- unionList.add(BuiltinType.ADAYTIMEDURATION);
+ type = BuiltinType.ADAYTIMEDURATION;
break;
default: {
throw new NotImplementedException(errMsg + tag2);
@@ -340,6 +334,6 @@ public class NonTaggedNumericAddSubMulDivTypeComputer implements IResultTypeComp
throw new NotImplementedException(errMsg + tag1);
}
}
- return new AUnionType(unionList, "ArithemitcResult");
+ return AUnionType.createNullableType(type, "ArithemitcResult");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericAggTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericAggTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericAggTypeComputer.java
index f6eaf86..d565c59 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericAggTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericAggTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.types.ATypeTag;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -50,34 +47,31 @@ public class NonTaggedNumericAggTypeComputer implements IResultTypeComputer {
}
ATypeTag tag1;
- if (t1.getTypeTag() == ATypeTag.UNION && NonTaggedFormatUtil.isOptionalField((AUnionType) t1)) {
- tag1 = ((AUnionType) t1).getUnionList().get(AUnionType.OPTIONAL_TYPE_INDEX_IN_UNION_LIST)
- .getTypeTag();
+ if (NonTaggedFormatUtil.isOptional(t1)) {
+ tag1 = ((AUnionType) t1).getNullableType().getTypeTag();
} else {
tag1 = t1.getTypeTag();
}
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
-
+ IAType type;
switch (tag1) {
case DOUBLE:
- unionList.add(BuiltinType.ADOUBLE);
+ type = BuiltinType.ADOUBLE;
break;
case FLOAT:
- unionList.add(BuiltinType.AFLOAT);
+ type = BuiltinType.AFLOAT;
break;
case INT64:
- unionList.add(BuiltinType.AINT64);
+ type = BuiltinType.AINT64;
break;
case INT32:
- unionList.add(BuiltinType.AINT32);
+ type = BuiltinType.AINT32;
break;
case INT16:
- unionList.add(BuiltinType.AINT16);
+ type = BuiltinType.AINT16;
break;
case INT8:
- unionList.add(BuiltinType.AINT8);
+ type = BuiltinType.AINT8;
break;
case ANY:
return BuiltinType.ANY;
@@ -85,6 +79,6 @@ public class NonTaggedNumericAggTypeComputer implements IResultTypeComputer {
throw new NotImplementedException(errMsg + tag1);
}
}
- return new AUnionType(unionList, "SumResult");
+ return AUnionType.createNullableType(type, "SumResult");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericRoundHalfToEven2TypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericRoundHalfToEven2TypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericRoundHalfToEven2TypeComputer.java
index 7b611c3..300262d 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericRoundHalfToEven2TypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericRoundHalfToEven2TypeComputer.java
@@ -59,15 +59,13 @@ public class NonTaggedNumericRoundHalfToEven2TypeComputer implements IResultType
unionList.add(BuiltinType.ANULL);
ATypeTag tag1, tag2;
- if (t1.getTypeTag() == ATypeTag.UNION && NonTaggedFormatUtil.isOptionalField((AUnionType) t1))
- tag1 = ((AUnionType) t1).getUnionList().get(AUnionType.OPTIONAL_TYPE_INDEX_IN_UNION_LIST)
- .getTypeTag();
+ if (NonTaggedFormatUtil.isOptional(t1))
+ tag1 = ((AUnionType) t1).getNullableType().getTypeTag();
else
tag1 = t1.getTypeTag();
- if (t2.getTypeTag() == ATypeTag.UNION && NonTaggedFormatUtil.isOptionalField((AUnionType) t2))
- tag2 = ((AUnionType) t2).getUnionList().get(AUnionType.OPTIONAL_TYPE_INDEX_IN_UNION_LIST)
- .getTypeTag();
+ if (NonTaggedFormatUtil.isOptional(t2))
+ tag2 = ((AUnionType) t2).getNullableType().getTypeTag();
else
tag2 = t2.getTypeTag();
@@ -81,24 +79,25 @@ public class NonTaggedNumericRoundHalfToEven2TypeComputer implements IResultType
throw new AlgebricksException("Argument $precision cannot be type " + t2.getTypeName());
}
+ IAType type;
switch (tag1) {
case INT8:
- unionList.add(BuiltinType.AINT8);
+ type = BuiltinType.AINT8;
break;
case INT16:
- unionList.add(BuiltinType.AINT16);
+ type = BuiltinType.AINT16;
break;
case INT32:
- unionList.add(BuiltinType.AINT32);
+ type = BuiltinType.AINT32;
break;
case INT64:
- unionList.add(BuiltinType.AINT64);
+ type = BuiltinType.AINT64;
break;
case FLOAT:
- unionList.add(BuiltinType.AFLOAT);
+ type = BuiltinType.AFLOAT;
break;
case DOUBLE:
- unionList.add(BuiltinType.ADOUBLE);
+ type = BuiltinType.ADOUBLE;
break;
case NULL:
return BuiltinType.ANULL;
@@ -107,6 +106,6 @@ public class NonTaggedNumericRoundHalfToEven2TypeComputer implements IResultType
}
}
- return new AUnionType(unionList, "NumericFuncionsResult");
+ return AUnionType.createNullableType(type, "NumericFuncionsResult");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericUnaryFunctionTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericUnaryFunctionTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericUnaryFunctionTypeComputer.java
index 947dd75..7322b7e 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericUnaryFunctionTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedNumericUnaryFunctionTypeComputer.java
@@ -19,11 +19,7 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
-import edu.uci.ics.asterix.om.types.ATypeTag;
import edu.uci.ics.asterix.om.types.AUnionType;
import edu.uci.ics.asterix.om.types.BuiltinType;
import edu.uci.ics.asterix.om.types.IAType;
@@ -53,32 +49,30 @@ public class NonTaggedNumericUnaryFunctionTypeComputer implements IResultTypeCom
ILogicalExpression arg1 = fce.getArguments().get(0).getValue();
IAType t = (IAType) env.getType(arg1);
- ATypeTag tag = t.getTypeTag();
- if (tag == ATypeTag.UNION && NonTaggedFormatUtil.isOptionalField((AUnionType) env.getType(arg1))) {
+ if (NonTaggedFormatUtil.isOptional(t)) {
return (IAType) env.getType(arg1);
}
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- switch (tag) {
+ IAType type;
+ switch (t.getTypeTag()) {
case INT8:
- unionList.add(BuiltinType.AINT8);
+ type = BuiltinType.AINT8;
break;
case INT16:
- unionList.add(BuiltinType.AINT16);
+ type = BuiltinType.AINT16;
break;
case INT32:
- unionList.add(BuiltinType.AINT32);
+ type = BuiltinType.AINT32;
break;
case INT64:
- unionList.add(BuiltinType.AINT64);
+ type = BuiltinType.AINT64;
break;
case FLOAT:
- unionList.add(BuiltinType.AFLOAT);
+ type = BuiltinType.AFLOAT;
break;
case DOUBLE:
- unionList.add(BuiltinType.ADOUBLE);
+ type = BuiltinType.ADOUBLE;
break;
case NULL:
return BuiltinType.ANULL;
@@ -89,6 +83,6 @@ public class NonTaggedNumericUnaryFunctionTypeComputer implements IResultTypeCom
}
}
- return new AUnionType(unionList, "NumericUnaryFuncionsResult");
+ return AUnionType.createNullableType(type, "NumericUnaryFuncionsResult");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedUnaryMinusTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedUnaryMinusTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedUnaryMinusTypeComputer.java
index 4262325..20980ba 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedUnaryMinusTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/NonTaggedUnaryMinusTypeComputer.java
@@ -14,13 +14,8 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
-import edu.uci.ics.asterix.om.types.ATypeTag;
import edu.uci.ics.asterix.om.types.AUnionType;
-import edu.uci.ics.asterix.om.types.BuiltinType;
import edu.uci.ics.asterix.om.types.IAType;
import edu.uci.ics.asterix.om.util.NonTaggedFormatUtil;
import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
@@ -41,13 +36,9 @@ public class NonTaggedUnaryMinusTypeComputer implements IResultTypeComputer {
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
AbstractFunctionCallExpression fce = (AbstractFunctionCallExpression) expression;
ILogicalExpression arg1 = fce.getArguments().get(0).getValue();
- if (((IAType) env.getType(arg1)).getTypeTag() == ATypeTag.UNION
- && NonTaggedFormatUtil.isOptionalField((AUnionType) env.getType(arg1)))
- return (IAType) env.getType(arg1);
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add((IAType) env.getType(arg1));
- return new AUnionType(unionList, "UnaryMinusResult");
+ IAType envType = (IAType) env.getType(arg1);
+ if (NonTaggedFormatUtil.isOptional(envType))
+ return envType;
+ return AUnionType.createNullableType(envType, "UnaryMinusResult");
}
-
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalABinaryTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalABinaryTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalABinaryTypeComputer.java
index 68e9b63..6595950 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalABinaryTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalABinaryTypeComputer.java
@@ -25,23 +25,18 @@ import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
-import java.util.ArrayList;
-import java.util.List;
-
public class OptionalABinaryTypeComputer implements IResultTypeComputer {
public static final OptionalABinaryTypeComputer INSTANCE = new OptionalABinaryTypeComputer();
- private OptionalABinaryTypeComputer(){
+ private OptionalABinaryTypeComputer() {
}
- @Override public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
+ @Override
+ public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.ABINARY);
- return new AUnionType(unionList, "OptionalBinary");
+ return AUnionType.createNullableType(BuiltinType.ABINARY, "OptionalBinary");
} else {
return BuiltinType.ABINARY;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalABooleanTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalABooleanTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalABooleanTypeComputer.java
index 043ed08..9d47af3 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalABooleanTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalABooleanTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -38,10 +35,7 @@ public class OptionalABooleanTypeComputer implements IResultTypeComputer {
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.ABOOLEAN);
- return new AUnionType(unionList, "OptionalBoolean");
+ return AUnionType.createNullableType(BuiltinType.ABOOLEAN, "OptionalBoolean");
} else {
return BuiltinType.ABOOLEAN;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalACircleTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalACircleTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalACircleTypeComputer.java
index c50c6ca..0cee42b 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalACircleTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalACircleTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -38,10 +35,7 @@ public class OptionalACircleTypeComputer implements IResultTypeComputer {
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.ACIRCLE);
- return new AUnionType(unionList, "OptionalCircle");
+ return AUnionType.createNullableType(BuiltinType.ACIRCLE, "OptionalCircle");
} else {
return BuiltinType.ACIRCLE;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADateTimeTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADateTimeTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADateTimeTypeComputer.java
index e38ba14..ff382d2 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADateTimeTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADateTimeTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -38,10 +35,7 @@ public class OptionalADateTimeTypeComputer implements IResultTypeComputer {
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.ADATETIME);
- return new AUnionType(unionList, "OptionalDatetime");
+ return AUnionType.createNullableType(BuiltinType.ADATETIME, "OptionalDatetime");
} else {
return BuiltinType.ADATETIME;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADateTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADateTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADateTypeComputer.java
index f1b797d..5f3cdff 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADateTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADateTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -38,10 +35,7 @@ public class OptionalADateTypeComputer implements IResultTypeComputer {
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.ADATE);
- return new AUnionType(unionList, "OptionalDate");
+ return AUnionType.createNullableType(BuiltinType.ADATE, "OptionalDate");
} else {
return BuiltinType.ADATE;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADayTimeDurationTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADayTimeDurationTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADayTimeDurationTypeComputer.java
index 49e737d..b3fc158 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADayTimeDurationTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADayTimeDurationTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -42,10 +39,7 @@ public class OptionalADayTimeDurationTypeComputer implements IResultTypeComputer
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.ADAYTIMEDURATION);
- return new AUnionType(unionList, "OptionalDayTimeDuration");
+ return AUnionType.createNullableType(BuiltinType.ADAYTIMEDURATION, "OptionalDayTimeDuration");
} else {
return BuiltinType.ADAYTIMEDURATION;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADoubleTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADoubleTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADoubleTypeComputer.java
index 1a20a5c..544a0d8 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADoubleTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADoubleTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -38,10 +35,7 @@ public class OptionalADoubleTypeComputer implements IResultTypeComputer {
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.ADOUBLE);
- return new AUnionType(unionList, "OptionalDouble");
+ return AUnionType.createNullableType(BuiltinType.ADOUBLE, "OptionalDouble");
} else {
return BuiltinType.ADOUBLE;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADurationTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADurationTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADurationTypeComputer.java
index b8b6171..0427786 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADurationTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalADurationTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -38,10 +35,7 @@ public class OptionalADurationTypeComputer implements IResultTypeComputer {
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.ADURATION);
- return new AUnionType(unionList, "OptionalDuration");
+ return AUnionType.createNullableType(BuiltinType.ADURATION, "OptionalDuration");
} else {
return BuiltinType.ADURATION;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAFloatTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAFloatTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAFloatTypeComputer.java
index 517bee6..1f8b801 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAFloatTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAFloatTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -38,10 +35,7 @@ public class OptionalAFloatTypeComputer implements IResultTypeComputer {
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.AFLOAT);
- return new AUnionType(unionList, "OptionalFloat");
+ return AUnionType.createNullableType(BuiltinType.AFLOAT, "OptionalFloat");
} else {
return BuiltinType.AFLOAT;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt16TypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt16TypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt16TypeComputer.java
index ee9c6da..9a6249c 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt16TypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt16TypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -38,10 +35,7 @@ public class OptionalAInt16TypeComputer implements IResultTypeComputer {
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.AINT16);
- return new AUnionType(unionList, "OptionalInt16");
+ return AUnionType.createNullableType(BuiltinType.AINT16, "OptionalInt16");
} else {
return BuiltinType.AINT16;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt32TypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt32TypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt32TypeComputer.java
index e93e436..71af56c 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt32TypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt32TypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -38,10 +35,7 @@ public class OptionalAInt32TypeComputer implements IResultTypeComputer {
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.AINT32);
- return new AUnionType(unionList, "OptionalInt32");
+ return AUnionType.createNullableType(BuiltinType.AINT32, "OptionalInt32");
} else {
return BuiltinType.AINT32;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt64TypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt64TypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt64TypeComputer.java
index 180e746..bb7f2e6 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt64TypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt64TypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -38,10 +35,7 @@ public class OptionalAInt64TypeComputer implements IResultTypeComputer {
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.AINT64);
- return new AUnionType(unionList, "OptionalInt64");
+ return AUnionType.createNullableType(BuiltinType.AINT64, "OptionalInt64");
} else {
return BuiltinType.AINT64;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt8TypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt8TypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt8TypeComputer.java
index a28311d..19c21a1 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt8TypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAInt8TypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -38,10 +35,7 @@ public class OptionalAInt8TypeComputer implements IResultTypeComputer {
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.AINT8);
- return new AUnionType(unionList, "OptionalInt8");
+ return AUnionType.createNullableType(BuiltinType.AINT8, "OptionalInt8");
} else {
return BuiltinType.AINT8;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAIntervalTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAIntervalTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAIntervalTypeComputer.java
index f523b5d..0ef1503 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAIntervalTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAIntervalTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -38,10 +35,7 @@ public class OptionalAIntervalTypeComputer implements IResultTypeComputer {
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.AINTERVAL);
- return new AUnionType(unionList, "OptionalInterval");
+ return AUnionType.createNullableType(BuiltinType.AINTERVAL, "OptionalInterval");
} else {
return BuiltinType.AINTERVAL;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalALineTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalALineTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalALineTypeComputer.java
index 004eb6d..28bd634 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalALineTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalALineTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -38,10 +35,7 @@ public class OptionalALineTypeComputer implements IResultTypeComputer {
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.ALINE);
- return new AUnionType(unionList, "OptionalLine");
+ return AUnionType.createNullableType(BuiltinType.ALINE, "OptionalLine");
} else {
return BuiltinType.ALINE;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAPoint3DTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAPoint3DTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAPoint3DTypeComputer.java
index d5e65ad..d1f5d4a 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAPoint3DTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAPoint3DTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -38,10 +35,7 @@ public class OptionalAPoint3DTypeComputer implements IResultTypeComputer {
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.APOINT3D);
- return new AUnionType(unionList, "OptionalPoint3d");
+ return AUnionType.createNullableType(BuiltinType.APOINT3D, "OptionalPoint3d");
} else {
return BuiltinType.APOINT3D;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAPointTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAPointTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAPointTypeComputer.java
index d545c43..21a5c0e 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAPointTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAPointTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -38,10 +35,7 @@ public class OptionalAPointTypeComputer implements IResultTypeComputer {
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.APOINT);
- return new AUnionType(unionList, "OptionalPoint");
+ return AUnionType.createNullableType(BuiltinType.APOINT, "OptionalPoint");
} else {
return BuiltinType.APOINT;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAPolygonTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAPolygonTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAPolygonTypeComputer.java
index 2744be0..4628c72 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAPolygonTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAPolygonTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -38,10 +35,7 @@ public class OptionalAPolygonTypeComputer implements IResultTypeComputer {
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.APOLYGON);
- return new AUnionType(unionList, "OptionalPolygon");
+ return AUnionType.createNullableType(BuiltinType.APOLYGON, "OptionalPolygon");
} else {
return BuiltinType.APOLYGON;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalARectangleTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalARectangleTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalARectangleTypeComputer.java
index 87006f1..1d8a08f 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalARectangleTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalARectangleTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -38,10 +35,7 @@ public class OptionalARectangleTypeComputer implements IResultTypeComputer {
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.ARECTANGLE);
- return new AUnionType(unionList, "OptionalRectangle");
+ return AUnionType.createNullableType(BuiltinType.ARECTANGLE, "OptionalRectangle");
} else {
return BuiltinType.ARECTANGLE;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAStringTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAStringTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAStringTypeComputer.java
index 2085df4..0356234 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAStringTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAStringTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -38,10 +35,7 @@ public class OptionalAStringTypeComputer implements IResultTypeComputer {
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.ASTRING);
- return new AUnionType(unionList, "OptionalString");
+ return AUnionType.createNullableType(BuiltinType.ASTRING, "OptionalString");
} else {
return BuiltinType.ASTRING;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalATimeTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalATimeTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalATimeTypeComputer.java
index 87aba10..e5bfd2a 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalATimeTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalATimeTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -38,10 +35,7 @@ public class OptionalATimeTypeComputer implements IResultTypeComputer {
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.ATIME);
- return new AUnionType(unionList, "OptionalTime");
+ return AUnionType.createNullableType(BuiltinType.ATIME, "OptionalTime");
} else {
return BuiltinType.ATIME;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAYearMonthDurationTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAYearMonthDurationTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAYearMonthDurationTypeComputer.java
index e25c4f4..532b9eb 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAYearMonthDurationTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OptionalAYearMonthDurationTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -42,10 +39,7 @@ public class OptionalAYearMonthDurationTypeComputer implements IResultTypeComput
public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
if (TypeComputerUtilities.inputInferednullableType(expression, env)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.AYEARMONTHDURATION);
- return new AUnionType(unionList, "OptionalYearMonthDuration");
+ return AUnionType.createNullableType(BuiltinType.AYEARMONTHDURATION, "OptionalYearMonthDuration");
} else {
return BuiltinType.AYEARMONTHDURATION;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OrderedListConstructorResultType.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OrderedListConstructorResultType.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OrderedListConstructorResultType.java
index fc1b564..63d9c98 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OrderedListConstructorResultType.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/OrderedListConstructorResultType.java
@@ -20,7 +20,6 @@ import java.util.ArrayList;
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.typecomputer.base.TypeComputerUtilities;
import edu.uci.ics.asterix.om.types.AOrderedListType;
-import edu.uci.ics.asterix.om.types.ATypeTag;
import edu.uci.ics.asterix.om.types.AUnionType;
import edu.uci.ics.asterix.om.types.BuiltinType;
import edu.uci.ics.asterix.om.types.IAType;
@@ -50,8 +49,8 @@ public class OrderedListConstructorResultType implements IResultTypeComputer {
ArrayList<IAType> types = new ArrayList<IAType>();
for (int k = 0; k < f.getArguments().size(); k++) {
IAType type = (IAType) env.getType(f.getArguments().get(k).getValue());
- if (type.getTypeTag() == ATypeTag.UNION && NonTaggedFormatUtil.isOptionalField((AUnionType) type))
- type = ((AUnionType) type).getUnionList().get(AUnionType.OPTIONAL_TYPE_INDEX_IN_UNION_LIST);
+ if (NonTaggedFormatUtil.isOptional(type))
+ type = ((AUnionType) type).getNullableType();
if (types.indexOf(type) < 0) {
types.add(type);
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/RecordMergeTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/RecordMergeTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/RecordMergeTypeComputer.java
index 2a83e9c..d0316ed 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/RecordMergeTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/RecordMergeTypeComputer.java
@@ -50,7 +50,7 @@ public class RecordMergeTypeComputer implements IResultTypeComputer {
}
if (t.getTypeTag() == ATypeTag.UNION) {
- IAType innerType = ((AUnionType) t).getUnionList().get(1);
+ IAType innerType = ((AUnionType) t).getNullableType();
if (innerType.getTypeTag() == ATypeTag.RECORD) {
return (ARecordType) innerType;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/Substring2TypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/Substring2TypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/Substring2TypeComputer.java
index 29454ed..82be700 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/Substring2TypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/Substring2TypeComputer.java
@@ -46,15 +46,13 @@ public class Substring2TypeComputer implements IResultTypeComputer {
}
ATypeTag tag0, tag1;
- if (t0.getTypeTag() == ATypeTag.UNION && NonTaggedFormatUtil.isOptionalField((AUnionType) t0))
- tag0 = ((AUnionType) t0).getUnionList().get(AUnionType.OPTIONAL_TYPE_INDEX_IN_UNION_LIST)
- .getTypeTag();
+ if (NonTaggedFormatUtil.isOptional(t0))
+ tag0 = ((AUnionType) t0).getNullableType().getTypeTag();
else
tag0 = t0.getTypeTag();
- if (t1.getTypeTag() == ATypeTag.UNION && NonTaggedFormatUtil.isOptionalField((AUnionType) t1))
- tag1 = ((AUnionType) t1).getUnionList().get(AUnionType.OPTIONAL_TYPE_INDEX_IN_UNION_LIST)
- .getTypeTag();
+ if (NonTaggedFormatUtil.isOptional(t1))
+ tag1 = ((AUnionType) t1).getNullableType().getTypeTag();
else
tag1 = t1.getTypeTag();
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/SubstringTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/SubstringTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/SubstringTypeComputer.java
index ef080ec..80dea97 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/SubstringTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/SubstringTypeComputer.java
@@ -48,21 +48,18 @@ public class SubstringTypeComputer implements IResultTypeComputer {
}
ATypeTag tag0, tag1, tag2;
- if (t0.getTypeTag() == ATypeTag.UNION && NonTaggedFormatUtil.isOptionalField((AUnionType) t0))
- tag0 = ((AUnionType) t0).getUnionList().get(AUnionType.OPTIONAL_TYPE_INDEX_IN_UNION_LIST)
- .getTypeTag();
+ if (NonTaggedFormatUtil.isOptional(t0))
+ tag0 = ((AUnionType) t0).getNullableType().getTypeTag();
else
tag0 = t0.getTypeTag();
- if (t1.getTypeTag() == ATypeTag.UNION && NonTaggedFormatUtil.isOptionalField((AUnionType) t1))
- tag1 = ((AUnionType) t1).getUnionList().get(AUnionType.OPTIONAL_TYPE_INDEX_IN_UNION_LIST)
- .getTypeTag();
+ if (NonTaggedFormatUtil.isOptional(t1))
+ tag1 = ((AUnionType) t1).getNullableType().getTypeTag();
else
tag1 = t1.getTypeTag();
- if (t2.getTypeTag() == ATypeTag.UNION && NonTaggedFormatUtil.isOptionalField((AUnionType) t2))
- tag2 = ((AUnionType) t2).getUnionList().get(AUnionType.OPTIONAL_TYPE_INDEX_IN_UNION_LIST)
- .getTypeTag();
+ if (NonTaggedFormatUtil.isOptional(t2))
+ tag2 = ((AUnionType) t2).getNullableType().getTypeTag();
else
tag2 = t2.getTypeTag();
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/UnaryBinaryInt64OrNullTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/UnaryBinaryInt64OrNullTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/UnaryBinaryInt64OrNullTypeComputer.java
index 0855ddb..5d2fd42 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/UnaryBinaryInt64OrNullTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/UnaryBinaryInt64OrNullTypeComputer.java
@@ -27,9 +27,6 @@ import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AbstractFunctionC
import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
-import java.util.ArrayList;
-import java.util.List;
-
public class UnaryBinaryInt64OrNullTypeComputer implements IResultTypeComputer {
public static final UnaryBinaryInt64OrNullTypeComputer INSTANCE = new UnaryBinaryInt64OrNullTypeComputer();
@@ -37,7 +34,8 @@ public class UnaryBinaryInt64OrNullTypeComputer implements IResultTypeComputer {
}
- @Override public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
+ @Override
+ public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env,
IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
AbstractFunctionCallExpression fce = (AbstractFunctionCallExpression) expression;
if (fce.getArguments().size() != 1) {
@@ -49,21 +47,17 @@ public class UnaryBinaryInt64OrNullTypeComputer implements IResultTypeComputer {
if (t0.getTypeTag() != ATypeTag.NULL
&& t0.getTypeTag() != ATypeTag.BINARY
&& (t0.getTypeTag() == ATypeTag.UNION && !((AUnionType) t0).getUnionList()
- .contains(BuiltinType.ABINARY))) {
+ .contains(BuiltinType.ABINARY))) {
throw new NotImplementedException("Expects Binary Type.");
}
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
if (t0.getTypeTag() == ATypeTag.NULL) {
return BuiltinType.ANULL;
}
if (t0.getTypeTag() == ATypeTag.BINARY || t0.getTypeTag().equals(ATypeTag.UNION)) {
- unionList.add(BuiltinType.AINT64);
+ return AUnionType.createNullableType(BuiltinType.AINT64, "binary-length-Result");
}
-
- return new AUnionType(unionList, "binary-length-Result");
-
+ throw new AlgebricksException("Cannot compute type");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/UnaryBooleanOrNullFunctionTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/UnaryBooleanOrNullFunctionTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/UnaryBooleanOrNullFunctionTypeComputer.java
index 8050bb4..a0804d8 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/UnaryBooleanOrNullFunctionTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/UnaryBooleanOrNullFunctionTypeComputer.java
@@ -14,9 +14,6 @@
*/
package edu.uci.ics.asterix.om.typecomputer.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import edu.uci.ics.asterix.om.typecomputer.base.IResultTypeComputer;
import edu.uci.ics.asterix.om.types.ATypeTag;
import edu.uci.ics.asterix.om.types.AUnionType;
@@ -51,10 +48,7 @@ public class UnaryBooleanOrNullFunctionTypeComputer implements IResultTypeComput
return BuiltinType.ANULL;
}
if (TypeHelper.canBeNull(t0)) {
- List<IAType> unionList = new ArrayList<IAType>();
- unionList.add(BuiltinType.ANULL);
- unionList.add(BuiltinType.ABOOLEAN);
- return new AUnionType(unionList, "OptionalBoolean");
+ return AUnionType.createNullableType(BuiltinType.ABOOLEAN, "OptionalBoolean");
}
return BuiltinType.ABOOLEAN;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/a5895308/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/UnaryStringInt64OrNullTypeComputer.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/UnaryStringInt64OrNullTypeComputer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/UnaryStringInt64OrNullTypeComputer.java
index ef24315..f148242 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/UnaryStringInt64OrNullTypeComputer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/typecomputer/impl/UnaryStringInt64OrNullTypeComputer.java
@@ -66,9 +66,9 @@ public class UnaryStringInt64OrNullTypeComputer implements IResultTypeComputer {
}
if (t0.getTypeTag() == ATypeTag.STRING || t0.getTypeTag().equals(ATypeTag.UNION)) {
- unionList.add(BuiltinType.AINT64);
+ return AUnionType.createNullableType(BuiltinType.AINT64, "String-length-Result");
}
- return new AUnionType(unionList, "String-length-Result");
+ throw new AlgebricksException("Cannot compute type");
}
}