8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-31 13:23:02 +01:00
Commit Graph

48 Commits

Author SHA1 Message Date
dimitr
6449c942e7 Implemented CORE-3332: Provide more detailed information about the query execution plan. Some details are still to be worked on. 2011-02-02 11:31:04 +00:00
asfernandes
9c42d4e5af Finish the statements refactor in the engine. Get rid of jrd_nod. 2010-12-04 22:15:03 +00:00
asfernandes
a3064848d6 Make ExprNodes and RecordSourceNodes reference others directly instead of via jrd_nod.
Store ValueExprNodes instead of jrd_nod in the metadata cache.
Make RecordSourceNode child of ExprNode as they share most operations.
Get rid of the JRD visitors in favor of direct calls.
Convert assignments statement lists created inside expressions to separate source and targets ValuesExprNodes.
2010-11-21 03:47:29 +00:00
dimitr
b060fb4c67 Fixed CORE-3208: Significant memory leaks with recursive queries. 2010-11-01 19:32:17 +00:00
alexpeshkoff
83d6a2f88c Restored a lot of changes, rolled back by me unintentionally 2010-10-12 11:36:51 +00:00
alexpeshkoff
2dc25a44bb OSRI and new posix build 2010-10-12 08:02:57 +00:00
asfernandes
9b8171d5c1 1) Refactor nod_value_if.
2) Created ExprNode::expressionEqual method to replace a new big and ugly switch.
3) Make boolean referencers use BoolExprNode instead of jrd_nod, except nod_validate for now. This includes BinaryBoolNode and NotBoolNode working without jrd_nod references.
4) Rework in the impure allocation code (replace "csb_impure += ..." by CMP_impure calls).
2010-09-20 16:07:50 +00:00
asfernandes
ada671c034 Refactor nod_index and nod_bit_* to InversionNode 2010-08-31 00:20:33 +00:00
asfernandes
96f2829728 Refactor nod_map and nod_sort to type-safe MapNode and SortNode 2010-08-29 18:20:44 +00:00
asfernandes
588c545d17 Rework WindowSourceNode to use type-safe partitions 2010-08-25 15:52:46 +00:00
asfernandes
48d83b8fef Refactor nod_rse, nod_relation, nod_procedure, nod_union, nod_aggregate and nod_window. 2010-08-24 03:25:01 +00:00
asfernandes
18a6a6b4f9 More consts 2010-08-13 15:22:00 +00:00
asfernandes
dadc0f560c Const correction for EVL, EXE and they subsystems. Adjustments to CMP and OPT. 2010-08-09 15:48:51 +00:00
dimitr
da183a98ed Reworked the SEC$USERS implementation so that no new physical table type and data access method would be required. More changes are likely to follow soon. 2010-07-13 12:31:35 +00:00
alexpeshkoff
88db8b2fbc ODS change: made RDB$USERS system table, added virtual table SEC$USERS 2010-07-09 12:51:05 +00:00
asfernandes
2da3eee4e5 More const correctness 2010-07-06 11:09:32 +00:00
asfernandes
33fc2bae16 Constify RecordSource methods - these classes are shared pieces of a (shared) statement 2010-07-05 18:37:35 +00:00
asfernandes
5ac2130415 Cleanup - switch from pointer arithmetics to sane way to get impure places 2010-04-05 21:20:08 +00:00
dimitr
63bedffa71 Refactored the sorter into a proper class.
Removed some dead code and unused files.
2010-03-16 11:19:29 +00:00
dimitr
1e41092ae3 Cleanup the dead code remaining from the legacy scrollable cursors feature. 2010-03-16 06:26:41 +00:00
dimitr
b31f4b4a7d Misc. 2010-03-11 11:40:41 +00:00
asfernandes
725f7878ad Fix the bug reported by Ivan Prenosil (FB3 - problem with inactive triggers). It was the SortMap::flags not initialized. 2010-03-06 02:13:22 +00:00
asfernandes
0ce6fb958c Feature CORE-2869 - Window functions: LAG and LEAD. 2010-02-16 00:26:53 +00:00
asfernandes
01f6e290fd Misc 2010-02-15 00:43:04 +00:00
asfernandes
d3c0e1971a 1) Feature CORE-2830 - Window functions: DENSE_RANK, RANK and ROW_NUMBER
2) Fix BLR filter for some procedure verbs
2010-02-14 19:08:22 +00:00
asfernandes
0affd15dc5 Merge OrderedWindowStream into AggregatedStream 2010-02-13 23:55:48 +00:00
asfernandes
c737d6a807 Create ExprNode class hierarchy.
Convert CONCATENATE and aggregate functions to it.

