@quereus/quereus 4.20.1 → 4.20.3
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/dist/src/schema/schema-differ.d.ts.map +1 -1
- package/dist/src/schema/schema-differ.js +17 -69
- package/dist/src/schema/schema-differ.js.map +1 -1
- 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 +210 -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,175 @@
|
|
|
1
|
+
-- boundary-values.sqllogic - Boundary values for each type and mixed-type expression edge cases
|
|
2
|
+
|
|
3
|
+
-- =============================================================================
|
|
4
|
+
-- INTEGER boundaries
|
|
5
|
+
-- =============================================================================
|
|
6
|
+
|
|
7
|
+
create table b_int (id integer primary key, val integer);
|
|
8
|
+
insert into b_int values (1, 0), (2, -1), (3, 1), (4, 9007199254740991), (5, -9007199254740991);
|
|
9
|
+
|
|
10
|
+
-- Correct ordering across full range
|
|
11
|
+
select val from b_int order by val;
|
|
12
|
+
→ [{"val":-9007199254740991},{"val":-1},{"val":0},{"val":1},{"val":9007199254740991}]
|
|
13
|
+
|
|
14
|
+
-- Arithmetic at boundaries
|
|
15
|
+
select 9007199254740991 + 0 as r;
|
|
16
|
+
→ [{"r":9007199254740991}]
|
|
17
|
+
|
|
18
|
+
select -9007199254740991 - 0 as r;
|
|
19
|
+
→ [{"r":-9007199254740991}]
|
|
20
|
+
|
|
21
|
+
select 0 * 9007199254740991 as r;
|
|
22
|
+
→ [{"r":0}]
|
|
23
|
+
|
|
24
|
+
select -1 * -1 as r;
|
|
25
|
+
→ [{"r":1}]
|
|
26
|
+
|
|
27
|
+
-- Comparison at boundaries
|
|
28
|
+
select 9007199254740991 > -9007199254740991 as r;
|
|
29
|
+
→ [{"r":true}]
|
|
30
|
+
|
|
31
|
+
drop table b_int;
|
|
32
|
+
|
|
33
|
+
-- =============================================================================
|
|
34
|
+
-- REAL boundaries
|
|
35
|
+
-- =============================================================================
|
|
36
|
+
|
|
37
|
+
create table b_real (id integer primary key, val real);
|
|
38
|
+
insert into b_real values (1, 0.0), (2, 1e-15), (3, 1e15);
|
|
39
|
+
|
|
40
|
+
select val from b_real order by val;
|
|
41
|
+
→ [{"val":0},{"val":1e-15},{"val":1000000000000000}]
|
|
42
|
+
|
|
43
|
+
-- Floating point behavior
|
|
44
|
+
select 0.1 + 0.2 as r;
|
|
45
|
+
→ [{"r":0.30000000000000004}]
|
|
46
|
+
|
|
47
|
+
-- IEEE 754: 0.0 == -0.0
|
|
48
|
+
select cast(0.0 as real) = cast(-0.0 as real) as r;
|
|
49
|
+
→ [{"r":true}]
|
|
50
|
+
|
|
51
|
+
drop table b_real;
|
|
52
|
+
|
|
53
|
+
-- =============================================================================
|
|
54
|
+
-- TEXT boundaries
|
|
55
|
+
-- =============================================================================
|
|
56
|
+
|
|
57
|
+
create table b_text (id integer primary key, val text);
|
|
58
|
+
insert into b_text values (1, '');
|
|
59
|
+
|
|
60
|
+
-- Empty string
|
|
61
|
+
select val = '' as r from b_text where id = 1;
|
|
62
|
+
→ [{"r":true}]
|
|
63
|
+
|
|
64
|
+
select length('') as r;
|
|
65
|
+
→ [{"r":0}]
|
|
66
|
+
|
|
67
|
+
-- Empty string is NOT null
|
|
68
|
+
select '' is null as r;
|
|
69
|
+
→ [{"r":false}]
|
|
70
|
+
|
|
71
|
+
-- Empty string compared to null → null (unknown)
|
|
72
|
+
select '' = null as r;
|
|
73
|
+
→ [{"r":null}]
|
|
74
|
+
|
|
75
|
+
-- Single char
|
|
76
|
+
select length('x') as r;
|
|
77
|
+
→ [{"r":1}]
|
|
78
|
+
|
|
79
|
+
-- Embedded single quotes
|
|
80
|
+
select 'it''s' as r;
|
|
81
|
+
→ [{"r":"it's"}]
|
|
82
|
+
|
|
83
|
+
-- Unicode character length
|
|
84
|
+
select length('héllo') as r;
|
|
85
|
+
→ [{"r":5}]
|
|
86
|
+
|
|
87
|
+
drop table b_text;
|
|
88
|
+
|
|
89
|
+
-- =============================================================================
|
|
90
|
+
-- BLOB boundaries
|
|
91
|
+
-- =============================================================================
|
|
92
|
+
|
|
93
|
+
-- Empty blob
|
|
94
|
+
select typeof(x'') as r;
|
|
95
|
+
→ [{"r":"blob"}]
|
|
96
|
+
|
|
97
|
+
select length(x'') as r;
|
|
98
|
+
→ [{"r":0}]
|
|
99
|
+
|
|
100
|
+
-- Single byte
|
|
101
|
+
select length(x'FF') as r;
|
|
102
|
+
→ [{"r":1}]
|
|
103
|
+
|
|
104
|
+
-- Empty blob equality
|
|
105
|
+
select x'' = x'' as r;
|
|
106
|
+
→ [{"r":true}]
|
|
107
|
+
|
|
108
|
+
-- =============================================================================
|
|
109
|
+
-- Mixed-type arithmetic
|
|
110
|
+
-- =============================================================================
|
|
111
|
+
|
|
112
|
+
-- integer + real → real
|
|
113
|
+
select 1 + 1.5 as r;
|
|
114
|
+
→ [{"r":2.5}]
|
|
115
|
+
|
|
116
|
+
-- integer / integer → real (no truncation)
|
|
117
|
+
select 10 / 3 as r;
|
|
118
|
+
→ [{"r":3.3333333333333335}]
|
|
119
|
+
|
|
120
|
+
-- integer / real → real
|
|
121
|
+
select 10 / 2.5 as r;
|
|
122
|
+
→ [{"r":4}]
|
|
123
|
+
|
|
124
|
+
-- real / integer → real
|
|
125
|
+
select 10.0 / 4 as r;
|
|
126
|
+
→ [{"r":2.5}]
|
|
127
|
+
|
|
128
|
+
-- string coercion in arithmetic
|
|
129
|
+
select 1 + '2' as r;
|
|
130
|
+
→ [{"r":3}]
|
|
131
|
+
|
|
132
|
+
-- =============================================================================
|
|
133
|
+
-- Cross-type comparisons
|
|
134
|
+
-- =============================================================================
|
|
135
|
+
|
|
136
|
+
select 1 = 1.0 as r;
|
|
137
|
+
→ [{"r":true}]
|
|
138
|
+
|
|
139
|
+
select 1 < 1.5 as r;
|
|
140
|
+
→ [{"r":true}]
|
|
141
|
+
|
|
142
|
+
-- Verify types
|
|
143
|
+
select typeof(1) as t1, typeof(1.0) as t2, typeof('1') as t3;
|
|
144
|
+
→ [{"t1":"integer","t2":"integer","t3":"text"}]
|
|
145
|
+
|
|
146
|
+
-- =============================================================================
|
|
147
|
+
-- CASE with branches returning different types
|
|
148
|
+
-- =============================================================================
|
|
149
|
+
|
|
150
|
+
-- True branch returns integer
|
|
151
|
+
select case when 1=1 then 42 else 'text' end as r;
|
|
152
|
+
→ [{"r":42}]
|
|
153
|
+
|
|
154
|
+
-- False branch returns text
|
|
155
|
+
select case when 1=0 then 42 else 'text' end as r;
|
|
156
|
+
→ [{"r":"text"}]
|
|
157
|
+
|
|
158
|
+
-- typeof follows actual branch taken
|
|
159
|
+
select typeof(case when 1=1 then 42 else 'text' end) as r;
|
|
160
|
+
→ [{"r":"integer"}]
|
|
161
|
+
|
|
162
|
+
select typeof(case when 1=0 then 42 else 'text' end) as r;
|
|
163
|
+
→ [{"r":"text"}]
|
|
164
|
+
|
|
165
|
+
-- =============================================================================
|
|
166
|
+
-- UNION with different types in corresponding columns
|
|
167
|
+
-- =============================================================================
|
|
168
|
+
|
|
169
|
+
-- Mixed types in same column
|
|
170
|
+
select 1 as v union all select 'text' as v;
|
|
171
|
+
→ [{"v":1},{"v":"text"}]
|
|
172
|
+
|
|
173
|
+
-- typeof reflects per-row type
|
|
174
|
+
select typeof(v) as t from (select 1 as v union all select 'text' as v) order by v;
|
|
175
|
+
→ [{"t":"integer"},{"t":"text"}]
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
-- self-joins-duplicates.sqllogic - Self-joins and duplicate value edge cases
|
|
2
|
+
|
|
3
|
+
-- ===== Self-joins =====
|
|
4
|
+
|
|
5
|
+
-- Setup: employee hierarchy
|
|
6
|
+
create table emp (id integer primary key, name text, manager_id integer null);
|
|
7
|
+
insert into emp values (1, 'Alice', null), (2, 'Bob', 1), (3, 'Carol', 1), (4, 'Dave', 2);
|
|
8
|
+
|
|
9
|
+
-- Basic self-join with aliases
|
|
10
|
+
select e.name as employee, m.name as manager from emp e join emp m on e.manager_id = m.id order by e.id;
|
|
11
|
+
→ [{"employee":"Bob","manager":"Alice"},{"employee":"Carol","manager":"Alice"},{"employee":"Dave","manager":"Bob"}]
|
|
12
|
+
|
|
13
|
+
-- Self-join with LEFT to include root (no manager)
|
|
14
|
+
select e.name as employee, m.name as manager from emp e left join emp m on e.manager_id = m.id order by e.id;
|
|
15
|
+
→ [{"employee":"Alice","manager":null},{"employee":"Bob","manager":"Alice"},{"employee":"Carol","manager":"Alice"},{"employee":"Dave","manager":"Bob"}]
|
|
16
|
+
|
|
17
|
+
-- Self-join with aggregation — count direct reports
|
|
18
|
+
select m.name, count(e.id) as reports from emp m left join emp e on e.manager_id = m.id group by m.name order by m.name;
|
|
19
|
+
→ [{"name":"Alice","reports":2},{"name":"Bob","reports":1},{"name":"Carol","reports":0},{"name":"Dave","reports":0}]
|
|
20
|
+
|
|
21
|
+
-- Correlated subquery referencing outer same-table
|
|
22
|
+
select e.name, (select count(*) from emp sub where sub.manager_id = e.id) as direct_reports from emp e order by e.id;
|
|
23
|
+
→ [{"name":"Alice","direct_reports":2},{"name":"Bob","direct_reports":1},{"name":"Carol","direct_reports":0},{"name":"Dave","direct_reports":0}]
|
|
24
|
+
|
|
25
|
+
-- Multi-level self-join (grandparent)
|
|
26
|
+
select e.name, m.name as manager, gm.name as grand_manager from emp e left join emp m on e.manager_id = m.id left join emp gm on m.manager_id = gm.id order by e.id;
|
|
27
|
+
→ [{"name":"Alice","manager":null,"grand_manager":null},{"name":"Bob","manager":"Alice","grand_manager":null},{"name":"Carol","manager":"Alice","grand_manager":null},{"name":"Dave","manager":"Bob","grand_manager":"Alice"}]
|
|
28
|
+
|
|
29
|
+
drop table emp;
|
|
30
|
+
|
|
31
|
+
-- ===== Duplicate values =====
|
|
32
|
+
|
|
33
|
+
-- Setup: table with duplicate groups and values
|
|
34
|
+
create table d (id integer primary key, grp text, val integer);
|
|
35
|
+
insert into d values (1,'A',10), (2,'A',10), (3,'A',20), (4,'B',10), (5,'B',10), (6,'B',10);
|
|
36
|
+
|
|
37
|
+
-- GROUP BY with all-duplicate keys
|
|
38
|
+
select grp, count(*) as cnt from d group by grp order by grp;
|
|
39
|
+
→ [{"grp":"A","cnt":3},{"grp":"B","cnt":3}]
|
|
40
|
+
|
|
41
|
+
-- GROUP BY on all-duplicate column
|
|
42
|
+
select val, count(*) as cnt from d where grp = 'B' group by val;
|
|
43
|
+
→ [{"val":10,"cnt":3}]
|
|
44
|
+
|
|
45
|
+
-- DISTINCT on all-duplicate column
|
|
46
|
+
select distinct val from d where grp = 'B';
|
|
47
|
+
→ [{"val":10}]
|
|
48
|
+
|
|
49
|
+
-- ORDER BY on column with ties — deterministic with secondary sort on id
|
|
50
|
+
select id, val from d order by val, id;
|
|
51
|
+
→ [{"id":1,"val":10},{"id":2,"val":10},{"id":4,"val":10},{"id":5,"val":10},{"id":6,"val":10},{"id":3,"val":20}]
|
|
52
|
+
|
|
53
|
+
-- ORDER BY with only ties (no tiebreaker) — verify all rows returned
|
|
54
|
+
select val from d where grp = 'B' order by val;
|
|
55
|
+
→ [{"val":10},{"val":10},{"val":10}]
|
|
56
|
+
|
|
57
|
+
-- JOIN with many-to-many matching keys (cartesian within groups)
|
|
58
|
+
create table d2 (id integer primary key, grp text, val2 integer);
|
|
59
|
+
insert into d2 values (1,'A',100), (2,'A',200), (3,'B',300);
|
|
60
|
+
|
|
61
|
+
select d.id, d2.id as d2_id from d join d2 on d.grp = d2.grp order by d.id, d2.id;
|
|
62
|
+
→ [{"id":1,"d2_id":1},{"id":1,"d2_id":2},{"id":2,"d2_id":1},{"id":2,"d2_id":2},{"id":3,"d2_id":1},{"id":3,"d2_id":2},{"id":4,"d2_id":3},{"id":5,"d2_id":3},{"id":6,"d2_id":3}]
|
|
63
|
+
|
|
64
|
+
drop table d2;
|
|
65
|
+
|
|
66
|
+
-- IN subquery returning duplicates — should behave same as distinct
|
|
67
|
+
select * from d where val in (select val from d) order by id;
|
|
68
|
+
→ [{"id":1,"grp":"A","val":10},{"id":2,"grp":"A","val":10},{"id":3,"grp":"A","val":20},{"id":4,"grp":"B","val":10},{"id":5,"grp":"B","val":10},{"id":6,"grp":"B","val":10}]
|
|
69
|
+
|
|
70
|
+
-- DISTINCT with multiple columns
|
|
71
|
+
select distinct grp, val from d order by grp, val;
|
|
72
|
+
→ [{"grp":"A","val":10},{"grp":"A","val":20},{"grp":"B","val":10}]
|
|
73
|
+
|
|
74
|
+
drop table d;
|