Skip to content

Pushdown dereferences in ORC Reader#3445

Merged
martint merged 3 commits intotrinodb:masterfrom
phd3:orc-deref-pushdown
Apr 23, 2020
Merged

Pushdown dereferences in ORC Reader#3445
martint merged 3 commits intotrinodb:masterfrom
phd3:orc-deref-pushdown

Conversation

@phd3
Copy link
Copy Markdown
Member

@phd3 phd3 commented Apr 16, 2020

Adding projection and predicate pushdown of dereference expressions in ORC Reader.

(1) OrcPageSource commits to providing base columns for the required projected columns, and expects HivePageSource to adapt. But information about projected columns is propagated to the OrcReader using "ProjectedLayout". StructColumnReader returns null blocks for fields that are not in the layout. The pruning works only for a series of dereferences, Map and List readers don't use this information right now.

(2) Predicate pushdown is implemented by using domains on all projected columns instead of just the base column. No other changes are required, because stats used for predicate-based filtering are always read for all the columns anyway.

(3) Added a test for reading dereferenced fields in case of null rows, which was missing during the first pass of #1720.

@cla-bot cla-bot bot added the cla-signed label Apr 16, 2020
@phd3 phd3 added the WIP label Apr 16, 2020
@phd3 phd3 force-pushed the orc-deref-pushdown branch from 1dbc0d5 to 91ece53 Compare April 16, 2020 09:00
@phd3 phd3 removed the WIP label Apr 16, 2020
@phd3 phd3 changed the title [WIP] Pushdown dereferences in ORC Reader Pushdown dereferences in ORC Reader Apr 16, 2020
@phd3 phd3 requested review from JamesRTaylor and martint April 16, 2020 16:48
@phd3 phd3 force-pushed the orc-deref-pushdown branch from 91ece53 to c6cca65 Compare April 21, 2020 02:23
@martint martint self-requested a review April 21, 2020 02:31
@phd3 phd3 force-pushed the orc-deref-pushdown branch from c6cca65 to 83b3d52 Compare April 22, 2020 18:28
@martint martint merged commit 5069a55 into trinodb:master Apr 23, 2020
@martint martint added this to the 333 milestone Apr 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

2 participants