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

473 Commits

Author SHA1 Message Date
asfernandes
4763533669 Refactor jrd_req into JrdStatement (shared part) and jrd_req (execution of a statement).
Fixed some bugs found in the way.
2010-04-18 22:19:11 +00:00
dimitr
1e2edd445d Reworked the rsb/cursor logic a bit. Now I don't think sub-queries should be cursors. 2010-04-15 16:10:51 +00:00
asfernandes
68b5c1df6f Cleanup 2010-04-07 16:32:12 +00:00
dimitr
1c9adc5300 Cleanup. 2010-04-06 16:26:27 +00:00
asfernandes
fe9bf02848 Refactor user and system functions nodes 2010-04-05 18:43:11 +00:00
asfernandes
e079a8fb43 Fixed CORE-2893 - Expression in a subquery in WHERE is treated as invariant and produce incorrect results 2010-02-28 00:40:03 +00:00
dimitr
413f771766 Actually, the optimizer doesn't need an expression index request to operate.
Moreover, I have a feeling that calling EVL from OPT is a bad design.
2010-02-26 09:51:48 +00:00
dimitr
c7853fa9e1 Fixed CORE-1295: Bad optimization of queries with DB_KEY. 2010-02-19 20:25:56 +00:00
asfernandes
af249fe61a Misc 2010-02-19 01:40:05 +00:00
asfernandes
4ea773eb33 Rework in the visitor classes to remove ugly reinterpret_cast of PMFs. Hope that solve the warning reported by Claudio too. 2010-02-17 02:04:15 +00:00
dimitr
3aaa3d1e87 Fixed CORE-1089: Wrong ordering with views, distinct, left join and order by
and CORE-2871: Outer ORDER BY clause has no effect.
2010-02-16 14:45:23 +00:00
robocop
835750a54c Misc. 2010-02-16 08:53:31 +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
dimitr
ce33f56150 Fixed the logic I have broken recently. 2010-02-03 08:34:34 +00:00
dimitr
71e4f9a2ff Fixed the first part of CORE-2832: Optimizer fails applying stream-local predicates before merging.
This part is related to the merge/hash join algorithms.
2010-02-03 05:42:59 +00:00
robocop
1d87d749f0 Misc. 2010-01-26 08:20:27 +00:00
dimitr
ea4077c888 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:17:35 +00:00
dimitr
d35f6e316b 1) Simplify the explicit plan handling between the parser and the engine. It makes no sense to pass the join type as it's ignored internally.
2) Support hash joins in the plan output and in the parser. For the latter, it's just the syntax sugar, same as loop vs merge join (see above).
2010-01-19 09:25:29 +00:00
dimitr
e2aab75891 Fixed the optimizer in regard to the partitioned window functions. 2010-01-19 07:52:38 +00:00
asfernandes
7fbee2c76b Feature OVER (PARTITION BY ...) clause for window functions 2010-01-18 21:37:47 +00:00
asfernandes
d26457bc6d Remove a var. shadow 2010-01-18 13:38:36 +00:00
dimitr
e9a3f9e213 Misc. 2010-01-18 13:18:20 +00:00
dimitr
df53be29bf Misc. 2010-01-18 11:39:34 +00:00
dimitr
4862999990 Cleanup. Hopefully valid this time ;-) 2010-01-15 11:36:42 +00:00
asfernandes
fc948e44a6 I believe the expression may produce wrong results depending on compiler optimizations 2010-01-14 16:45:13 +00:00
dimitr
2f28556820 Fixed CORE-1274 (Wrong results when PLAN MERGE is chosen and datatypes of the equality predicate arguments are different) and CORE-1752 (Results of a join with different collations depend on the execution plan). 2010-01-14 12:25:13 +00:00
dimitr
dfa7f00cf7 Trivial support for hash joins in the optimizer.
Currently they completely replace the merge joins (for debugging purposes).
2010-01-14 11:41:36 +00:00
dimitr
ef05207a8d Misc. 2010-01-14 07:13:38 +00:00
dimitr
27ff3bf1df Misc. 2010-01-13 11:46:54 +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
6256cebc83 Misc. 2010-01-12 09:53:08 +00:00
dimitr
5f39df8d27 Allowed merge joins for IS NOT DISTINCT equalities. 2010-01-11 17:37:49 +00:00
dimitr
59ee638622 Fixed the sorting. 2010-01-06 14:16:21 +00:00
robocop
eb571b41eb Warning. 2009-12-16 09:31:36 +00:00
asfernandes
b137cdfd80 Misc 2009-12-14 23:55:56 +00:00
dimitr
793bfb91dd Simplification. 2009-12-14 16:01:06 +00:00
robocop
00c5d74904 Cleanup. 2009-12-13 13:49:43 +00:00
dimitr
bda5c179d1 Cleanup the unneeded routines. 2009-12-13 11:50:27 +00:00
robocop
546bf76a24 Unused functions, unused parameters, unused vars. 2009-12-13 11:07:05 +00:00
robocop
dae574f7f1 Misc, style and unused vars. 2009-12-13 10:41:53 +00:00
asfernandes
7c38226dfc Misc 2009-12-12 21:02:01 +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
8cbaa89e7e Fixed the merge join algorithm. Thanks to Adriano. 2009-12-10 15:26:46 +00:00
dimitr
d09fba5ebd Fixed (hopefully) CORE-2798: Incomplete plan output (lack of view names) when selecting from views containing procedures inside. 2009-12-10 14:47:52 +00:00
dimitr
4052e12065 Corrected the logic. Thanks to Adriano. 2009-12-10 10:13:22 +00:00
asfernandes
925bcc9cf6 Misc / warnings 2009-12-10 00:02:01 +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
asfernandes
7e04ec0ab5 Clean it per Claudio request 2009-11-27 14:39:48 +00:00
asfernandes
a3dd1d0482 Misc 2009-11-26 00:20:59 +00:00
robocop
579a456329 Style. 2009-11-25 08:38:52 +00:00
robocop
d6ceb87638 Cleanup. 2009-11-25 04:52:54 +00:00
robocop
75df0fc37d Comments. 2009-11-25 03:58:43 +00:00
robocop
804ad6048a Restrict us to ODS11 and ODS12 until the dust settles down. 2009-11-24 11:42:56 +00:00
robocop
1386adcf90 Style. 2009-11-16 08:06:31 +00:00
asfernandes
7e0f76e708 Misc 2009-11-02 14:42:27 +00:00
asfernandes
79e9320875 Refactor aggregate handling into AggregateRsb class 2009-10-31 19:03:30 +00:00
asfernandes
d59001341c Misc 2009-10-31 17:31:48 +00:00
dimitr
5ae7b7f340 Cleanup. 2009-10-31 11:08:11 +00:00
dimitr
e6909de7f7 Wipe out the SCROLLABLE_CURSORS code + minor cleanup.
Also, surfaced scrollability for PSQL cursors (without internal support yet).
2009-10-31 06:25:01 +00:00
asfernandes
ed0e0daeb3 - External Engines implementation.
- Plugins API.

