| bugs.core_0203_test | CREATE VIEW ignores PLAN |
| bugs.core_1245_test | Incorrect column values with outer joins and views |
| bugs.core_1246_test | Incorrect column values with outer joins and derived tables |
| bugs.core_1549_test | Subquery-based predicates are not evaluated early in the join order |
| bugs.core_2650_test | Improve sorting performance when long VARCHARs are involved |
| bugs.core_2678_test | Full outer join cannot use available indices (very slow execution) |
| bugs.core_3076_test | Better performance for (table.field = :param OR :param = -1) in where clause |
| bugs.core_3450_test | Inefficient optimization (regression) |
| bugs.core_4165_test | Replace the hierarchical union execution with the plain one |
| bugs.core_4285_test | Choose the best matching index for navigation |
| bugs.core_4318_test | Regression: Predicates involving PSQL variables/parameters are not pushed inside the aggregation |
| bugs.core_4460_test | UNION sub-parts may be badly optimized. Check for ALL built-in functions. |
| bugs.core_4921_test | Predicate IS [NOT] DISTINCT FROM is not pushed into unions/aggregates thus causing sub-optimal plans |
| bugs.core_5020_test | Regression: ORDER BY clause on compound index may disable usage of other indices |
| bugs.core_5070_test | Compound index cannot be used for filtering in some ORDER/GROUP BY queries |
| bugs.core_5236_test | IN/ANY/ALL predicates may cause sub-optimal (late filtering) execution of joins |
| bugs.core_6278_test | Efficient table scans for DBKEY-based range conditions |
| bugs.gh_3218_test | Optimizer fails applying stream-local predicates before merging [CORE2832] |
| bugs.gh_4314_test | Sub-optimal predicate checking while selecting from a view [CORE3981] |
| bugs.gh_4954_test | subselect losing the index when where clause includes coalesce() [CORE4640] |
| bugs.gh_6802_test | When the statement timeout is set, it causes the lock manager to delay reporting deadlocks until timeout is expired |
| bugs.gh_6992_test | Transform OUTER joins into INNER ones if the WHERE condition violates the outer join rules |
| bugs.gh_7137_test | Optimizer regression: bad plan (HASH instead of JOIN) is chosen for some inner joins |
| bugs.gh_7257_misc_datatypes_test | Support for partial indices |
| bugs.gh_7398_test | Worst plan sort created to execute an indexed tables |
| bugs.gh_7466_plans_tracking_test | Add COMPILE trace events - ability to see execution plan of every PSQL statement. |
| bugs.gh_7752_test | The access path information is truncated to 255 characters in the PLG$PROF_RECORD_SOURCES table |
| bugs.gh_7804_test | The partial index is not involved when filtering conditions through OR. |
| bugs.gh_7853_test | Do not consider non-deterministic expressions as invariants in pre-filters |
| bugs.gh_7904_test | More realistic cardinality adjustments for unmatchable booleans // FB5 bad plan for query |
| bugs.gh_7921_test | FB5 uses PK for ordered plan even if less count of fields matching index exists |
| bugs.gh_8061_addi_test | UNNEST subqueries invalidation. Examples when unnesting can NOT be used. |
| bugs.gh_8061_test | Unnest IN/ANY/EXISTS subqueries and optimize them using semi-join algorithm |
| bugs.gh_8109_test | Plan/Performance regression when using special construct for IN in FB5.x compared to FB3.x |
| bugs.gh_8115_test | Avoid reading/hashing the inner stream(s) if the leader stream is empty |
| bugs.gh_8161_test | Cardinality estimation should use primary record versions only |
| bugs.gh_8223_test | SubQueryConversion = true: error "no current record for fetch operation" with complex joins |
| bugs.gh_8225_test | Problematic queries when SubQueryConversion = true |
| bugs.gh_8231_test | SubQueryConversion = true causes "request size limit exceeded" / "... unavailable resource. Unable to allocate memory ..." |
| bugs.gh_8233_test | SubQueryConversion = true - multiple rows in singleton select |
| bugs.gh_8252_test | Incorrect subquery unnesting with complex dependencies (SubQueryConversion = true) |
| bugs.gh_8265_test | Nested IN/EXISTS subqueries should not be converted into semi-joins if the outer context is a sub-query which wasn't unnested |
| bugs.gh_8290_test | "Unique scan" is incorrectly reported in the explained plan for unique index and IS NULL predicate |
| bugs.gh_8488_test | MIN/MAX aggregates may badly affect the join order in queries with mixed INNER/LEFT joins |
| bugs.gh_8628_test | Incorrect join order for JOIN LATERAL with UNION referencing the outer stream(s) via its select list |
| bugs.gh_8732_test | Add support of the IN <list> predicate to the equality distribution logic |
| bugs.gh_8749_test | Computed index on RDB$RECORD_VERSION don't work as expected |
| bugs.gh_8821_test | REGRESSION: natural plan instead of primary/unique index |
| bugs.gh_8948_test | Natural scan may occur for a query that has EXISTS and several joins in the inner subquery. |
| functional.arno.optimizer.test_opt_aggregate_distribution_01 | Try to deliver HAVING CLAUSE conjunctions to the WHERE clause |
| functional.arno.optimizer.test_opt_aggregate_distribution_02 | Try to deliver HAVING CLAUSE conjunctions to the WHERE clause |
| functional.arno.optimizer.test_opt_aggregate_distribution_03 | Try to deliver HAVING CLAUSE conjunctions to the WHERE clause |
| functional.arno.optimizer.test_opt_aggregate_distribution_04 | Try to deliver HAVING CLAUSE conjunctions to the WHERE clause |
| functional.arno.optimizer.test_opt_aggregate_distribution_05 | Try to deliver HAVING CLAUSE conjunctions to the WHERE clause |
| functional.arno.optimizer.test_opt_aggregate_distribution_06 | Try to deliver HAVING CLAUSE conjunctions to the WHERE clause |
| functional.arno.optimizer.test_opt_aggregate_distribution_07 | Try to deliver HAVING CLAUSE conjunctions to the WHERE clause |
| functional.arno.optimizer.test_opt_aggregate_distribution_08 | Try to deliver HAVING CLAUSE conjunctions to the WHERE clause |
| functional.arno.optimizer.test_opt_aggregate_distribution_09 | Try to deliver HAVING CLAUSE conjunctions to the WHERE clause |
| functional.arno.optimizer.test_opt_aggregate_distribution_10 | Try to deliver HAVING CLAUSE conjunctions to the WHERE clause |
| functional.arno.optimizer.test_opt_aggregate_distribution_11 | Try to deliver HAVING CLAUSE conjunctions to the WHERE clause |
| functional.arno.optimizer.test_opt_aggregate_distribution_12 | Try to deliver HAVING CLAUSE conjunctions to the WHERE clause |
| functional.arno.optimizer.test_opt_aggregate_distribution_13 | Try to deliver HAVING CLAUSE conjunctions to the WHERE clause |
| functional.arno.optimizer.test_opt_aggregate_distribution_14 | Try to deliver HAVING CLAUSE conjunctions to the WHERE clause |
| functional.arno.optimizer.test_opt_full_join_01 | FULL OUTER JOIN, list all values |
| functional.arno.optimizer.test_opt_full_join_02 | FULL OUTER JOIN, list all values, but filtered in WHERE clause |
| functional.arno.optimizer.test_opt_full_join_03 | FULL OUTER JOIN, list all values, but filtered in WHERE clause |
| functional.arno.optimizer.test_opt_full_join_04 | FULL OUTER JOIN, list all values, but filtered in WHERE clause |
| functional.arno.optimizer.test_opt_inner_join_01 | INNER JOIN join order |
| functional.arno.optimizer.test_opt_inner_join_02 | INNER JOIN join order |
| functional.arno.optimizer.test_opt_inner_join_03 | INNER JOIN join order |
| functional.arno.optimizer.test_opt_inner_join_04 | INNER JOIN join order LIKE and IS NULL |
| functional.arno.optimizer.test_opt_inner_join_05 | INNER JOIN join order LIKE and STARTING WITH |
| functional.arno.optimizer.test_opt_inner_join_06 | INNER JOIN join order and VIEW |
| functional.arno.optimizer.test_opt_inner_join_07 | INNER JOIN join order and VIEW |
| functional.arno.optimizer.test_opt_inner_join_08 | INNER JOIN join order and VIEW |
| functional.arno.optimizer.test_opt_inner_join_09 | INNER JOIN join order and distribution |
| functional.arno.optimizer.test_opt_inner_join_10 | INNER JOIN join order |
| functional.arno.optimizer.test_opt_inner_join_merge_01 | INNER JOIN join merge |
| functional.arno.optimizer.test_opt_inner_join_merge_02 | INNER JOIN join merge |
| functional.arno.optimizer.test_opt_inner_join_merge_03 | INNER JOIN join merge |
| functional.arno.optimizer.test_opt_inner_join_merge_04 | INNER JOIN join merge and NULLs |
| functional.arno.optimizer.test_opt_inner_join_merge_05 | INNER JOIN join merge and VIEWs |
| functional.arno.optimizer.test_opt_inner_join_merge_06 | INNER JOIN join merge and SP |
| functional.arno.optimizer.test_opt_left_join_01 | LEFT OUTER JOIN with no match at all |
| functional.arno.optimizer.test_opt_left_join_02 | LEFT OUTER JOIN with no match and IS NULL in WHERE clause |
| functional.arno.optimizer.test_opt_left_join_04 | LEFT OUTER JOIN with full match |
| functional.arno.optimizer.test_opt_left_join_05 | LEFT OUTER JOIN with full match, but limited in ON clause |
| functional.arno.optimizer.test_opt_left_join_08 | LEFT OUTER JOIN with full match, but limited in ON and WHERE clause |
| functional.arno.optimizer.test_opt_left_join_09 | LEFT OUTER JOIN with full match, but limited in ON and WHERE clause |
| functional.arno.optimizer.test_opt_left_join_10 | LEFT OUTER JOIN with IS NULL burried in WHERE clause |
| functional.arno.optimizer.test_opt_left_join_12 | LEFT OUTER JOIN with distribution CASE |
| functional.arno.optimizer.test_opt_left_join_13 | LEFT OUTER JOIN VIEW with full match |
| functional.arno.optimizer.test_opt_mixed_joins_01 | Mixed JOINS |
| functional.arno.optimizer.test_opt_mixed_joins_02 | Mixed JOINS |
| functional.arno.optimizer.test_opt_mixed_joins_03 | Mixed JOINS |
| functional.arno.optimizer.test_opt_mixed_joins_04 | Mixed JOINS |
| functional.arno.optimizer.test_opt_mixed_joins_05 | Mixed JOINS |
| functional.arno.optimizer.test_opt_mixed_joins_06 | Mixed JOINS |
| functional.arno.optimizer.test_opt_multi_index_selection_01 | Unique index selection (multi segment) |
| functional.arno.optimizer.test_opt_multi_index_selection_02 | Best match index selection (multi segment) |
| functional.arno.optimizer.test_opt_multi_index_selection_03 | Best match index selection (multi segment) |
| functional.arno.optimizer.test_opt_multi_index_selection_04 | Best match index selection (multi segment) |
| functional.arno.optimizer.test_opt_multi_index_selection_05 | Best match index selection (multi segment) |
| functional.arno.optimizer.test_opt_multi_index_selection_06 | Best match index selection (multi segment) |
| functional.arno.optimizer.test_opt_multi_index_selection_07 | Best match index selection (multi segment) |
| functional.arno.optimizer.test_opt_multi_index_selection_08 | Best match index selection (multi segment) |
| functional.arno.optimizer.test_opt_single_index_selection_01 | Unique index selection (single segment) |
| functional.arno.optimizer.test_opt_single_index_selection_02 | Best match index selection (single segment) |
| functional.arno.optimizer.test_opt_single_index_selection_03 | Best match index selection (single segment) |
| functional.arno.optimizer.test_opt_single_index_selection_04 | Best match index selection (single segment) |
| functional.arno.optimizer.test_opt_single_index_selection_05 | Best match index selection (single segment) ASC and DESC |
| functional.arno.optimizer.test_opt_single_index_selection_06 | Best match index selection (single segment) |
| functional.arno.optimizer.test_opt_single_index_selection_07 | Best match index selection (single segment) |
| functional.arno.optimizer.test_opt_single_index_selection_08 | Best match index selection (single segment) |
| functional.arno.optimizer.test_opt_single_index_selection_09 | Best match index selection (single segment) OR |
| functional.arno.optimizer.test_opt_single_index_selection_10 | Best match index selection (single segment) OR |
| functional.arno.optimizer.test_opt_single_index_selection_11 | Best match index selection (single segment) |
| functional.arno.optimizer.test_opt_sort_by_index_01 | ORDER BY ASC using index (unique) |
| functional.arno.optimizer.test_opt_sort_by_index_02 | ORDER BY DESC using index (unique) |
| functional.arno.optimizer.test_opt_sort_by_index_03 | ORDER BY ASC using index (non-unique) |
| functional.arno.optimizer.test_opt_sort_by_index_04 | ORDER BY DESC using index (non-unique) |
| functional.arno.optimizer.test_opt_sort_by_index_05 | MAX() and DESC index (non-unique) |
| functional.arno.optimizer.test_opt_sort_by_index_06 | MAX() and ASC index (non-unique) |
| functional.arno.optimizer.test_opt_sort_by_index_07 | MIN() and ASC index (non-unique) |
| functional.arno.optimizer.test_opt_sort_by_index_08 | MIN() and DESC index (non-unique) |
| functional.arno.optimizer.test_opt_sort_by_index_09 | ORDER BY ASC using index (non-unique) |
| functional.arno.optimizer.test_opt_sort_by_index_10 | ORDER BY ASC using index (multi) |
| functional.arno.optimizer.test_opt_sort_by_index_11 | ORDER BY ASC using index (multi) |
| functional.arno.optimizer.test_opt_sort_by_index_12 | ORDER BY ASC, DESC using index (multi) |
| functional.arno.optimizer.test_opt_sort_by_index_13 | ORDER BY ASC using index (multi) |
| functional.arno.optimizer.test_opt_sort_by_index_14 | ORDER BY ASC NULLS FIRST using index |
| functional.arno.optimizer.test_opt_sort_by_index_15 | ORDER BY ASC NULLS LAST using index |
| functional.arno.optimizer.test_opt_sort_by_index_16 | ORDER BY DESC NULLS FIRST using index |
| functional.arno.optimizer.test_opt_sort_by_index_17 | ORDER BY DESC NULLS LAST using index |
| functional.arno.optimizer.test_opt_sort_by_index_18 | ORDER BY ASC using index (single) and WHERE clause |
| functional.arno.optimizer.test_opt_sort_by_index_19 | ORDER BY ASC using index (multi) and WHERE clause |
| functional.tabloid.test_aae2ae32 | Better fix for #8252: incorrect subquery unnesting with complex dependencies, it re-allows converting nested IN/EXISTS into multiple semi-join |
| functional.tabloid.test_e260ced8 | Allow computable but non-invariant lists to be used for index lookup |