Fix some bugs:
- select sum(n) over (order by n2), sum(n) over (), n, n2 from x1;
- select (select 1 from x1 b where list(1, a.n) = 1) from x1 a;
2010-02-13 20:29:29 +00:00
robocop
1d87d749f0 Misc. 2010-01-26 08:20:27 +00:00
asfernandes
b68658534f Feature CORE-2823 - Support the ORDER BY subclause for current aggregate functions (except LIST) 2010-01-23 03:02:53 +00:00
dimitr
2e1b41114a Fixed the broken recursive queries. 2010-01-22 08:23:36 +00:00
dimitr
2c3d97fcbe 1) Extended hash joins to handle more than two streams at once.
2) Allowed the hash table size to be configurable at runtime.
2010-01-22 07:11:02 +00:00
asfernandes
7fbee2c76b Feature OVER (PARTITION BY ...) clause for window functions 2010-01-18 21:37:47 +00:00
dimitr
7d7aef4228 Cleanup and refactoring in the optimizer (mostly related to rivers and sort/merge). 2010-01-13 11:46:16 +00:00
asfernandes
5277b99bcf Misc 2010-01-12 14:21:30 +00:00
dimitr
2874edbf5c Basic implementation of hash joins (only inner so far).
Optimizer support is to follow a bit later.
2010-01-12 11:26:09 +00:00
dimitr
00dc3068fe Implement the lazy caching mode. Rows are stored in the buffer while fetching forward.
The switch to the fully cached mode is performed upon the first positioned access.
2010-01-06 15:40:39 +00:00
alexpeshkoff
bf75fffe70 fixed gcc warnings 2009-12-15 13:55:35 +00:00
dimitr
cccfb555db Scrollable cursors: work continued. 2009-12-14 12:56:27 +00:00
dimitr
424199b648 Misc. 2009-12-14 09:23:27 +00:00
dimitr
9863e0f953 Misc. 2009-12-13 12:08:02 +00:00
robocop
dae574f7f1 Misc, style and unused vars. 2009-12-13 10:41:53 +00:00
asfernandes
b1de816d6a Misc 2009-12-12 20:56:12 +00:00
asfernandes
7b8ea84561 Sort maps refactor 2009-12-12 20:36:56 +00:00
asfernandes
008e1bdb59 Remove usage of plain array with count in [0] in the new classes 2009-12-12 19:00:43 +00:00
dimitr
64b4d4040c Please Claudio and make the flags unique across all RecordSource implementors. 2009-12-12 10:23:14 +00:00
dimitr
308c5e1e89 Forgotten changes from a few prior commits. 2009-12-10 15:27:17 +00:00
asfernandes
01a8a22be5 Misc / Constant for aggregate state 2009-12-10 01:32:47 +00:00
dimitr
11495a55fb Refactored the whole RSB stuff into classes. They're inside the /recsrc sub-directory now.
Fixed the layering for WITH LOCK and (partially) ANY/ALL predicates.
Cleaned up the outdated code that never worked (mapping DISTINCT to an index, some VMS remainings).
Wiped out a lot of the pre-ODS11 optimizer logic. Some minor adjustments there.
Re-implemented the full outer join from scratch. This resolves CORE-2678 (full outer join cannot use available indices).
Resolved CORE-2796: DB_KEY is always zero for external tables.
Implemented the core part of the scrollable PSQL cursors. Implementation is still incomplete, but ready for testing.
Some other changes I don't recall at the moment ;-)

WARNING! The engine may be unstable. Please email me about any issues found.
2009-12-09 18:45:44 +00:00