- Feature CORE-2700 - UDR (User Defined Routines) Engine - C++ API supporting functions, triggers and stored procedures.
- Feature CORE-2470 - Support for alternate format of strings literals.
- Feature CORE-2310 - DDL triggers.
- Feature CORE-2312 - PSQL Packages.
- Feature CORE-1209 - CONTINUE statement.
- Feature CORE-1180 - DDL syntax to change (not) nullable state of columns.
- Feature CORE-2090 - Support OVER () clause with current aggregate functions.

- Fixed CORE-2699 - Common table expression context could be used with parameters.

- Introduce ODS 12.0.

- Work in progress in type-safe parser.
- Refactor some DDL commands (procedures and triggers) from DYN to DdlNodes.
- Refactor virtual tables to use a class hierarchy instead of namespaces. This is basic thing, not based on the changes done in Vulcan. Window functions is based on this work.
- Refactor COMMENT ON and DROP FUNCTION from DYN to DdlNodes. COMMENT ON do not use GDML anymore, it uses DSQL with PreparedStatement class.
- Refactor EXECUTE BLOCK to StmtNodes.
- Refactor the IUDF to SysFunctions. That eliminates RDB$GET_CONTEXT and RDB$SET_CONTEXT from RDB$FUNCTIONS.
2009-10-21 00:42:38 +00:00
dimitr
d60030074d Just a consistency with other variables. 2009-10-05 16:06:44 +00:00
hvlad
89d72e5fba Fixed bug CORE-2633 : SELECT WITH LOCK with no fields are accessed clears the data 2009-09-18 07:13:34 +00:00
asfernandes
50102f6f4c Misc 2009-08-23 01:27:46 +00:00
robocop
97c384d984 Comments. 2009-08-22 12:16:47 +00:00
robocop
ebca9af164 Mostly comments. 2009-08-20 10:19:02 +00:00
dimitr
1d817afa1b More complete solution for CORE-1971 (evaluation from left to right). 2009-08-05 15:26:05 +00:00
asfernandes
5063bafc36 Misc 2009-07-15 03:13:16 +00:00
dimitr
9b90f012ca Fixed CORE-1971: Set the fixed and documented check order for WHERE clause and other conditional sentences.
The order of evaluation is now always from left to right.
2009-07-12 10:16:15 +00:00
alexpeshkoff
fe4aec8a12 Fixed CORE-2550: Bus error when working with DB_KEY on bigendian machines. Introduced dtype_dbkey inside engine. 2009-07-09 14:04:42 +00:00
asfernandes
8a94ecf6bc Misc 2009-06-29 02:06:00 +00:00
uid32383
e704280a59 Style. 2009-06-28 10:29:36 +00:00
robocop
f10e1b72eb Style. 2009-06-27 06:23:36 +00:00
asfernandes
91c2a6d464 Misc: replace MAX_UCHAR by MAX_STREAMS 2009-06-25 02:06:14 +00:00
robocop
c202492a2e Style. 2009-06-21 10:34:33 +00:00
robocop
ab2141b5e6 Misc. 2009-06-19 13:00:53 +00:00
asfernandes
a263449fa2 Fix build 2009-06-18 23:24:14 +00:00
robocop
6bfacad413 CORE-2509. Took the opportunity to fix several data types. 2009-06-18 12:07:07 +00:00
robocop
66b1227b22 Unused params, some formatting, cleanup. 2009-05-01 17:21:36 +00:00
asfernandes
1c20adb8fc Misc 2009-04-29 01:52:49 +00:00
robocop
2d7cb94844 Unused params
Some BLR checks
2009-04-28 13:08:04 +00:00
asfernandes
f6f364da49 Trim trailling spaces 2009-04-04 16:39:31 +00:00
alexpeshkoff
77498cac9b Fixed some warnings 2009-04-03 10:49:07 +00:00
robocop
a730fbf074 Get rid of more typedefs. 2009-04-03 10:07:55 +00:00
asfernandes
628eb5b557 Misc 2009-02-09 01:43:49 +00:00
hvlad
0950f997fb Fixed bug CORE-2311 : Possible memory leak in WITH RECURSIVE query 2009-02-08 15:50:12 +00:00
robocop
66dc4ddad9 Make code easier to read. 2009-02-08 09:39:59 +00:00
asfernandes
1105286dee Misc 2009-02-07 15:20:34 +00:00
asfernandes
636b304d8e Fix the problem reported by Vlad (another case of CORE-2237) 2009-02-05 01:19:20 +00:00
robocop
3689f15321 Style. 2009-01-20 08:33:59 +00:00
robocop
582cdf185b Style. 2009-01-14 09:19:00 +00:00
robocop
6406e45337 Shut up compiler warnings (unreferenced vars, uninitialized vars, compile-time conditional code, etc.) 2009-01-02 06:36:12 +00:00
asfernandes
5c97a235e3 Misc 2008-12-24 00:32:49 +00:00
robocop
2fadc0e456 Style. 2008-12-22 09:00:05 +00:00
robocop
9161be9116 Style. 2008-12-18 11:29:10 +00:00
asfernandes
4769d47fa3 Fixed CORE-2237 - Assertion at src\jrd\intl.cpp 569 2008-12-13 18:25:45 +00:00
asfernandes
8fbf0e8e8c Remove trailing spaces (.cpp files) 2008-12-05 01:20:14 +00:00
asfernandes
da7386109d Fixed CORE-2215 - GROUP BY concatenation with empty string 2008-11-28 14:59:17 +00:00
asfernandes
c51af68ff9 Misc 2008-11-09 22:42:11 +00:00