@quereus/quereus 4.20.1 → 4.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/package.json +7 -4
- package/test/README.md +173 -0
- package/test/logic/01-basic.sqllogic +39 -0
- package/test/logic/01.1-select-projection-extras.sqllogic +130 -0
- package/test/logic/01.2-strings.sqllogic +43 -0
- package/test/logic/01.5-insert-select.sqllogic +237 -0
- package/test/logic/01.6-update-extras.sqllogic +118 -0
- package/test/logic/01.7-update-from.sqllogic +67 -0
- package/test/logic/01.8-delete-extras.sqllogic +122 -0
- package/test/logic/01.8.1-delete-range-cow.sqllogic +115 -0
- package/test/logic/01.9-query-expr-dml-gates.sqllogic +32 -0
- package/test/logic/01.9-query-expr-dml.sqllogic +171 -0
- package/test/logic/01.9-query-expr-values.sqllogic +111 -0
- package/test/logic/01.9.1-limit-over-dml-subquery.sqllogic +119 -0
- package/test/logic/02-filters.sqllogic +54 -0
- package/test/logic/02-smoke.sqllogic +62 -0
- package/test/logic/02.1-bind-parameters.sqllogic +223 -0
- package/test/logic/03-expressions.sqllogic +190 -0
- package/test/logic/03.1-quoted-identifiers.sqllogic +55 -0
- package/test/logic/03.4-defaults.sqllogic +554 -0
- package/test/logic/03.4.1-default-edge-cases.sqllogic +99 -0
- package/test/logic/03.5-tvf.sqllogic +61 -0
- package/test/logic/03.6-type-system.sqllogic +544 -0
- package/test/logic/03.6.1-numeric-text-comparison-coercion.sqllogic +244 -0
- package/test/logic/03.6.2-value-to-text.sqllogic +224 -0
- package/test/logic/03.7-bigint-mixed-arithmetic.sqllogic +65 -0
- package/test/logic/03.8-not-precedence.sqllogic +255 -0
- package/test/logic/03.9-is-bool-predicate.sqllogic +150 -0
- package/test/logic/03.9.1-is-bool-predicate-partial-index.sqllogic +34 -0
- package/test/logic/04-order-by.sqllogic +38 -0
- package/test/logic/04-transactions.sqllogic +239 -0
- package/test/logic/04a-savepoint-lazy-attach.sqllogic +122 -0
- package/test/logic/05-vtab_memory.sqllogic +50 -0
- package/test/logic/05.0.1-vtab-memory-unique-index-collation.sqllogic +34 -0
- package/test/logic/05.1-composite-pk-range-scan.sqllogic +147 -0
- package/test/logic/05.1.1-secondary-index-range-scan.sqllogic +56 -0
- package/test/logic/05.2-cast-seek-correctness.sqllogic +124 -0
- package/test/logic/06-builtin_functions.sqllogic +149 -0
- package/test/logic/06.1-string-functions.sqllogic +92 -0
- package/test/logic/06.1.3-like-glob-edges.sqllogic +53 -0
- package/test/logic/06.2-math-functions.sqllogic +82 -0
- package/test/logic/06.3-schema.sqllogic +48 -0
- package/test/logic/06.3.1-schema-all-schemas.sqllogic +39 -0
- package/test/logic/06.3.2-schema-foreign-keys.sqllogic +208 -0
- package/test/logic/06.3.3-introspection-tags.sqllogic +202 -0
- package/test/logic/06.3.3.1-introspection-tags-index.sqllogic +74 -0
- package/test/logic/06.3.4-view-info.sqllogic +378 -0
- package/test/logic/06.3.5-column-info.sqllogic +347 -0
- package/test/logic/06.3.6-schema-views.sqllogic +29 -0
- package/test/logic/06.4-schema-search-path.sqllogic +354 -0
- package/test/logic/06.4.1-schema-case-insensitive.sqllogic +83 -0
- package/test/logic/06.4.2-collation-extras.sqllogic +472 -0
- package/test/logic/06.4.2.1-collation-index-access-paths.sqllogic +140 -0
- package/test/logic/06.4.3-write-path-collation.sqllogic +99 -0
- package/test/logic/06.4.4-comparison-collation-precedence.sqllogic +342 -0
- package/test/logic/06.4.5-any-collate-declared-keys.sqllogic +92 -0
- package/test/logic/06.5-polymorphic-types.sqllogic +169 -0
- package/test/logic/06.5.1-conversion-functions.sqllogic +173 -0
- package/test/logic/06.5.2-scalar-minmax.sqllogic +16 -0
- package/test/logic/06.5.3-undeclared-return-type-comparison.sqllogic +244 -0
- package/test/logic/06.5.4-declared-return-type-builtins.sqllogic +288 -0
- package/test/logic/06.6-aggregate-extended.sqllogic +78 -0
- package/test/logic/06.7-json-extended.sqllogic +53 -0
- package/test/logic/06.8-json-path-operators.sqllogic +99 -0
- package/test/logic/06.9-json-canonical-key.sqllogic +65 -0
- package/test/logic/06.9.1-json-coerce-once.sqllogic +417 -0
- package/test/logic/06.9.1.1-json-coerce-once-index.sqllogic +39 -0
- package/test/logic/06.9.2-json-structural-equality.sqllogic +382 -0
- package/test/logic/06.9.2.1-json-structural-equality-index.sqllogic +76 -0
- package/test/logic/06.9.3-json-index-range-seek.sqllogic +205 -0
- package/test/logic/07-aggregates.sqllogic +193 -0
- package/test/logic/07.1-aggregate-filter-clause.sqllogic +12 -0
- package/test/logic/07.2-aggregate-order-by.sqllogic +11 -0
- package/test/logic/07.3-group-by-extras.sqllogic +602 -0
- package/test/logic/07.3.1-group-by-order-by-key.sqllogic +164 -0
- package/test/logic/07.3.2-grouped-select-list-shape.sqllogic +231 -0
- package/test/logic/07.4-group-by-filter-composite-pk.sqllogic +120 -0
- package/test/logic/07.5-sum-mixed-exact-and-float.sqllogic +151 -0
- package/test/logic/07.5-window.sqllogic +1941 -0
- package/test/logic/07.5.1-window-named.sqllogic +13 -0
- package/test/logic/07.5.2-window-nth-value.sqllogic +13 -0
- package/test/logic/07.6-subqueries.sqllogic +78 -0
- package/test/logic/07.6.1-subquery-extras.sqllogic +93 -0
- package/test/logic/07.7-and-or-short-circuit.sqllogic +58 -0
- package/test/logic/07.7-in-subquery-caching.sqllogic +174 -0
- package/test/logic/07.7-scalar-agg-decorrelation.sqllogic +197 -0
- package/test/logic/07.7.1-in-extras.sqllogic +158 -0
- package/test/logic/07.7.1-scalar-agg-decorrelation-filter.sqllogic +105 -0
- package/test/logic/07.7.2-scalar-agg-decorrelation-nested.sqllogic +115 -0
- package/test/logic/07.7.3-exists-in-select-decorrelation.sqllogic +107 -0
- package/test/logic/07.7.4-where-conjunct-ordering.sqllogic +121 -0
- package/test/logic/07.7.5-filter-lost-under-index-order.sqllogic +134 -0
- package/test/logic/07.7.6-correlated-predicate-scope.sqllogic +178 -0
- package/test/logic/07.7.7-join-source-scope-shadowing.sqllogic +137 -0
- package/test/logic/07.7.8-correlated-ref-to-computed-column.sqllogic +165 -0
- package/test/logic/07.7.9-conjunct-monotonicity.sqllogic +200 -0
- package/test/logic/07.8-correlated-subquery-edges.sqllogic +71 -0
- package/test/logic/07.8.1-correlated-in-decorrelation-gates.sqllogic +156 -0
- package/test/logic/07.9-in-value-list.sqllogic +154 -0
- package/test/logic/07.9.1-in-value-list-composite-index.sqllogic +38 -0
- package/test/logic/08-views.sqllogic +64 -0
- package/test/logic/08.1-semi-anti-join.sqllogic +191 -0
- package/test/logic/08.1-view-edge-cases.sqllogic +118 -0
- package/test/logic/08.1.1-uncorrelated-in-semijoin.sqllogic +251 -0
- package/test/logic/08.2-existence-flag-semijoin-recovery.sqllogic +197 -0
- package/test/logic/08.3-existence-flag-inner-recovery.sqllogic +102 -0
- package/test/logic/08.4-key-set-semi-join.sqllogic +447 -0
- package/test/logic/09-set_operations.sqllogic +244 -0
- package/test/logic/09.1-set-op-cross-collation.sqllogic +230 -0
- package/test/logic/10-distinct_datatypes.sqllogic +127 -0
- package/test/logic/10.1-ddl-lifecycle.sqllogic +203 -0
- package/test/logic/10.1.1-create-table-syntax-edges.sqllogic +47 -0
- package/test/logic/10.1.2-ddl-in-transaction.sqllogic +143 -0
- package/test/logic/10.1.2.1-add-constraint-in-transaction.sqllogic +59 -0
- package/test/logic/10.1.3-ddl-drop-in-transaction.sqllogic +187 -0
- package/test/logic/10.1.3.1-drop-constraint-in-transaction.sqllogic +45 -0
- package/test/logic/10.1.4-create-table-duplicate-constraint-names.sqllogic +149 -0
- package/test/logic/10.1.4-ddl-transaction-policy.sqllogic +314 -0
- package/test/logic/10.1.5-alter-add-constraint-minted-name-disambiguation.sqllogic +219 -0
- package/test/logic/10.1.5-create-index-lifecycle.sqllogic +72 -0
- package/test/logic/10.1.6-ddl-transaction-policy-index.sqllogic +143 -0
- package/test/logic/10.1.7-create-table-default-type-check.sqllogic +119 -0
- package/test/logic/10.1.8-alter-add-check-existing-rows.sqllogic +117 -0
- package/test/logic/10.2-column-features.sqllogic +365 -0
- package/test/logic/10.2.1-table-options-rejection.sqllogic +63 -0
- package/test/logic/10.2.2-default-collation-memory.sqllogic +30 -0
- package/test/logic/10.3-function-features.sqllogic +247 -0
- package/test/logic/10.4-schema-scale.sqllogic +168 -0
- package/test/logic/10.4.1-schema-scale-indexes.sqllogic +121 -0
- package/test/logic/10.5-indexes.sqllogic +164 -0
- package/test/logic/10.5.1-partial-indexes.sqllogic +526 -0
- package/test/logic/10.5.2-expression-indexes.sqllogic +34 -0
- package/test/logic/10.5.3-desc-index-ordering.sqllogic +130 -0
- package/test/logic/10.5.4-composite-pk-index-update-phantom.sqllogic +55 -0
- package/test/logic/10.5.5-index-name-uniqueness.sqllogic +76 -0
- package/test/logic/10.5.6-minmax-index-boundary.sqllogic +204 -0
- package/test/logic/10.5.7-implicit-unique-index-lifecycle.sqllogic +1216 -0
- package/test/logic/10.6-distinct-edge-cases.sqllogic +119 -0
- package/test/logic/100-predicate-normalization-edge-cases.sqllogic +238 -0
- package/test/logic/100.1-where-extras.sqllogic +163 -0
- package/test/logic/100.1.1-where-join-on-order-indexed.sqllogic +35 -0
- package/test/logic/101-builtin-mutation-kills.sqllogic +974 -0
- package/test/logic/101-transaction-edge-cases.sqllogic +395 -0
- package/test/logic/102-schema-catalog-edge-cases.sqllogic +252 -0
- package/test/logic/102-unique-constraints.sqllogic +145 -0
- package/test/logic/102.0.1-schema-catalog-indexed-table.sqllogic +32 -0
- package/test/logic/102.1-unique-edge-cases.sqllogic +111 -0
- package/test/logic/102.1.1-unique-index-creation-edge-cases.sqllogic +75 -0
- package/test/logic/102.2-unique-collation.sqllogic +181 -0
- package/test/logic/102.2.1-unique-collation-index-derived.sqllogic +305 -0
- package/test/logic/103-database-options-edge-cases.sqllogic +108 -0
- package/test/logic/103.1-pragma-boolean-values.sqllogic +126 -0
- package/test/logic/104-emit-mutation-kills.sqllogic +236 -0
- package/test/logic/105-vtab-memory-mutation-kills.sqllogic +754 -0
- package/test/logic/105.1-vtab-memory-index-mutation-kills.sqllogic +540 -0
- package/test/logic/106-constraint-extractor-mutation-kills.sqllogic +350 -0
- package/test/logic/107-temporal-arithmetic-mutation-kills.sqllogic +833 -0
- package/test/logic/108-cardinality-estimation.sqllogic +146 -0
- package/test/logic/108.1-analyze-name-resolution.sqllogic +102 -0
- package/test/logic/109-aggregate-physical-selection.sqllogic +103 -0
- package/test/logic/11-joins.sqllogic +86 -0
- package/test/logic/11.1-join-using.sqllogic +267 -0
- package/test/logic/11.2-comma-join.sqllogic +35 -0
- package/test/logic/11.3-index-nested-loop-join.sqllogic +305 -0
- package/test/logic/11.3-mismatched-collation-join.sqllogic +74 -0
- package/test/logic/11.4-hash-join-side-swap.sqllogic +118 -0
- package/test/logic/110-scan-emitter-mutation-kills.sqllogic +121 -0
- package/test/logic/110.1-scan-emitter-index-scan-kills.sqllogic +47 -0
- package/test/logic/12-empty-primary-key.sqllogic +124 -0
- package/test/logic/12-join_padding_order.sqllogic +58 -0
- package/test/logic/12.1-orderby-index-consumption.sqllogic +40 -0
- package/test/logic/13-cte.sqllogic +137 -0
- package/test/logic/13.1-cte-multiple-recursive.sqllogic +104 -0
- package/test/logic/13.10-cte-qualified-name.sqllogic +136 -0
- package/test/logic/13.11-unreferenced-dml-cte.sqllogic +414 -0
- package/test/logic/13.12-nested-dml-cte-rejected.sqllogic +280 -0
- package/test/logic/13.2-cte-bind-params.sqllogic +98 -0
- package/test/logic/13.3-cte-edge-cases.sqllogic +120 -0
- package/test/logic/13.4-cte-extras.sqllogic +98 -0
- package/test/logic/13.5-cte-join-order.sqllogic +166 -0
- package/test/logic/13.6-cte-dml-runs-once.sqllogic +318 -0
- package/test/logic/13.7-cte-sibling-visibility.sqllogic +227 -0
- package/test/logic/13.8-insert-with-clause-visibility.sqllogic +254 -0
- package/test/logic/13.9-schema-authored-cte-isolation.sqllogic +328 -0
- package/test/logic/13.9.1-schema-authored-schema-path-isolation.sqllogic +408 -0
- package/test/logic/14-utilities.sqllogic +168 -0
- package/test/logic/15-timespan.sqllogic +279 -0
- package/test/logic/15.1-semantic-ordering.sqllogic +960 -0
- package/test/logic/15.1.1-json-check-coercion.sqllogic +178 -0
- package/test/logic/15.1.2-semantic-ordering-index.sqllogic +41 -0
- package/test/logic/15.1.3-declared-form-write-contract.sqllogic +519 -0
- package/test/logic/16-epoch.sqllogic +187 -0
- package/test/logic/17-weekday-modifier.sqllogic +78 -0
- package/test/logic/18-json-string-escapes.sqllogic +86 -0
- package/test/logic/18-strftime-extended-formats.sqllogic +68 -0
- package/test/logic/20-empty-single-row.sqllogic +261 -0
- package/test/logic/21-null-edge-cases.sqllogic +227 -0
- package/test/logic/21.1-where-null-comparisons.sqllogic +151 -0
- package/test/logic/21.1.1-where-null-comparisons-secondary-index.sqllogic +35 -0
- package/test/logic/21.2-between-edges.sqllogic +157 -0
- package/test/logic/22-boundary-values.sqllogic +175 -0
- package/test/logic/23-self-joins-duplicates.sqllogic +74 -0
- package/test/logic/24-builtin-branches.sqllogic +611 -0
- package/test/logic/24.1-substr-extras.sqllogic +75 -0
- package/test/logic/24.2-random-extras.sqllogic +39 -0
- package/test/logic/25-aggregate-edge-cases.sqllogic +289 -0
- package/test/logic/25.1-nested-aggregates.sqllogic +74 -0
- package/test/logic/25.2-having-edge-cases.sqllogic +318 -0
- package/test/logic/25.3-aggregate-isnull-empty.sqllogic +16 -0
- package/test/logic/25.4-groupby-fd-constant-empty.sqllogic +55 -0
- package/test/logic/25.5-ungrouped-aggregate-column-free-select-item.sqllogic +196 -0
- package/test/logic/26-join-edge-cases.sqllogic +333 -0
- package/test/logic/26.1-left-join-isnull-on-notnull.sqllogic +26 -0
- package/test/logic/26.2-left-join-on-vs-where.sqllogic +67 -0
- package/test/logic/26.3-join-on-constants.sqllogic +61 -0
- package/test/logic/26.4-join-on-is-null-nullable.sqllogic +44 -0
- package/test/logic/27-window-edge-cases.sqllogic +206 -0
- package/test/logic/27.1-window-groups-frame.sqllogic +13 -0
- package/test/logic/27.2-window-exclude.sqllogic +13 -0
- package/test/logic/27.3-window-json-aggregation.sqllogic +66 -0
- package/test/logic/28-set-ops-sort-edge-cases.sqllogic +444 -0
- package/test/logic/28.1-compound-limit-offset.sqllogic +143 -0
- package/test/logic/28.2-orderby-expression-extras.sqllogic +698 -0
- package/test/logic/28.2-set-op-branch-types.sqllogic +217 -0
- package/test/logic/29-constraint-edge-cases.sqllogic +442 -0
- package/test/logic/29.1-column-level-conflict-clause.sqllogic +171 -0
- package/test/logic/29.2-table-level-pk-conflict-clause.sqllogic +113 -0
- package/test/logic/40-constraints.sqllogic +418 -0
- package/test/logic/40.1-pk-desc-direction.sqllogic +76 -0
- package/test/logic/40.2-check-extras.sqllogic +683 -0
- package/test/logic/41-alter-table.sqllogic +191 -0
- package/test/logic/41-fk-cascade-conflict-and-self-ref.sqllogic +263 -0
- package/test/logic/41-fk-cross-schema.sqllogic +155 -0
- package/test/logic/41-fk-extended-targets.sqllogic +173 -0
- package/test/logic/41-foreign-keys.sqllogic +1001 -0
- package/test/logic/41-generated-column-errors.sqllogic +225 -0
- package/test/logic/41-generated-column-extras.sqllogic +598 -0
- package/test/logic/41-generated-column-scope.sqllogic +329 -0
- package/test/logic/41-generated-columns.sqllogic +361 -0
- package/test/logic/41.1-alter-pk.sqllogic +230 -0
- package/test/logic/41.1-fk-collation-conflict.sqllogic +277 -0
- package/test/logic/41.10-alter-drop-column-foreign-key.sqllogic +274 -0
- package/test/logic/41.10.1-alter-drop-column-unique-index.sqllogic +169 -0
- package/test/logic/41.10.2-alter-drop-column-check-and-assertion.sqllogic +1616 -0
- package/test/logic/41.10.3-alter-drop-column-referencing-fk.sqllogic +292 -0
- package/test/logic/41.10.4-drop-object-expression-dependents.sqllogic +602 -0
- package/test/logic/41.11-deferred-fk-with-rename.sqllogic +232 -0
- package/test/logic/41.12-alter-default-coercion.sqllogic +200 -0
- package/test/logic/41.13-alter-add-column-generated-backfill.sqllogic +566 -0
- package/test/logic/41.14-alter-add-column-subquery-backfill.sqllogic +129 -0
- package/test/logic/41.15-alter-column-default-type-check.sqllogic +178 -0
- package/test/logic/41.16-fk-unenforceable.sqllogic +364 -0
- package/test/logic/41.2-alter-column.sqllogic +382 -0
- package/test/logic/41.2.1-alter-column-retype-deleted-row-memory.sqllogic +32 -0
- package/test/logic/41.2.2-alter-column-retype-index-rebuild.sqllogic +77 -0
- package/test/logic/41.2.3-alter-column-set-not-null-pk-backfill.sqllogic +310 -0
- package/test/logic/41.2.3.1-alter-column-set-not-null-pk-backfill-secondary-index.sqllogic +37 -0
- package/test/logic/41.3-alter-add-column-unique.sqllogic +184 -0
- package/test/logic/41.3-alter-rename-propagation.sqllogic +2352 -0
- package/test/logic/41.3.1-alter-rename-index-propagation.sqllogic +94 -0
- package/test/logic/41.4-alter-add-column-constraints.sqllogic +855 -0
- package/test/logic/41.5-alter-misc.sqllogic +48 -0
- package/test/logic/41.5-cross-schema-foreign-keys.sqllogic +253 -0
- package/test/logic/41.6-alter-drop-rename-constraint.sqllogic +354 -0
- package/test/logic/41.6.1-alter-drop-constraint-index-derived.sqllogic +22 -0
- package/test/logic/41.7-alter-column-collate.sqllogic +105 -0
- package/test/logic/41.7.1-alter-column-collate-unique.sqllogic +45 -0
- package/test/logic/41.7.2-alter-column-collate-unique-store.sqllogic +208 -0
- package/test/logic/41.7.2.1-alter-column-collate-unique-index-store.sqllogic +114 -0
- package/test/logic/41.7.3-alter-column-retype-unique.sqllogic +293 -0
- package/test/logic/41.7.3.1-alter-column-retype-staged-rows-memory.sqllogic +41 -0
- package/test/logic/41.7.3.2-alter-column-retype-unique-index.sqllogic +72 -0
- package/test/logic/41.7.4-alter-column-retype-semantic-memory.sqllogic +445 -0
- package/test/logic/41.7.4.1-alter-column-retype-semantic-index-memory.sqllogic +91 -0
- package/test/logic/41.7.5-alter-column-collate-pk-staged-delete-memory.sqllogic +106 -0
- package/test/logic/41.8-alter-add-constraint-unique-fk.sqllogic +275 -0
- package/test/logic/41.8-alter-savepoint-staged-rows.sqllogic +443 -0
- package/test/logic/41.8.1-alter-rename-savepoint-staged-rows.sqllogic +408 -0
- package/test/logic/41.9-alter-constraint-body-change.sqllogic +180 -0
- package/test/logic/41.9-fk-restrict-batched.sqllogic +290 -0
- package/test/logic/42-committed-snapshot.sqllogic +254 -0
- package/test/logic/42-returning.sqllogic +159 -0
- package/test/logic/42.1-returning-extras.sqllogic +232 -0
- package/test/logic/42.2-returning-stored-row.sqllogic +165 -0
- package/test/logic/43-default-nullability.sqllogic +131 -0
- package/test/logic/43-transition-constraints.sqllogic +341 -0
- package/test/logic/43.1-default-collation.sqllogic +140 -0
- package/test/logic/43.1-notnull-or-conflict.sqllogic +79 -0
- package/test/logic/43.2-deferred-check-new-on-delete.sqllogic +95 -0
- package/test/logic/43.3-nullable-primary-key.sqllogic +587 -0
- package/test/logic/44-determinism-validation.sqllogic +164 -0
- package/test/logic/44-orthogonality.sqllogic +146 -0
- package/test/logic/44.1-nondeterministic-schema.sqllogic +316 -0
- package/test/logic/45-udf-determinism.sqllogic +39 -0
- package/test/logic/46-mutation-context.sqllogic +595 -0
- package/test/logic/47-upsert.sqllogic +255 -0
- package/test/logic/47.1-upsert-conflict-targets.sqllogic +169 -0
- package/test/logic/47.2-replace-and-or-clauses.sqllogic +164 -0
- package/test/logic/47.2.1-pk-replace-secondary-unique.sqllogic +374 -0
- package/test/logic/47.3-engine-or-fail.sqllogic +122 -0
- package/test/logic/47.3-upsert-conflict-target-collation.sqllogic +139 -0
- package/test/logic/47.3.1-upsert-conflict-index-derived-collation.sqllogic +25 -0
- package/test/logic/47.4-upsert-conflict-target-affinity.sqllogic +59 -0
- package/test/logic/47.5-upsert-do-update-constraints.sqllogic +440 -0
- package/test/logic/47.6-upsert-do-update-decomposed.sqllogic +100 -0
- package/test/logic/49-reference-graph.sqllogic +84 -0
- package/test/logic/50-declarative-schema.sqllogic +2550 -0
- package/test/logic/50-metadata-tags.sqllogic +1033 -0
- package/test/logic/50.0.1-metadata-tags-index.sqllogic +141 -0
- package/test/logic/50.1-declare-schema-pk.sqllogic +150 -0
- package/test/logic/50.2-declare-schema-renames.sqllogic +949 -0
- package/test/logic/50.2.1-declare-schema-index-renames.sqllogic +173 -0
- package/test/logic/50.3-declare-schema-duplicate-names.sqllogic +280 -0
- package/test/logic/50.4-declare-schema-apply-restore.sqllogic +192 -0
- package/test/logic/51-lens-foundation.sqllogic +147 -0
- package/test/logic/51-materialized-views.sqllogic +376 -0
- package/test/logic/51.5-materialized-views-coarsened-key.sqllogic +198 -0
- package/test/logic/51.7-maintained-table-attach-detach.sqllogic +468 -0
- package/test/logic/51.8-maintained-table-declared-constraints.sqllogic +440 -0
- package/test/logic/51.85-maintained-table-parent-fk.sqllogic +103 -0
- package/test/logic/51.9-maintained-table-secondary-unique.sqllogic +237 -0
- package/test/logic/51.9.1-maintained-table-partial-unique.sqllogic +36 -0
- package/test/logic/52-lens-overrides.sqllogic +566 -0
- package/test/logic/53-materialized-views-rowtime.sqllogic +1601 -0
- package/test/logic/53-reserved-tags.sqllogic +252 -0
- package/test/logic/53.1-materialized-view-write-through.sqllogic +329 -0
- package/test/logic/53.2-materialized-view-rename-propagation.sqllogic +483 -0
- package/test/logic/53.3-materialized-view-constraint-only-ddl.sqllogic +409 -0
- package/test/logic/53.3.1-materialized-view-index-ddl-irrelevance.sqllogic +29 -0
- package/test/logic/53.4-materialized-view-structural-alter-restore.sqllogic +436 -0
- package/test/logic/54-covering-mv-enforcement.sqllogic +314 -0
- package/test/logic/54.1-covering-mv-partial-enforcement.sqllogic +34 -0
- package/test/logic/55-internal-eviction-reporting.sqllogic +89 -0
- package/test/logic/55-lens-prover.sqllogic +202 -0
- package/test/logic/55.1-eviction-restrict-fk.sqllogic +148 -0
- package/test/logic/55.5-lens-authored-inverse.sqllogic +1468 -0
- package/test/logic/80-grow-retrieve-pass.sqllogic +79 -0
- package/test/logic/81-quickpick.sqllogic +24 -0
- package/test/logic/82-bloom-join.sqllogic +185 -0
- package/test/logic/83-merge-join.sqllogic +280 -0
- package/test/logic/84-asof-scan.sqllogic +238 -0
- package/test/logic/84-key-cardinality.sqllogic +50 -0
- package/test/logic/85-relational-const-folding.sqllogic +51 -0
- package/test/logic/86-scalar-cse.sqllogic +42 -0
- package/test/logic/90-error_paths.sqllogic +114 -0
- package/test/logic/90.1-parse-errors.sqllogic +77 -0
- package/test/logic/90.2-alter-table-errors.sqllogic +53 -0
- package/test/logic/90.2.1-alter-extra-errors.sqllogic +51 -0
- package/test/logic/90.3-expression-errors.sqllogic +43 -0
- package/test/logic/90.4-dml-errors.sqllogic +47 -0
- package/test/logic/90.5-unsupported-join-types.sqllogic +37 -0
- package/test/logic/90.5.1-right-full-join-read.sqllogic +157 -0
- package/test/logic/90.6-select-error-paths.sqllogic +57 -0
- package/test/logic/91-merge-join-edge-cases.sqllogic +159 -0
- package/test/logic/92-hash-aggregate-edge-cases.sqllogic +139 -0
- package/test/logic/93-ddl-view-edge-cases.sqllogic +104 -0
- package/test/logic/93.1-view-error-paths.sqllogic +74 -0
- package/test/logic/93.2-view-mutation-pending.sqllogic +108 -0
- package/test/logic/93.3-view-mutation-or-clause.sqllogic +60 -0
- package/test/logic/93.4-view-mutation.sqllogic +4881 -0
- package/test/logic/93.4.1-view-mutation-partial-unique-cardinality.sqllogic +31 -0
- package/test/logic/93.5-authored-inverse.sqllogic +415 -0
- package/test/logic/93.6-set-op-flagless-write.sqllogic +862 -0
- package/test/logic/94-tvf-edge-cases.sqllogic +58 -0
- package/test/logic/94.1-limit-offset-edge-cases.sqllogic +109 -0
- package/test/logic/94.2-limit-offset-extras.sqllogic +98 -0
- package/test/logic/95-assertions.sqllogic +1417 -0
- package/test/logic/96-subquery-edge-cases.sqllogic +276 -0
- package/test/logic/97-json-function-edge-cases.sqllogic +633 -0
- package/test/logic/97.1-json-blob-and-special-values.sqllogic +92 -0
- package/test/logic/98-temporal-edge-cases.sqllogic +515 -0
- package/test/logic/99-conversion-edge-cases.sqllogic +325 -0
- package/test/logic/99.0.1-schema-index-listing.sqllogic +21 -0
- package/test/logic/99.1-cast-syntax-extras.sqllogic +167 -0
- package/test/logic/drop-unique-index.sqllogic +88 -0
- package/test/logic/pushdown-test.sqllogic +36 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
-- tvf-edge-cases.sqllogic - Table-valued function edge cases
|
|
2
|
+
-- Targets: table-valued-function.ts — empty results, single elements, subquery usage
|
|
3
|
+
|
|
4
|
+
-- json_each on empty array → empty result set
|
|
5
|
+
SELECT key, value FROM json_each('[]');
|
|
6
|
+
→ []
|
|
7
|
+
|
|
8
|
+
-- json_each on empty object → empty result set
|
|
9
|
+
SELECT key, value FROM json_each('{}');
|
|
10
|
+
→ []
|
|
11
|
+
|
|
12
|
+
-- json_each with single element array
|
|
13
|
+
SELECT key, value, type FROM json_each('[42]');
|
|
14
|
+
→ [{"key":0,"value":42,"type":"integer"}]
|
|
15
|
+
|
|
16
|
+
-- json_each with single key object
|
|
17
|
+
SELECT key, value, type FROM json_each('{"x": true}');
|
|
18
|
+
→ [{"key":"x","value":true,"type":"true"}]
|
|
19
|
+
|
|
20
|
+
-- json_each with null value in array
|
|
21
|
+
SELECT key, value, type FROM json_each('[1, null, 3]');
|
|
22
|
+
→ [{"key":0,"value":1,"type":"integer"},{"key":1,"value":null,"type":"null"},{"key":2,"value":3,"type":"integer"}]
|
|
23
|
+
|
|
24
|
+
-- json_each with nested containers (no recursion)
|
|
25
|
+
SELECT key, type FROM json_each('{"a": [1, 2], "b": {"c": 3}}') ORDER BY key;
|
|
26
|
+
→ [{"key":"a","type":"array"},{"key":"b","type":"object"}]
|
|
27
|
+
|
|
28
|
+
-- json_each in subquery context
|
|
29
|
+
SELECT count(*) AS cnt FROM (SELECT * FROM json_each('[10, 20, 30]'));
|
|
30
|
+
→ [{"cnt":3}]
|
|
31
|
+
|
|
32
|
+
-- json_each with WHERE filter eliminating all rows
|
|
33
|
+
SELECT key, value FROM json_each('[1, 2, 3]') WHERE value > 100;
|
|
34
|
+
→ []
|
|
35
|
+
|
|
36
|
+
-- json_each with WHERE filter keeping some rows
|
|
37
|
+
SELECT value FROM json_each('[10, 20, 30, 40, 50]') WHERE value > 25;
|
|
38
|
+
→ [{"value":30},{"value":40},{"value":50}]
|
|
39
|
+
|
|
40
|
+
-- json_each with root path on nested object
|
|
41
|
+
SELECT key, value FROM json_each('{"a": {"x": 1, "y": 2}}', '$.a') ORDER BY key;
|
|
42
|
+
→ [{"key":"x","value":1},{"key":"y","value":2}]
|
|
43
|
+
|
|
44
|
+
-- json_each with aggregation in subquery
|
|
45
|
+
SELECT sum(value) AS total FROM json_each('[10, 20, 30]');
|
|
46
|
+
→ [{"total":60}]
|
|
47
|
+
|
|
48
|
+
-- json_each with LIMIT
|
|
49
|
+
SELECT value FROM json_each('[1, 2, 3, 4, 5]') LIMIT 3;
|
|
50
|
+
→ [{"value":1},{"value":2},{"value":3}]
|
|
51
|
+
|
|
52
|
+
-- json_each with boolean values
|
|
53
|
+
SELECT key, value, type FROM json_each('[true, false]');
|
|
54
|
+
→ [{"key":0,"value":true,"type":"true"},{"key":1,"value":false,"type":"false"}]
|
|
55
|
+
|
|
56
|
+
-- json_each with mixed types
|
|
57
|
+
SELECT key, type FROM json_each('[1, "hello", true, null, 3.14]');
|
|
58
|
+
→ [{"key":0,"type":"integer"},{"key":1,"type":"text"},{"key":2,"type":"true"},{"key":3,"type":"null"},{"key":4,"type":"real"}]
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
-- limit-offset-edge-cases.sqllogic - Boundary cases for limit/offset emitter
|
|
2
|
+
-- Targets: limit-offset.ts — LIMIT 0, negative, OFFSET beyond count, empty table
|
|
3
|
+
|
|
4
|
+
CREATE TABLE lo_t (id INTEGER PRIMARY KEY, val TEXT);
|
|
5
|
+
INSERT INTO lo_t VALUES (1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e');
|
|
6
|
+
|
|
7
|
+
-- LIMIT 0 → empty result
|
|
8
|
+
SELECT * FROM lo_t LIMIT 0;
|
|
9
|
+
→ []
|
|
10
|
+
|
|
11
|
+
-- LIMIT 0 with OFFSET → empty result
|
|
12
|
+
SELECT * FROM lo_t LIMIT 0 OFFSET 2;
|
|
13
|
+
→ []
|
|
14
|
+
|
|
15
|
+
-- OFFSET beyond row count → empty result
|
|
16
|
+
SELECT * FROM lo_t ORDER BY id LIMIT 100 OFFSET 100;
|
|
17
|
+
→ []
|
|
18
|
+
|
|
19
|
+
-- OFFSET = exact row count → empty result
|
|
20
|
+
SELECT * FROM lo_t ORDER BY id LIMIT 100 OFFSET 5;
|
|
21
|
+
→ []
|
|
22
|
+
|
|
23
|
+
-- LIMIT 1 → first row only
|
|
24
|
+
SELECT * FROM lo_t ORDER BY id LIMIT 1;
|
|
25
|
+
→ [{"id":1,"val":"a"}]
|
|
26
|
+
|
|
27
|
+
-- LIMIT with OFFSET
|
|
28
|
+
SELECT * FROM lo_t ORDER BY id LIMIT 2 OFFSET 2;
|
|
29
|
+
→ [{"id":3,"val":"c"},{"id":4,"val":"d"}]
|
|
30
|
+
|
|
31
|
+
-- OFFSET skips some, LIMIT takes remainder
|
|
32
|
+
SELECT * FROM lo_t ORDER BY id LIMIT 100 OFFSET 3;
|
|
33
|
+
→ [{"id":4,"val":"d"},{"id":5,"val":"e"}]
|
|
34
|
+
|
|
35
|
+
-- Negative LIMIT → treated as 0 (no rows)
|
|
36
|
+
SELECT * FROM lo_t LIMIT -1;
|
|
37
|
+
→ []
|
|
38
|
+
|
|
39
|
+
-- Negative OFFSET → treated as 0 (no offset)
|
|
40
|
+
SELECT * FROM lo_t ORDER BY id LIMIT 3 OFFSET -1;
|
|
41
|
+
→ [{"id":1,"val":"a"},{"id":2,"val":"b"},{"id":3,"val":"c"}]
|
|
42
|
+
|
|
43
|
+
-- MySQL-style: LIMIT offset, count
|
|
44
|
+
SELECT * FROM lo_t ORDER BY id LIMIT 2, 3;
|
|
45
|
+
→ [{"id":3,"val":"c"},{"id":4,"val":"d"},{"id":5,"val":"e"}]
|
|
46
|
+
|
|
47
|
+
-- LIMIT on empty table → empty
|
|
48
|
+
CREATE TABLE lo_empty (id INTEGER PRIMARY KEY, val TEXT);
|
|
49
|
+
|
|
50
|
+
SELECT * FROM lo_empty LIMIT 10;
|
|
51
|
+
→ []
|
|
52
|
+
|
|
53
|
+
SELECT * FROM lo_empty LIMIT 0;
|
|
54
|
+
→ []
|
|
55
|
+
|
|
56
|
+
SELECT * FROM lo_empty LIMIT 10 OFFSET 5;
|
|
57
|
+
→ []
|
|
58
|
+
|
|
59
|
+
DROP TABLE lo_empty;
|
|
60
|
+
|
|
61
|
+
-- LIMIT exactly matches row count
|
|
62
|
+
SELECT * FROM lo_t ORDER BY id LIMIT 5;
|
|
63
|
+
→ [{"id":1,"val":"a"},{"id":2,"val":"b"},{"id":3,"val":"c"},{"id":4,"val":"d"},{"id":5,"val":"e"}]
|
|
64
|
+
|
|
65
|
+
-- Large LIMIT with no practical effect
|
|
66
|
+
SELECT * FROM lo_t ORDER BY id LIMIT 999999;
|
|
67
|
+
→ [{"id":1,"val":"a"},{"id":2,"val":"b"},{"id":3,"val":"c"},{"id":4,"val":"d"},{"id":5,"val":"e"}]
|
|
68
|
+
|
|
69
|
+
-- LIMIT in subquery
|
|
70
|
+
SELECT * FROM (SELECT id FROM lo_t ORDER BY id LIMIT 3) ORDER BY id;
|
|
71
|
+
→ [{"id":1},{"id":2},{"id":3}]
|
|
72
|
+
|
|
73
|
+
-- OFFSET in subquery
|
|
74
|
+
SELECT * FROM (SELECT id FROM lo_t ORDER BY id LIMIT 2 OFFSET 1) ORDER BY id;
|
|
75
|
+
→ [{"id":2},{"id":3}]
|
|
76
|
+
|
|
77
|
+
-- LIMIT 1 with OFFSET at last row
|
|
78
|
+
SELECT * FROM lo_t ORDER BY id LIMIT 1 OFFSET 4;
|
|
79
|
+
→ [{"id":5,"val":"e"}]
|
|
80
|
+
|
|
81
|
+
-- LIMIT 1 with OFFSET past last row
|
|
82
|
+
SELECT * FROM lo_t ORDER BY id LIMIT 1 OFFSET 5;
|
|
83
|
+
→ []
|
|
84
|
+
|
|
85
|
+
-- Cast edge cases (exercises cast.ts fallback paths)
|
|
86
|
+
-- CAST null → null
|
|
87
|
+
SELECT CAST(null AS INTEGER) AS r;
|
|
88
|
+
→ [{"r":null}]
|
|
89
|
+
|
|
90
|
+
-- CAST non-numeric string to INTEGER → 0 (fallback)
|
|
91
|
+
SELECT CAST('abc' AS INTEGER) AS r;
|
|
92
|
+
→ [{"r":0}]
|
|
93
|
+
|
|
94
|
+
-- CAST non-numeric string to REAL → 0
|
|
95
|
+
SELECT CAST('xyz' AS REAL) AS r;
|
|
96
|
+
→ [{"r":0}]
|
|
97
|
+
|
|
98
|
+
-- CAST number to TEXT → string
|
|
99
|
+
SELECT CAST(42 AS TEXT) AS r;
|
|
100
|
+
→ [{"r":"42"}]
|
|
101
|
+
|
|
102
|
+
-- CAST valid numeric string
|
|
103
|
+
SELECT CAST('123' AS INTEGER) AS r;
|
|
104
|
+
→ [{"r":123}]
|
|
105
|
+
|
|
106
|
+
SELECT CAST('3.14' AS REAL) AS r;
|
|
107
|
+
→ [{"r":3.14}]
|
|
108
|
+
|
|
109
|
+
DROP TABLE lo_t;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
-- adapted from SQLite test/limit.test, test/limit2.test, test/select8.test,
|
|
2
|
+
-- test/e_select.test
|
|
3
|
+
-- LIMIT / OFFSET combinations that 94.1 doesn't already cover: expression
|
|
4
|
+
-- operands, OFFSET without LIMIT, interaction with DISTINCT and GROUP BY.
|
|
5
|
+
|
|
6
|
+
create table le (id integer primary key, val text);
|
|
7
|
+
insert into le values (1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e');
|
|
8
|
+
|
|
9
|
+
-- LIMIT with arithmetic expression
|
|
10
|
+
select * from le order by id limit 1 + 1;
|
|
11
|
+
→ [{"id":1,"val":"a"},{"id":2,"val":"b"}]
|
|
12
|
+
|
|
13
|
+
-- OFFSET with arithmetic expression
|
|
14
|
+
select * from le order by id limit 10 offset 4 - 2;
|
|
15
|
+
→ [{"id":3,"val":"c"},{"id":4,"val":"d"},{"id":5,"val":"e"}]
|
|
16
|
+
|
|
17
|
+
-- LIMIT and OFFSET both expression-valued
|
|
18
|
+
select * from le order by id limit 4 / 2 offset 1 + 1;
|
|
19
|
+
→ [{"id":3,"val":"c"},{"id":4,"val":"d"}]
|
|
20
|
+
|
|
21
|
+
-- OFFSET without LIMIT — Quereus parser requires explicit LIMIT before OFFSET
|
|
22
|
+
select * from le order by id offset 2;
|
|
23
|
+
-- error: offset
|
|
24
|
+
|
|
25
|
+
-- Equivalent expressed with explicit large LIMIT
|
|
26
|
+
select * from le order by id limit 1000 offset 2;
|
|
27
|
+
→ [{"id":3,"val":"c"},{"id":4,"val":"d"},{"id":5,"val":"e"}]
|
|
28
|
+
|
|
29
|
+
-- OFFSET equal to row count returns empty
|
|
30
|
+
select * from le order by id limit 1000 offset 5;
|
|
31
|
+
→ []
|
|
32
|
+
|
|
33
|
+
drop table le;
|
|
34
|
+
|
|
35
|
+
-- =============================================================================
|
|
36
|
+
-- LIMIT after DISTINCT — DISTINCT runs first, then LIMIT trims
|
|
37
|
+
-- =============================================================================
|
|
38
|
+
|
|
39
|
+
create table dl (id integer primary key, category text, val integer);
|
|
40
|
+
insert into dl values
|
|
41
|
+
(1, 'A', 10),
|
|
42
|
+
(2, 'A', 20),
|
|
43
|
+
(3, 'B', 10),
|
|
44
|
+
(4, 'B', 30),
|
|
45
|
+
(5, 'A', 20),
|
|
46
|
+
(6, 'C', 50);
|
|
47
|
+
|
|
48
|
+
select distinct category from dl order by category limit 2;
|
|
49
|
+
→ [{"category":"A"},{"category":"B"}]
|
|
50
|
+
|
|
51
|
+
select distinct category from dl order by category limit 1 offset 1;
|
|
52
|
+
→ [{"category":"B"}]
|
|
53
|
+
|
|
54
|
+
-- DISTINCT on multiple columns, then LIMIT
|
|
55
|
+
select distinct category, val from dl order by category, val limit 3;
|
|
56
|
+
→ [{"category":"A","val":10},{"category":"A","val":20},{"category":"B","val":10}]
|
|
57
|
+
|
|
58
|
+
drop table dl;
|
|
59
|
+
|
|
60
|
+
-- =============================================================================
|
|
61
|
+
-- LIMIT after GROUP BY aggregate — group reduction first, then LIMIT
|
|
62
|
+
-- =============================================================================
|
|
63
|
+
|
|
64
|
+
create table gp (id integer primary key, artist text, plays integer);
|
|
65
|
+
insert into gp values
|
|
66
|
+
(1, 'one', 1),
|
|
67
|
+
(2, 'one', 2),
|
|
68
|
+
(3, 'two', 3),
|
|
69
|
+
(4, 'three', 5),
|
|
70
|
+
(5, 'one', 7),
|
|
71
|
+
(6, 'two', 11);
|
|
72
|
+
|
|
73
|
+
-- Sorted group keys, take first
|
|
74
|
+
select artist, sum(plays) as total
|
|
75
|
+
from gp group by artist
|
|
76
|
+
order by artist limit 1;
|
|
77
|
+
→ [{"artist":"one","total":10}]
|
|
78
|
+
|
|
79
|
+
-- LIMIT 1 OFFSET 1 — second group in alphabetical order
|
|
80
|
+
select artist, sum(plays) as total
|
|
81
|
+
from gp group by artist
|
|
82
|
+
order by artist limit 1 offset 1;
|
|
83
|
+
→ [{"artist":"three","total":5}]
|
|
84
|
+
|
|
85
|
+
-- ORDER BY the aggregate, then LIMIT — top-N by aggregate
|
|
86
|
+
select artist, sum(plays) as total
|
|
87
|
+
from gp group by artist
|
|
88
|
+
order by total desc limit 2;
|
|
89
|
+
→ [{"artist":"two","total":14},{"artist":"one","total":10}]
|
|
90
|
+
|
|
91
|
+
-- HAVING reduces groups, then LIMIT trims further
|
|
92
|
+
select artist, sum(plays) as total
|
|
93
|
+
from gp group by artist
|
|
94
|
+
having sum(plays) > 5
|
|
95
|
+
order by artist limit 1;
|
|
96
|
+
→ [{"artist":"one","total":10}]
|
|
97
|
+
|
|
98
|
+
drop table gp;
|