asfernandes
ce80938834
Fixed possible similar problems to CORE-4497.
2015-09-01 15:55:10 +00:00
dimitr
fe24642bc2
Fixed invariants handling in independent subqueries (seems to be related to CORE-4497).
2015-08-31 15:11:06 +00:00
asfernandes
f9bc6e1736
Add code to print the parser/executable tree to XML for debugging purposes.
2015-06-05 18:26:36 +00:00
asfernandes
ba03a8c71e
1) Improvement CORE-4791 - Make INSERTING/UPDATING/DELETING reserved words to fix ambiguity with boolean expresions.
...
2) Fixed CORE-4735 - Expression 'where bool_field IS true | false' should also use index as 'where bool_field = true | false' (if such index exists).
2015-05-15 16:10:39 +00:00
skidder
7c743fc291
Fix build warnings
2014-07-17 18:48:46 +00:00
robocop
cadd8accc4
Implemented STEP for generators/sequences and took the opportunity to make the blrOp param const. Please rebuild the databases.
2014-04-09 02:28:38 +00:00
asfernandes
30b0b5227b
Misc.
2014-03-31 02:04:26 +00:00
hvlad
6ca0cbb78a
Additional patch for CORE-3362 : Cursors should ignore changes made by the same statement:
...
- fixed error when "NOT IN" expression is turned into (better optimized) equivalent expression:
new RseBoolNode's lost parentForNode member (required later to [not]set stable cursor savepoint)
- replaced pointer to outer ForNode (parentForNode) by boolean flag (ownSavepoint) - it simplifies cloning of nodes
2014-03-19 22:31:50 +00:00
robocop
ae8f6d6b8f
Misc.
2014-03-03 04:37:29 +00:00
robocop
10a253d613
Make comparisons return plain int (PVS-Studio).
2014-02-25 06:20:09 +00:00
asfernandes
3a87224281
Warnings and make Linux debug build compile.
2014-02-18 01:49:07 +00:00
dimitr
15113ae2dd
Resolved CORE-1482: Make optimizer to consider ORDER BY optimization when making decision about join order.
...
Also, improved (hopefully) cost calculation for navigational retrievals.
2014-01-05 19:40:07 +00:00
dimitr
d11d3be507
Sync'ed with v2.5 and fixed wrong stream comparison checks.
2013-07-07 16:11:28 +00:00
dimitr
3dd0507b96
Wiped out the code that never worked due to the missing support for native quads.
2012-11-01 01:36:27 +00:00
asfernandes
b7d87a6cfa
Misc.
2012-10-16 00:51:42 +00:00
hvlad
513ce5e1ce
Additional patch for improvement CORE-3362 : Cursors should ignore changes made by the same statement.
...
- SubQueryNode (sub-select's) and RseBoolNode (exists(), in\any\all) now knows if it is a part of some outer select (ForNode) or it is a standalone statement.
- VIO\get_undo_data was reworked to better fit undo-log implementation, corresponding changes in VIO_chase_record_version also done
- AV in VIO\get_undo_data was fixed
2012-09-24 14:26:33 +00:00
asfernandes
d684e4a2f5
Fixed assert reported by Vlad more some related problem.
2012-09-24 01:40:44 +00:00
alexpeshkoff
2a01e4bcf9
Implemented CORE-3861: Make it possible to encrypt database
...
Also some cleanups, the most important are:
- meaningful ctor on Jrd::Lock, helping to avoid code dup
- avoid unneeded h-file dependencies, making boot build engine dependent
2012-05-31 16:53:42 +00:00
asfernandes
ed9ec009ba
Fix CORE-2697 again after refactoring problems.
2012-05-05 15:38:13 +00:00
asfernandes
07747144f7
Unify DSQL/JRD sub-nodes.
2012-05-03 16:43:29 +00:00
asfernandes
a2b389f1db
Getting rid of dsql_nod.
2012-04-25 01:42:47 +00:00
robocop
70d5ebdfdf
- Got rid of the fixed array that kept the stream count in the first element and 255 streams after it.
...
- Changed streams from UCHAR to ULONG as Dmitry wanted
- Got rid of some redundant flags to indicate BLR level
- Misc changes (for example, converted to test for DBB_read_only in Database to a function)
- BLR v6 is left commented (waiting for a better solution to appear, if any exists)
- This change is not going to raise the engine limits until a solution is found to express more than 255 streams in BLR.
2012-04-12 09:02:13 +00:00
asfernandes
617ef670ed
Refactored nod_select_expr, nod_with and nod_list (union).
2012-04-07 03:03:28 +00:00
asfernandes
38083d12dc
Refactored nod_field_name, nod_var_name, nod_array and nod_collate.
2012-03-25 01:08:55 +00:00
alexpeshkoff
4e795f4047
Include platform definitions file common.h in firebird.h. Use OS-specific ThreadId instead artificial FB_THREAD_ID, avoiding unneeded casts in the code. This should fix BSD and MAC ports.
2012-03-01 08:55:43 +00:00
robocop
eed418a89e
Make blb resemble more a class: private data members, convert some functions into methods, add methods with code that was in other files, etc.
2012-02-15 03:34:21 +00:00
robocop
186c817caa
Playing with fire: converting some static functions into member functions. I tried to check every change I did.
2012-02-07 03:17:52 +00:00
dimitr
08cff42833
Let's avoid duplication of shared constants.
2011-12-22 08:07:17 +00:00
asfernandes
03ae638440
Fixed the bug with NOT IN (list) reported by Ivan Prenosil in fb-devel.
2011-07-25 02:19:34 +00:00
robocop
9d980c7e88
Misc, style, etc.
2011-04-02 04:24:20 +00:00
asfernandes
0193d90f6c
Fix definition and usages of fb_assert.
2011-02-26 16:03:36 +00:00
dimitr
fc43516b21
Reworked my yesterday's change. Hopefully, it should resolve the found regressions.
2011-02-26 09:31:46 +00:00
dimitr
790b888561
Better protection from wrong casts.
2011-02-26 07:25:10 +00:00
dimitr
a09fc3e846
Fixed the assertion reported by Vlad privately.
2011-02-25 10:42:00 +00:00
dimitr
aafa381347
Fixed the main reason for CORE-3233: LIKE, STARTING and CONTAINING fail if second operand >= 32K. Thanks to Adriano.
2011-02-18 06:28:44 +00:00
dimitr
7e182bc025
Fixed inability to execute LIKE/STARTING/etc if the second argument is a small (<32KB) blob and the first one is a blob of charset NONE. This is partially related to CORE-3233, see my comment there.
2011-02-17 17:40:27 +00:00
asfernandes
c916c09e42
Refactored out OPT_expression_equal while fixing checking of sameAs involving CASTs. Problem saw by Dmitry.
2011-02-12 18:11:43 +00:00
dimitr
4d2f09c8f0
Cleaned up the unused (since FB2) parameter.
2011-02-12 14:13:40 +00:00
dimitr
9bd051b3e7
Refactored expression equality to make it independent from the stream being optimized.
2011-02-12 14:01:36 +00:00
asfernandes
1388655673
Fixed CORE-3255 - The server could crash using views with GROUP BY.
2011-02-06 21:59:20 +00:00
asfernandes
123aa675ab
Refactor nod_aggregate, nod_relation, nod_rse, nod_derived_table, nod_query_spec and nod_limit
2011-01-09 21:58:56 +00:00
asfernandes
bc79fc1223
Make UNKNOWN a boolean value/test, and not something exactly like NULL
2010-12-27 00:34:31 +00:00
asfernandes
667caf5257
Fix comparation problem with boolean and NULL
2010-12-19 18:57:17 +00:00
asfernandes
c9ec26c0c3
Feature CORE-726 - Boolean data type
2010-12-18 02:17:06 +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
asfernandes
4dea3a42a1
Remove dependency of jrd_nod in ExprNode
2010-11-14 22:31:42 +00:00
asfernandes
3eb252ec5f
Refactored DSQL nodes: nod_derived_field, nod_map, nod_dbkey and nod_rec_version.
...
Refactored JRD nodes: blr_field (JRD side only), blr_dbkey, blr_record_version and blr_stmt_expr.
2010-11-14 17:25:48 +00:00
asfernandes
f3277d0775
Fixed CORE-3211 - String truncation occurs when selecting from a view containing NOT IN inside
2010-11-04 01:03:40 +00:00
asfernandes
3317eeeebc
Refactor literal values.
2010-10-24 00:26:00 +00:00
alexpeshkoff
e05c1a825f
Moved some more .h-files to common from jrd as Vlad suggested
2010-10-13 10:39:52 +00:00
alexpeshkoff
2dc25a44bb
OSRI and new posix build
2010-10-12 08:02:57 +00:00
asfernandes
2227426f2e
Sub-task CORE-3147 - Fix SUBSTRING(SIMILAR) in regard to initial and final shortest matching specified in the standard
2010-10-03 00:50:17 +00:00
asfernandes
746c032c90
Misc things seen by Claudio
2010-09-25 20:26:05 +00:00
robocop
98a2c6822d
Warnings.
2010-09-24 09:53:51 +00:00
robocop
2bcc48445f
Misc.
2010-09-24 08:33:22 +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
ac5f03d17d
Correction
2010-09-18 18:18:35 +00:00
asfernandes
477091ebcc
Misc
2010-09-18 15:56:54 +00:00
asfernandes
c1b5abfdf2
1) Refactor all types of boolean nodes.
...
2) Remove the scratch from the nodes.
2010-09-17 03:15:32 +00:00