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

110 Commits

Author SHA1 Message Date
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