Till Westmann has uploaded a new change for review.
https://asterix-gerrit.ics.uci.edu/916
Change subject: less code
......................................................................
less code
Change-Id: I179a16fc183bd50d5d58cc12321234df1615abfd
---
M
asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
M
asterixdb/asterix-om/src/main/java/org/apache/asterix/om/pointables/ARecordVisitablePointable.java
M
asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/RecordRemoveFieldsTypeComputer.java
3 files changed, 18 insertions(+), 35 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/16/916/1
diff --git
a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
index c922054..b155895 100644
---
a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
+++
b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
@@ -230,39 +230,24 @@
if (serRecord[0 + offset] == ATypeTag.RECORD.serialize()) {
// 5 is the index of the byte that determines whether the
record
// is expanded or not, i.e. it has an open part.
- if (serRecord[5 + offset] == 1) { // true
- if (nullBitmapSize > 0) {
- // 14 = tag (1) + record Size (4) + isExpanded (1) +
- // offset of openPart (4) + number of closed fields (4)
- int pos = 14 + offset + fieldId / 4;
- if ((serRecord[pos] & nullTestCode) == 0) {
- // the field value is null
- return 0;
- }
- if ((serRecord[pos] & missingTestCode) == 0) {
- // the field value is missing
- return -1;
- }
+ // 14 = tag (1) + record Size (4) + isExpanded (1) +
+ // offset of openPart (4) + number of closed fields (4)
+ // 10 = tag (1) + record Size (4) + isExpanded (1) +
+ // number of closed fields (4)
+ final int baseOffset = (serRecord[5 + offset] == 1) ? 14 : 10;
+ if (nullBitmapSize > 0) {
+ final byte flagsForField = serRecord[baseOffset + offset +
fieldId / 4];
+ if ((flagsForField & nullTestCode) == 0) {
+ // the field value is null
+ return 0;
}
- return offset +
AInt32SerializerDeserializer.getInt(serRecord,
- 14 + offset + nullBitmapSize + (4 * fieldId));
- } else {
- if (nullBitmapSize > 0) {
- // 9 = tag (1) + record Size (4) + isExpanded (1) +
- // number of closed fields (4)
- int pos = 10 + offset + fieldId / 4;
- if ((serRecord[pos] & nullTestCode) == 0) {
- // the field value is null
- return 0;
- }
- if ((serRecord[pos] & missingTestCode) == 0) {
- // the field value is missing
- return -1;
- }
+ if ((flagsForField & missingTestCode) == 0) {
+ // the field value is missing
+ return -1;
}
- return offset +
AInt32SerializerDeserializer.getInt(serRecord,
- 10 + offset + nullBitmapSize + (4 * fieldId));
}
+ return offset + AInt32SerializerDeserializer.getInt(serRecord,
+ baseOffset + offset + nullBitmapSize + (4 * fieldId));
} else {
return -1;
}
diff --git
a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/pointables/ARecordVisitablePointable.java
b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/pointables/ARecordVisitablePointable.java
index 68fff2f..78e7306 100644
---
a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/pointables/ARecordVisitablePointable.java
+++
b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/pointables/ARecordVisitablePointable.java
@@ -65,8 +65,6 @@
private final PointableAllocator allocator = new PointableAllocator();
private final ResettableByteArrayOutputStream typeBos = new
ResettableByteArrayOutputStream();
- private final DataOutputStream typeDos = new DataOutputStream(typeBos);
- private final UTF8StringWriter utf8Writer = new UTF8StringWriter();
private final ResettableByteArrayOutputStream dataBos = new
ResettableByteArrayOutputStream();
private final DataOutputStream dataDos = new DataOutputStream(dataBos);
@@ -95,8 +93,9 @@
// initialize the buffer for closed parts(fieldName bytes+ type bytes)
+
// constant(null bytes)
- typeBos.reset();
try {
+ final DataOutputStream typeDos = new DataOutputStream(typeBos);
+ final UTF8StringWriter utf8Writer = new UTF8StringWriter();
for (int i = 0; i < numberOfSchemaFields; i++) {
ATypeTag ftypeTag = fieldTypes[i].getTypeTag();
diff --git
a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/RecordRemoveFieldsTypeComputer.java
b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/RecordRemoveFieldsTypeComputer.java
index ec29857..7c58301 100644
---
a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/RecordRemoveFieldsTypeComputer.java
+++
b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/RecordRemoveFieldsTypeComputer.java
@@ -328,8 +328,7 @@
case ANY:
return DefaultOpenFieldType.NESTED_OPEN_RECORD_TYPE;
case UNION:
- AUnionType u = (AUnionType) type0;
- IAType t1 = u.getActualType();
+ IAType t1 = ((AUnionType) type0).getActualType();
if (t1.getTypeTag() == ATypeTag.RECORD) {
return (ARecordType) t1;
} else if (t1.getTypeTag() == ATypeTag.ANY) {
--
To view, visit https://asterix-gerrit.ics.uci.edu/916
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I179a16fc183bd50d5d58cc12321234df1615abfd
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Till Westmann <[email protected]>