| 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_4754_test | Bugcheck 167 (invalid SEND request) while working with GTT from several attachments (using EXECUTE STATEMENT ... ON EXTERNAL and different roles) |
| 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_5275_test | Expression index may become inconsistent if CREATE INDEX was interrupted after b-tree creation but before commiting |
| bugs.core_5481_test | Available indices are not used in some cases if ORDER BY expression is a filtered one |
| bugs.core_5488_session_idle_test | Timeouts for running SQL statements and idle connections |
| bugs.core_5501_test | Unclear gstat's diagnostic when damaged page in DB file appears encrypted |
| bugs.core_5618_test | Part of the pages of the second level blobs is not released when deleting relations |
| bugs.core_5921_test | Provide information about Global Commit Number, Commit Number of currently used database snapshot (if any) and Commit Numbers assigned to the committed transactions |
| bugs.core_6095_test | Extend trace record for COMMIT/ROLLBACK RETAINING to allow chaining of transaction ids |
| bugs.core_6278_test | Efficient table scans for DBKEY-based range conditions |
| bugs.gh_0310_test | System table with keywords |
| 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_7050_test | Add table MON$COMPILED_STATEMENTS and columns |
| 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_7304_test | Events in system attachments (like garbage collector) are not traced |
| bugs.gh_7332_test | Remove/increase the record size limit |
| 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_7466_test | Add COMPILE trace events for procedures/functions/triggers |
| 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_8077_test | Error "Too many recursion levels" does not stop execuition of code that uses ON DISCONNECT trigger (FB 4.x+) |
| bugs.gh_8091_test | Ability to create an inactive index |
| 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_8219_test | Database creation in 3.0.12, 4.0.5 and 5.0.1 slower than in previous releases |
| 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_8250_test | Bad performance on simple two joins query on tables with composed index |
| 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_8278_test | Avoid index lookup for a NULL key if the condition is known to always be FALSE in this case |
| bugs.gh_8290_test | "Unique scan" is incorrectly reported in the explained plan for unique index and IS NULL predicate |
| bugs.gh_8434_test | Fix implicitly used collations after ALTER DOMAIN |
| bugs.gh_8488_test | MIN/MAX aggregates may badly affect the join order in queries with mixed INNER/LEFT joins |
| bugs.gh_8494_test | Fix issues with longish concatenated context aliases |
| bugs.gh_8618_test | Extra quotes in plan when using UNLIST function |
| bugs.gh_8628_test | Incorrect join order for JOIN LATERAL with UNION referencing the outer stream(s) via its select list |
| bugs.gh_8663_test | Problem with restore time when DB has many indices (possible regression in 6.x) |
| 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_8851_test | 'Internal error' when calling outer procedure after deleting unused result variable from inner procedure |
| bugs.gh_8902_test | FULL OUTER JOIN does not use indexes with the derived table |
| bugs.gh_8940_test | Better cardinality estimation for queries with many predicates (especially those not matched to any indices) |
| 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.dtt.test_dtt_indices_01 | Index support for Declared LTT - basic test. |
| functional.dtt.test_dtt_max_count | DECLARED TEMPORARY TABLE - check max limit for DTT that can be created within each kind of PSQL unit. |
| functional.package.temp_tables_multiple_indices_test | Temporary tables in packages (#8974) - multiple indices |
| functional.table.alter.test_05 | ALTER TABLE - ALTER - TO |
| functional.tabloid.test_893488bb | (Simplified but still) cost-based choice between LOOP and HASH semi-joins |
| functional.tabloid.test_8f728e63 | Fix cardinality estimations for semi/anti joins |
| functional.tabloid.test_95442bdf | Attempt to avoid hash joining for possible cardinality under-estimations |
| 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_cc183f59 | Add key info to the merge join plan output |
| functional.tabloid.test_e260ced8 | Allow computable but non-invariant lists to be used for index lookup |
| functional.trigger.alter.test_alter_dml_basic | ALTER TRIGGER - basic checks for DML triggers |
| functional.trigger.database.test_transactioncommit_01 | Trigger on commit transaction. See also CORE-645 |