GitHub user dsbos opened a pull request:
https://github.com/apache/drill/pull/245
DRILL-2288: Fix ScanBatch violation of IterOutcome protocol and downstream
chain of bugs
Increments:
2288: Pt. 1 Core: Added unit test.
[Drill2288GetColumnsMetadataWhenNoRowsTest, empty.json]
2288: Pt. 1 Core: Changed HBase test table #1's # of regions from 1 to 2.
[HBaseTestsSuite]
Also added TODO(DRILL-3954) comment about # of regions.
2288: Pt. 2 Core: Documented IterOutcome much more clearly. [RecordBatch]
Also edited some related Javadoc.
2288: Pt. 2 Hyg.: Edited doc., added @Override, etc.
[AbstractRecordBatch, RecordBatch]
Purged unused SetupOutcome.
Added @Override.
Edited comments.
Fix some comments to doc. comments.
2288: Pt. 3 Core&Hyg.: Added validation of IterOutcome sequence.
[IteratorValidatorBatchIterator]
Also:
Renamed internal members for clarity.
Added comments.
2288: Pt. 4 Core: Fixed a NONE -> OK_NEW_SCHEMA in ScanBatch.next().
[ScanBatch]
(With nearby comments.)
2288: Pt. 4 Hyg.: Edited comments, reordered, whitespace. [ScanBatch]
Reordered
Added comments.
Aligned.
2288: Pt. 4 Core+: Fixed UnionAllRecordBatch to receive IterOutcome
sequence right. (3659) [UnionAllRecordBatch]
2288: Pt. 5 Core: Fixed ScanBatch.Mutator.isNewSchema() to stop spurious
"new schema" reports (fix short-circuit OR, to call resetting method right).
[ScanBatch]
2288: Pt. 5 Hyg.: Renamed, edited comments, reordered. [ScanBatch,
SchemaChangeCallBack, AbstractSingleRecordBatch]
Renamed getSchemaChange -> getSchemaChangedAndReset.
Renamed schemaChange -> schemaChanged.
Added doc. comments.
Aligned.
2288: Pt. 6 Core: Avoided dummy Null.IntVec. column in JsonReader when
not needed (MapWriter.isEmptyMap()). [JsonReader, 3 vector files]
2288: Pt. 6 Hyg.: Edited comments, message. Fixed message formatting.
[RecordReader, JSONFormatPlugin, JSONRecordReader, AbstractMapVector,
JsonReader]
Fixed message formatting.
Edited comments.
Edited message.
Fixed spurious line break.
2288: Pt. 7 Core: Added column families in HBaseRecordReader* to avoid
dummy Null.IntVec. clash. [HBaseRecordReader]
2288: Pt. 8 Core.1: Cleared recordCount in
OrderedPartitionRecordBatch.innerNext(). [OrderedPartitionRecordBatch]
2288: Pt. 8 Core.2: Cleared recordCount in ProjectRecordBatch.innerNext.
[ProjectRecordBatch]
2288: Pt. 8 Core.3: Cleared recordCount in TopNBatch.innerNext.
[TopNBatch]
2288: Pt. 9 Core: Had UnorderedReceiverBatch reset RecordBatchLoader's
record count. [UnorderedReceiverBatch, RecordBatchLoader]
2288: Pt. 9 Hyg.: Added comments. [RecordBatchLoader]
2288: Pt. 10 Core: Worked around mismatched map child vectors in
MapVector.getObject(). [MapVector]
2288: Pt. 11 Core: Added OK_NEW_SCHEMA schema comparison for HashAgg.
[HashAggTemplate]
2288: Pt. 12 Core: Fixed memory leak in BaseTestQuery's printing.
Fixed bad skipping of RecordBatchLoader.clear(...) and
QueryDataBatch.load(...) for zero-row batches in printResult(...).
Also, dropped suppression of call to
VectorUtil.showVectorAccessibleContent(...) (so zero-row batches are
as visible as others).
2288: Pt. 13 Core: Fixed test that used unhandled periods in column alias
identifiers.
2288: Misc.: Added # of rows to showVectorAccessibleContent's output.
[VectorUtil]
2288: Misc.: Added simple/partial toString() [VectorContainer,
AbstractRecordReader, JSONRecordReader, BaseValueVector, FieldSelection,
AbstractBaseWriter]
2288: Misc. Hyg.: Added doc. comments to VectorContainer.
[VectorContainer]
2288: Misc. Hyg.: Edited comment. [DrillStringUtils]
2288: Misc. Hyg.: Clarified message for unhandled identifier containing
period.
2288: Pt. 3 Core&Hyg. Upd.: Added schema comparison result to logging.
[IteratorValidatorBatchIterator]
2288: Pt. 7 Core Upd.: Handled HBase columns too re NullableIntVectors.
[HBaseRecordReader, TestTableGenerator, TestHBaseFilterPushDown]
Created map-child vectors for requested columns.
Added unit test method testDummyColumnsAreAvoided, adding new row to test
table,
updated some row counts.
2288: Pt. 7 Hyg. Upd.: Edited comment. [HBaseRecordReader]
2288: Pt. 11 Core Upd.: REVERTED all of bad OK_NEW_SCHEMA schema
comparison for HashAgg. [HashAggTemplate]
This reverts commit 0939660f4620c03da97f4e1bf25a27514e6d0b81.
2288: Pt. 6 Core Upd.: Added isEmptyMap override in new (just-rebased-in)
PromotableWriter. [PromotableWriter]
Adjusted definition and default implementation of isEmptyMap (to handle
MongoDB
storage plugin's use of JsonReader).
2288: Pt. 6 Hyg. Upd.: Purged old atLeastOneWrite flag. [JsonReader]
2288: Pt. 14: Disabled newly dying test testNestedFlatten().
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/dsbos/incubator-drill
bugs/drill-2288_etc_SQUASHED
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/drill/pull/245.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #245
----
commit 3d39f7aa3a991b3c9d1d3a7646cc2a9f144005b0
Author: dbarclay <[email protected]>
Date: 2015-10-28T02:25:25Z
DRILL-2288: Fix ScanBatch violation of IterOutcome protocol and downstream
chain of bugs.
Increments:
2288: Pt. 1 Core: Added unit test.
[Drill2288GetColumnsMetadataWhenNoRowsTest, empty.json]
2288: Pt. 1 Core: Changed HBase test table #1's # of regions from 1 to 2.
[HBaseTestsSuite]
Also added TODO(DRILL-3954) comment about # of regions.
2288: Pt. 2 Core: Documented IterOutcome much more clearly. [RecordBatch]
Also edited some related Javadoc.
2288: Pt. 2 Hyg.: Edited doc., added @Override, etc.
[AbstractRecordBatch, RecordBatch]
Purged unused SetupOutcome.
Added @Override.
Edited comments.
Fix some comments to doc. comments.
2288: Pt. 3 Core&Hyg.: Added validation of IterOutcome sequence.
[IteratorValidatorBatchIterator]
Also:
Renamed internal members for clarity.
Added comments.
2288: Pt. 4 Core: Fixed a NONE -> OK_NEW_SCHEMA in ScanBatch.next().
[ScanBatch]
(With nearby comments.)
2288: Pt. 4 Hyg.: Edited comments, reordered, whitespace. [ScanBatch]
Reordered
Added comments.
Aligned.
2288: Pt. 4 Core+: Fixed UnionAllRecordBatch to receive IterOutcome
sequence right. (3659) [UnionAllRecordBatch]
2288: Pt. 5 Core: Fixed ScanBatch.Mutator.isNewSchema() to stop spurious
"new schema" reports (fix short-circuit OR, to call resetting method right).
[ScanBatch]
2288: Pt. 5 Hyg.: Renamed, edited comments, reordered. [ScanBatch,
SchemaChangeCallBack, AbstractSingleRecordBatch]
Renamed getSchemaChange -> getSchemaChangedAndReset.
Renamed schemaChange -> schemaChanged.
Added doc. comments.
Aligned.
2288: Pt. 6 Core: Avoided dummy Null.IntVec. column in JsonReader when
not needed (MapWriter.isEmptyMap()). [JsonReader, 3 vector files]
2288: Pt. 6 Hyg.: Edited comments, message. Fixed message formatting.
[RecordReader, JSONFormatPlugin, JSONRecordReader, AbstractMapVector,
JsonReader]
Fixed message formatting.
Edited comments.
Edited message.
Fixed spurious line break.
2288: Pt. 7 Core: Added column families in HBaseRecordReader* to avoid
dummy Null.IntVec. clash. [HBaseRecordReader]
2288: Pt. 8 Core.1: Cleared recordCount in
OrderedPartitionRecordBatch.innerNext(). [OrderedPartitionRecordBatch]
2288: Pt. 8 Core.2: Cleared recordCount in ProjectRecordBatch.innerNext.
[ProjectRecordBatch]
2288: Pt. 8 Core.3: Cleared recordCount in TopNBatch.innerNext.
[TopNBatch]
2288: Pt. 9 Core: Had UnorderedReceiverBatch reset RecordBatchLoader's
record count. [UnorderedReceiverBatch, RecordBatchLoader]
2288: Pt. 9 Hyg.: Added comments. [RecordBatchLoader]
2288: Pt. 10 Core: Worked around mismatched map child vectors in
MapVector.getObject(). [MapVector]
2288: Pt. 11 Core: Added OK_NEW_SCHEMA schema comparison for HashAgg.
[HashAggTemplate]
2288: Pt. 12 Core: Fixed memory leak in BaseTestQuery's printing.
Fixed bad skipping of RecordBatchLoader.clear(...) and
QueryDataBatch.load(...) for zero-row batches in printResult(...).
Also, dropped suppression of call to
VectorUtil.showVectorAccessibleContent(...) (so zero-row batches are
as visible as others).
2288: Pt. 13 Core: Fixed test that used unhandled periods in column alias
identifiers.
2288: Misc.: Added # of rows to showVectorAccessibleContent's output.
[VectorUtil]
2288: Misc.: Added simple/partial toString() [VectorContainer,
AbstractRecordReader, JSONRecordReader, BaseValueVector, FieldSelection,
AbstractBaseWriter]
2288: Misc. Hyg.: Added doc. comments to VectorContainer.
[VectorContainer]
2288: Misc. Hyg.: Edited comment. [DrillStringUtils]
2288: Misc. Hyg.: Clarified message for unhandled identifier containing
period.
2288: Pt. 3 Core&Hyg. Upd.: Added schema comparison result to logging.
[IteratorValidatorBatchIterator]
2288: Pt. 7 Core Upd.: Handled HBase columns too re NullableIntVectors.
[HBaseRecordReader, TestTableGenerator, TestHBaseFilterPushDown]
Created map-child vectors for requested columns.
Added unit test method testDummyColumnsAreAvoided, adding new row to test
table,
updated some row counts.
2288: Pt. 7 Hyg. Upd.: Edited comment. [HBaseRecordReader]
2288: Pt. 11 Core Upd.: REVERTED all of bad OK_NEW_SCHEMA schema
comparison for HashAgg. [HashAggTemplate]
This reverts commit 0939660f4620c03da97f4e1bf25a27514e6d0b81.
2288: Pt. 6 Core Upd.: Added isEmptyMap override in new (just-rebased-in)
PromotableWriter. [PromotableWriter]
Adjusted definition and default implementation of isEmptyMap (to handle
MongoDB
storage plugin's use of JsonReader).
2288: Pt. 6 Hyg. Upd.: Purged old atLeastOneWrite flag. [JsonReader]
2288: Pt. 14: Disabled newly dying test testNestedFlatten().
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---