Github user wengyanqing commented on a diff in the pull request:
https://github.com/apache/incubator-hawq/pull/1360#discussion_r186348737
--- Diff: src/backend/cdb/cdbparquetrowgroup.c ---
@@ -206,54 +207,54 @@ ParquetRowGroupReader_ScanNextTuple(
ParquetRowGroupReader *rowGroupReader,
int
*hawqAttrToParquetColNum,
bool *projs,
+ RuntimeFilterState *rfState,
TupleTableSlot *slot)
{
Assert(slot);
-
- if (rowGroupReader->rowRead >= rowGroupReader->rowCount)
+ while (rowGroupReader->rowRead < rowGroupReader->rowCount)
{
- ParquetRowGroupReader_FinishedScanRowGroup(rowGroupReader);
- return false;
- }
-
- /*
- * get the next item (tuple) from the row group
- */
- rowGroupReader->rowRead++;
- int natts = slot->tts_tupleDescriptor->natts;
- Assert(natts <= tupDesc->natts);
-
- Datum *values = slot_get_values(slot);
- bool *nulls = slot_get_isnull(slot);
+ /*
+ * get the next item (tuple) from the row group
+ */
+ rowGroupReader->rowRead++;
- int colReaderIndex = 0;
- for(int i = 0; i < natts; i++)
- {
- if(projs[i] == false)
- {
- nulls[i] = true;
- continue;
- }
+ int natts = slot->tts_tupleDescriptor->natts;
+ Assert(natts <= tupDesc->natts);
- ParquetColumnReader *nextReader =
- &rowGroupReader->columnReaders[colReaderIndex];
- int hawqTypeID = tupDesc->attrs[i]->atttypid;
+ Datum *values = slot_get_values(slot);
+ bool *nulls = slot_get_isnull(slot);
- if(hawqAttrToParquetColNum[i] == 1)
+ int colReaderIndex = 0;
+ int16 proj[128];
--- End diff --
It's better to use natts instead of 128.
---