Skip to content

Forced stat collection fix #37

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 14 commits into from
Closed

Conversation

danolivo
Copy link
Collaborator

No description provided.

danolivo added 14 commits July 7, 2021 14:32
the path_utils.c external functions.
I want to rewrite clause manipulating subsystem and this header
make the code more clear.
For each new branch we will rename aqo_master.patch
plan creating step. It must greatly reduce the AQO core patch.
It allows extensions to store an planning info for using during
(or after) execution.

Introduce the AQOPlanNode structure. Move AQO-related fields of the
Plan structure in this structure. Add this structure as an element
to the Plan->private field.

We allow copying of AQOPlanNode and disallow _read... and _out...
functions because it have sense and it needs to teach the Core to
serialize/deserialize RestrictInfo and all descendants of this struct.

Also, for simplifying the Core  patch:
1. replace parallel_workers field with parallel_divisor
2. move IsParallelTuplesProcessing() from the Core into the AQO code.

This commit changes the Core patch.
We will add into the head of each plan fss hash of this plan tree.
it would allow us to account this as subplan in the AQO feature space
of overall plan without plunging into this subplan.
does a copy od each clause and changes SubPlan clauses with the
hash value corresponding to this SubPlan. So we get in account subplans.
On the learning stage we plunge into a subplan (for learning on
underlying nodes) but don't get into account its clauses, relids
and selectivities.

Regression tests on this feature added. Still in the unsupported.sql.
It was required to change ExplainOneNode_hook code and parameters.
Now, we can show AQO prediction in EXPLAIN ONLY mode.

The Core patch is changed.
Previously we suppressed such plans because 'never executed' node
is a kind of NULL value. We don't really know how many tuples (and
work) it require in the situation, when it will be executed even once.

Current commit is attempt to teach on such plans, may be partly.
We allow teaching on all nodes, that were executed. If node was
'never executed' and no any information we have in ML-knowledge base
for this feaure subspace - we add knowledge that this node can
produce one tuple.
We could use it for cleaning old ML-data for previously dropped
tables.
@danolivo danolivo closed this Jul 12, 2021
@danolivo danolivo deleted the forced_stat_collection_fix branch February 1, 2023 04:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant