fix an issue in record casting with optional fields
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/pointables/cast/ARecordCaster.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/pointables/cast/ARecordCaster.java
index 34638c8..507b845 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/pointables/cast/ARecordCaster.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/pointables/cast/ARecordCaster.java
@@ -278,8 +278,7 @@
// recursively casting, the result of casting can always be thought
// as flat
if (optionalFields[i]) {
- if (fieldTypeTags.size() <= i || fieldTypeTags.get(i) == null
- || fieldTypeTags.get(i).equals(nullTypeTag)) {
+ if (pos == -1 || fieldTypeTags.get(pos) == null || fieldTypeTags.get(pos).equals(nullTypeTag)) {
//the field is optional in the input record
nestedVisitorArg.second = ((AUnionType) fType).getUnionList().get(0);
} else {