dimitr
b0e3c9f94d
Fixed CORE-3355: Wrong comparison of DATE and TIMESTAMP if index is used.
2011-02-21 11:18:29 +00:00
dimitr
993788f9bc
Misc optimizer tuning.
2011-02-21 10:09:30 +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
asfernandes
c7f7a763d1
Avoid casts.
2011-02-12 17:41:49 +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
dimitr
bb1f7ad9a6
Implement CORE-3076: Better performance for (table.field = :param or :param = -1) in where clause.
2011-02-07 17:54:24 +00:00
dimitr
6e6d341d4f
Front ported CORE-3312: Sub-optimal join plan when the slave table depends on the master one via the OR predicate.
2011-01-29 11:34:25 +00:00
dimitr
46ef6561a4
Misc.
2011-01-16 08:42:42 +00:00
asfernandes
c9ec26c0c3
Feature CORE-726 - Boolean data type
2010-12-18 02:17:06 +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
5ee982afb9
Refactor blr_derived_expr
2010-11-07 22:12:14 +00:00
asfernandes
1d702dae81
Refactor blr_via, blr_from, blr_maximum, blr_minimum, blr_count, blr_average and blr_total
2010-11-07 02:18:58 +00:00
asfernandes
e65fd8fea8
1) Refactor CAST.
...
2) Fixed CORE-3204 - Constraint violation error of CAST is not raised inside views
2010-11-01 23:57:31 +00:00
asfernandes
3317eeeebc
Refactor literal values.
2010-10-24 00:26:00 +00:00
asfernandes
16ff0c51ce
Refactor NULL expression
2010-10-22 15:00:22 +00:00
asfernandes
2e0da292df
Refactor EXTRACT
2010-10-16 18:53:25 +00:00
asfernandes
2dcef5c7ce
Refactor *_LENGTH functions
2010-10-16 18:17:00 +00:00
asfernandes
aa78df6f91
Refactor SUBSTRING
2010-10-16 17:42:04 +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
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
ac3c00d503
1) Refactored LOWER, UPPER and TRIM.
...
2) Fixed CORE-3174 - Expression index with TRIM may lead to incorrect indexed lookup
2010-10-09 18:39:45 +00:00
asfernandes
4d00fec2d6
Refactor parameters and GEN_ID.
2010-10-09 01:57:37 +00:00
asfernandes
b49391c8d0
Misc
2010-09-25 23:08:18 +00:00
robocop
c7abd52cea
Misc.
2010-09-24 09:23:12 +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
c1b5abfdf2
1) Refactor all types of boolean nodes.
...
2) Remove the scratch from the nodes.
2010-09-17 03:15:32 +00:00
asfernandes
b7b63becf3
Refactor a number of expression nodes: nod_add, nod_divide, nod_multiply, nod_negate, nod_user_name, nod_subtract, nod_current_date, nod_current_time, nod_current_timestamp, nod_add2, nod_subtract2, nod_multiply2, nod_divide2, nod_current_role, nod_internal_info
2010-09-04 21:36:41 +00:00
asfernandes
ada671c034
Refactor nod_index and nod_bit_* to InversionNode
2010-08-31 00:20:33 +00:00
asfernandes
8f857a6deb
Refactor plan nodes to PlanNode
2010-08-29 20:20:19 +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
48d83b8fef
Refactor nod_rse, nod_relation, nod_procedure, nod_union, nod_aggregate and nod_window.
2010-08-24 03:25:01 +00:00
asfernandes
4c9eb2c3ce
Correct double indirection (jrd_nod**) so const cascades to every dereference
2010-08-09 16:06:23 +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
asfernandes
7f3dc62888
Frontport fix for CORE-3090 - Incorrect LEFT JOIN result using table and derived constant subquery
2010-08-07 02:10:08 +00:00
asfernandes
e37d097240
Misc
2010-05-22 02:00:45 +00:00
dimitr
d3f7b43c7e
Let's calculate the exact cardinality for external tables.
2010-05-21 06:14:25 +00:00
dimitr
c6b776cdc8
Fixed the first part of the problem described in CORE-2933: Very slow execution of a script that creates a lot of metadata.
2010-05-17 09:47:08 +00:00
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
asfernandes
fe9bf02848
Refactor user and system functions nodes
2010-04-05 18:43:11 +00:00
asfernandes
4b322bf94a
Fix problem with ExprNodes in joins causing "no current record" error
2010-04-05 03:27:11 +00:00
dimitr
fe6d0c93b3
Correction for one of my prior optimizer commits.
2010-03-16 05:01:57 +00:00
asfernandes
d3ad05b7eb
Misc
2010-03-14 15:33:06 +00:00
dimitr
c65e55c9e6
Fixed CORE-1550: Unnecessary index scan happens when the same index is mapped to both WHERE and ORDER BY clauses.
2010-03-11 10:03:32 +00:00
dimitr
76a9a59469
Reduced number of local variables. Thanks to Claudio.
2010-03-09 16:55:05 +00:00
robocop
be3660d221
Misc.
2010-03-07 04:30:35 +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