Conversation
This was referenced Jan 17, 2022
mildbyte
reviewed
Jan 18, 2022
Author
|
I see one more issue here, and that is that PG isn't rechecking quals for pushed aggregations: sgr@localhost:splitgraph> SELECT count(*) FROM es.account WHERE firstname ~~ 'Su_an%'
+-------+
| count |
|-------|
| 4 |
+-------+
SELECT 1
Time: 0.019s
sgr@localhost:splitgraph> SELECT count(*) FROM es.account WHERE firstname !~~ 'Su_an%'
+-------+
| count |
|-------|
| 1000 |
+-------+
SELECT 1
Time: 0.013s
sgr@localhost:splitgraph> select count(1) FROM es.account WHERE firstname !~~ 'Su_an%'
+-------+
| count |
|-------|
| 996 |
+-------+
SELECT 1
Time: 0.032s |
Author
|
Ok, I think it's clear to me now after skimming PG source - quals are not meant to be rechecked in case of pushed down aggregations, because if FDW says the pushdown is safe, there's no way to disentangle the returned aggregate result and discard the contributing rows which do not match quals. Instead, what needs to be done is to reject aggregation pushdown in the plan phase if the qual operator is not supported,here is an example for SQLite FDW. |
This allows Multicorn to correctly classify the quals it supports into remote and local conditions. In turn, this allows us to decide whether pushdown is achievable or not. Additionally, inquire Python FDW instance about the qual operators it supports.
This reverts commit 849bd2e.
mildbyte
approved these changes
Jan 20, 2022
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
WHERE) clauses in combination with aggregations.COUNT(*)CU-1z461e4