26 Apr 2021
People talk a lot about “pull” vs. “push” based query engines, and it’s
pretty obvious what that means colloquially, but some of the
details can be a bit hard to figure out.
Important people clearly have thought hard about this distinction, judging by this paragraph from Snowflake’s Sigmod paper:
Push-based execution refers to the fact that relational operators push their
results to their downstream operators, rather than waiting for these
operators to pull data (classic Volcano-style model). Push-based execution
improves cache efficiency, because it removes control flow logic from tight
loops. It also enables Snowflake to efficiently process DAG-shaped plans, as
debug: fix compilation error on platforms where debug info is unsupported. Non-tier-1 platforms will now return
error.UnsupportedDebugInfo when attempting to print a stack trace, rather than a compile error.
debug: Avoid deadlock in the signal handler.
stderr mutex may still be held when we reach the signal handler, grab our own stderr handle to print the error messages and avoid deadlocking. (#7247)
debug: Add nosuspend around
fix json parsing with unmatched closing tokens (#6865). Also fix swapped parsing errors.
fix HashMapputAssumeCapacity and clearRetainingCapacity
fs.path.dirname: return
Make
os.windows.ReadFile allow short reads. This makes it behave like the read() wrapper for unix systems. Reading