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
asfernandes
720a49c89e
Fixed the others two problems of CORE-2176
2008-11-09 17:00:19 +00:00
dimitr
591186dd00
Misc.
2008-09-12 12:23:52 +00:00
dimitr
aad133369c
Cleanup.
2008-09-12 08:48:47 +00:00
alexpeshkoff
13a15d4bfe
1. Final fix for CORE-1964 - finished vararg cleanup in jrd.
...
2. Generic cleanup of error reporting functions all around engine.
2008-08-27 12:20:47 +00:00
asfernandes
84da641b55
Fixed CORE-2034 - Problems related to CORE-1254 (Problem with DISTINCT and insensitive collations) re. UNICODE insensitive collations with DISTINCT or GROUP BY.
2008-08-08 01:44:42 +00:00
asfernandes
628cccf32e
Misc
2008-07-16 13:55:41 +00:00
dimitr
99a17e984b
Fixed the main problem of CORE-1971: inconsistency in the evaluation order between Windows and POSIX.
...
Now the order is always right-to-left. I would prefer to see it reversed, but that's for another day.
2008-07-09 11:46:44 +00:00
alexpeshkoff
a2e416210b
Fixed CORE-1964: Use of 0 instead of isc_arg_end to terminate list of ERR_post's (and cousines) arguments is invalid.
...
Also cleaned up use of gds__log() in a few places.
2008-06-26 09:47:59 +00:00
robocop
5777ff76fa
More VC6 cleanup.
2008-05-14 13:11:41 +00:00
hvlad
5f8774827c
Better and simpler fix for bug CORE-1884.
2008-05-06 12:15:09 +00:00
dimitr
e0c6d0e13d
Fixed CORE-1812.
2008-05-06 09:40:22 +00:00
hvlad
f672d51a14
Avoid manipulations with TDBB_use_db_page_space flag in jrd_rel::getPagesInternal
2008-04-02 13:55:10 +00:00
asfernandes
cacb90b74c
Fixed CORE-1795 - Server crashes on SQL script
2008-03-19 15:59:25 +00:00
dimitr
de7d3f7e95
Optimizer adjustments for the new built-in functions.
2008-02-20 09:24:31 +00:00
robocop
10d74a7642
Style.
2008-02-13 12:57:04 +00:00
asfernandes
46c115411a
Fixed CORE-1254 - Problem with DISTINCT and insensitive collations
2008-02-09 15:19:21 +00:00
asfernandes
6dd361603f
Misc
2008-02-04 17:01:36 +00:00
robocop
4c3381ef6b
Style, constness and macro cleanup.
2008-02-03 10:41:44 +00:00
dimitr
fec2f3e155
Restored the legacy logic for blob sorting, thus rolling back changes for CORE-859 and CORE-1530.
2008-01-26 18:06:42 +00:00
alexpeshkoff
39896cb955
Fixed CORE-1671: atexit() calls in client libraries cause segfaults
...
and CORE-1079: Every attach of fbclient/fbembed library leaks 64KB of memory
To do it:
- created new template GlobalPtr, controlling access to destructors of global objects.
- applied it to global objects.
Also some related cleanup.
2008-01-23 15:52:40 +00:00
asfernandes
05b90fa684
Eliminate some warnings
2008-01-16 14:37:26 +00:00
dimitr
6992f2a638
The merge continued.
2008-01-16 09:41:31 +00:00
alexpeshkoff
eea9070f48
Optimized RuntimeStaticstics (and related part of ThreadDb) for performance - some tests run 25faster
2007-12-03 15:46:39 +00:00
robocop
2d2b8cf718
Misc.
2007-11-17 10:18:10 +00:00
paulbeach
7602a29b94
HPUX Port
2007-11-12 14:26:44 +00:00
dimitr
4d7d563e6e
Fixed CORE-1533.
2007-10-29 17:57:24 +00:00
alexpeshkoff
6a844b2041
Avoid unneeded cast
2007-10-02 17:03:53 +00:00
dimitr
33fb126a74
Fixed CORE-1436.
2007-08-31 10:14:09 +00:00
hvlad
671e59e993
Fixed bug CORE-1373 : Incorrect result of recursive CTE query when recursive member's SELECT list contains expression using self-referenced fields
2007-07-21 21:28:56 +00:00
asfernandes
f09ea7782f
Transliterate object names from PLANs to the client charset
2007-05-25 14:06:55 +00:00
asfernandes
c97d57013e
Fixed CORE-1253 - LIST(DISTINCT) concatenate VARCHAR values as CHAR
2007-05-11 02:07:36 +00:00
dimitr
1b44f36eda
Front-ported RISC-specific fixes.
2007-03-09 08:11:10 +00:00
dimitr
7eefa833f8
Adjusted the logic accordingly to the Alex's fix.
2007-03-01 15:08:11 +00:00
alexpeshkoff
86344f06c3
Use faster and more clear method when possible
2007-03-01 13:09:09 +00:00
asfernandes
e544f6fd1e
Misc
2007-03-01 00:44:14 +00:00
asfernandes
2d26b3f5f8
Allow BLOBs in EXECUTE STATEMENT and possibly in others unkown cases
2007-02-27 02:36:20 +00:00
dimitr
02035b1860
Fixed CORE-1130.
2007-02-15 07:20:59 +00:00
dimitr
c2392582af
Fixed CORE-1029.
2006-11-29 17:48:54 +00:00
dimitr
eecccbbc72
Fixed CORE-1025.
2006-11-28 13:26:24 +00:00
asfernandes
9ca610d9f4
Misc
2006-11-23 00:30:07 +00:00
dimitr
81bbdfd4f2
Attempted to fix CORE-995.
2006-11-21 14:02:29 +00:00
dimitr
e95f81408d
Fixed CORE-1005.
2006-11-21 07:47:02 +00:00
asfernandes
1d422a8330
1) Refactor intl_classes.h and intl.cpp
...
2) Make conversions from CharSet1->UTF16->CharSet2 job of CsConvert class
2006-10-10 19:40:33 +00:00
robocop
db7c21a752
Misc.
2006-09-14 09:40:58 +00:00
asfernandes
87c0e8360d
Check limits
2006-09-12 16:31:38 +00:00
dimitr
a4f78f4365
1) Fixed CORE-925
...
2) Added assertion to EVL to catch other related bugs
3) An attempt to simplify my previous solution
2006-09-12 11:36:18 +00:00
asfernandes
5c26d54f02
1) Fixed CORE-899 - Problems with explicit cursors in unwanted states
...
2) Make RDB$DB_KEY in outer joins returns NULL when appropriate
2006-09-07 01:55:49 +00:00
arnobrinkman
eaf233717a
Fix bug CORE-897
2006-08-31 18:16:58 +00:00
hvlad
b20aa92714
Common table expressions implementation
2006-08-01 20:37:58 +00:00
dimitr
cffe207614
A few fixes for the monitoring tables.
2006-07-23 12:14:59 +00:00
dimitr
a05bc8f15d
1) Fixed CORE-859.
...
2) I've restored the asserts disabled by Frank in 2000. I really don't see how skd_dtype == 0 can be valid, as the sorter works inproperly in this case and it allows unsupported datatypes to be attempted to sort on.
2006-07-20 11:11:37 +00:00
dimitr
c68587fe66
1. Virtual tables
...
2. ODS 11.1, procedure type and relation type
2006-07-17 17:44:18 +00:00
dimitr
211645e3dc
Getting rid of the old allocator routines.
2006-05-23 10:17:00 +00:00
dimitr
937008d479
Fixed a number of bugs related to the lost scale when matching some value to an int64 key.
2006-05-23 09:56:29 +00:00
alexpeshkoff
b056a118b5
1. Avoid use of STL
...
2. Reworked exceptions to make status_exception always hold correct status vector
3. Avoid use of RTTI
2006-05-19 15:17:02 +00:00
dimitr
9d2af66fc0
Fixed bug with explicit plans and dependent vs free streams.
2006-05-19 11:09:44 +00:00
dimitr
8c66a4883a
1) Fixed wrong ALL results in the ODS11 optimizer.
...
2) Fixed SF #527681 -- Strange/Inconsistent query results
2006-05-17 19:15:41 +00:00
dimitr
b0cb5b92cd
Misc.
2006-05-13 05:00:21 +00:00
dimitr
bf1e56bff1
Fixed a bugcheck by restoring to the old nod_count processing.
...
Still clueless why it's done that way.
2006-04-25 12:54:12 +00:00
asfernandes
7e7f4183a3
Misc
2006-04-25 03:48:19 +00:00
dimitr
54d4cc4ddf
The core implementation of the LIST function. Unstable yet.
2006-04-24 16:56:58 +00:00
arnobrinkman
782f902948
Fix "no current record .." bug when an undependent stream A is dependent on stream B and B is dependent on stream C.
...
Stream A was merged with the stream C and only B was correctly joined.
2006-04-22 21:18:19 +00:00