-
Notifications
You must be signed in to change notification settings - Fork 75
[WIP] Execution planning phase #56
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
Conversation
… resolution (should be working)
Performance benchmark results for the latest (working but not optimized) version: Latest DEVBenchmarkDotNet=v0.9.7.0
OS=Microsoft Windows NT 6.2.9200.0
Processor=Intel(R) Core(TM) i5-6300HQ CPU 2.30GHz, ProcessorCount=4
Frequency=2249999 ticks, Resolution=444.4446 ns, Timer=TSC
HostCLR=MS.NET 4.0.30319.42000, Arch=32-bit RELEASE
JitModules=clrjit-v4.6.1080.0
Type=SimpleExecutionBenchmark Mode=Throughput
This PRBenchmarkDotNet=v0.9.7.0
OS=Microsoft Windows NT 6.2.9200.0
Processor=Intel(R) Core(TM) i5-6300HQ CPU 2.30GHz, ProcessorCount=4
Frequency=2249999 ticks, Resolution=444.4446 ns, Timer=TSC
HostCLR=MS.NET 4.0.30319.42000, Arch=32-bit RELEASE
JitModules=clrjit-v4.6.1080.0
Type=SimpleExecutionBenchmark Mode=Throughput
In general a speed remains unchanged - it's slightly faster for simple queries, and a little slower for deep complex ones. There is visible change in number of allocations performed and a little higher memory usage - which is quite obvious as we introduced an intermediate representation and an additional step between parsing and execution phases. |
fix merge conflicts after #56
DO NOT MERGE: work in progress
/cc #53
This PR introduces a planning phase - a intermediate step, when given a query to execute and a schema, we create an intermediate representation (so called
ExecutionPlan
) for that query. Execution plan solves things like:At the moment execution plan is not yet integrated into execution engine, but it has a dedicated (passing) test suite already.