├── .eslintrc-base.json ├── .eslintrc.js ├── .gitignore ├── .travis.yml ├── Cost-of-a-line-of-code.md ├── PostgreSQL-composite-types.txt ├── README.md ├── codecov.yml ├── doc-deprecated.md ├── doc ├── 00-getting-started │ ├── 00-defining-tables.md │ ├── 01-data-types.md │ ├── 01a-null-safe-equality.md │ ├── 01b-custom-data-types.md │ ├── 02-from-clause.md │ ├── 02a-correlated-subqueries.md │ ├── 03-where-clause.md │ ├── 04-select-clause.md │ ├── 05-order-by-clause.md │ ├── 06-limit-clause.md │ ├── 07-compound-query.md │ ├── 08-compound-query-order-by-clause.md │ ├── 09-compound-query-limit-clause.md │ ├── 10-map.md │ ├── 11-fetch-all-xxx.md │ ├── 12-fetch-one-xxx.md │ ├── 12a-table-fetch-one-xxx.md │ ├── 13-fetch-value-array.md │ ├── 14-fetch-value-xxx.md │ ├── 14a-table-fetch-value-xxx.md │ ├── 15-paginate.md │ ├── 16-emulated-cursor.md │ ├── 17-query-count.md │ ├── 18-query-exists.md │ ├── 18a-table-exists.md │ ├── 19-derived-table.md │ ├── 20-insert.md │ ├── 21-delete.md │ └── 22-update.md ├── 01-schema-introspection-and-validation │ ├── 00-schema-introspection.md │ └── 01-schema-validation.md ├── 02-design-pattern │ └── 00-log │ │ ├── 00-introduction.md │ │ ├── 01-set-up.md │ │ ├── 02-insert.md │ │ └── 03-select.md └── comparisons │ └── photon-js.md ├── lgtm.yml ├── package-lock.json ├── package.json ├── squill-doc ├── README.md └── data-type │ ├── README.md │ ├── bigint-polyfills.md │ ├── creating-custom-data-types.md │ ├── default-supported-data-types.md │ └── the-idatatype-interface.md ├── src ├── aliased-expr │ ├── aliased-expr-impl.ts │ └── index.ts ├── aliased-table │ ├── aliased-table.ts │ ├── array-util │ │ ├── index.ts │ │ ├── predicate │ │ │ ├── assert-no-duplicate-table-alias.ts │ │ │ └── index.ts │ │ └── query │ │ │ ├── duplicate-table-alias.ts │ │ │ └── index.ts │ ├── index.ts │ └── util │ │ ├── index.ts │ │ └── query │ │ ├── candidate-keys.ts │ │ ├── delete-enabled.ts │ │ ├── extract-with-table-alias.ts │ │ ├── index.ts │ │ ├── mutable-columns.ts │ │ └── primary-key.ts ├── ast │ ├── ast.ts │ ├── case-condition-node │ │ ├── case-condition-node.ts │ │ ├── index.ts │ │ └── util │ │ │ ├── index.ts │ │ │ └── predicate │ │ │ ├── index.ts │ │ │ └── is-case-condition-node.ts │ ├── case-value-node │ │ ├── case-value-node.ts │ │ ├── index.ts │ │ └── util │ │ │ ├── index.ts │ │ │ └── predicate │ │ │ ├── index.ts │ │ │ └── is-case-value-node.ts │ ├── function-call.ts │ ├── identifier-node.ts │ ├── index.ts │ ├── literal-value-node │ │ ├── index.ts │ │ ├── literal-value-node.ts │ │ └── util │ │ │ ├── constructor │ │ │ ├── index.ts │ │ │ └── predicate │ │ │ ├── index.ts │ │ │ └── is-literal-value-node.ts │ ├── operator-node │ │ ├── index.ts │ │ ├── operand.ts │ │ ├── operator-node.ts │ │ ├── operator-operand.ts │ │ └── util │ │ │ ├── constructor │ │ │ ├── index.ts │ │ │ └── predicate │ │ │ ├── assert-has-operand-0.ts │ │ │ ├── assert-has-operand-1-to-n.ts │ │ │ ├── assert-has-operand-1.ts │ │ │ ├── assert-has-operand-2-to-n.ts │ │ │ ├── assert-has-operand-2.ts │ │ │ ├── assert-has-operand-3.ts │ │ │ ├── index.ts │ │ │ └── is-operator-node.ts │ ├── parentheses.ts │ ├── sqlfier │ │ ├── case-condition-sqlfier.ts │ │ ├── case-sqlfier.ts │ │ ├── identifier-sqlfier.ts │ │ ├── index.ts │ │ ├── literal-value-sqlfier.ts │ │ ├── not-implemented-sqlfier.ts │ │ ├── operator-sqlfier.ts │ │ ├── parentheses-sqlfier.ts │ │ ├── query-base-sqlfier.ts │ │ └── sqlfier.ts │ └── util │ │ ├── index.ts │ │ ├── insert-between.ts │ │ ├── is-ast.ts │ │ ├── to-sql-pretty.ts │ │ ├── to-sql.ts │ │ ├── try-extract-ast.ts │ │ └── try-unwrap-parentheses.ts ├── async-queue.ts ├── augmentable.ts ├── built-in-expr │ ├── built-in-expr.ts │ ├── index.ts │ └── util │ │ ├── constructor │ │ ├── index.ts │ │ ├── operation │ │ ├── build-ast.ts │ │ ├── index.ts │ │ └── intersect-used-ref.ts │ │ ├── predicate │ │ ├── assert-non-aggregate.ts │ │ ├── assert-non-null.ts │ │ ├── index.ts │ │ ├── is-any-non-value-expr.ts │ │ ├── is-any-subquery-expr.ts │ │ └── is-built-in-expr.ts │ │ └── query │ │ ├── index.ts │ │ ├── is-aggregate.ts │ │ ├── mapper.ts │ │ ├── type-of.ts │ │ └── used-ref.ts ├── built-in-value-expr │ ├── array-util │ │ ├── index.ts │ │ └── predicate │ │ │ ├── index.ts │ │ │ ├── is-built-in-value-expr-array.ts │ │ │ └── is-non-null-built-in-value-expr-array.ts │ ├── built-in-value-expr.ts │ ├── index.ts │ └── util │ │ ├── index.ts │ │ ├── operation │ │ ├── case-insensitive-narrow.ts │ │ ├── case-sensitive-narrow.ts │ │ ├── index.ts │ │ ├── null-safe-case-insensitive-narrow.ts │ │ └── null-safe-case-sensitive-narrow.ts │ │ ├── predicate │ │ ├── index.ts │ │ ├── is-built-in-value-expr.ts │ │ ├── is-equal.ts │ │ └── is-non-null-built-in-value-expr.ts │ │ └── query │ │ └── index.ts ├── candidate-key │ ├── candidate-key.ts │ ├── index.ts │ └── util │ │ ├── index.ts │ │ └── query │ │ ├── index.ts │ │ └── mapper.ts ├── char-set.ts ├── column-identifier-map │ ├── column-identifier-map.ts │ ├── index.ts │ └── util │ │ ├── constructor │ │ ├── index.ts │ │ ├── operation │ │ ├── index.ts │ │ └── intersect.ts │ │ ├── predicate │ │ ├── has-column-identifier.ts │ │ └── index.ts │ │ └── query │ │ ├── column-alias.ts │ │ ├── extract-column-identifier.ts │ │ └── index.ts ├── column-identifier-ref │ ├── column-identifier-ref.ts │ ├── index.ts │ └── util │ │ ├── constructor │ │ ├── index.ts │ │ ├── operation │ │ ├── index.ts │ │ ├── intersect.ts │ │ ├── left-intersect.ts │ │ └── try-flatten.ts │ │ ├── predicate │ │ ├── has-column-identifier.ts │ │ ├── has-one-table.ts │ │ └── index.ts │ │ └── query │ │ ├── column-alias.ts │ │ ├── extract-column-identifier.ts │ │ └── index.ts ├── column-identifier │ ├── array-util │ │ ├── constructor │ │ ├── index.ts │ │ └── predicate │ │ │ ├── assert-disjoint.ts │ │ │ ├── assert-no-duplicate.ts │ │ │ └── index.ts │ ├── column-identifier.ts │ ├── index.ts │ └── util │ │ ├── constructor │ │ ├── index.ts │ │ ├── operation │ │ ├── index.ts │ │ └── to-error-message-friendly-type.ts │ │ ├── predicate │ │ ├── index.ts │ │ ├── is-column-identifier.ts │ │ └── is-equal.ts │ │ └── query │ │ ├── extract-with-column-alias.ts │ │ ├── extract-with-table-alias.ts │ │ └── index.ts ├── column-map │ ├── column-map.ts │ ├── index.ts │ └── util │ │ ├── constructor │ │ ├── index.ts │ │ ├── operation │ │ ├── compound.ts │ │ ├── index.ts │ │ ├── intersect.ts │ │ ├── left-compound.ts │ │ ├── left-intersect.ts │ │ ├── omit.ts │ │ ├── pick.ts │ │ ├── replace-column.ts │ │ ├── to-nullable.ts │ │ └── with-table-alias.ts │ │ ├── predicate │ │ ├── assert-is-null-safe-comparable-if-same-own-enumerable-keys.ts │ │ ├── assert-is-null-safe-comparable.ts │ │ ├── has-column-alias.ts │ │ ├── index.ts │ │ ├── is-column-map.ts │ │ └── is-null-safe-comparable.ts │ │ └── query │ │ ├── column-alias-with-type.ts │ │ ├── column-alias.ts │ │ ├── extract-column-identifier.ts │ │ ├── extract-non-nullable.ts │ │ ├── extract-nullable.ts │ │ ├── extract-with-type.ts │ │ ├── find-with-column-alias.ts │ │ ├── find-with-table-alias.ts │ │ ├── index.ts │ │ ├── mapper.ts │ │ ├── non-nullable-column-alias.ts │ │ ├── nullable-column-alias.ts │ │ ├── partial-mapper.ts │ │ └── table-alias.ts ├── column-ref │ ├── column-ref.ts │ ├── index.ts │ └── util │ │ ├── constructor │ │ ├── index.ts │ │ ├── operation │ │ ├── compound.ts │ │ ├── index.ts │ │ ├── intersect.ts │ │ ├── left-compound.ts │ │ ├── left-intersect.ts │ │ └── try-flatten.ts │ │ ├── predicate │ │ ├── index.ts │ │ └── is-column-ref.ts │ │ └── query │ │ ├── column-alias.ts │ │ ├── duplicate-column-alias.ts │ │ ├── extract-column-identifier.ts │ │ ├── extract-non-nullable.ts │ │ ├── extract-nullable.ts │ │ ├── extract-with-type.ts │ │ ├── find-with-column-alias.ts │ │ ├── has-one-table.ts │ │ └── index.ts ├── column │ ├── array-util │ │ ├── constructor │ │ └── index.ts │ ├── column-impl.ts │ ├── column.ts │ ├── index.ts │ └── util │ │ ├── constructor │ │ ├── index.ts │ │ ├── operation │ │ ├── as.ts │ │ ├── asc.ts │ │ ├── build-ast.ts │ │ ├── desc.ts │ │ ├── index.ts │ │ ├── sort.ts │ │ ├── to-error-message-friendly-type.ts │ │ ├── to-non-nullable.ts │ │ ├── to-nullable.ts │ │ ├── with-table-alias.ts │ │ ├── with-type.ts │ │ └── with-unaliased-ast.ts │ │ ├── predicate │ │ ├── index.ts │ │ └── is-column.ts │ │ └── query │ │ ├── extract-non-nullable.ts │ │ ├── extract-nullable.ts │ │ ├── extract-with-column-alias.ts │ │ ├── extract-with-table-alias.ts │ │ ├── extract-with-type.ts │ │ └── index.ts ├── comparable-type │ ├── comparable-type.ts │ └── index.ts ├── compile-error │ ├── README.md │ ├── compile-error.ts │ └── index.ts ├── compound-query-clause │ ├── compound-query-clause.ts │ ├── index.ts │ └── util │ │ ├── index.ts │ │ ├── operation │ │ ├── compound-query.ts │ │ └── index.ts │ │ └── predicate │ │ ├── assert-compatible.ts │ │ ├── assert-outer-query-joins-compatible.ts │ │ ├── assert-select-clause-compatible.ts │ │ └── index.ts ├── compound-query-order-by-clause │ ├── README.md │ ├── compound-query-order-by-clause.ts │ ├── compound-query-order-by-delegate.ts │ ├── index.ts │ └── util │ │ ├── index.ts │ │ ├── operation │ │ ├── compound-query-order-by.ts │ │ └── index.ts │ │ └── query │ │ ├── allowed-used-ref.ts │ │ └── index.ts ├── compound-query │ ├── compound-query.ts │ └── index.ts ├── constants.ts ├── custom-expr │ ├── custom-expr.ts │ ├── index.ts │ └── util │ │ ├── index.ts │ │ ├── operation │ │ ├── index.ts │ │ └── map-non-correlated.ts │ │ └── query │ │ ├── index.ts │ │ ├── is-aggregate.ts │ │ ├── type-of.ts │ │ └── used-ref.ts ├── data-type │ ├── built-in-value-expr │ │ ├── blob.ts │ │ ├── boolean.ts │ │ ├── date-time.ts │ │ ├── double.ts │ │ ├── index.ts │ │ ├── integer.ts │ │ └── text.ts │ ├── data-type-impl.ts │ ├── data-type.ts │ ├── index.ts │ ├── non-built-in-value-expr │ │ ├── decimal.ts │ │ └── index.ts │ └── util │ │ ├── constructor │ │ ├── index.ts │ │ ├── operation │ │ ├── evaluate-candidate-key.ts │ │ ├── evaluate-columns.ts │ │ ├── evaluate-custom-expr.ts │ │ ├── evaluate-insertable-candidate-key.ts │ │ ├── evaluate-primary-key.ts │ │ ├── index.ts │ │ └── intersect.ts │ │ └── predicate │ │ ├── index.ts │ │ ├── is-data-type.ts │ │ └── is-null-safe-equal.ts ├── date-time-util │ ├── index.ts │ └── util.ts ├── date-util │ ├── index.ts │ └── is-date.ts ├── decimal │ ├── decimal.ts │ └── index.ts ├── delete │ └── README.md ├── derived-table-select-item │ ├── derived-table-select-item-impl.ts │ └── index.ts ├── derived-table │ ├── derived-table-impl.ts │ ├── index.ts │ └── util │ │ ├── index.ts │ │ └── operation │ │ ├── index.ts │ │ └── lateral.ts ├── design-pattern-log │ ├── README.md │ ├── index.ts │ ├── log-impl.ts │ ├── log.ts │ └── util │ │ ├── constructor │ │ ├── correlated-subquery │ │ ├── exists.ts │ │ ├── index.ts │ │ ├── latest-value-or-default.ts │ │ ├── latest-value.ts │ │ └── latest.ts │ │ ├── execution │ │ ├── exists.ts │ │ ├── fetch-default.ts │ │ ├── fetch-latest-or-default.ts │ │ ├── fetch-latest-value-or-default.ts │ │ ├── fetch-latest-value.ts │ │ ├── fetch-latest.ts │ │ ├── index.ts │ │ ├── latest-by-primary-key.ts │ │ ├── track-or-insert.ts │ │ ├── track-result.ts │ │ ├── track.ts │ │ └── unsafe-track.ts │ │ ├── index.ts │ │ └── operation │ │ └── index.ts ├── design-pattern-table-per-type │ ├── README.md │ ├── index.ts │ ├── table-per-type-impl.ts │ ├── table-per-type.ts │ └── util │ │ ├── constructor │ │ ├── execution-impl │ │ ├── absorb-row.ts │ │ ├── assert-exists-impl.ts │ │ ├── delete-one-impl.ts │ │ ├── delete-zero-or-one-impl.ts │ │ ├── exists-impl.ts │ │ ├── fetch-one-impl.ts │ │ ├── from.ts │ │ ├── index.ts │ │ ├── invoke-assignment-delegate.ts │ │ └── update-and-fetch-one-impl.ts │ │ ├── execution │ │ ├── assignment-map.ts │ │ ├── delete-one-by-candidate-key.ts │ │ ├── delete-one-by-primary-key.ts │ │ ├── delete-one-by-super-key.ts │ │ ├── delete-zero-or-one-by-candidate-key.ts │ │ ├── delete-zero-or-one-by-primary-key.ts │ │ ├── delete-zero-or-one-by-super-key.ts │ │ ├── fetch-one-by-candidate-key.ts │ │ ├── fetch-one-by-primary-key.ts │ │ ├── fetch-one-by-super-key.ts │ │ ├── fetch-one.ts │ │ ├── index.ts │ │ ├── insert-and-fetch.ts │ │ ├── insert-row.ts │ │ ├── update-and-fetch-one-by-candidate-key.ts │ │ ├── update-and-fetch-one-by-primary-key.ts │ │ ├── update-and-fetch-one-by-super-key.ts │ │ ├── update-and-fetch-zero-or-one-by-candidate-key.ts │ │ ├── update-and-fetch-zero-or-one-by-primary-key.ts │ │ └── update-and-fetch-zero-or-one-by-super-key.ts │ │ ├── index.ts │ │ ├── operation │ │ ├── add-parent.ts │ │ ├── eq-super-key.ts │ │ ├── index.ts │ │ └── remove-duplicate-parents.ts │ │ ├── predicate │ │ ├── index.ts │ │ └── is-table-per-type.ts │ │ └── query │ │ ├── column-alias.ts │ │ ├── column-type.ts │ │ ├── explicit-default-value-column-alias.ts │ │ ├── extract-all-parent-tables-with-column-alias.ts │ │ ├── extract-all-tables-with-column-alias.ts │ │ ├── extract-all-tables.ts │ │ ├── extract-auto-increment.ts │ │ ├── extract-child-column-alias.ts.todo │ │ ├── extract-child-table.ts │ │ ├── extract-column-alias.ts │ │ ├── extract-explicit-auto-increment-value-enabled.ts │ │ ├── extract-insert-and-fetch-primary-key.ts │ │ ├── extract-parent-column-alias.ts.todo │ │ ├── extract-parent-tables.ts │ │ ├── extract-table-with-alias.ts │ │ ├── find-last-join-to-table.ts │ │ ├── find-table-with-column-alias.ts │ │ ├── find-table-with-generated-column-alias.ts │ │ ├── generated-column-alias.ts │ │ ├── implicit-auto-increment.ts │ │ ├── index.ts │ │ ├── insertable-column-alias.ts │ │ ├── mutable-column-alias.ts │ │ ├── non-generated-column-alias.ts │ │ ├── nullable-column-alias.ts │ │ ├── optional-column-alias.ts │ │ ├── parent-column-alias.ts │ │ ├── primary-key-column-alias.ts │ │ ├── required-column-alias.ts │ │ ├── row.ts │ │ └── super-key-mapper.ts ├── error │ ├── clean-insert-row │ │ ├── index.ts │ │ ├── missing-required-insert-column.ts │ │ └── potential-null-in-required-insert-column.ts │ ├── execution │ │ ├── index.ts │ │ ├── invalid-sql.ts │ │ ├── row-not-found.ts │ │ └── too-many-rows-found.ts │ ├── expr │ │ ├── cannot-count.ts │ │ ├── data-out-of-range.ts │ │ ├── divide-by-zero.ts │ │ ├── index.ts │ │ └── invalid-input.ts │ ├── index.ts │ └── sql-error.ts ├── event │ ├── connection-event-emitter-collection.ts │ ├── connection-event-emitter.ts │ ├── delete-event.ts │ ├── event-base.ts │ ├── event-handler.ts │ ├── index.ts │ ├── insert-and-fetch-event.ts │ ├── insert-event.ts │ ├── insert-one-event.ts │ ├── insert-select-event.ts │ ├── pool-event-emitter.ts │ ├── replace-event.ts │ ├── replace-one-event.ts │ ├── replace-select-event.ts │ ├── transaction-listener-collection.ts │ ├── update-and-fetch-event.ts │ └── update-event.ts ├── execution │ ├── connection │ │ ├── component │ │ │ ├── delete.ts │ │ │ ├── in-transaction.ts │ │ │ ├── index.ts │ │ │ ├── insert-ignore-many.ts │ │ │ ├── insert-ignore-one.ts │ │ │ ├── insert-ignore-select.ts │ │ │ ├── insert-many.ts │ │ │ ├── insert-one.ts │ │ │ ├── insert-select.ts │ │ │ ├── is-deallocated.ts │ │ │ ├── is-in-transaction.ts │ │ │ ├── lockable.ts │ │ │ ├── raw-query.ts │ │ │ ├── read-only-transaction-if-not-in-one.ts │ │ │ ├── read-only-transaction.ts │ │ │ ├── replace-many.ts │ │ │ ├── replace-one.ts │ │ │ ├── replace-select.ts │ │ │ ├── savepoint.ts │ │ │ ├── select.ts │ │ │ ├── transaction-if-not-in-one.ts │ │ │ ├── transaction.ts │ │ │ ├── try-fetch-generated-column-expression.ts │ │ │ ├── try-fetch-schema-meta.ts │ │ │ ├── try-get-full-connection.ts │ │ │ └── update.ts │ │ ├── connection.ts │ │ ├── index.ts │ │ └── isolable-connection.ts │ ├── index.ts │ ├── pool │ │ ├── index.ts │ │ └── pool.ts │ └── util │ │ ├── helper-type │ │ ├── fetch-all-connection.ts │ │ ├── fetched-result-set.ts │ │ ├── fetched-row.ts │ │ ├── index.ts │ │ ├── mapped-result-set.ts │ │ ├── mapped-row.ts │ │ ├── raw-row.ts │ │ ├── unmapped-flattened-result-set.ts │ │ ├── unmapped-flattened-row.ts │ │ ├── unmapped-result-set.ts │ │ └── unmapped-row.ts │ │ ├── index.ts │ │ ├── operation-delete │ │ ├── delete-one.ts │ │ ├── delete-zero-or-one.ts │ │ ├── delete.ts │ │ └── index.ts │ │ ├── operation-insert-select │ │ ├── index.ts │ │ ├── insert-ignore-select.ts │ │ ├── insert-select.ts │ │ └── replace-select.ts │ │ ├── operation-insert │ │ ├── index.ts │ │ ├── insert-and-fetch.ts │ │ ├── insert-ignore-many.ts │ │ ├── insert-ignore-one.ts │ │ ├── insert-many.ts │ │ ├── insert-one.ts │ │ ├── replace-many.ts │ │ └── replace-one.ts │ │ ├── operation-update │ │ ├── index.ts │ │ ├── update-and-fetch-one-by-candidate-key.ts │ │ ├── update-and-fetch-one-by-primary-key.ts │ │ ├── update-and-fetch-one-by-super-key.ts │ │ ├── update-and-fetch-one-impl.ts │ │ ├── update-and-fetch-one.ts │ │ ├── update-and-fetch-zero-or-one-by-candidate-key.ts │ │ ├── update-and-fetch-zero-or-one-by-primary-key.ts │ │ ├── update-and-fetch-zero-or-one-by-super-key.ts │ │ ├── update-and-fetch-zero-or-one-impl.ts │ │ ├── update-and-fetch-zero-or-one.ts │ │ ├── update-one.ts │ │ ├── update-zero-or-one.ts │ │ └── update.ts │ │ ├── operation │ │ ├── assert-exists.ts │ │ ├── count.ts │ │ ├── emulated-cursor │ │ │ ├── emulated-cursor-impl.ts │ │ │ ├── emulated-cursor.ts │ │ │ └── index.ts │ │ ├── exists.ts │ │ ├── fetch-all-mapped.ts │ │ ├── fetch-all-unmapped-flattened.ts │ │ ├── fetch-all-unmapped.ts │ │ ├── fetch-all.ts │ │ ├── fetch-one-or-undefined.ts │ │ ├── fetch-one-or.ts │ │ ├── fetch-one.ts │ │ ├── fetch-value-array.ts │ │ ├── fetch-value-or-undefined.ts │ │ ├── fetch-value-or.ts │ │ ├── fetch-value.ts │ │ ├── impl │ │ │ ├── ensure-one-or.ts │ │ │ ├── ensure-one.ts │ │ │ ├── exists-impl.ts │ │ │ ├── fetch-all-impl.ts │ │ │ ├── fetch-all-mapped-impl.ts │ │ │ ├── fetch-all-unmapped-flattened-impl.ts │ │ │ ├── fetch-all-unmapped-impl.ts │ │ │ ├── fetch-one-impl.ts │ │ │ ├── fetch-one-or-impl.ts │ │ │ ├── fetch-value-array-impl.ts │ │ │ ├── fetch-value-impl.ts │ │ │ ├── fetch-value-or-impl.ts │ │ │ ├── index.ts │ │ │ └── try-set-limit-2.ts │ │ ├── index.ts │ │ └── paginate │ │ │ ├── apply-paginate-args.ts │ │ │ ├── index.ts │ │ │ ├── paginate-args.ts │ │ │ ├── paginate.ts │ │ │ └── remove-paginate-args.ts │ │ └── predicate │ │ ├── can-flatten-unmapped-row.ts │ │ └── index.ts ├── expr-column │ ├── expr-column-impl.ts │ ├── expr-column.ts │ ├── index.ts │ └── util │ │ ├── index.ts │ │ ├── operation │ │ ├── as.ts.todo │ │ └── index.ts.todo │ │ └── predicate │ │ ├── index.ts │ │ └── is-expr-column.ts ├── expr-library │ ├── aggregate-factory │ │ ├── index.ts │ │ ├── make-aggregate-operator-0.ts │ │ ├── make-aggregate-operator-1.ts │ │ ├── make-aggregate-operator-2.ts │ │ └── make-aggregate-operator-3.ts │ ├── aggregate │ │ ├── count-all.ts │ │ ├── count-expr.ts │ │ └── index.ts │ ├── assert │ │ ├── index.ts │ │ └── throw-if-null.ts │ ├── cast │ │ ├── bigint-signed-literal.ts │ │ ├── cast-as-n-char.ts.deprecated │ │ ├── decimal-literal.ts │ │ ├── index.ts │ │ ├── unsafe-cast-as-bigint-signed.ts │ │ ├── unsafe-cast-as-binary.ts │ │ ├── unsafe-cast-as-decimal.ts │ │ ├── unsafe-cast-as-double.ts │ │ ├── unsafe-cast-as-json.ts │ │ └── unsafe-cast-as-var-char.ts │ ├── comparison │ │ ├── between.ts │ │ ├── greatest.ts │ │ ├── gt-eq.ts │ │ ├── gt.ts │ │ ├── index.ts │ │ ├── least.ts │ │ ├── lt-eq.ts │ │ ├── lt.ts │ │ └── not-between.ts │ ├── control-flow │ │ ├── case-condition │ │ │ ├── case-condition-builder-impl.ts │ │ │ ├── case-condition.ts │ │ │ ├── index.ts │ │ │ └── uninitialized-case-condition-builder-impl.ts │ │ ├── case-value │ │ │ ├── case-value-builder-impl.ts │ │ │ ├── case-value.ts │ │ │ ├── index.ts │ │ │ └── uninitialized-case-value-builder-impl.ts │ │ ├── case.ts │ │ ├── coalesce.ts │ │ ├── if-is-null.ts │ │ ├── if-null.ts │ │ ├── if.ts │ │ ├── index.ts │ │ ├── null-if.ts │ │ └── type-of-coalesce.ts │ ├── custom-factory │ │ ├── index.ts │ │ ├── make-custom-operator-0.ts │ │ └── make-custom-operator-1.ts │ ├── date-time │ │ ├── current-date.ts │ │ ├── current-time.ts.todo │ │ ├── current-timestamp.ts │ │ ├── extract.ts │ │ ├── index.ts │ │ ├── last-day.ts │ │ ├── local-string-to-timestamp.ts.deprecated │ │ ├── timestamp-add.ts │ │ ├── timestamp-diff.ts │ │ ├── unix-timestamp-now.ts │ │ └── utc-string-to-timestamp.ts │ ├── decimal │ │ ├── README.md │ │ ├── abs.ts │ │ ├── acos.ts.deprecated │ │ ├── add.ts │ │ ├── aggregate │ │ │ ├── avg.ts │ │ │ ├── index.ts │ │ │ ├── max.ts │ │ │ ├── min.ts │ │ │ └── sum.ts │ │ ├── asin.ts.deprecated │ │ ├── atan.ts.deprecated │ │ ├── atan2.ts.deprecated │ │ ├── cbrt.ts.deprecated │ │ ├── ceiling.ts │ │ ├── cos.ts.deprecated │ │ ├── cot.ts.deprecated │ │ ├── decimal-mapper.ts │ │ ├── degrees.ts.deprecated │ │ ├── exp.ts │ │ ├── floor.ts │ │ ├── fractional-div.ts │ │ ├── index.ts │ │ ├── integer-div.ts.deprecated │ │ ├── integer-remainder.ts.deprecated │ │ ├── ln.ts │ │ ├── log.ts │ │ ├── log10.ts │ │ ├── log2.ts │ │ ├── mul.ts │ │ ├── neg.ts │ │ ├── pi.ts.deprecated │ │ ├── power.ts │ │ ├── radians.ts.deprecated │ │ ├── random.ts │ │ ├── round.ts.deprecated │ │ ├── sign.ts │ │ ├── sin.ts.deprecated │ │ ├── sqrt.ts │ │ ├── sub.ts │ │ ├── tan.ts.deprecated │ │ └── truncate.ts.deprecated │ ├── double │ │ ├── abs.ts │ │ ├── acos.ts │ │ ├── add.ts │ │ ├── aggregate │ │ │ ├── avg.ts │ │ │ ├── index.ts │ │ │ ├── max.ts │ │ │ ├── min.ts │ │ │ ├── stddev-pop.ts │ │ │ ├── stddev-samp.ts │ │ │ ├── sum.ts │ │ │ ├── var-pop.ts │ │ │ └── var-samp.ts │ │ ├── asin.ts │ │ ├── atan.ts │ │ ├── atan2.ts │ │ ├── cbrt.ts │ │ ├── ceiling.ts │ │ ├── cos.ts │ │ ├── cot.ts │ │ ├── degrees.ts │ │ ├── exp.ts │ │ ├── floor.ts │ │ ├── fractional-div.ts │ │ ├── fractional-remainder.ts │ │ ├── index.ts │ │ ├── integer-div.ts.deprecated │ │ ├── integer-remainder.ts.deprecated │ │ ├── ln.ts │ │ ├── log.ts │ │ ├── log10.ts │ │ ├── log2.ts │ │ ├── mul.ts │ │ ├── neg.ts │ │ ├── pi.ts │ │ ├── power.ts │ │ ├── radians.ts │ │ ├── random.ts │ │ ├── round.ts.deprecated │ │ ├── sign.ts │ │ ├── sin.ts │ │ ├── sqrt.ts │ │ ├── sub.ts │ │ ├── tan.ts │ │ └── truncate.ts.deprecated │ ├── equation │ │ ├── eq-primary-key.ts │ │ ├── eq.ts │ │ ├── in-array.ts │ │ ├── in-query.ts │ │ ├── index.ts │ │ ├── not-eq.ts │ │ ├── not-in-array.ts │ │ └── not-in-query.ts │ ├── factory │ │ ├── index.ts │ │ ├── make-any-operator-1.ts │ │ ├── make-chainable-decimal-operator.ts │ │ ├── make-chainable-operator.ts │ │ ├── make-comparison-1-to-n.ts │ │ ├── make-comparison-2-to-n.ts │ │ ├── make-comparison-2.ts │ │ ├── make-comparison-3.ts │ │ ├── make-comparison-projection-2-to-n.ts │ │ ├── make-equation-1-to-n.ts │ │ ├── make-equation-2-to-n.ts │ │ ├── make-equation-2.ts │ │ ├── make-null-safe-comparison-1.ts │ │ ├── make-null-safe-comparison-2.ts │ │ ├── make-null-safe-equation-1.ts │ │ ├── make-null-safe-equation-2.ts │ │ ├── make-operator-0.ts │ │ ├── make-operator-1-double-elimination.ts │ │ ├── make-operator-1-idempotent.ts │ │ ├── make-operator-1-to-n.ts │ │ ├── make-operator-1.ts │ │ ├── make-operator-2-to-n.ts │ │ ├── make-operator-2.ts │ │ └── make-operator-3.ts │ ├── index.ts │ ├── information │ │ ├── current-schema.ts │ │ ├── current-user.ts │ │ └── index.ts │ ├── integer │ │ ├── abs.ts │ │ ├── add.ts │ │ ├── aggregate │ │ │ ├── avg.ts │ │ │ ├── index.ts │ │ │ ├── max.ts │ │ │ ├── min.ts │ │ │ ├── sum-as-bigint.ts │ │ │ └── sum-as-decimal.ts │ │ ├── bitwise │ │ │ ├── bitwise-and.ts │ │ │ ├── bitwise-left-shift.ts │ │ │ ├── bitwise-not.ts │ │ │ ├── bitwise-or.ts │ │ │ ├── bitwise-right-shift.ts │ │ │ ├── bitwise-xor.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── integer-div.ts │ │ ├── integer-remainder.ts │ │ ├── mul.ts │ │ ├── neg.ts │ │ ├── random-bigint-signed.ts │ │ ├── sign.ts │ │ └── sub.ts │ ├── logical-3 │ │ ├── README.md │ │ ├── and-3.ts │ │ ├── index.ts │ │ ├── is-false.ts │ │ ├── is-not-false.ts │ │ ├── is-not-true.ts │ │ ├── is-not-unknown.ts │ │ ├── is-true.ts │ │ ├── is-unknown.ts │ │ ├── not-3.ts │ │ ├── or-3.ts │ │ └── xor-3.ts │ ├── logical │ │ ├── README.md │ │ ├── and.ts │ │ ├── index.ts │ │ ├── is-not-null-and.ts │ │ ├── is-null-or.ts │ │ ├── not.ts │ │ ├── or.ts │ │ └── xor.ts │ ├── null-safe-equation │ │ ├── eq-candidate-key-of-table │ │ │ ├── assert-null-safe-comparable-to-candidate-keys-of-table.ts │ │ │ ├── eq-candidate-key-of-table.ts │ │ │ ├── eq-candidate-keys-of-table-delegate.ts │ │ │ └── index.ts │ │ ├── eq-candidate-key.ts │ │ ├── eq-columns.ts │ │ ├── eq-primary-key-of-table.ts │ │ ├── eq-super-key.ts │ │ ├── index.ts │ │ ├── is-not-null.ts │ │ ├── is-null.ts │ │ ├── not-null-safe-eq.ts │ │ └── null-safe-eq.ts │ ├── string │ │ ├── aggregate │ │ │ ├── group-concat.ts │ │ │ └── index.ts │ │ ├── ascii.ts │ │ ├── bin.ts │ │ ├── bit-length.ts │ │ ├── char-length.ts │ │ ├── concat-ws.ts │ │ ├── concat.ts │ │ ├── escape-like-pattern.ts │ │ ├── from-base64.ts │ │ ├── hex.ts │ │ ├── in-str.ts │ │ ├── index.ts │ │ ├── l-pad.ts │ │ ├── l-trim.ts │ │ ├── like.ts │ │ ├── lower.ts │ │ ├── not-like.ts │ │ ├── null-safe-concat.ts │ │ ├── octet-length.ts │ │ ├── position.ts │ │ ├── quote.ts.removed │ │ ├── r-pad.ts │ │ ├── r-trim.ts │ │ ├── repeat.ts │ │ ├── replace.ts │ │ ├── reverse.ts │ │ ├── to-base64.ts │ │ ├── trim.ts │ │ ├── unhex.ts │ │ └── upper.ts │ └── subquery │ │ ├── exists.ts │ │ └── index.ts ├── expr-select-item │ ├── expr-select-item.ts │ ├── index.ts │ └── util │ │ ├── index.ts │ │ ├── operation │ │ ├── index.ts │ │ └── with-type.ts │ │ └── predicate │ │ ├── index.ts │ │ └── is-expr-select-item.ts ├── expr │ ├── expr-impl.ts │ ├── expr.ts │ ├── index.ts │ └── util │ │ ├── constructor │ │ ├── index.ts │ │ ├── operation │ │ ├── aggregate-intersect.ts │ │ ├── as.ts │ │ ├── index.ts │ │ ├── intersect.ts │ │ └── sort.ts │ │ └── predicate │ │ ├── index.ts │ │ └── is-expr.ts ├── formatter │ ├── Formatter.ts │ ├── Indentation.ts │ ├── InlineBlock.ts │ ├── LICENSE │ ├── Params.ts │ ├── README.md │ ├── SqlFormatter.ts │ ├── Token.ts │ ├── TokenType.ts │ ├── Tokenizer.ts │ └── index.ts ├── from-clause │ ├── assignability.md │ ├── from-clause.ts │ ├── index.ts │ └── util │ │ ├── constructor │ │ ├── helper-type │ │ ├── after-from-clause.ts │ │ ├── before-from-clause.ts │ │ ├── correlated.ts │ │ ├── index.ts │ │ └── non-correlated.ts │ │ ├── index.ts │ │ ├── operation │ │ ├── correlate.ts │ │ ├── cross-join.ts │ │ ├── from.ts │ │ ├── index.ts │ │ ├── inner-join-using-candidate-key.ts │ │ ├── inner-join-using-primary-key.ts │ │ ├── inner-join.ts │ │ ├── left-join-using-candidate-key.ts │ │ ├── left-join-using-primary-key.ts │ │ ├── left-join.ts │ │ ├── require-nullable-outer-query-joins.ts │ │ ├── require-outer-query-joins-impl.ts │ │ ├── require-outer-query-joins.ts │ │ ├── where-eq-candidate-key.ts │ │ ├── where-eq-columns.ts │ │ ├── where-eq-inner-query-primary-key.ts │ │ ├── where-eq-outer-query-candidate-key.ts │ │ ├── where-eq-outer-query-primary-key.ts │ │ ├── where-eq-primary-key.ts │ │ ├── where-eq-super-key.ts │ │ ├── where-eq.ts │ │ ├── where-is-not-null.ts │ │ ├── where-is-null.ts │ │ └── where-null-safe-eq.ts │ │ ├── predicate │ │ ├── allowed-used-ref.ts │ │ ├── assert-after-from-clause.ts │ │ ├── assert-before-from-clause.ts │ │ ├── assert-no-used-ref.ts │ │ ├── assert-not-in-current-joins.ts │ │ ├── assert-not-in-outer-query-joins.ts │ │ ├── assert-not-lateral.ts │ │ ├── assert-valid-current-join-base.ts │ │ ├── assert-valid-join-target.ts.todo │ │ ├── assert-valid-outer-query-joins.ts │ │ ├── assert-valid-used-ref.ts.todo │ │ ├── index.ts │ │ ├── is-after-from-clause.ts │ │ ├── is-before-from-clause.ts │ │ └── is-from-clause.ts │ │ └── query │ │ ├── index.ts │ │ └── outer-query-table-alias.ts ├── group-by-clause │ ├── group-by-clause.ts │ ├── group-by-delegate.ts │ ├── index.ts │ └── util │ │ ├── index.ts │ │ ├── operation │ │ ├── group-by.ts │ │ └── index.ts │ │ ├── predicate │ │ ├── index.ts │ │ └── is-non-empty.ts │ │ └── query │ │ ├── allowed-used-ref.ts │ │ └── index.ts ├── having-clause │ ├── README.md │ ├── having-clause.ts │ ├── having-delegate.ts │ ├── index.ts │ └── util │ │ ├── index.ts │ │ ├── operation │ │ ├── having.ts │ │ └── index.ts │ │ └── query │ │ ├── allowed-non-aggregate-used-ref.ts │ │ ├── allowed-used-ref.ts │ │ └── index.ts ├── index.ts ├── insert-select │ ├── index.ts │ ├── insert-select-delegate.ts │ ├── insert-select-row.ts │ └── util │ │ ├── constructor │ │ ├── index.ts │ │ └── operation │ │ ├── clean-insert-select-column.ts │ │ ├── clean-insert-select-row.ts │ │ └── index.ts ├── insert │ ├── README.md │ ├── index.ts │ ├── insert-row.ts │ └── util │ │ ├── index.ts │ │ └── operation │ │ ├── clean-insert-column.ts │ │ ├── clean-insert-row.ts │ │ └── index.ts ├── isolation-level.ts ├── join-map │ ├── index.ts │ ├── join-map.ts │ └── util │ │ ├── constructor │ │ └── index.ts ├── join │ ├── array-util │ │ ├── index.ts │ │ ├── operation │ │ │ ├── append.ts │ │ │ ├── index.ts │ │ │ └── replace-column.ts │ │ └── query │ │ │ ├── extract-with-candidate-key.ts │ │ │ ├── extract-with-comparable-primary-key.ts.todo │ │ │ ├── extract-with-null-safe-comparable-primary-key.ts │ │ │ ├── extract-with-primary-key.ts │ │ │ ├── extract-with-table-alias.ts │ │ │ ├── index.ts │ │ │ ├── non-nullable-table-alias.ts │ │ │ ├── nullable-table-alias.ts │ │ │ └── table-alias.ts │ ├── index.ts │ ├── join-impl.ts │ ├── join.ts │ └── util │ │ ├── constructor │ │ ├── helper-type │ │ ├── index.ts │ │ └── with-primary-key.ts │ │ ├── index.ts │ │ ├── operation │ │ ├── index.ts │ │ └── replace-column.ts │ │ ├── predicate │ │ ├── has-null-safe-comparable-primary-key.ts │ │ └── index.ts │ │ └── query │ │ ├── extract-with-candidate-key.ts │ │ ├── extract-with-null-safe-comparable-primary-key.ts │ │ ├── extract-with-primary-key.ts │ │ ├── extract-with-table-alias.ts │ │ └── index.ts ├── key │ ├── array-util │ │ ├── index.ts │ │ ├── operation │ │ │ ├── append.ts │ │ │ ├── index.ts │ │ │ └── remove-duplicates.ts │ │ ├── predicate │ │ │ ├── has-key.ts │ │ │ ├── has-sub-key.ts │ │ │ ├── has-super-key.ts │ │ │ ├── index.ts │ │ │ ├── is-disjoint.ts │ │ │ └── is-key-array.ts │ │ └── query │ │ │ ├── extract-keys-in-common.ts │ │ │ ├── find-sub-key.ts │ │ │ ├── find-super-key.ts │ │ │ └── index.ts │ ├── index.ts │ ├── key.ts │ └── util │ │ ├── constructor │ │ ├── index.ts │ │ ├── operation │ │ ├── append.ts │ │ ├── concat.ts │ │ ├── extract-sub-key.ts │ │ ├── extract-super-key.ts │ │ ├── index.ts │ │ ├── remove-duplicates.ts │ │ ├── remove.ts │ │ ├── subtract.ts │ │ └── to-error-message-friendly-type.ts │ │ ├── predicate │ │ ├── index.ts │ │ ├── is-equal.ts │ │ ├── is-key.ts │ │ └── is-sub-key.ts │ │ └── query │ │ ├── exclude-if-in-key-array.ts │ │ ├── extract-if-in-column-map.ts │ │ ├── extract-if-in-key-array.ts │ │ └── index.ts ├── limit-clause │ ├── index.ts │ ├── limit-clause.ts │ └── util │ │ ├── index.ts │ │ └── operation │ │ ├── index.ts │ │ ├── limit-bigint.ts │ │ ├── limit-number.ts │ │ ├── limit.ts │ │ ├── offset-bigint.ts │ │ ├── offset-number.ts │ │ └── offset.ts ├── map-delegate │ ├── index.ts │ ├── map-delegate.ts │ └── util │ │ ├── index.ts │ │ └── operation │ │ ├── compose.ts │ │ └── index.ts ├── mapper-map │ ├── index.ts │ ├── mapper-map.ts │ └── util │ │ ├── index.ts │ │ └── query │ │ ├── index.ts │ │ └── nullable-key.ts ├── on-clause │ ├── index.ts │ ├── on-clause.ts │ ├── on-delegate.ts │ └── util │ │ ├── index.ts │ │ ├── operation │ │ ├── index.ts │ │ └── on.ts │ │ ├── predicate │ │ ├── assert-no-outer-query-used-ref.ts │ │ ├── assert-valid-used-ref.ts │ │ └── index.ts │ │ └── query │ │ ├── allowed-used-ref.ts │ │ └── index.ts ├── operator-type.ts ├── order-by-clause │ ├── index.ts │ ├── order-by-clause.ts │ ├── order-by-delegate.ts │ └── util │ │ ├── index.ts │ │ ├── operation │ │ ├── index.ts │ │ └── order-by.ts │ │ └── query │ │ ├── allowed-non-aggregate-used-ref.ts │ │ ├── allowed-used-ref.ts │ │ └── index.ts ├── order │ ├── index.ts │ ├── order.ts │ └── util │ │ ├── constructor │ │ ├── index.ts │ │ ├── predicate │ │ ├── index.ts │ │ ├── is-order.ts │ │ └── is-sort-expr.ts │ │ └── query │ │ ├── extract-sort-expr.ts │ │ └── index.ts ├── partial-row │ ├── index.ts │ ├── partial-row.ts │ └── util │ │ ├── index.ts │ │ └── query │ │ ├── index.ts │ │ └── mapper.ts ├── primary-key │ ├── index.ts │ ├── primary-key.ts │ └── util │ │ ├── index.ts │ │ └── query │ │ ├── index.ts │ │ └── mapper.ts ├── promise-util │ ├── index.ts │ └── invoke-async-callback-safely.ts ├── query-base │ ├── index.ts │ ├── query-base.ts │ └── util │ │ ├── helper-type │ │ ├── after-compound-query-clause.ts │ │ ├── after-from-clause.ts │ │ ├── after-group-by-clause.ts │ │ ├── after-select-clause.ts │ │ ├── before-compound-query-clause.ts │ │ ├── before-from-clause.ts │ │ ├── before-select-clause.ts │ │ ├── correlated.ts │ │ ├── index.ts │ │ ├── mapped.ts │ │ ├── non-correlated.ts │ │ ├── one-row.ts │ │ ├── one-select-item.ts │ │ ├── unmapped.ts │ │ ├── zero-or-one-row-using-compound-query-limit.ts │ │ ├── zero-or-one-row-using-limit.ts │ │ └── zero-or-one-row.ts │ │ ├── index.ts │ │ ├── operation │ │ ├── as.ts │ │ ├── asc.ts │ │ ├── coalesce.ts │ │ ├── desc.ts │ │ ├── index.ts │ │ ├── sort.ts │ │ └── throw-if-null.ts │ │ ├── predicate │ │ ├── index.ts │ │ ├── is-after-from-clause.ts │ │ ├── is-after-select-clause.ts │ │ ├── is-before-compound-query-clause.ts │ │ ├── is-before-select-clause.ts │ │ ├── is-one-row.ts │ │ ├── is-one-select-item.ts │ │ ├── is-query.ts │ │ ├── is-zero-or-one-row-using-compound-query-limit.ts │ │ ├── is-zero-or-one-row-using-limit.ts │ │ └── is-zero-or-one-row.ts │ │ └── query │ │ ├── index.ts │ │ ├── mapper.ts │ │ └── type-of.ts ├── row │ ├── index.ts │ ├── row.ts │ └── util │ │ ├── index.ts │ │ └── query │ │ ├── index.ts │ │ └── mapper.ts ├── schema-introspection │ ├── candidate-key-meta.ts │ ├── column-meta.ts │ ├── index.ts │ ├── schema-meta.ts │ └── table-meta.ts ├── schema-validation │ ├── index.ts │ ├── schema-validation-error.ts │ ├── schema-validation-result.ts │ ├── schema-validation-warning.ts │ └── util │ │ ├── index.ts │ │ └── operation │ │ ├── index.ts │ │ ├── validate-column.ts │ │ ├── validate-schema.ts │ │ └── validate-table.ts ├── select-clause │ ├── index.ts │ ├── select-clause.ts │ ├── select-delegate.ts │ ├── select-value-delegate.ts │ └── util │ │ ├── constructor │ │ ├── index.ts │ │ ├── operation │ │ ├── index.ts │ │ ├── left-compound.ts │ │ ├── select-value.ts │ │ └── select.ts │ │ ├── predicate │ │ ├── assert-valid-column-identifier.ts │ │ ├── assert-valid-used-ref-aggregate.ts │ │ ├── assert-valid-used-ref-non-aggregate.ts │ │ ├── assert-valid-used-ref.ts │ │ └── index.ts │ │ └── query │ │ ├── allowed-non-aggregate-used-ref.ts │ │ ├── allowed-used-ref.ts │ │ ├── column-alias-ignore-index.ts │ │ ├── column-alias.ts │ │ ├── duplicate-column-alias.ts │ │ └── index.ts ├── select-item │ ├── index.ts │ ├── select-item.ts │ └── util │ │ ├── index.ts │ │ ├── predicate │ │ ├── index.ts │ │ └── is-single-value-select-item.ts │ │ └── query │ │ ├── column-alias.ts │ │ ├── index.ts │ │ └── type-of.ts ├── sort-direction │ ├── index.ts │ ├── sort-direction.ts │ └── util │ │ ├── index.ts │ │ └── predicate │ │ ├── index.ts │ │ └── is-sort-direction.ts ├── sqlstring │ ├── LICENSE │ ├── README.md │ └── index.ts ├── string-util │ ├── index.ts │ └── zero-pad.ts ├── super-key │ ├── index.ts │ ├── super-key.ts │ └── util │ │ ├── index.ts │ │ └── query │ │ ├── index.ts │ │ └── mapper.ts ├── table-where │ ├── index.ts │ └── table-where.ts ├── table │ ├── index.ts │ ├── table-impl.ts │ ├── table.ts │ └── util │ │ ├── constructor │ │ ├── execution │ │ ├── assert-exists.ts │ │ ├── exists.ts │ │ ├── fetch-one.ts │ │ ├── fetch-value.ts │ │ └── index.ts │ │ ├── index.ts │ │ ├── operation │ │ ├── add-all-mutable.ts │ │ ├── add-candidate-key.ts │ │ ├── add-columns-from-field-array.ts │ │ ├── add-columns-from-mapper-map.ts │ │ ├── add-columns.ts │ │ ├── add-explicit-default-value.ts │ │ ├── add-generated.ts │ │ ├── add-mutable.ts │ │ ├── as.ts │ │ ├── disable-delete.ts │ │ ├── disable-insert.ts │ │ ├── enable-explicit-auto-increment-value.ts │ │ ├── enable-insert.ts │ │ ├── index.ts │ │ ├── pick-columns.ts │ │ ├── remove-all-mutable.ts │ │ ├── remove-explicit-default-value.ts │ │ ├── remove-generated.ts │ │ ├── remove-mutable.ts │ │ ├── set-auto-increment.ts │ │ ├── set-id.ts │ │ ├── set-primary-key.ts │ │ ├── set-schema-name.ts │ │ └── set-table-alias.ts │ │ ├── predicate │ │ ├── assert-delete-enabled.ts │ │ ├── assert-has-candidate-key.ts │ │ ├── assert-has-column-identifiers.ts │ │ ├── assert-has-null-safe-comparable-primary-key.ts │ │ ├── assert-insert-enabled.ts │ │ ├── has-explicit-default-value.ts │ │ ├── has-null-safe-comparable-primary-key.ts │ │ ├── index.ts │ │ ├── is-mutable.ts │ │ ├── is-nullable.ts │ │ └── is-table.ts │ │ └── query │ │ ├── column-alias.ts │ │ ├── column-arrays-from-candidate-keys.ts │ │ ├── column-type.ts │ │ ├── explicit-auto-increment.ts │ │ ├── extract-candidate-keys-in-common.ts │ │ ├── extract-candidate-keys-with-column-alias-in-one-of-column-array.ts │ │ ├── extract-candidate-keys-with-column-alias-in-table.ts │ │ ├── extract-with-column-alias.ts │ │ ├── extract-with-generated-column-alias.ts │ │ ├── index.ts │ │ ├── insertable-column-alias.ts │ │ ├── optional-column-alias.ts │ │ ├── required-column-alias.ts │ │ └── try-get-schema-name.ts ├── transaction-access-mode.ts ├── tuple-util │ ├── concat.ts │ ├── index.ts │ ├── pop-front.ts │ ├── push-front.ts │ ├── reverse.ts │ └── trampoline-util.ts ├── type-hint.ts ├── type-map │ ├── index.ts │ ├── type-map.ts │ └── util │ │ ├── constructor │ │ ├── index.ts │ │ └── operator │ │ ├── index.ts │ │ ├── intersect.ts │ │ └── with-value.ts ├── type-ref │ ├── index.ts │ ├── type-ref.ts │ └── util │ │ ├── constructor │ │ ├── index.ts │ │ ├── operator │ │ ├── index.ts │ │ ├── intersect.ts │ │ └── with-value.ts │ │ └── query │ │ ├── extract-excess-column-identifier.ts │ │ ├── extract-type-map.ts │ │ ├── extract-with-strict-sub-type.ts │ │ └── index.ts ├── type-util │ ├── assert-non-never.ts │ ├── assert-same-own-enumerable-keys.ts │ ├── assert-subset-own-enumerable-keys.ts │ ├── base-type.ts │ ├── better-return-type.ts │ ├── identity.ts │ ├── index.ts │ ├── is-comparable.ts │ ├── is-null-safe-comparable.ts │ ├── is-object-with-own-enumerable-keys.ts │ ├── is-strict-same-type.ts │ ├── is-union.ts │ ├── merge.ts │ ├── no-infer.ts │ ├── non-optional-partial.ts │ ├── omit-own-enumerable.ts │ ├── only-known-properties.ts │ ├── outersect.ts │ ├── pick-multi.ts │ ├── pick-own-enumerable.ts │ ├── pop-union.ts │ ├── replace-property.ts │ ├── replace.ts │ ├── strict-union.ts │ ├── to-promise.ts │ ├── to-unknown-if-all-properties-never.ts │ ├── type-of-await.ts │ ├── union-to-intersection.ts │ └── writable.ts ├── unified-query │ ├── convenience.ts │ ├── index.ts │ ├── query-impl.ts │ ├── query.ts │ └── util │ │ ├── constructor │ │ ├── helper-type │ │ ├── after-from-clause.ts │ │ ├── after-group-by-clause.ts │ │ ├── after-select-clause.ts │ │ ├── before-compound-query-clause.ts │ │ ├── before-from-clause.ts │ │ ├── correlated.ts │ │ ├── index.ts │ │ ├── mapped.ts │ │ ├── non-correlated.ts │ │ └── unmapped.ts │ │ ├── index.ts │ │ ├── operation │ │ ├── compound-query-limit │ │ │ ├── compound-query-limit-bigint.ts │ │ │ ├── compound-query-limit-number-0-or-1.ts │ │ │ ├── compound-query-limit-number-0.ts │ │ │ ├── compound-query-limit-number-1.ts │ │ │ ├── compound-query-limit-number.ts │ │ │ ├── compound-query-limit.ts │ │ │ └── index.ts │ │ ├── compound-query-offset │ │ │ ├── compound-query-offset-bigint.ts │ │ │ ├── compound-query-offset-number.ts │ │ │ ├── compound-query-offset.ts │ │ │ └── index.ts │ │ ├── compound-query-order-by.ts │ │ ├── compound-query.ts │ │ ├── correlate.ts │ │ ├── cross-join.ts │ │ ├── distinct.ts │ │ ├── from.ts │ │ ├── group-by.ts │ │ ├── having.ts │ │ ├── index.ts │ │ ├── inner-join-using-candidate-key.ts │ │ ├── inner-join-using-primary-key.ts │ │ ├── inner-join.ts │ │ ├── left-join-using-candidate-key.ts │ │ ├── left-join-using-primary-key.ts │ │ ├── left-join.ts │ │ ├── limit │ │ │ ├── index.ts │ │ │ ├── limit-bigint.ts │ │ │ ├── limit-number-0-or-1.ts │ │ │ ├── limit-number-0.ts │ │ │ ├── limit-number-1.ts │ │ │ ├── limit-number.ts │ │ │ └── limit.ts │ │ ├── map │ │ │ ├── index.ts │ │ │ ├── map-compose.ts │ │ │ ├── map-initial.ts │ │ │ └── map.ts │ │ ├── offset │ │ │ ├── index.ts │ │ │ ├── offset-bigint.ts │ │ │ ├── offset-number.ts │ │ │ └── offset.ts │ │ ├── order-by.ts │ │ ├── require-nullable-outer-query-joins.ts │ │ ├── require-outer-query-joins.ts │ │ ├── select-value.ts │ │ ├── select.ts │ │ ├── where-eq-candidate-key.ts │ │ ├── where-eq-columns.ts │ │ ├── where-eq-inner-query-primary-key.ts │ │ ├── where-eq-outer-query-primary-key.ts │ │ ├── where-eq-primary-key.ts │ │ ├── where-eq-super-key.ts │ │ ├── where-eq.ts │ │ ├── where-is-not-null.ts │ │ ├── where-is-null.ts │ │ ├── where-null-safe-eq.ts │ │ └── where.ts │ │ └── predicate │ │ ├── assert-valid-current-join.ts │ │ └── index.ts ├── update │ ├── README.md │ ├── assignment-map-delegate.ts │ ├── assignment-map.ts │ ├── index.ts │ └── util │ │ ├── index.ts │ │ └── operation │ │ ├── clean-assignment-map.ts │ │ ├── index.ts │ │ └── set.ts ├── used-ref │ ├── README.md │ ├── index.ts │ ├── used-ref.ts │ └── util │ │ ├── constructor │ │ ├── index.ts │ │ ├── operation │ │ ├── index.ts │ │ ├── intersect.ts │ │ └── with-value.ts │ │ ├── predicate │ │ ├── assert-allowed.ts │ │ ├── assert-empty.ts │ │ ├── index.ts │ │ └── is-used-ref.ts │ │ └── query │ │ ├── extract-column-identifier.ts │ │ ├── index.ts │ │ ├── table-alias.ts │ │ └── type-ref-of.ts ├── value-expr │ ├── index.ts │ └── util │ │ ├── index.ts │ │ └── operation │ │ ├── case-insensitive-narrow.ts │ │ ├── index.ts │ │ └── null-safe-case-insensitive-narrow.ts └── where-clause │ ├── README.md │ ├── index.ts │ ├── util │ ├── index.ts │ ├── operation │ │ ├── index.ts │ │ └── where.ts │ └── query │ │ ├── allowed-used-ref.ts │ │ └── index.ts │ ├── where-clause.ts │ └── where-delegate.ts ├── test ├── .eslintrc.js ├── compare-sql-pretty.ts ├── compare-sql.ts ├── compile-time │ ├── .eslintrc.js │ ├── README.md │ ├── accept-actual.ts │ ├── accept-one.ts │ ├── expected-output │ │ ├── candidate-key │ │ │ ├── candidate-key-input │ │ │ │ ├── basic.d.ts │ │ │ │ └── union.d.ts │ │ │ ├── candidate-key-non-union │ │ │ │ ├── bad-things-happen-with-union.d.ts │ │ │ │ └── basic.d.ts │ │ │ └── candidate-key-output │ │ │ │ ├── basic.d.ts │ │ │ │ └── union.d.ts │ │ ├── compound-query-clause │ │ │ └── compound-query │ │ │ │ ├── cannot-compound-column-and-map.d.ts │ │ │ │ ├── cannot-compound-column-and-map.ts.errors │ │ │ │ ├── cannot-compound-column-and-ref.d.ts │ │ │ │ ├── cannot-compound-column-and-ref.ts.errors │ │ │ │ ├── cannot-compound-map-and-column.d.ts │ │ │ │ ├── cannot-compound-map-and-column.ts.errors │ │ │ │ ├── cannot-compound-map-and-ref.d.ts │ │ │ │ ├── cannot-compound-map-and-ref.ts.errors │ │ │ │ ├── cannot-compound-ref-and-column.d.ts │ │ │ │ ├── cannot-compound-ref-and-column.ts.errors │ │ │ │ ├── cannot-compound-ref-and-map.d.ts │ │ │ │ ├── cannot-compound-ref-and-map.ts.errors │ │ │ │ ├── map-and-map.d.ts │ │ │ │ ├── map-can-be-proper-sub-type.d.ts │ │ │ │ ├── map-must-be-sub-type.d.ts │ │ │ │ ├── map-must-be-sub-type.ts.errors │ │ │ │ ├── map-must-not-have-extra-columns.d.ts │ │ │ │ ├── map-must-not-have-extra-columns.ts.errors │ │ │ │ ├── map-must-not-have-missing-columns.d.ts │ │ │ │ ├── map-must-not-have-missing-columns.ts.errors │ │ │ │ ├── multi-column-and-expr.d.ts │ │ │ │ ├── must-have-same-number-of-select-items-1.d.ts │ │ │ │ ├── must-have-same-number-of-select-items-1.ts.errors │ │ │ │ ├── must-have-same-number-of-select-items-2.d.ts │ │ │ │ ├── must-have-same-number-of-select-items-2.ts.errors │ │ │ │ ├── must-have-subset-of-outer-query-join-2.d.ts │ │ │ │ ├── must-have-subset-of-outer-query-join-2.ts.errors │ │ │ │ ├── must-have-subset-of-outer-query-join-3.d.ts │ │ │ │ ├── must-have-subset-of-outer-query-join-4.d.ts │ │ │ │ ├── must-have-subset-of-outer-query-join.d.ts │ │ │ │ ├── must-have-subset-of-outer-query-join.ts.errors │ │ │ │ ├── one-column-to-one-column-can-be-strict-sub-type.d.ts │ │ │ │ ├── one-column-to-one-column-must-be-sub-type.d.ts │ │ │ │ ├── one-column-to-one-column-must-be-sub-type.ts.errors │ │ │ │ ├── one-column-to-one-column.d.ts │ │ │ │ ├── one-column-to-one-expr.d.ts │ │ │ │ ├── one-expr-to-one-column.d.ts │ │ │ │ ├── one-expr-to-one-expr.d.ts │ │ │ │ ├── ref-map-can-be-proper-sub-type.d.ts │ │ │ │ ├── ref-map-must-be-sub-type.d.ts │ │ │ │ ├── ref-map-must-be-sub-type.ts.errors │ │ │ │ ├── ref-map-must-not-have-extra-columns.d.ts │ │ │ │ ├── ref-map-must-not-have-extra-columns.ts.errors │ │ │ │ ├── ref-map-must-not-have-missing-columns.d.ts │ │ │ │ ├── ref-map-must-not-have-missing-columns.ts.errors │ │ │ │ ├── ref-must-not-have-extra-tables.d.ts │ │ │ │ ├── ref-must-not-have-extra-tables.ts.errors │ │ │ │ ├── ref-must-not-have-missing-tables.d.ts │ │ │ │ └── ref-must-not-have-missing-tables.ts.errors │ │ ├── design-pattern-log │ │ │ ├── fetch-default │ │ │ │ └── optional-copy-default-2.d.ts │ │ │ ├── fetch-latest │ │ │ │ └── basic.d.ts │ │ │ └── real-world-code │ │ │ │ ├── app-key-custom-auto-increment-not-generated.d.ts │ │ │ │ ├── app-key-custom.d.ts │ │ │ │ ├── business-enabled.d.ts │ │ │ │ ├── business-information.d.ts │ │ │ │ └── lightbulb.d.ts │ │ ├── execution │ │ │ ├── fetch-all-mapped │ │ │ │ ├── basic.d.ts │ │ │ │ ├── compose-2.d.ts │ │ │ │ ├── compose.d.ts │ │ │ │ ├── promise-basic.d.ts │ │ │ │ ├── promise-compose-2.d.ts │ │ │ │ └── promise-compose.d.ts │ │ │ ├── fetch-all-unmapped-flattened │ │ │ │ ├── basic.d.ts │ │ │ │ ├── ignore-map-delegate.d.ts │ │ │ │ ├── inner-join-2.d.ts │ │ │ │ ├── inner-join-ignore-other-table.d.ts │ │ │ │ ├── inner-join-with-alias.d.ts │ │ │ │ ├── inner-join.d.ts │ │ │ │ ├── left-join-2.d.ts │ │ │ │ ├── left-join-3.d.ts │ │ │ │ └── left-join.d.ts │ │ │ ├── fetch-all-unmapped │ │ │ │ ├── basic.d.ts │ │ │ │ ├── ignore-map-delegate.d.ts │ │ │ │ ├── inner-join-2.d.ts │ │ │ │ ├── inner-join-ignore-other-table.d.ts │ │ │ │ ├── inner-join-with-alias.d.ts │ │ │ │ ├── inner-join.d.ts │ │ │ │ ├── left-join-2.d.ts │ │ │ │ ├── left-join-3.d.ts │ │ │ │ └── left-join.d.ts │ │ │ ├── fetch-all-with-map-delegate │ │ │ │ ├── basic.d.ts │ │ │ │ ├── compose-2.d.ts │ │ │ │ ├── compose.d.ts │ │ │ │ ├── promise-basic.d.ts │ │ │ │ ├── promise-compose-2.d.ts │ │ │ │ └── promise-compose.d.ts │ │ │ ├── fetch-all-without-map-delegate │ │ │ │ ├── basic.d.ts │ │ │ │ ├── inner-join-2.d.ts │ │ │ │ ├── inner-join-ignore-other-table.d.ts │ │ │ │ ├── inner-join-with-alias.d.ts │ │ │ │ ├── inner-join.d.ts │ │ │ │ ├── left-join-2.d.ts │ │ │ │ ├── left-join-3.d.ts │ │ │ │ └── left-join.d.ts │ │ │ ├── insert-ignore-one │ │ │ │ ├── auto-increment-generated-cannot-specify-explicit-value.d.ts │ │ │ │ ├── auto-increment-generated-cannot-specify-explicit-value.ts.errors │ │ │ │ ├── auto-increment-non-generated-can-specify-explicit-value.d.ts │ │ │ │ ├── auto-increment-non-generated-explicit-non-primitive-value-leads-to-error.d.ts │ │ │ │ ├── can-omit-optional-column.d.ts │ │ │ │ ├── cannot-omit-required-column.d.ts │ │ │ │ ├── cannot-omit-required-column.ts.errors │ │ │ │ ├── insert-disabled.d.ts │ │ │ │ ├── insert-disabled.ts.errors │ │ │ │ └── no-auto-increment.d.ts │ │ │ └── insert-one │ │ │ │ ├── auto-increment-generated-cannot-specify-explicit-value.d.ts │ │ │ │ ├── auto-increment-generated-cannot-specify-explicit-value.ts.errors │ │ │ │ ├── auto-increment-non-generated-can-specify-explicit-value.d.ts │ │ │ │ ├── auto-increment-non-generated-explicit-non-primitive-value-leads-to-error.d.ts │ │ │ │ ├── can-omit-optional-column.d.ts │ │ │ │ ├── cannot-omit-required-column.d.ts │ │ │ │ ├── cannot-omit-required-column.ts.errors │ │ │ │ ├── insert-disabled.d.ts │ │ │ │ ├── insert-disabled.ts.errors │ │ │ │ └── no-auto-increment.d.ts │ │ ├── expr-library │ │ │ ├── cannot-nest-aggregate-expression.d.ts │ │ │ ├── cannot-nest-aggregate-expression.ts.errors │ │ │ ├── comparison │ │ │ │ ├── coalesce │ │ │ │ │ ├── 1-arg.d.ts │ │ │ │ │ ├── 2-arg-null-at-end.d.ts │ │ │ │ │ ├── 2-arg-null-or-value-at-end.d.ts │ │ │ │ │ ├── 2-arg-value-at-end.d.ts │ │ │ │ │ ├── long-chain.d.ts │ │ │ │ │ ├── no-arg.d.ts │ │ │ │ │ ├── value-at-middle.d.ts │ │ │ │ │ └── value-at-start.d.ts │ │ │ │ ├── greatest │ │ │ │ │ ├── long-chain.d.ts │ │ │ │ │ ├── must-have-same-type-as-first-arg.d.ts │ │ │ │ │ ├── must-have-same-type-as-first-arg.ts.errors │ │ │ │ │ ├── null-not-allowed.d.ts │ │ │ │ │ ├── null-not-allowed.ts.errors │ │ │ │ │ └── return-type-is-one-of-arg.d.ts │ │ │ │ ├── in-array │ │ │ │ │ ├── must-have-same-type-as-first-arg.d.ts │ │ │ │ │ ├── must-have-same-type-as-first-arg.ts.errors │ │ │ │ │ ├── null-first-arg-not-allowed.d.ts │ │ │ │ │ ├── null-first-arg-not-allowed.ts.errors │ │ │ │ │ ├── null-in-rest-arg-not-allowed.d.ts │ │ │ │ │ ├── null-in-rest-arg-not-allowed.ts.errors │ │ │ │ │ ├── query-in-rest.d.ts │ │ │ │ │ └── same-type-as-first-arg.d.ts │ │ │ │ ├── in-query │ │ │ │ │ ├── must-have-same-type-as-first-arg.d.ts │ │ │ │ │ ├── must-have-same-type-as-first-arg.ts.errors │ │ │ │ │ ├── null-first-arg-not-allowed.d.ts │ │ │ │ │ ├── null-first-arg-not-allowed.ts.errors │ │ │ │ │ ├── null-in-rest-arg-not-allowed.d.ts │ │ │ │ │ ├── null-in-rest-arg-not-allowed.ts.errors │ │ │ │ │ ├── query-in-rest.d.ts │ │ │ │ │ └── same-type-as-first-arg.d.ts │ │ │ │ └── like │ │ │ │ │ ├── expression-not-allowed-for-escape-char.d.ts │ │ │ │ │ ├── expression-not-allowed-for-escape-char.ts.errors │ │ │ │ │ ├── expressions.d.ts │ │ │ │ │ ├── literal-for-escape-char.d.ts │ │ │ │ │ └── literals.d.ts │ │ │ ├── control-flow │ │ │ │ ├── case-value │ │ │ │ │ ├── else-can-use-null.d.ts │ │ │ │ │ ├── else-can-use-same-comparable-type.d.ts │ │ │ │ │ ├── long-chain.d.ts │ │ │ │ │ ├── then-can-use-null.d.ts │ │ │ │ │ ├── then-can-use-same-comparable-type-2.d.ts │ │ │ │ │ ├── then-can-use-same-comparable-type.d.ts │ │ │ │ │ ├── then-must-use-same-comparable-type.d.ts │ │ │ │ │ ├── then-must-use-same-comparable-type.ts.errors │ │ │ │ │ ├── value-cannot-use-null.d.ts │ │ │ │ │ ├── value-cannot-use-null.ts.errors │ │ │ │ │ ├── when-cannot-use-null-2.d.ts │ │ │ │ │ ├── when-cannot-use-null-2.ts.errors │ │ │ │ │ ├── when-cannot-use-null.d.ts │ │ │ │ │ ├── when-cannot-use-null.ts.errors │ │ │ │ │ ├── when-same-comparable-type-allowed-2.d.ts │ │ │ │ │ └── when-same-comparable-type-allowed.d.ts │ │ │ │ └── if-is-null │ │ │ │ │ └── basic.d.ts │ │ │ ├── double │ │ │ │ └── power │ │ │ │ │ └── long-chain.d.ts │ │ │ ├── equation │ │ │ │ └── eq │ │ │ │ │ ├── lhs-cannot-be-null.d.ts │ │ │ │ │ ├── lhs-cannot-be-null.ts.errors │ │ │ │ │ ├── rhs-cannot-be-null.d.ts │ │ │ │ │ └── rhs-cannot-be-null.ts.errors │ │ │ ├── operator │ │ │ │ ├── comparison │ │ │ │ │ └── eq │ │ │ │ │ │ └── basic.d.ts │ │ │ │ ├── logical │ │ │ │ │ ├── and │ │ │ │ │ │ ├── log-chain-2.d.ts │ │ │ │ │ │ ├── long-chain-3.d.ts │ │ │ │ │ │ ├── long-chain-4.d.ts │ │ │ │ │ │ ├── long-chain.d.ts │ │ │ │ │ │ ├── use-column.d.ts │ │ │ │ │ │ └── use-primitive-expr.d.ts │ │ │ │ │ ├── is-not-null-and │ │ │ │ │ │ └── basic.d.ts │ │ │ │ │ └── is-null-or │ │ │ │ │ │ └── basic.d.ts │ │ │ │ └── null-safe-comparison │ │ │ │ │ ├── make-eq-candidate-key-of-table │ │ │ │ │ ├── basic.d.ts │ │ │ │ │ ├── both-src-and-dst-can-be-nullable.d.ts │ │ │ │ │ ├── can-return-union-of-columns.d.ts │ │ │ │ │ ├── cannot-use-extra-columns.d.ts │ │ │ │ │ ├── cannot-use-extra-columns.ts.errors │ │ │ │ │ ├── cannot-use-sub-part-of-key.d.ts │ │ │ │ │ ├── cannot-use-sub-part-of-key.ts.errors │ │ │ │ │ ├── dst-can-be-union-but-must-share-candidate-keys-2.d.ts │ │ │ │ │ ├── dst-can-be-union-but-must-share-candidate-keys-2.ts.errors │ │ │ │ │ ├── dst-can-be-union-but-must-share-candidate-keys-3.d.ts │ │ │ │ │ ├── dst-can-be-union-but-must-share-candidate-keys-3.ts.errors │ │ │ │ │ ├── dst-can-be-union-but-must-share-candidate-keys.d.ts │ │ │ │ │ ├── dst-can-be-union-but-must-share-candidate-keys.ts.errors │ │ │ │ │ ├── dst-can-be-union.d.ts │ │ │ │ │ ├── dst-can-have-nullable-when-src-not-nullable.d.ts │ │ │ │ │ ├── src-and-dst-must-have-same-primitive-type-2.d.ts │ │ │ │ │ ├── src-and-dst-must-have-same-primitive-type-2.ts.errors │ │ │ │ │ ├── src-and-dst-must-have-same-primitive-type.d.ts │ │ │ │ │ ├── src-can-have-nullable-when-dst-not-nullable.d.ts │ │ │ │ │ ├── test-00.d.ts │ │ │ │ │ ├── test-00.ts.errors │ │ │ │ │ ├── test-01.d.ts │ │ │ │ │ ├── test-01.ts.errors │ │ │ │ │ ├── test-02.d.ts │ │ │ │ │ ├── test-03.d.ts │ │ │ │ │ ├── test-04.d.ts │ │ │ │ │ ├── test-05.d.ts │ │ │ │ │ ├── test-05.ts.errors │ │ │ │ │ ├── test-06.d.ts │ │ │ │ │ ├── test-06.ts.errors │ │ │ │ │ ├── test-07.d.ts │ │ │ │ │ ├── test-07.ts.errors │ │ │ │ │ ├── test-08.d.ts │ │ │ │ │ ├── union-of-columns-cannot-use-extra-columns.d.ts │ │ │ │ │ ├── union-of-columns-cannot-use-extra-columns.ts.errors │ │ │ │ │ ├── union-of-columns-cannot-use-sub-part-of-key.d.ts │ │ │ │ │ └── union-of-columns-cannot-use-sub-part-of-key.ts.errors │ │ │ │ │ └── make-eq-primary-key-of-table │ │ │ │ │ ├── basic.d.ts │ │ │ │ │ ├── dst-can-be-union-but-src-must-have-all-primary-keys-2.d.ts │ │ │ │ │ ├── dst-can-be-union-but-src-must-have-all-primary-keys-2.ts.errors │ │ │ │ │ ├── dst-can-be-union-but-src-must-have-all-primary-keys.d.ts │ │ │ │ │ ├── must-have-all-columns.d.ts │ │ │ │ │ ├── must-have-all-columns.ts.errors │ │ │ │ │ ├── must-have-same-primitive-type-2.d.ts │ │ │ │ │ ├── must-have-same-primitive-type.d.ts │ │ │ │ │ ├── src-can-be-nullable.d.ts │ │ │ │ │ ├── src-can-union-but-must-all-be-valid-2.d.ts │ │ │ │ │ ├── src-can-union-but-must-all-be-valid-2.ts.errors │ │ │ │ │ ├── src-can-union-but-must-all-be-valid.d.ts │ │ │ │ │ ├── src-can-union-but-must-all-be-valid.ts.errors │ │ │ │ │ └── src-can-union.d.ts │ │ │ ├── real-life-use-case │ │ │ │ └── number-to-decimal-for-math │ │ │ │ │ └── basic.d.ts │ │ │ └── string │ │ │ │ └── concat │ │ │ │ └── basic.d.ts │ │ ├── expr │ │ │ └── as │ │ │ │ ├── basic.d.ts │ │ │ │ └── long-chain.d.ts │ │ ├── from-clause │ │ │ ├── cross-join │ │ │ │ ├── basic.d.ts │ │ │ │ ├── can-reference-outer-query-joins.d.ts │ │ │ │ ├── can-reference-same-query-joins-if-lateral.d.ts │ │ │ │ ├── must-be-after-from-clause.d.ts │ │ │ │ ├── must-be-after-from-clause.ts.errors │ │ │ │ ├── no-duplicate-2.d.ts │ │ │ │ ├── no-duplicate-2.ts.errors │ │ │ │ ├── no-duplicate.d.ts │ │ │ │ ├── no-duplicate.ts.errors │ │ │ │ ├── no-union.d.ts │ │ │ │ ├── no-union.ts.errors │ │ │ │ ├── referenced-outer-query-join-must-exist.d.ts │ │ │ │ └── referenced-outer-query-join-must-exist.ts.errors │ │ │ ├── inner-join-using-candidate-key │ │ │ │ ├── basic.d.ts │ │ │ │ ├── both-src-and-dst-can-be-nullable.d.ts │ │ │ │ ├── can-return-union-of-columns.d.ts │ │ │ │ ├── cannot-use-extra-columns.d.ts │ │ │ │ ├── cannot-use-extra-columns.ts.errors │ │ │ │ ├── cannot-use-sub-part-of-key.d.ts │ │ │ │ ├── cannot-use-sub-part-of-key.ts.errors │ │ │ │ ├── dst-cannot-be-union.d.ts │ │ │ │ ├── dst-cannot-be-union.ts.errors │ │ │ │ ├── src-and-dst-must-have-same-primitive-type-2.d.ts │ │ │ │ ├── src-and-dst-must-have-same-primitive-type-2.ts.errors │ │ │ │ ├── src-and-dst-must-have-same-primitive-type.d.ts │ │ │ │ ├── src-can-have-nullable-when-dst-not-nullable.d.ts │ │ │ │ ├── union-of-columns-cannot-use-extra-columns.d.ts │ │ │ │ ├── union-of-columns-cannot-use-extra-columns.ts.errors │ │ │ │ ├── union-of-columns-cannot-use-sub-part-of-key.d.ts │ │ │ │ └── union-of-columns-cannot-use-sub-part-of-key.ts.errors │ │ │ ├── inner-join-using-primary-key │ │ │ │ ├── basic.d.ts │ │ │ │ ├── dst-cannot-be-union.d.ts │ │ │ │ ├── dst-cannot-be-union.ts.errors │ │ │ │ ├── must-have-all-columns.d.ts │ │ │ │ ├── must-have-all-columns.ts.errors │ │ │ │ ├── must-have-same-primitive-type-2.d.ts │ │ │ │ ├── must-have-same-primitive-type.d.ts │ │ │ │ ├── src-can-be-nullable.d.ts │ │ │ │ ├── src-can-be-union-but-must-all-be-valid-2.d.ts │ │ │ │ ├── src-can-be-union-but-must-all-be-valid-2.ts.errors │ │ │ │ ├── src-can-be-union-but-must-all-be-valid.d.ts │ │ │ │ ├── src-can-be-union-but-must-all-be-valid.ts.errors │ │ │ │ └── src-can-be-union.d.ts │ │ │ ├── inner-join │ │ │ │ ├── aliased-expr-allowed.d.ts │ │ │ │ ├── basic-2.d.ts │ │ │ │ ├── basic.d.ts │ │ │ │ ├── boolean-literal-allowed.d.ts │ │ │ │ ├── can-explicitly-disallow-outer-query-references.d.ts │ │ │ │ ├── can-explicitly-disallow-outer-query-references.ts.errors │ │ │ │ ├── can-reference-outer-query-joins.d.ts │ │ │ │ ├── can-reference-same-query-joins-if-lateral.d.ts │ │ │ │ ├── can-reference-super-type.d.ts │ │ │ │ ├── cannot-reference-columns-not-in-joins.d.ts │ │ │ │ ├── cannot-reference-columns-not-in-joins.ts.errors │ │ │ │ ├── cannot-reference-strict-sub-type.d.ts │ │ │ │ ├── cannot-reference-strict-sub-type.ts.errors │ │ │ │ ├── must-be-after-from-clause.d.ts │ │ │ │ ├── must-be-after-from-clause.ts.errors │ │ │ │ ├── no-duplicate-2.d.ts │ │ │ │ ├── no-duplicate-2.ts.errors │ │ │ │ ├── no-duplicate.d.ts │ │ │ │ ├── no-duplicate.ts.errors │ │ │ │ ├── no-union.d.ts │ │ │ │ ├── no-union.ts.errors │ │ │ │ ├── referenced-outer-query-join-must-exist.d.ts │ │ │ │ └── referenced-outer-query-join-must-exist.ts.errors │ │ │ ├── left-join-using-candidate-key │ │ │ │ ├── basic.d.ts │ │ │ │ ├── both-src-and-dst-can-be-nullable.d.ts │ │ │ │ ├── can-return-union-of-columns.d.ts │ │ │ │ ├── cannot-use-extra-columns.d.ts │ │ │ │ ├── cannot-use-extra-columns.ts.errors │ │ │ │ ├── cannot-use-sub-part-of-key.d.ts │ │ │ │ ├── cannot-use-sub-part-of-key.ts.errors │ │ │ │ ├── dst-cannot-be-union.d.ts │ │ │ │ ├── dst-cannot-be-union.ts.errors │ │ │ │ ├── src-and-dst-must-have-same-primitive-type-2.d.ts │ │ │ │ ├── src-and-dst-must-have-same-primitive-type-2.ts.errors │ │ │ │ ├── src-and-dst-must-have-same-primitive-type.d.ts │ │ │ │ ├── src-can-have-nullable-when-dst-not-nullable.d.ts │ │ │ │ ├── union-of-columns-cannot-use-extra-columns.d.ts │ │ │ │ ├── union-of-columns-cannot-use-extra-columns.ts.errors │ │ │ │ ├── union-of-columns-cannot-use-sub-part-of-key.d.ts │ │ │ │ └── union-of-columns-cannot-use-sub-part-of-key.ts.errors │ │ │ ├── left-join-using-primary-key │ │ │ │ ├── basic.d.ts │ │ │ │ ├── dst-cannot-be-union.d.ts │ │ │ │ ├── dst-cannot-be-union.ts.errors │ │ │ │ ├── must-have-all-columns.d.ts │ │ │ │ ├── must-have-all-columns.ts.errors │ │ │ │ ├── must-have-same-primitive-type-2.d.ts │ │ │ │ ├── must-have-same-primitive-type.d.ts │ │ │ │ ├── src-can-be-nullable.d.ts │ │ │ │ ├── src-can-be-union-but-must-all-be-valid-2.d.ts │ │ │ │ ├── src-can-be-union-but-must-all-be-valid-2.ts.errors │ │ │ │ ├── src-can-be-union-but-must-all-be-valid.d.ts │ │ │ │ ├── src-can-be-union-but-must-all-be-valid.ts.errors │ │ │ │ └── src-can-be-union.d.ts │ │ │ ├── left-join │ │ │ │ ├── aliased-expr-allowed.d.ts │ │ │ │ ├── basic-2.d.ts │ │ │ │ ├── basic.d.ts │ │ │ │ ├── boolean-literal-allowed.d.ts │ │ │ │ ├── can-explicitly-disallow-outer-query-references.d.ts │ │ │ │ ├── can-explicitly-disallow-outer-query-references.ts.errors │ │ │ │ ├── can-reference-outer-query-joins.d.ts │ │ │ │ ├── can-reference-same-query-joins-if-lateral.d.ts │ │ │ │ ├── can-reference-super-type.d.ts │ │ │ │ ├── cannot-reference-columns-not-in-joins.d.ts │ │ │ │ ├── cannot-reference-columns-not-in-joins.ts.errors │ │ │ │ ├── cannot-reference-strict-sub-type.d.ts │ │ │ │ ├── cannot-reference-strict-sub-type.ts.errors │ │ │ │ ├── must-be-after-from-clause.d.ts │ │ │ │ ├── must-be-after-from-clause.ts.errors │ │ │ │ ├── no-duplicate-2.d.ts │ │ │ │ ├── no-duplicate-2.ts.errors │ │ │ │ ├── no-duplicate.d.ts │ │ │ │ ├── no-duplicate.ts.errors │ │ │ │ ├── no-union.d.ts │ │ │ │ ├── no-union.ts.errors │ │ │ │ ├── referenced-outer-query-join-must-exist.d.ts │ │ │ │ └── referenced-outer-query-join-must-exist.ts.errors │ │ │ └── where-eq-outer-query-candidate-key │ │ │ │ ├── basic.d.ts │ │ │ │ ├── multi-outer-query-multi-candidate-key-invalid.d.ts │ │ │ │ ├── multi-outer-query-multi-candidate-key-invalid.ts.errors │ │ │ │ ├── multi-outer-query-multi-candidate-key.d.ts │ │ │ │ └── multi-outer-query.d.ts │ │ ├── group-by-clause │ │ │ └── group-by │ │ │ │ ├── cannot-reference-outer-query-column.d.ts │ │ │ │ ├── cannot-reference-outer-query-column.ts.errors │ │ │ │ ├── cannot-reference-select-clause-alias.d.ts │ │ │ │ ├── cannot-reference-select-clause-alias.ts.errors │ │ │ │ ├── chain.d.ts │ │ │ │ ├── must-be-in-from-or-select-clause-2.d.ts │ │ │ │ ├── must-be-in-from-or-select-clause-2.ts.errors │ │ │ │ ├── must-be-in-from-or-select-clause.d.ts │ │ │ │ ├── must-be-in-from-or-select-clause.ts.errors │ │ │ │ └── no-select-clause.d.ts │ │ ├── having-clause │ │ │ └── having │ │ │ │ ├── after-from-clause.d.ts │ │ │ │ ├── before-from-clause-cannot-use-columns.d.ts │ │ │ │ ├── before-from-clause-cannot-use-columns.ts.errors │ │ │ │ ├── before-from-clause.d.ts │ │ │ │ ├── can-use-widened-column.d.ts │ │ │ │ ├── cannot-use-column-not-in-from-clause.d.ts │ │ │ │ ├── cannot-use-column-not-in-from-clause.ts.errors │ │ │ │ ├── cannot-use-narrowed-column.d.ts │ │ │ │ ├── cannot-use-narrowed-column.ts.errors │ │ │ │ ├── nullable-having-clause-not-allowed.d.ts │ │ │ │ └── nullable-having-clause-not-allowed.ts.errors │ │ ├── limit-clause │ │ │ ├── limit │ │ │ │ ├── no-limit-clause-limit-number-0-or-1.d.ts │ │ │ │ ├── no-limit-clause-limit-number-0.d.ts │ │ │ │ ├── no-limit-clause-limit-number-1.d.ts │ │ │ │ ├── no-limit-clause-limit-number-2.d.ts │ │ │ │ ├── no-limit-clause-limit-number-or-bigint.d.ts │ │ │ │ ├── no-limit-clause-limit-number.d.ts │ │ │ │ ├── no-limit-clause.d.ts │ │ │ │ └── with-limit-clause.d.ts │ │ │ └── offset │ │ │ │ ├── no-limit-clause-offset-number-or-bigint.d.ts │ │ │ │ ├── no-limit-clause-offset-number.d.ts │ │ │ │ ├── no-limit-clause.d.ts │ │ │ │ └── with-limit-clause.d.ts │ │ ├── order-by-clause │ │ │ └── order-by │ │ │ │ ├── after-from-clause.d.ts │ │ │ │ ├── before-from-clause-cannot-use-columns.d.ts │ │ │ │ ├── before-from-clause-cannot-use-columns.ts.errors │ │ │ │ ├── before-from-clause.d.ts │ │ │ │ ├── can-use-widened-column.d.ts │ │ │ │ ├── cannot-use-column-not-in-from-clause.d.ts │ │ │ │ ├── cannot-use-column-not-in-from-clause.ts.errors │ │ │ │ ├── cannot-use-narrowed-column.d.ts │ │ │ │ ├── cannot-use-narrowed-column.ts.errors │ │ │ │ ├── implicit-empty-grouping-set-with-aggregate-expression-in-select-clause.d.ts │ │ │ │ └── implicit-empty-grouping-set-with-aggregate-expression-in-select-clause.ts.errors │ │ ├── pool │ │ │ ├── add-on-insert-handler │ │ │ │ └── basic.d.ts │ │ │ └── transaction-if-not-in-one │ │ │ │ ├── cannot-go-from-read-only-to-read-write.d.ts │ │ │ │ └── cannot-go-from-read-only-to-read-write.ts.errors │ │ ├── primary-key │ │ │ ├── primary-key-input │ │ │ │ ├── basic.d.ts │ │ │ │ └── union.d.ts │ │ │ ├── primary-key-non-union │ │ │ │ ├── bad-things-happen-with-union.d.ts │ │ │ │ └── basic.d.ts │ │ │ └── primary-key-output │ │ │ │ ├── basic.d.ts │ │ │ │ └── union.d.ts │ │ ├── select-clause │ │ │ └── select │ │ │ │ ├── basic-column-map.d.ts │ │ │ │ ├── basic-column-ref.d.ts │ │ │ │ ├── basic-expr-select-item.d.ts │ │ │ │ ├── cannot-return-union-2.d.ts │ │ │ │ ├── cannot-return-union-2.ts.errors │ │ │ │ ├── cannot-return-union-but-used-ref-merging-allowed.d.ts │ │ │ │ ├── cannot-return-union.d.ts │ │ │ │ ├── cannot-return-union.ts.errors │ │ │ │ ├── cannot-select-expr.d.ts │ │ │ │ ├── cannot-select-expr.ts.errors │ │ │ │ ├── chaining-concats.d.ts │ │ │ │ ├── empty-select-not-allowed.d.ts │ │ │ │ ├── empty-select-not-allowed.ts.errors │ │ │ │ ├── exact-column-type-allowed.d.ts │ │ │ │ ├── extra-column-map-in-column-ref-not-allowed.d.ts │ │ │ │ ├── extra-column-map-in-column-ref-not-allowed.ts.errors │ │ │ │ ├── extra-columns-in-column-map-not-allowed.d.ts │ │ │ │ ├── extra-columns-in-column-map-not-allowed.ts.errors │ │ │ │ ├── extra-columns-in-column-ref-not-allowed.d.ts │ │ │ │ ├── extra-columns-in-column-ref-not-allowed.ts.errors │ │ │ │ ├── missing-columns-in-column-map-allowed.d.ts │ │ │ │ ├── missing-columns-in-column-ref-allowed.d.ts │ │ │ │ ├── missing-columns-map-in-column-ref-allowed.d.ts │ │ │ │ ├── narrowed-column-map-not-allowed.d.ts │ │ │ │ ├── narrowed-column-map-not-allowed.ts.errors │ │ │ │ ├── narrowed-column-ref-not-allowed.d.ts │ │ │ │ ├── narrowed-column-ref-not-allowed.ts.errors │ │ │ │ ├── narrowed-column-type-not-allowed-2.d.ts │ │ │ │ ├── narrowed-column-type-not-allowed-2.ts.errors │ │ │ │ ├── narrowed-column-type-not-allowed-3.d.ts │ │ │ │ ├── narrowed-column-type-not-allowed-3.ts.errors │ │ │ │ ├── narrowed-column-type-not-allowed.d.ts │ │ │ │ ├── narrowed-column-type-not-allowed.ts.errors │ │ │ │ ├── new-and-old-selects-must-have-disjoint-identifiers-2.d.ts │ │ │ │ ├── new-and-old-selects-must-have-disjoint-identifiers-2.ts.errors │ │ │ │ ├── new-and-old-selects-must-have-disjoint-identifiers-3.d.ts │ │ │ │ ├── new-and-old-selects-must-have-disjoint-identifiers-3.ts.errors │ │ │ │ ├── new-and-old-selects-must-have-disjoint-identifiers-4.d.ts │ │ │ │ ├── new-and-old-selects-must-have-disjoint-identifiers-4.ts.errors │ │ │ │ ├── new-and-old-selects-must-have-disjoint-identifiers.d.ts │ │ │ │ ├── new-and-old-selects-must-have-disjoint-identifiers.ts.errors │ │ │ │ ├── no-duplicate-identifiers-2.d.ts │ │ │ │ ├── no-duplicate-identifiers-2.ts.errors │ │ │ │ ├── no-duplicate-identifiers-3.d.ts │ │ │ │ ├── no-duplicate-identifiers-3.ts.errors │ │ │ │ ├── no-duplicate-identifiers-4.d.ts │ │ │ │ ├── no-duplicate-identifiers-4.ts.errors │ │ │ │ ├── no-duplicate-identifiers.d.ts │ │ │ │ ├── no-duplicate-identifiers.ts.errors │ │ │ │ ├── widened-column-map-allowed.d.ts │ │ │ │ ├── widened-column-ref-allowed.d.ts │ │ │ │ └── widened-column-type-allowed.d.ts │ │ ├── super-key │ │ │ ├── super-key-input │ │ │ │ ├── basic.d.ts │ │ │ │ └── union.d.ts │ │ │ ├── super-key-non-union │ │ │ │ ├── bad-things-happen-with-union.d.ts │ │ │ │ └── basic.d.ts │ │ │ └── super-key-output │ │ │ │ ├── basic.d.ts │ │ │ │ └── union.d.ts │ │ ├── table-per-type-util │ │ │ ├── add-parent │ │ │ │ ├── column-01-auto-increment-00-explicit-00.d.ts │ │ │ │ ├── column-01-auto-increment-01-explicit-00.d.ts │ │ │ │ ├── column-01-auto-increment-01-explicit-01.d.ts │ │ │ │ ├── column-10-auto-increment-00-explicit-00.d.ts │ │ │ │ ├── column-10-auto-increment-10-explicit-00.d.ts │ │ │ │ ├── column-10-auto-increment-10-explicit-10.d.ts │ │ │ │ ├── column-11-auto-increment-00-explicit-00.d.ts │ │ │ │ ├── column-11-auto-increment-01-explicit-00.d.ts │ │ │ │ ├── column-11-auto-increment-01-explicit-01.d.ts │ │ │ │ ├── column-11-auto-increment-10-explicit-00.d.ts │ │ │ │ ├── column-11-auto-increment-10-explicit-10.d.ts │ │ │ │ ├── column-11-auto-increment-11-explicit-00.d.ts │ │ │ │ ├── column-11-auto-increment-11-explicit-01.d.ts │ │ │ │ ├── column-11-auto-increment-11-explicit-10.d.ts │ │ │ │ └── column-11-auto-increment-11-explicit-11.d.ts │ │ │ ├── app-key-example.d.ts │ │ │ ├── card-customer-pay-in-method-example.d.ts │ │ │ ├── column-alias │ │ │ │ └── app-key-example.d.ts │ │ │ ├── column-mapper │ │ │ │ └── app-key-example.d.ts │ │ │ ├── diamond-example.d.ts │ │ │ ├── explicit-default-value-column-alias │ │ │ │ └── app-key-example.d.ts │ │ │ ├── extract-all-tables-with-column-alias │ │ │ │ └── app-key-example.d.ts │ │ │ ├── generated-column-alias │ │ │ │ └── app-key-example.d.ts │ │ │ ├── insert-and-fetch-row │ │ │ │ ├── app-key-example.d.ts │ │ │ │ ├── card-customer-pay-in-method-example.d.ts │ │ │ │ ├── diamond-example.d.ts │ │ │ │ └── tree-example.d.ts │ │ │ ├── insert-and-fetch │ │ │ │ ├── basic-app-key-example.d.ts │ │ │ │ ├── extra-props-not-allowed-app-key-example-browser.d.ts │ │ │ │ ├── extra-props-not-allowed-app-key-example-browser.ts.errors │ │ │ │ ├── narrowing-app-key-example-browser.d.ts │ │ │ │ ├── required-props-app-key-example-browser.d.ts │ │ │ │ └── required-props-app-key-example-browser.ts.errors │ │ │ ├── mutable-column-alias │ │ │ │ ├── all-table-with-column-must-be-mutable.d.ts │ │ │ │ └── app-key-example.d.ts │ │ │ ├── non-generated-column-alias │ │ │ │ └── app-key-example.d.ts │ │ │ ├── nullable-column-alias │ │ │ │ ├── all-table-with-column-must-be-nullable.d.ts │ │ │ │ └── app-key-example.d.ts │ │ │ ├── optional-column-alias │ │ │ │ └── app-key-example.d.ts │ │ │ ├── parent-column-alias │ │ │ │ └── app-key-example.d.ts │ │ │ ├── required-column-alias │ │ │ │ └── app-key-example.d.ts │ │ │ ├── row-mapper │ │ │ │ └── app-key-example.d.ts │ │ │ ├── tree-example.d.ts │ │ │ ├── update-and-fetch-one-by-candidate-key │ │ │ │ ├── basic-app-key-example-server.d.ts │ │ │ │ ├── empty-update-app-key-example-server.d.ts │ │ │ │ ├── partial-update-app-key-example-server.d.ts │ │ │ │ └── with-column-reference-app-key-example-server.d.ts │ │ │ ├── update-and-fetch-one-by-primary-key │ │ │ │ ├── basic-app-key-example-server.d.ts │ │ │ │ ├── empty-update-app-key-example-server.d.ts │ │ │ │ ├── partial-update-app-key-example-server.d.ts │ │ │ │ └── with-column-reference-app-key-example-server.d.ts │ │ │ ├── update-and-fetch-zero-or-one-by-candidate-key │ │ │ │ ├── basic-app-key-example-server.d.ts │ │ │ │ ├── empty-update-app-key-example-server.d.ts │ │ │ │ ├── partial-update-app-key-example-server.d.ts │ │ │ │ └── with-column-reference-app-key-example-server.d.ts │ │ │ └── update-and-fetch-zero-or-one-by-primary-key │ │ │ │ ├── basic-app-key-example-server.d.ts │ │ │ │ ├── empty-update-app-key-example-server.d.ts │ │ │ │ ├── partial-update-app-key-example-server.d.ts │ │ │ │ └── with-column-reference-app-key-example-server.d.ts │ │ ├── table │ │ │ ├── add-candidate-key │ │ │ │ ├── add-disjoint.d.ts │ │ │ │ ├── add-intersection.d.ts │ │ │ │ ├── add-sub-key.d.ts │ │ │ │ ├── add-sub-key.ts.errors │ │ │ │ ├── add-super-key.d.ts │ │ │ │ ├── add-super-key.ts.errors │ │ │ │ ├── empty-key.d.ts │ │ │ │ ├── empty-key.ts.errors │ │ │ │ ├── not-a-column.d.ts │ │ │ │ ├── not-a-column.ts.errors │ │ │ │ ├── set-auto-increment-after.d.ts │ │ │ │ ├── set-auto-increment-after.ts.errors │ │ │ │ ├── set-auto-increment-before.d.ts │ │ │ │ ├── set-auto-increment-before.ts.errors │ │ │ │ ├── set-id-after.d.ts │ │ │ │ ├── set-id-after.ts.errors │ │ │ │ ├── set-id-before.d.ts │ │ │ │ └── set-id-before.ts.errors │ │ │ ├── as │ │ │ │ └── long-chain.d.ts │ │ │ ├── fetch-one-by-candidate-key │ │ │ │ ├── duplicate-alias.d.ts │ │ │ │ ├── explicit-select-clause.d.ts │ │ │ │ ├── implicit-select-clause.d.ts │ │ │ │ ├── super-key-literal-not-allowed.d.ts │ │ │ │ └── super-key-literal-not-allowed.ts.errors │ │ │ ├── insert-and-fetch │ │ │ │ ├── candidate-key-generated-2.d.ts │ │ │ │ ├── candidate-key-generated-2.ts.errors │ │ │ │ ├── candidate-key-generated-3.d.ts │ │ │ │ ├── candidate-key-generated-3.ts.errors │ │ │ │ ├── candidate-key-generated-4.d.ts │ │ │ │ ├── candidate-key-generated-4.ts.errors │ │ │ │ ├── candidate-key-generated-5.d.ts │ │ │ │ ├── candidate-key-generated.d.ts │ │ │ │ ├── candidate-key-generated.ts.errors │ │ │ │ ├── empty-insert.d.ts │ │ │ │ ├── empty-insert.ts.errors │ │ │ │ ├── no-candidate-key.d.ts │ │ │ │ └── no-candidate-key.ts.errors │ │ │ ├── set-primary-key │ │ │ │ ├── add-disjoint.d.ts │ │ │ │ ├── add-intersection.d.ts │ │ │ │ ├── add-sub-key.d.ts │ │ │ │ ├── add-sub-key.ts.errors │ │ │ │ ├── add-super-key.d.ts │ │ │ │ ├── add-super-key.ts.errors │ │ │ │ ├── empty-key.d.ts │ │ │ │ ├── empty-key.ts.errors │ │ │ │ ├── not-a-column.d.ts │ │ │ │ ├── not-a-column.ts.errors │ │ │ │ ├── nullable-not-allowed.d.ts │ │ │ │ ├── nullable-not-allowed.ts.errors │ │ │ │ ├── set-auto-increment-after.d.ts │ │ │ │ ├── set-auto-increment-after.ts.errors │ │ │ │ ├── set-auto-increment-before.d.ts │ │ │ │ ├── set-auto-increment-before.ts.errors │ │ │ │ ├── set-id-after.d.ts │ │ │ │ ├── set-id-after.ts.errors │ │ │ │ ├── set-id-before.d.ts │ │ │ │ └── set-id-before.ts.errors │ │ │ ├── update-and-fetch-one-by-candidate-key │ │ │ │ ├── column-must-be-mutable.d.ts │ │ │ │ ├── column-must-be-mutable.ts.errors │ │ │ │ ├── column-must-exist.d.ts │ │ │ │ ├── column-must-exist.ts.errors │ │ │ │ ├── custom-data-type.d.ts │ │ │ │ ├── may-not-update-to-non-null-2.d.ts │ │ │ │ ├── may-not-update-to-non-null-3.d.ts │ │ │ │ ├── may-not-update-to-non-null.d.ts │ │ │ │ ├── may-not-update-to-null-2.d.ts │ │ │ │ ├── may-not-update-to-null-3.d.ts │ │ │ │ ├── may-not-update-to-null.d.ts │ │ │ │ ├── multi-column-change-candidate-key-00.d.ts │ │ │ │ ├── multi-column-change-candidate-key-01.d.ts │ │ │ │ ├── multi-column-change-candidate-key-10.d.ts │ │ │ │ ├── multi-column-change-candidate-key-11.d.ts │ │ │ │ ├── to-non-null-literal.d.ts │ │ │ │ ├── to-non-null.d.ts │ │ │ │ ├── to-null.d.ts │ │ │ │ ├── to-nullable-2.d.ts │ │ │ │ ├── to-nullable.d.ts │ │ │ │ ├── update-can-change-candidate-key-to-primitive.d.ts │ │ │ │ └── update-cannot-change-candidate-key-to-non-primitive.d.ts │ │ │ ├── update-and-fetch-one-by-primary-key │ │ │ │ ├── custom-data-type.d.ts │ │ │ │ ├── to-non-null-literal.d.ts │ │ │ │ ├── to-non-null.d.ts │ │ │ │ ├── to-null.d.ts │ │ │ │ ├── update-can-change-primary-key-to-primitive.d.ts │ │ │ │ └── update-cannot-change-primary-key-to-non-primitive.d.ts │ │ │ ├── update-and-fetch-one-by-super-key │ │ │ │ ├── custom-data-type.d.ts │ │ │ │ ├── to-non-null-literal.d.ts │ │ │ │ ├── to-non-null.d.ts │ │ │ │ ├── to-null.d.ts │ │ │ │ ├── update-can-change-super-key-to-primitive-2.d.ts │ │ │ │ ├── update-can-change-super-key-to-primitive.d.ts │ │ │ │ ├── update-cannot-change-super-key-to-non-primitive-2.d.ts │ │ │ │ └── update-cannot-change-super-key-to-non-primitive.d.ts │ │ │ └── update-and-fetch-zero-or-one-by-candidate-key │ │ │ │ └── custom-data-type.d.ts │ │ ├── type-util │ │ │ └── is-strict-same-type │ │ │ │ └── do-not-reuse-if-output-type-incompatible.d.ts │ │ ├── unified-query │ │ │ ├── as │ │ │ │ ├── basic-derived-table-select-item.d.ts │ │ │ │ ├── basic-derived-table.d.ts │ │ │ │ ├── can-be-used-as-expr-2.d.ts │ │ │ │ ├── can-be-used-as-expr.d.ts │ │ │ │ ├── can-be-used-in-join.d.ts │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-column-to-column.d.ts │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-column-to-column.ts.errors │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-column-to-map.d.ts │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-column-to-map.ts.errors │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-map-to-column.d.ts │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-map-to-column.ts.errors │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-map-to-map.d.ts │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-map-to-map.ts.errors │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-ref-internal.d.ts │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-ref-internal.ts.errors │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-ref-to-column.d.ts │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-ref-to-column.ts.errors │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-ref-to-map.d.ts │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-ref-to-map.ts.errors │ │ │ │ ├── no-from-clause-derived-table-select-item.d.ts │ │ │ │ ├── no-from-clause-derived-table.d.ts │ │ │ │ ├── non-empty-used-ref-derived-table-select-item.d.ts │ │ │ │ └── non-empty-used-ref-derived-table.d.ts │ │ │ ├── assert-exists │ │ │ │ ├── before-select-before-from-not-allowed.d.ts │ │ │ │ └── before-select-before-from-not-allowed.ts.errors │ │ │ ├── correlate │ │ │ │ ├── has-current-joins.d.ts │ │ │ │ ├── has-neither.d.ts │ │ │ │ ├── has-outer-query-joins-and-current-joins.d.ts │ │ │ │ └── has-outer-query-joins.d.ts │ │ │ ├── cross-join │ │ │ │ ├── basic.d.ts │ │ │ │ ├── cannot-be-lateral.d.ts │ │ │ │ ├── cannot-be-lateral.ts.errors │ │ │ │ ├── cannot-call-before-from-clause.d.ts │ │ │ │ ├── cannot-call-before-from-clause.ts.errors │ │ │ │ ├── cannot-have-duplicate-in-current-joins.d.ts │ │ │ │ ├── cannot-have-duplicate-in-current-joins.ts.errors │ │ │ │ ├── cannot-have-duplicate-in-outer-query-joins.d.ts │ │ │ │ ├── cannot-have-duplicate-in-outer-query-joins.ts.errors │ │ │ │ ├── cannot-have-used-ref.d.ts │ │ │ │ ├── cannot-have-used-ref.ts.errors │ │ │ │ ├── max-joins-no-columns.d.ts │ │ │ │ ├── max-joins-with-columns.d.ts │ │ │ │ ├── no-union.d.ts │ │ │ │ └── no-union.ts.errors │ │ │ ├── exists │ │ │ │ ├── before-select-before-from-not-allowed.d.ts │ │ │ │ └── before-select-before-from-not-allowed.ts.errors │ │ │ ├── fetch-all-mapped │ │ │ │ ├── basic.d.ts │ │ │ │ ├── compose-2.d.ts │ │ │ │ ├── compose.d.ts │ │ │ │ ├── promise-basic.d.ts │ │ │ │ ├── promise-compose-2.d.ts │ │ │ │ └── promise-compose.d.ts │ │ │ ├── fetch-all-unmapped-flattened │ │ │ │ ├── basic.d.ts │ │ │ │ ├── ignore-map-delegate.d.ts │ │ │ │ ├── inner-join-2.d.ts │ │ │ │ ├── inner-join-ignore-other-table.d.ts │ │ │ │ ├── inner-join-with-alias.d.ts │ │ │ │ ├── inner-join.d.ts │ │ │ │ ├── left-join-2.d.ts │ │ │ │ ├── left-join-3.d.ts │ │ │ │ └── left-join.d.ts │ │ │ ├── fetch-all-unmapped │ │ │ │ ├── basic.d.ts │ │ │ │ ├── ignore-map-delegate.d.ts │ │ │ │ ├── inner-join-2.d.ts │ │ │ │ ├── inner-join-ignore-other-table.d.ts │ │ │ │ ├── inner-join-with-alias.d.ts │ │ │ │ ├── inner-join.d.ts │ │ │ │ ├── left-join-2.d.ts │ │ │ │ ├── left-join-3.d.ts │ │ │ │ └── left-join.d.ts │ │ │ ├── fetch-all-with-map-delegate │ │ │ │ ├── basic.d.ts │ │ │ │ ├── compose-2.d.ts │ │ │ │ ├── compose.d.ts │ │ │ │ ├── promise-basic.d.ts │ │ │ │ ├── promise-compose-2.d.ts │ │ │ │ └── promise-compose.d.ts │ │ │ ├── fetch-all-without-map-delegate │ │ │ │ ├── basic.d.ts │ │ │ │ ├── inner-join-2.d.ts │ │ │ │ ├── inner-join-ignore-other-table.d.ts │ │ │ │ ├── inner-join-with-alias.d.ts │ │ │ │ ├── inner-join.d.ts │ │ │ │ ├── left-join-2.d.ts │ │ │ │ ├── left-join-3.d.ts │ │ │ │ └── left-join.d.ts │ │ │ ├── fetch-one-or-undefined-with-map-delegate │ │ │ │ └── basic.d.ts │ │ │ ├── fetch-one-or-undefined-without-map-delegate │ │ │ │ ├── basic.d.ts │ │ │ │ ├── multi-table-and-aliased-with-duplicate-column-alias.d.ts │ │ │ │ ├── multi-table-and-aliased.d.ts │ │ │ │ └── table-and-aliased.d.ts │ │ │ ├── fetch-one-or-with-map-delegate │ │ │ │ └── basic.d.ts │ │ │ ├── fetch-one-or-without-map-delegate │ │ │ │ ├── basic.d.ts │ │ │ │ ├── multi-table-and-aliased-with-duplicate-column-alias.d.ts │ │ │ │ ├── multi-table-and-aliased.d.ts │ │ │ │ └── table-and-aliased.d.ts │ │ │ ├── fetch-one-with-map-delegate │ │ │ │ └── basic.d.ts │ │ │ ├── fetch-one-without-map-delegate │ │ │ │ ├── basic.d.ts │ │ │ │ ├── multi-table-and-aliased-with-duplicate-column-alias.d.ts │ │ │ │ ├── multi-table-and-aliased.d.ts │ │ │ │ └── table-and-aliased.d.ts │ │ │ ├── fetch-value-array │ │ │ │ ├── column-map-not-allowed.d.ts │ │ │ │ ├── column-map-not-allowed.ts.errors │ │ │ │ ├── column-ref-not-allowed.d.ts │ │ │ │ ├── column-ref-not-allowed.ts.errors │ │ │ │ ├── ignore-map-delegate.d.ts │ │ │ │ ├── select-column.d.ts │ │ │ │ ├── select-expr-select-item.d.ts │ │ │ │ └── select-expr.d.ts │ │ │ ├── fetch-value-or-undefined │ │ │ │ ├── column-map-not-allowed.d.ts │ │ │ │ ├── column-map-not-allowed.ts.errors │ │ │ │ ├── column-ref-not-allowed.d.ts │ │ │ │ ├── column-ref-not-allowed.ts.errors │ │ │ │ ├── ignore-map-delegate.d.ts │ │ │ │ ├── select-column.d.ts │ │ │ │ ├── select-expr-select-item.d.ts │ │ │ │ └── select-expr.d.ts │ │ │ ├── fetch-value-or │ │ │ │ ├── column-map-not-allowed.d.ts │ │ │ │ ├── column-map-not-allowed.ts.errors │ │ │ │ ├── column-ref-not-allowed.d.ts │ │ │ │ ├── column-ref-not-allowed.ts.errors │ │ │ │ ├── ignore-map-delegate.d.ts │ │ │ │ ├── select-column.d.ts │ │ │ │ ├── select-expr-select-item.d.ts │ │ │ │ └── select-expr.d.ts │ │ │ ├── fetch-value │ │ │ │ ├── column-map-not-allowed.d.ts │ │ │ │ ├── column-map-not-allowed.ts.errors │ │ │ │ ├── column-ref-not-allowed.d.ts │ │ │ │ ├── column-ref-not-allowed.ts.errors │ │ │ │ ├── ignore-map-delegate.d.ts │ │ │ │ ├── select-column.d.ts │ │ │ │ ├── select-expr-select-item.d.ts │ │ │ │ └── select-expr.d.ts │ │ │ ├── from │ │ │ │ ├── basic.d.ts │ │ │ │ ├── cannot-call-twice.d.ts │ │ │ │ └── cannot-call-twice.ts.errors │ │ │ ├── group-by │ │ │ │ ├── basic.d.ts │ │ │ │ └── long-chain.d.ts │ │ │ ├── having │ │ │ │ ├── after-from-clause-aggregate-can-use-column-not-in-group-by.d.ts │ │ │ │ ├── after-from-clause-non-aggregate-cannot-use-column-not-in-group-by.d.ts │ │ │ │ ├── after-from-clause-non-aggregate-cannot-use-column-not-in-group-by.ts.errors │ │ │ │ ├── after-from-clause.d.ts │ │ │ │ ├── before-from-clause-cannot-use-columns.d.ts │ │ │ │ ├── before-from-clause-cannot-use-columns.ts.errors │ │ │ │ ├── before-from-clause.d.ts │ │ │ │ ├── before-from-clause.ts.errors │ │ │ │ ├── boolean-column-allowed.d.ts │ │ │ │ ├── boolean-literal-allowed.d.ts │ │ │ │ ├── can-reference-outer-query-column-aggregate.d.ts │ │ │ │ ├── can-reference-outer-query-column-non-aggregate.d.ts │ │ │ │ ├── cannot-use-before-group-by-clause.d.ts │ │ │ │ ├── cannot-use-before-group-by-clause.ts.errors │ │ │ │ ├── cannot-use-with-empty-group-by-clause.d.ts │ │ │ │ ├── cannot-use-with-empty-group-by-clause.ts.errors │ │ │ │ ├── eq.d.ts │ │ │ │ ├── long-chain-2.d.ts │ │ │ │ ├── long-chain.d.ts │ │ │ │ ├── nullable-having-clause-not-allowed.d.ts │ │ │ │ └── nullable-having-clause-not-allowed.ts.errors │ │ │ ├── inner-join-using-candidate-key │ │ │ │ ├── basic.d.ts │ │ │ │ ├── max-joins-with-columns.d.ts │ │ │ │ └── three-table-different-pks.d.ts │ │ │ ├── inner-join-using-primary-key │ │ │ │ ├── basic.d.ts │ │ │ │ ├── custom-data-type-2.d.ts │ │ │ │ ├── custom-data-type-3.d.ts │ │ │ │ ├── custom-data-type-4.d.ts │ │ │ │ ├── custom-data-type.d.ts │ │ │ │ ├── max-joins-with-columns.d.ts │ │ │ │ └── three-table-different-pks.d.ts │ │ │ ├── inner-join │ │ │ │ ├── basic.d.ts │ │ │ │ ├── can-have-correlated-subquery-in-on-clause.d.ts │ │ │ │ ├── cannot-be-lateral.d.ts │ │ │ │ ├── cannot-be-lateral.ts.errors │ │ │ │ ├── cannot-have-used-ref.d.ts │ │ │ │ ├── cannot-have-used-ref.ts.errors │ │ │ │ ├── cannot-reference-outer-query-joins-in-on-clause.d.ts │ │ │ │ ├── cannot-reference-outer-query-joins-in-on-clause.ts.errors │ │ │ │ ├── max-joins-no-columns.d.ts │ │ │ │ ├── max-joins-with-columns.d.ts │ │ │ │ ├── no-union.d.ts │ │ │ │ ├── no-union.ts.errors │ │ │ │ └── three-table-different-pks.d.ts │ │ │ ├── left-join-using-candidate-key │ │ │ │ ├── basic.d.ts │ │ │ │ ├── max-joins-with-columns.d.ts │ │ │ │ └── three-table-different-pks.d.ts │ │ │ ├── left-join-using-primary-key │ │ │ │ ├── basic.d.ts │ │ │ │ ├── max-joins-with-columns.d.ts │ │ │ │ └── three-table-different-pks.d.ts │ │ │ ├── left-join │ │ │ │ ├── basic.d.ts │ │ │ │ ├── cannot-be-lateral.d.ts │ │ │ │ ├── cannot-be-lateral.ts.errors │ │ │ │ ├── cannot-have-used-ref.d.ts │ │ │ │ ├── cannot-have-used-ref.ts.errors │ │ │ │ ├── left-join-causes-columns-to-be-nullable-2.d.ts │ │ │ │ ├── left-join-causes-columns-to-be-nullable.d.ts │ │ │ │ ├── left-join-causes-columns-to-be-nullable.ts.errors │ │ │ │ ├── max-joins-no-columns.d.ts │ │ │ │ ├── max-joins-with-columns.d.ts │ │ │ │ ├── no-union.d.ts │ │ │ │ ├── no-union.ts.errors │ │ │ │ └── three-table-different-pks.d.ts │ │ │ ├── limit │ │ │ │ ├── long-chain.d.ts │ │ │ │ ├── long-chain.ts.errors │ │ │ │ ├── with-limit-clause.d.ts │ │ │ │ └── without-limit-clause.d.ts │ │ │ ├── map │ │ │ │ ├── compose-2.d.ts │ │ │ │ ├── compose.d.ts │ │ │ │ ├── initial-one-table.d.ts │ │ │ │ ├── initial.d.ts │ │ │ │ ├── promise-compose-2.d.ts │ │ │ │ ├── promise-compose.d.ts │ │ │ │ └── promise-initial.d.ts │ │ │ ├── offset │ │ │ │ ├── long-chain.d.ts │ │ │ │ ├── long-chain.ts.errors │ │ │ │ ├── with-limit-clause.d.ts │ │ │ │ └── without-limit-clause.d.ts │ │ │ ├── order-by │ │ │ │ ├── cannot-nest-aggregate-expressions.d.ts │ │ │ │ ├── cannot-nest-aggregate-expressions.ts.errors │ │ │ │ ├── cannot-reference-outer-query-column.d.ts │ │ │ │ ├── cannot-reference-outer-query-column.ts.errors │ │ │ │ ├── cannot-use-aggregate-in-order-by-without-group-by.1.d.ts │ │ │ │ ├── cannot-use-aggregate-in-order-by-without-group-by.1.ts.errors │ │ │ │ ├── cannot-use-aggregate-in-order-by-without-group-by.d.ts │ │ │ │ ├── cannot-use-aggregate-in-order-by-without-group-by.ts.errors │ │ │ │ ├── long-chain-2.d.ts │ │ │ │ ├── long-chain.d.ts │ │ │ │ ├── subquery-as-sort-expr-implicit-asc-not-allowed.d.ts │ │ │ │ ├── subquery-as-sort-expr-implicit-asc-not-allowed.ts.errors │ │ │ │ └── subquery-as-sort-expr.d.ts │ │ │ ├── select-value │ │ │ │ ├── cannot-duplicate-names-2.d.ts │ │ │ │ ├── cannot-duplicate-names-3.d.ts │ │ │ │ ├── cannot-duplicate-names-3.ts.errors │ │ │ │ ├── cannot-duplicate-names.d.ts │ │ │ │ ├── cannot-duplicate-names.ts.errors │ │ │ │ ├── cannot-select-expr-twice.d.ts │ │ │ │ ├── cannot-select-expr-twice.ts.errors │ │ │ │ ├── cannot-select-primitive-expr-twice.d.ts │ │ │ │ ├── cannot-select-primitive-expr-twice.ts.errors │ │ │ │ ├── cannot-select-subquery-twice.d.ts │ │ │ │ ├── cannot-select-subquery-twice.ts.errors │ │ │ │ ├── select-boolean.d.ts │ │ │ │ ├── select-column-multi.d.ts │ │ │ │ ├── select-column.d.ts │ │ │ │ ├── select-expr-select-item-multi.d.ts │ │ │ │ ├── select-expr-select-item.d.ts │ │ │ │ ├── select-expr.d.ts │ │ │ │ ├── select-primitive-expr.d.ts │ │ │ │ ├── select-subquery.d.ts │ │ │ │ └── subquery-as-select-item.d.ts │ │ │ ├── select │ │ │ │ ├── can-reference-outer-query-column.d.ts │ │ │ │ ├── covering-group-by-problem.d.ts │ │ │ │ ├── no-group-by-aggregate-only.d.ts │ │ │ │ ├── no-group-by-mix-aggregate.d.ts │ │ │ │ ├── no-group-by-mix-aggregate.ts.errors │ │ │ │ ├── no-group-by-non-aggregate-only.d.ts │ │ │ │ ├── subquery-as-select-item.d.ts │ │ │ │ ├── with-group-by-aggregate-only.d.ts │ │ │ │ ├── with-group-by-mix-aggregate-error.d.ts │ │ │ │ ├── with-group-by-mix-aggregate-error.ts.errors │ │ │ │ ├── with-group-by-mix-aggregate.d.ts │ │ │ │ ├── with-group-by-non-aggregate-only-error.d.ts │ │ │ │ ├── with-group-by-non-aggregate-only-error.ts.errors │ │ │ │ └── with-group-by-non-aggregate-only.d.ts │ │ │ ├── union-limit │ │ │ │ ├── long-chain.d.ts │ │ │ │ ├── with-limit-clause.d.ts │ │ │ │ └── without-limit-clause.d.ts │ │ │ ├── union-offset │ │ │ │ ├── long-chain.d.ts │ │ │ │ ├── with-limit-clause.d.ts │ │ │ │ └── without-limit-clause.d.ts │ │ │ ├── use-as-expr │ │ │ │ ├── one-row-after-from-clause.d.ts │ │ │ │ └── one-row-before-from-clause.d.ts │ │ │ ├── where-eq-candidate-key │ │ │ │ ├── basic.d.ts │ │ │ │ ├── cannot-return-union-type.d.ts │ │ │ │ ├── cannot-return-union-type.ts.errors │ │ │ │ ├── cannot-use-before-from-clause.d.ts │ │ │ │ ├── cannot-use-before-from-clause.ts.errors │ │ │ │ ├── cannot-use-without-candidate-key.d.ts │ │ │ │ ├── cannot-use-without-candidate-key.ts.errors │ │ │ │ ├── error-on-excess-property-multple-candidate-keys.d.ts │ │ │ │ ├── error-on-excess-property-multple-candidate-keys.ts.errors │ │ │ │ ├── error-on-excess-property.d.ts │ │ │ │ ├── error-on-excess-property.ts.errors │ │ │ │ ├── use-after-join-2.d.ts │ │ │ │ └── use-after-join.d.ts │ │ │ ├── where-eq-columns │ │ │ │ ├── basic.d.ts │ │ │ │ ├── cannot-return-union-type.d.ts │ │ │ │ ├── cannot-return-union-type.ts.errors │ │ │ │ ├── cannot-use-before-from-clause.d.ts │ │ │ │ ├── cannot-use-before-from-clause.ts.errors │ │ │ │ ├── error-on-excess-property.d.ts │ │ │ │ ├── error-on-excess-property.ts.errors │ │ │ │ ├── long-chain.d.ts │ │ │ │ ├── use-after-join-2.d.ts │ │ │ │ └── use-after-join.d.ts │ │ │ ├── where-eq-inner-query-primary-key │ │ │ │ ├── basic.d.ts │ │ │ │ ├── cannot-use-before-from-clause.d.ts │ │ │ │ ├── cannot-use-before-from-clause.ts.errors │ │ │ │ ├── cannot-use-non-correlated.d.ts │ │ │ │ ├── cannot-use-non-correlated.ts.errors │ │ │ │ ├── dst-can-return-union-type.d.ts │ │ │ │ ├── long-chain.d.ts │ │ │ │ ├── must-be-null-safe-comparable.d.ts │ │ │ │ ├── must-be-null-safe-comparable.ts.errors │ │ │ │ ├── must-have-dst-pk-column-names.d.ts │ │ │ │ ├── must-have-dst-pk-column-names.ts.errors │ │ │ │ ├── src-cannot-return-union-type.d.ts │ │ │ │ ├── src-cannot-return-union-type.ts.errors │ │ │ │ └── use-after-join.d.ts │ │ │ ├── where-eq-outer-query-primary-key │ │ │ │ ├── basic.d.ts │ │ │ │ ├── cannot-use-before-from-clause.d.ts │ │ │ │ ├── cannot-use-before-from-clause.ts.errors │ │ │ │ ├── cannot-use-non-correlated.d.ts │ │ │ │ ├── cannot-use-non-correlated.ts.errors │ │ │ │ ├── dst-can-return-union-type.d.ts │ │ │ │ ├── long-chain.d.ts │ │ │ │ ├── must-be-null-safe-comparable.d.ts │ │ │ │ ├── must-be-null-safe-comparable.ts.errors │ │ │ │ ├── must-have-dst-pk-column-names.d.ts │ │ │ │ ├── must-have-dst-pk-column-names.ts.errors │ │ │ │ ├── src-cannot-return-union-type.d.ts │ │ │ │ ├── src-cannot-return-union-type.ts.errors │ │ │ │ └── use-after-join.d.ts │ │ │ ├── where-eq-primary-key │ │ │ │ ├── basic.d.ts │ │ │ │ ├── candidate-key-is-not-primary-key.d.ts │ │ │ │ ├── candidate-key-is-not-primary-key.ts.errors │ │ │ │ ├── cannot-return-union-type.d.ts │ │ │ │ ├── cannot-return-union-type.ts.errors │ │ │ │ ├── cannot-use-before-from-clause.d.ts │ │ │ │ ├── cannot-use-before-from-clause.ts.errors │ │ │ │ ├── cannot-use-without-primary-key.d.ts │ │ │ │ ├── cannot-use-without-primary-key.ts.errors │ │ │ │ ├── error-on-excess-property.d.ts │ │ │ │ ├── error-on-excess-property.ts.errors │ │ │ │ ├── long-chain.d.ts │ │ │ │ ├── use-after-join-2.d.ts │ │ │ │ └── use-after-join.d.ts │ │ │ ├── where-eq-super-key │ │ │ │ ├── basic.d.ts │ │ │ │ ├── cannot-return-union-type.d.ts │ │ │ │ ├── cannot-return-union-type.ts.errors │ │ │ │ ├── cannot-use-before-from-clause.d.ts │ │ │ │ ├── cannot-use-before-from-clause.ts.errors │ │ │ │ ├── cannot-use-without-candidate-key.d.ts │ │ │ │ ├── cannot-use-without-candidate-key.ts.errors │ │ │ │ ├── error-on-excess-property-multple-candidate-keys.d.ts │ │ │ │ ├── error-on-excess-property-multple-candidate-keys.ts.errors │ │ │ │ ├── error-on-excess-property.d.ts │ │ │ │ ├── error-on-excess-property.ts.errors │ │ │ │ ├── use-after-join-2.d.ts │ │ │ │ └── use-after-join.d.ts │ │ │ ├── where-eq │ │ │ │ ├── basic.d.ts │ │ │ │ ├── cannot-compare-against-null.d.ts │ │ │ │ ├── cannot-compare-against-null.ts.errors │ │ │ │ ├── cannot-return-union-type.d.ts │ │ │ │ ├── cannot-return-union-type.ts.errors │ │ │ │ ├── custom-data-type-2.d.ts │ │ │ │ ├── custom-data-type.d.ts │ │ │ │ ├── data-type-must-match.d.ts │ │ │ │ ├── data-type-must-match.ts.errors │ │ │ │ ├── long-chain.d.ts │ │ │ │ ├── long-chain.ts.errors │ │ │ │ ├── multi-column.d.ts │ │ │ │ ├── narrow-twice.d.ts │ │ │ │ ├── nullable-not-allowed.d.ts │ │ │ │ ├── nullable-not-allowed.ts.errors │ │ │ │ └── will-not-narrow-string.d.ts │ │ │ ├── where-is-not-null │ │ │ │ ├── basic.d.ts │ │ │ │ ├── long-chain.d.ts │ │ │ │ ├── long-chain.ts.errors │ │ │ │ ├── multi-table-both-have-nullable.d.ts │ │ │ │ └── multi-table-one-have-nullable.d.ts │ │ │ ├── where-is-null │ │ │ │ ├── basic.d.ts │ │ │ │ ├── long-chain.d.ts │ │ │ │ ├── long-chain.ts.errors │ │ │ │ ├── multi-null-column.d.ts │ │ │ │ ├── multi-table-both-have-nullable.d.ts │ │ │ │ └── multi-table-one-have-nullable.d.ts │ │ │ ├── where-null-safe-eq │ │ │ │ ├── basic.d.ts │ │ │ │ ├── can-compare-to-null.d.ts │ │ │ │ ├── cannot-return-union-type.d.ts │ │ │ │ ├── cannot-return-union-type.ts.errors │ │ │ │ ├── data-type-must-match.d.ts │ │ │ │ ├── data-type-must-match.ts.errors │ │ │ │ ├── long-chain.d.ts │ │ │ │ ├── long-chain.ts.errors │ │ │ │ ├── multi-column.d.ts │ │ │ │ └── narrow-twice.d.ts │ │ │ └── where │ │ │ │ ├── after-from-clause.d.ts │ │ │ │ ├── before-from-clause-cannot-use-columns.d.ts │ │ │ │ ├── before-from-clause-cannot-use-columns.ts.errors │ │ │ │ ├── before-from-clause.d.ts │ │ │ │ ├── boolean-column-allowed.d.ts │ │ │ │ ├── boolean-literal-allowed.d.ts │ │ │ │ ├── cannot-use-aggregate-expression.d.ts │ │ │ │ ├── cannot-use-aggregate-expression.ts.errors │ │ │ │ ├── eq.d.ts │ │ │ │ ├── long-chain-2.d.ts │ │ │ │ ├── long-chain.d.ts │ │ │ │ ├── non-boolean-column-not-allowed.d.ts │ │ │ │ ├── non-boolean-column-not-allowed.ts.errors │ │ │ │ ├── nullable-where-clause-not-allowed.d.ts │ │ │ │ ├── nullable-where-clause-not-allowed.ts.errors │ │ │ │ ├── test-allowed-used-ref-assignability.d.ts │ │ │ │ ├── test-use-column-too-narrow.d.ts │ │ │ │ ├── test-use-column-too-narrow.ts.errors │ │ │ │ ├── test-use-column-too-wide.d.ts │ │ │ │ ├── test-use-non-existent-column-no-from-clause.d.ts │ │ │ │ ├── test-use-non-existent-column-no-from-clause.ts.errors │ │ │ │ ├── test-use-non-existent-column.d.ts │ │ │ │ └── test-use-non-existent-column.ts.errors │ │ └── used-ref │ │ │ ├── use-fewer-columns-assignable-to-use-more-columns.d.ts │ │ │ ├── use-more-columns-not-assignable-to-use-fewer-columns.d.ts │ │ │ ├── use-more-columns-not-assignable-to-use-fewer-columns.ts.errors │ │ │ ├── use-non-nullable-not-assignable-to-use-nullable.d.ts │ │ │ ├── use-non-nullable-not-assignable-to-use-nullable.ts.errors │ │ │ └── use-nullable-assignable-to-use-non-nullable.d.ts │ ├── input │ │ ├── candidate-key │ │ │ ├── candidate-key-input │ │ │ │ ├── basic.ts │ │ │ │ └── union.ts │ │ │ ├── candidate-key-non-union │ │ │ │ ├── bad-things-happen-with-union.ts │ │ │ │ └── basic.ts │ │ │ └── candidate-key-output │ │ │ │ ├── basic.ts │ │ │ │ └── union.ts │ │ ├── compound-query-clause │ │ │ └── compound-query │ │ │ │ ├── cannot-compound-column-and-map.ts │ │ │ │ ├── cannot-compound-column-and-ref.ts │ │ │ │ ├── cannot-compound-map-and-column.ts │ │ │ │ ├── cannot-compound-map-and-ref.ts │ │ │ │ ├── cannot-compound-ref-and-column.ts │ │ │ │ ├── cannot-compound-ref-and-map.ts │ │ │ │ ├── map-and-map.ts │ │ │ │ ├── map-can-be-proper-sub-type.ts │ │ │ │ ├── map-must-be-sub-type.ts │ │ │ │ ├── map-must-not-have-extra-columns.ts │ │ │ │ ├── map-must-not-have-missing-columns.ts │ │ │ │ ├── multi-column-and-expr.ts │ │ │ │ ├── must-have-same-number-of-select-items-1.ts │ │ │ │ ├── must-have-same-number-of-select-items-2.ts │ │ │ │ ├── must-have-subset-of-outer-query-join-2.ts │ │ │ │ ├── must-have-subset-of-outer-query-join-3.ts │ │ │ │ ├── must-have-subset-of-outer-query-join-4.ts │ │ │ │ ├── must-have-subset-of-outer-query-join.ts │ │ │ │ ├── one-column-to-one-column-can-be-strict-sub-type.ts │ │ │ │ ├── one-column-to-one-column-must-be-sub-type.ts │ │ │ │ ├── one-column-to-one-column.ts │ │ │ │ ├── one-column-to-one-expr.ts │ │ │ │ ├── one-expr-to-one-column.ts │ │ │ │ ├── one-expr-to-one-expr.ts │ │ │ │ ├── ref-map-can-be-proper-sub-type.ts │ │ │ │ ├── ref-map-must-be-sub-type.ts │ │ │ │ ├── ref-map-must-not-have-extra-columns.ts │ │ │ │ ├── ref-map-must-not-have-missing-columns.ts │ │ │ │ ├── ref-must-not-have-extra-tables.ts │ │ │ │ └── ref-must-not-have-missing-tables.ts │ │ ├── design-pattern-log │ │ │ ├── fetch-default │ │ │ │ └── optional-copy-default-2.ts │ │ │ ├── fetch-latest │ │ │ │ └── basic.ts │ │ │ └── real-world-code │ │ │ │ ├── app-key-custom-auto-increment-not-generated.ts │ │ │ │ ├── app-key-custom.ts │ │ │ │ ├── business-enabled.ts │ │ │ │ ├── business-information.ts │ │ │ │ └── lightbulb.ts │ │ ├── execution │ │ │ ├── fetch-all-mapped │ │ │ │ ├── basic.ts │ │ │ │ ├── compose-2.ts │ │ │ │ ├── compose.ts │ │ │ │ ├── promise-basic.ts │ │ │ │ ├── promise-compose-2.ts │ │ │ │ └── promise-compose.ts │ │ │ ├── fetch-all-unmapped-flattened │ │ │ │ ├── basic.ts │ │ │ │ ├── ignore-map-delegate.ts │ │ │ │ ├── inner-join-2.ts │ │ │ │ ├── inner-join-ignore-other-table.ts │ │ │ │ ├── inner-join-with-alias.ts │ │ │ │ ├── inner-join.ts │ │ │ │ ├── left-join-2.ts │ │ │ │ ├── left-join-3.ts │ │ │ │ └── left-join.ts │ │ │ ├── fetch-all-unmapped │ │ │ │ ├── basic.ts │ │ │ │ ├── ignore-map-delegate.ts │ │ │ │ ├── inner-join-2.ts │ │ │ │ ├── inner-join-ignore-other-table.ts │ │ │ │ ├── inner-join-with-alias.ts │ │ │ │ ├── inner-join.ts │ │ │ │ ├── left-join-2.ts │ │ │ │ ├── left-join-3.ts │ │ │ │ └── left-join.ts │ │ │ ├── fetch-all-with-map-delegate │ │ │ │ ├── basic.ts │ │ │ │ ├── compose-2.ts │ │ │ │ ├── compose.ts │ │ │ │ ├── promise-basic.ts │ │ │ │ ├── promise-compose-2.ts │ │ │ │ └── promise-compose.ts │ │ │ ├── fetch-all-without-map-delegate │ │ │ │ ├── basic.ts │ │ │ │ ├── inner-join-2.ts │ │ │ │ ├── inner-join-ignore-other-table.ts │ │ │ │ ├── inner-join-with-alias.ts │ │ │ │ ├── inner-join.ts │ │ │ │ ├── left-join-2.ts │ │ │ │ ├── left-join-3.ts │ │ │ │ └── left-join.ts │ │ │ ├── insert-ignore-one │ │ │ │ ├── auto-increment-generated-cannot-specify-explicit-value.ts │ │ │ │ ├── auto-increment-non-generated-can-specify-explicit-value.ts │ │ │ │ ├── auto-increment-non-generated-explicit-non-primitive-value-leads-to-error.ts │ │ │ │ ├── can-omit-optional-column.ts │ │ │ │ ├── cannot-omit-required-column.ts │ │ │ │ ├── insert-disabled.ts │ │ │ │ └── no-auto-increment.ts │ │ │ └── insert-one │ │ │ │ ├── auto-increment-generated-cannot-specify-explicit-value.ts │ │ │ │ ├── auto-increment-non-generated-can-specify-explicit-value.ts │ │ │ │ ├── auto-increment-non-generated-explicit-non-primitive-value-leads-to-error.ts │ │ │ │ ├── can-omit-optional-column.ts │ │ │ │ ├── cannot-omit-required-column.ts │ │ │ │ ├── insert-disabled.ts │ │ │ │ └── no-auto-increment.ts │ │ ├── expr-library │ │ │ ├── cannot-nest-aggregate-expression.ts │ │ │ ├── comparison │ │ │ │ ├── coalesce │ │ │ │ │ ├── 1-arg.ts │ │ │ │ │ ├── 2-arg-null-at-end.ts │ │ │ │ │ ├── 2-arg-null-or-value-at-end.ts │ │ │ │ │ ├── 2-arg-value-at-end.ts │ │ │ │ │ ├── long-chain.ts │ │ │ │ │ ├── no-arg.ts │ │ │ │ │ ├── value-at-middle.ts │ │ │ │ │ └── value-at-start.ts │ │ │ │ ├── greatest │ │ │ │ │ ├── long-chain.ts │ │ │ │ │ ├── must-have-same-type-as-first-arg.ts │ │ │ │ │ ├── null-not-allowed.ts │ │ │ │ │ └── return-type-is-one-of-arg.ts │ │ │ │ ├── in-array │ │ │ │ │ ├── must-have-same-type-as-first-arg.ts │ │ │ │ │ ├── null-first-arg-not-allowed.ts │ │ │ │ │ ├── null-in-rest-arg-not-allowed.ts │ │ │ │ │ ├── query-in-rest.ts │ │ │ │ │ └── same-type-as-first-arg.ts │ │ │ │ ├── in-query │ │ │ │ │ ├── must-have-same-type-as-first-arg.ts │ │ │ │ │ ├── null-first-arg-not-allowed.ts │ │ │ │ │ ├── null-in-rest-arg-not-allowed.ts │ │ │ │ │ ├── query-in-rest.ts │ │ │ │ │ └── same-type-as-first-arg.ts │ │ │ │ └── like │ │ │ │ │ ├── expression-not-allowed-for-escape-char.ts │ │ │ │ │ ├── expressions.ts │ │ │ │ │ ├── literal-for-escape-char.ts │ │ │ │ │ └── literals.ts │ │ │ ├── control-flow │ │ │ │ ├── case-value │ │ │ │ │ ├── else-can-use-null.ts │ │ │ │ │ ├── else-can-use-same-comparable-type.ts │ │ │ │ │ ├── long-chain.ts │ │ │ │ │ ├── then-can-use-null.ts │ │ │ │ │ ├── then-can-use-same-comparable-type-2.ts │ │ │ │ │ ├── then-can-use-same-comparable-type.ts │ │ │ │ │ ├── then-must-use-same-comparable-type.ts │ │ │ │ │ ├── value-cannot-use-null.ts │ │ │ │ │ ├── when-cannot-use-null-2.ts │ │ │ │ │ ├── when-cannot-use-null.ts │ │ │ │ │ ├── when-same-comparable-type-allowed-2.ts │ │ │ │ │ └── when-same-comparable-type-allowed.ts │ │ │ │ └── if-is-null │ │ │ │ │ └── basic.ts │ │ │ ├── double │ │ │ │ └── power │ │ │ │ │ └── long-chain.ts │ │ │ ├── equation │ │ │ │ └── eq │ │ │ │ │ ├── lhs-cannot-be-null.ts │ │ │ │ │ └── rhs-cannot-be-null.ts │ │ │ ├── operator │ │ │ │ ├── comparison │ │ │ │ │ └── eq │ │ │ │ │ │ └── basic.ts │ │ │ │ ├── logical │ │ │ │ │ ├── and │ │ │ │ │ │ ├── log-chain-2.ts │ │ │ │ │ │ ├── long-chain-3.ts │ │ │ │ │ │ ├── long-chain-4.ts │ │ │ │ │ │ ├── long-chain.ts │ │ │ │ │ │ ├── use-column.ts │ │ │ │ │ │ └── use-primitive-expr.ts │ │ │ │ │ ├── is-not-null-and │ │ │ │ │ │ └── basic.ts │ │ │ │ │ └── is-null-or │ │ │ │ │ │ └── basic.ts │ │ │ │ └── null-safe-comparison │ │ │ │ │ ├── make-eq-candidate-key-of-table │ │ │ │ │ ├── basic.ts │ │ │ │ │ ├── both-src-and-dst-can-be-nullable.ts │ │ │ │ │ ├── can-return-union-of-columns.ts │ │ │ │ │ ├── cannot-use-extra-columns.ts │ │ │ │ │ ├── cannot-use-sub-part-of-key.ts │ │ │ │ │ ├── dst-can-be-union-but-must-share-candidate-keys-2.ts │ │ │ │ │ ├── dst-can-be-union-but-must-share-candidate-keys-3.ts │ │ │ │ │ ├── dst-can-be-union-but-must-share-candidate-keys.ts │ │ │ │ │ ├── dst-can-be-union.ts │ │ │ │ │ ├── dst-can-have-nullable-when-src-not-nullable.ts │ │ │ │ │ ├── src-and-dst-must-have-same-primitive-type-2.ts │ │ │ │ │ ├── src-and-dst-must-have-same-primitive-type.ts │ │ │ │ │ ├── src-can-have-nullable-when-dst-not-nullable.ts │ │ │ │ │ ├── test-00.ts │ │ │ │ │ ├── test-01.ts │ │ │ │ │ ├── test-02.ts │ │ │ │ │ ├── test-03.ts │ │ │ │ │ ├── test-04.ts │ │ │ │ │ ├── test-05.ts │ │ │ │ │ ├── test-06.ts │ │ │ │ │ ├── test-07.ts │ │ │ │ │ ├── test-08.ts │ │ │ │ │ ├── union-of-columns-cannot-use-extra-columns.ts │ │ │ │ │ └── union-of-columns-cannot-use-sub-part-of-key.ts │ │ │ │ │ └── make-eq-primary-key-of-table │ │ │ │ │ ├── README.md │ │ │ │ │ ├── basic.ts │ │ │ │ │ ├── dst-can-be-union-but-src-must-have-all-primary-keys-2.ts │ │ │ │ │ ├── dst-can-be-union-but-src-must-have-all-primary-keys.ts │ │ │ │ │ ├── must-have-all-columns.ts │ │ │ │ │ ├── must-have-same-primitive-type-2.ts │ │ │ │ │ ├── must-have-same-primitive-type.ts │ │ │ │ │ ├── src-can-be-nullable.ts │ │ │ │ │ ├── src-can-union-but-must-all-be-valid-2.ts │ │ │ │ │ ├── src-can-union-but-must-all-be-valid.ts │ │ │ │ │ └── src-can-union.ts │ │ │ ├── real-life-use-case │ │ │ │ └── number-to-decimal-for-math │ │ │ │ │ └── basic.ts │ │ │ └── string │ │ │ │ └── concat │ │ │ │ └── basic.ts │ │ ├── expr │ │ │ └── as │ │ │ │ ├── basic.ts │ │ │ │ └── long-chain.ts │ │ ├── from-clause │ │ │ ├── cross-join │ │ │ │ ├── basic.ts │ │ │ │ ├── can-reference-outer-query-joins.ts │ │ │ │ ├── can-reference-same-query-joins-if-lateral.ts │ │ │ │ ├── must-be-after-from-clause.ts │ │ │ │ ├── no-duplicate-2.ts │ │ │ │ ├── no-duplicate.ts │ │ │ │ ├── no-union.ts │ │ │ │ └── referenced-outer-query-join-must-exist.ts │ │ │ ├── inner-join-using-candidate-key │ │ │ │ ├── basic.ts │ │ │ │ ├── both-src-and-dst-can-be-nullable.ts │ │ │ │ ├── can-return-union-of-columns.ts │ │ │ │ ├── cannot-use-extra-columns.ts │ │ │ │ ├── cannot-use-sub-part-of-key.ts │ │ │ │ ├── dst-cannot-be-union.ts │ │ │ │ ├── src-and-dst-must-have-same-primitive-type-2.ts │ │ │ │ ├── src-and-dst-must-have-same-primitive-type.ts │ │ │ │ ├── src-can-have-nullable-when-dst-not-nullable.ts │ │ │ │ ├── union-of-columns-cannot-use-extra-columns.ts │ │ │ │ └── union-of-columns-cannot-use-sub-part-of-key.ts │ │ │ ├── inner-join-using-primary-key │ │ │ │ ├── basic.ts │ │ │ │ ├── dst-cannot-be-union.ts │ │ │ │ ├── must-have-all-columns.ts │ │ │ │ ├── must-have-same-primitive-type-2.ts │ │ │ │ ├── must-have-same-primitive-type.ts │ │ │ │ ├── src-can-be-nullable.ts │ │ │ │ ├── src-can-be-union-but-must-all-be-valid-2.ts │ │ │ │ ├── src-can-be-union-but-must-all-be-valid.ts │ │ │ │ └── src-can-be-union.ts │ │ │ ├── inner-join │ │ │ │ ├── aliased-expr-allowed.ts │ │ │ │ ├── basic-2.ts │ │ │ │ ├── basic.ts │ │ │ │ ├── boolean-literal-allowed.ts │ │ │ │ ├── can-explicitly-disallow-outer-query-references.ts │ │ │ │ ├── can-reference-outer-query-joins.ts │ │ │ │ ├── can-reference-same-query-joins-if-lateral.ts │ │ │ │ ├── can-reference-super-type.ts │ │ │ │ ├── cannot-reference-columns-not-in-joins.ts │ │ │ │ ├── cannot-reference-strict-sub-type.ts │ │ │ │ ├── must-be-after-from-clause.ts │ │ │ │ ├── no-duplicate-2.ts │ │ │ │ ├── no-duplicate.ts │ │ │ │ ├── no-union.ts │ │ │ │ └── referenced-outer-query-join-must-exist.ts │ │ │ ├── left-join-using-candidate-key │ │ │ │ ├── basic.ts │ │ │ │ ├── both-src-and-dst-can-be-nullable.ts │ │ │ │ ├── can-return-union-of-columns.ts │ │ │ │ ├── cannot-use-extra-columns.ts │ │ │ │ ├── cannot-use-sub-part-of-key.ts │ │ │ │ ├── dst-cannot-be-union.ts │ │ │ │ ├── src-and-dst-must-have-same-primitive-type-2.ts │ │ │ │ ├── src-and-dst-must-have-same-primitive-type.ts │ │ │ │ ├── src-can-have-nullable-when-dst-not-nullable.ts │ │ │ │ ├── union-of-columns-cannot-use-extra-columns.ts │ │ │ │ └── union-of-columns-cannot-use-sub-part-of-key.ts │ │ │ ├── left-join-using-primary-key │ │ │ │ ├── basic.ts │ │ │ │ ├── dst-cannot-be-union.ts │ │ │ │ ├── must-have-all-columns.ts │ │ │ │ ├── must-have-same-primitive-type-2.ts │ │ │ │ ├── must-have-same-primitive-type.ts │ │ │ │ ├── src-can-be-nullable.ts │ │ │ │ ├── src-can-be-union-but-must-all-be-valid-2.ts │ │ │ │ ├── src-can-be-union-but-must-all-be-valid.ts │ │ │ │ └── src-can-be-union.ts │ │ │ ├── left-join │ │ │ │ ├── aliased-expr-allowed.ts │ │ │ │ ├── basic-2.ts │ │ │ │ ├── basic.ts │ │ │ │ ├── boolean-literal-allowed.ts │ │ │ │ ├── can-explicitly-disallow-outer-query-references.ts │ │ │ │ ├── can-reference-outer-query-joins.ts │ │ │ │ ├── can-reference-same-query-joins-if-lateral.ts │ │ │ │ ├── can-reference-super-type.ts │ │ │ │ ├── cannot-reference-columns-not-in-joins.ts │ │ │ │ ├── cannot-reference-strict-sub-type.ts │ │ │ │ ├── must-be-after-from-clause.ts │ │ │ │ ├── no-duplicate-2.ts │ │ │ │ ├── no-duplicate.ts │ │ │ │ ├── no-union.ts │ │ │ │ └── referenced-outer-query-join-must-exist.ts │ │ │ └── where-eq-outer-query-candidate-key │ │ │ │ ├── basic.ts │ │ │ │ ├── multi-outer-query-multi-candidate-key-invalid.ts │ │ │ │ ├── multi-outer-query-multi-candidate-key.ts │ │ │ │ └── multi-outer-query.ts │ │ ├── group-by-clause │ │ │ └── group-by │ │ │ │ ├── cannot-reference-outer-query-column.ts │ │ │ │ ├── cannot-reference-select-clause-alias.ts │ │ │ │ ├── chain.ts │ │ │ │ ├── must-be-in-from-or-select-clause-2.ts │ │ │ │ ├── must-be-in-from-or-select-clause.ts │ │ │ │ └── no-select-clause.ts │ │ ├── having-clause │ │ │ └── having │ │ │ │ ├── after-from-clause.ts │ │ │ │ ├── before-from-clause-cannot-use-columns.ts │ │ │ │ ├── before-from-clause.ts │ │ │ │ ├── can-use-widened-column.ts │ │ │ │ ├── cannot-use-column-not-in-from-clause.ts │ │ │ │ ├── cannot-use-narrowed-column.ts │ │ │ │ └── nullable-having-clause-not-allowed.ts │ │ ├── limit-clause │ │ │ ├── limit │ │ │ │ ├── no-limit-clause-limit-number-0-or-1.ts │ │ │ │ ├── no-limit-clause-limit-number-0.ts │ │ │ │ ├── no-limit-clause-limit-number-1.ts │ │ │ │ ├── no-limit-clause-limit-number-2.ts │ │ │ │ ├── no-limit-clause-limit-number-or-bigint.ts │ │ │ │ ├── no-limit-clause-limit-number.ts │ │ │ │ ├── no-limit-clause.ts │ │ │ │ └── with-limit-clause.ts │ │ │ └── offset │ │ │ │ ├── no-limit-clause-offset-number-or-bigint.ts │ │ │ │ ├── no-limit-clause-offset-number.ts │ │ │ │ ├── no-limit-clause.ts │ │ │ │ └── with-limit-clause.ts │ │ ├── order-by-clause │ │ │ └── order-by │ │ │ │ ├── after-from-clause.ts │ │ │ │ ├── before-from-clause-cannot-use-columns.ts │ │ │ │ ├── before-from-clause.ts │ │ │ │ ├── can-use-widened-column.ts │ │ │ │ ├── cannot-use-column-not-in-from-clause.ts │ │ │ │ ├── cannot-use-narrowed-column.ts │ │ │ │ └── implicit-empty-grouping-set-with-aggregate-expression-in-select-clause.ts │ │ ├── pool │ │ │ ├── add-on-insert-handler │ │ │ │ └── basic.ts │ │ │ └── transaction-if-not-in-one │ │ │ │ └── cannot-go-from-read-only-to-read-write.ts │ │ ├── primary-key │ │ │ ├── primary-key-input │ │ │ │ ├── basic.ts │ │ │ │ └── union.ts │ │ │ ├── primary-key-non-union │ │ │ │ ├── bad-things-happen-with-union.ts │ │ │ │ └── basic.ts │ │ │ └── primary-key-output │ │ │ │ ├── basic.ts │ │ │ │ └── union.ts │ │ ├── select-clause │ │ │ └── select │ │ │ │ ├── basic-column-map.ts │ │ │ │ ├── basic-column-ref.ts │ │ │ │ ├── basic-expr-select-item.ts │ │ │ │ ├── cannot-return-union-2.ts │ │ │ │ ├── cannot-return-union-but-used-ref-merging-allowed.ts │ │ │ │ ├── cannot-return-union.ts │ │ │ │ ├── cannot-select-expr.ts │ │ │ │ ├── chaining-concats.ts │ │ │ │ ├── empty-select-not-allowed.ts │ │ │ │ ├── exact-column-type-allowed.ts │ │ │ │ ├── extra-column-map-in-column-ref-not-allowed.ts │ │ │ │ ├── extra-columns-in-column-map-not-allowed.ts │ │ │ │ ├── extra-columns-in-column-ref-not-allowed.ts │ │ │ │ ├── missing-columns-in-column-map-allowed.ts │ │ │ │ ├── missing-columns-in-column-ref-allowed.ts │ │ │ │ ├── missing-columns-map-in-column-ref-allowed.ts │ │ │ │ ├── narrowed-column-map-not-allowed.ts │ │ │ │ ├── narrowed-column-ref-not-allowed.ts │ │ │ │ ├── narrowed-column-type-not-allowed-2.ts │ │ │ │ ├── narrowed-column-type-not-allowed-3.ts │ │ │ │ ├── narrowed-column-type-not-allowed.ts │ │ │ │ ├── new-and-old-selects-must-have-disjoint-identifiers-2.ts │ │ │ │ ├── new-and-old-selects-must-have-disjoint-identifiers-3.ts │ │ │ │ ├── new-and-old-selects-must-have-disjoint-identifiers-4.ts │ │ │ │ ├── new-and-old-selects-must-have-disjoint-identifiers.ts │ │ │ │ ├── no-duplicate-identifiers-2.ts │ │ │ │ ├── no-duplicate-identifiers-3.ts │ │ │ │ ├── no-duplicate-identifiers-4.ts │ │ │ │ ├── no-duplicate-identifiers.ts │ │ │ │ ├── widened-column-map-allowed.ts │ │ │ │ ├── widened-column-ref-allowed.ts │ │ │ │ └── widened-column-type-allowed.ts │ │ ├── super-key │ │ │ ├── super-key-input │ │ │ │ ├── basic.ts │ │ │ │ └── union.ts │ │ │ ├── super-key-non-union │ │ │ │ ├── bad-things-happen-with-union.ts │ │ │ │ └── basic.ts │ │ │ └── super-key-output │ │ │ │ ├── basic.ts │ │ │ │ └── union.ts │ │ ├── table-per-type-util │ │ │ ├── add-parent │ │ │ │ ├── column-01-auto-increment-00-explicit-00.ts │ │ │ │ ├── column-01-auto-increment-01-explicit-00.ts │ │ │ │ ├── column-01-auto-increment-01-explicit-01.ts │ │ │ │ ├── column-10-auto-increment-00-explicit-00.ts │ │ │ │ ├── column-10-auto-increment-10-explicit-00.ts │ │ │ │ ├── column-10-auto-increment-10-explicit-10.ts │ │ │ │ ├── column-11-auto-increment-00-explicit-00.ts │ │ │ │ ├── column-11-auto-increment-01-explicit-00.ts │ │ │ │ ├── column-11-auto-increment-01-explicit-01.ts │ │ │ │ ├── column-11-auto-increment-10-explicit-00.ts │ │ │ │ ├── column-11-auto-increment-10-explicit-10.ts │ │ │ │ ├── column-11-auto-increment-11-explicit-00.ts │ │ │ │ ├── column-11-auto-increment-11-explicit-01.ts │ │ │ │ ├── column-11-auto-increment-11-explicit-10.ts │ │ │ │ └── column-11-auto-increment-11-explicit-11.ts │ │ │ ├── app-key-example.ts │ │ │ ├── card-customer-pay-in-method-example.ts │ │ │ ├── column-alias │ │ │ │ └── app-key-example.ts │ │ │ ├── column-mapper │ │ │ │ └── app-key-example.ts │ │ │ ├── diamond-example.ts │ │ │ ├── explicit-default-value-column-alias │ │ │ │ └── app-key-example.ts │ │ │ ├── extract-all-tables-with-column-alias │ │ │ │ └── app-key-example.ts │ │ │ ├── generated-column-alias │ │ │ │ └── app-key-example.ts │ │ │ ├── insert-and-fetch-row │ │ │ │ ├── app-key-example.ts │ │ │ │ ├── card-customer-pay-in-method-example.ts │ │ │ │ ├── diamond-example.ts │ │ │ │ └── tree-example.ts │ │ │ ├── insert-and-fetch │ │ │ │ ├── basic-app-key-example.ts │ │ │ │ ├── extra-props-not-allowed-app-key-example-browser.ts │ │ │ │ ├── narrowing-app-key-example-browser.ts │ │ │ │ └── required-props-app-key-example-browser.ts │ │ │ ├── mutable-column-alias │ │ │ │ ├── all-table-with-column-must-be-mutable.ts │ │ │ │ └── app-key-example.ts │ │ │ ├── non-generated-column-alias │ │ │ │ └── app-key-example.ts │ │ │ ├── nullable-column-alias │ │ │ │ ├── all-table-with-column-must-be-nullable.ts │ │ │ │ └── app-key-example.ts │ │ │ ├── optional-column-alias │ │ │ │ └── app-key-example.ts │ │ │ ├── parent-column-alias │ │ │ │ └── app-key-example.ts │ │ │ ├── required-column-alias │ │ │ │ └── app-key-example.ts │ │ │ ├── row-mapper │ │ │ │ └── app-key-example.ts │ │ │ ├── tree-example.ts │ │ │ ├── update-and-fetch-one-by-candidate-key │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── empty-update-app-key-example-server.ts │ │ │ │ ├── partial-update-app-key-example-server.ts │ │ │ │ └── with-column-reference-app-key-example-server.ts │ │ │ ├── update-and-fetch-one-by-primary-key │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── empty-update-app-key-example-server.ts │ │ │ │ ├── partial-update-app-key-example-server.ts │ │ │ │ └── with-column-reference-app-key-example-server.ts │ │ │ ├── update-and-fetch-zero-or-one-by-candidate-key │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── empty-update-app-key-example-server.ts │ │ │ │ ├── partial-update-app-key-example-server.ts │ │ │ │ └── with-column-reference-app-key-example-server.ts │ │ │ └── update-and-fetch-zero-or-one-by-primary-key │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── empty-update-app-key-example-server.ts │ │ │ │ ├── partial-update-app-key-example-server.ts │ │ │ │ └── with-column-reference-app-key-example-server.ts │ │ ├── table │ │ │ ├── add-candidate-key │ │ │ │ ├── add-disjoint.ts │ │ │ │ ├── add-intersection.ts │ │ │ │ ├── add-sub-key.ts │ │ │ │ ├── add-super-key.ts │ │ │ │ ├── empty-key.ts │ │ │ │ ├── not-a-column.ts │ │ │ │ ├── set-auto-increment-after.ts │ │ │ │ ├── set-auto-increment-before.ts │ │ │ │ ├── set-id-after.ts │ │ │ │ └── set-id-before.ts │ │ │ ├── as │ │ │ │ └── long-chain.ts │ │ │ ├── fetch-one-by-candidate-key │ │ │ │ ├── duplicate-alias.ts │ │ │ │ ├── explicit-select-clause.ts │ │ │ │ ├── implicit-select-clause.ts │ │ │ │ └── super-key-literal-not-allowed.ts │ │ │ ├── insert-and-fetch │ │ │ │ ├── candidate-key-generated-2.ts │ │ │ │ ├── candidate-key-generated-3.ts │ │ │ │ ├── candidate-key-generated-4.ts │ │ │ │ ├── candidate-key-generated-5.ts │ │ │ │ ├── candidate-key-generated.ts │ │ │ │ ├── empty-insert.ts │ │ │ │ └── no-candidate-key.ts │ │ │ ├── set-primary-key │ │ │ │ ├── add-disjoint.ts │ │ │ │ ├── add-intersection.ts │ │ │ │ ├── add-sub-key.ts │ │ │ │ ├── add-super-key.ts │ │ │ │ ├── empty-key.ts │ │ │ │ ├── not-a-column.ts │ │ │ │ ├── nullable-not-allowed.ts │ │ │ │ ├── set-auto-increment-after.ts │ │ │ │ ├── set-auto-increment-before.ts │ │ │ │ ├── set-id-after.ts │ │ │ │ └── set-id-before.ts │ │ │ ├── update-and-fetch-one-by-candidate-key │ │ │ │ ├── column-must-be-mutable.ts │ │ │ │ ├── column-must-exist.ts │ │ │ │ ├── custom-data-type.ts │ │ │ │ ├── may-not-update-to-non-null-2.ts │ │ │ │ ├── may-not-update-to-non-null-3.ts │ │ │ │ ├── may-not-update-to-non-null.ts │ │ │ │ ├── may-not-update-to-null-2.ts │ │ │ │ ├── may-not-update-to-null-3.ts │ │ │ │ ├── may-not-update-to-null.ts │ │ │ │ ├── multi-column-change-candidate-key-00.ts │ │ │ │ ├── multi-column-change-candidate-key-01.ts │ │ │ │ ├── multi-column-change-candidate-key-10.ts │ │ │ │ ├── multi-column-change-candidate-key-11.ts │ │ │ │ ├── to-non-null-literal.ts │ │ │ │ ├── to-non-null.ts │ │ │ │ ├── to-null.ts │ │ │ │ ├── to-nullable-2.ts │ │ │ │ ├── to-nullable.ts │ │ │ │ ├── update-can-change-candidate-key-to-primitive.ts │ │ │ │ └── update-cannot-change-candidate-key-to-non-primitive.ts │ │ │ ├── update-and-fetch-one-by-primary-key │ │ │ │ ├── custom-data-type.ts │ │ │ │ ├── to-non-null-literal.ts │ │ │ │ ├── to-non-null.ts │ │ │ │ ├── to-null.ts │ │ │ │ ├── update-can-change-primary-key-to-primitive.ts │ │ │ │ └── update-cannot-change-primary-key-to-non-primitive.ts │ │ │ ├── update-and-fetch-one-by-super-key │ │ │ │ ├── custom-data-type.ts │ │ │ │ ├── to-non-null-literal.ts │ │ │ │ ├── to-non-null.ts │ │ │ │ ├── to-null.ts │ │ │ │ ├── update-can-change-super-key-to-primitive-2.ts │ │ │ │ ├── update-can-change-super-key-to-primitive.ts │ │ │ │ ├── update-cannot-change-super-key-to-non-primitive-2.ts │ │ │ │ └── update-cannot-change-super-key-to-non-primitive.ts │ │ │ └── update-and-fetch-zero-or-one-by-candidate-key │ │ │ │ └── custom-data-type.ts │ │ ├── tsconfig.json │ │ ├── type-util │ │ │ └── is-strict-same-type │ │ │ │ └── do-not-reuse-if-output-type-incompatible.ts │ │ ├── unified-query │ │ │ ├── as │ │ │ │ ├── basic-derived-table-select-item.ts │ │ │ │ ├── basic-derived-table.ts │ │ │ │ ├── can-be-used-as-expr-2.ts │ │ │ │ ├── can-be-used-as-expr.ts │ │ │ │ ├── can-be-used-in-join.ts │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-column-to-column.ts │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-column-to-map.ts │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-map-to-column.ts │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-map-to-map.ts │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-ref-internal.ts │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-ref-to-column.ts │ │ │ │ ├── must-not-have-duplicate-name-in-select-clause-ref-to-map.ts │ │ │ │ ├── no-from-clause-derived-table-select-item.ts │ │ │ │ ├── no-from-clause-derived-table.ts │ │ │ │ ├── non-empty-used-ref-derived-table-select-item.ts │ │ │ │ └── non-empty-used-ref-derived-table.ts │ │ │ ├── assert-exists │ │ │ │ └── before-select-before-from-not-allowed.ts │ │ │ ├── correlate │ │ │ │ ├── has-current-joins.ts │ │ │ │ ├── has-neither.ts │ │ │ │ ├── has-outer-query-joins-and-current-joins.ts │ │ │ │ └── has-outer-query-joins.ts │ │ │ ├── cross-join │ │ │ │ ├── basic.ts │ │ │ │ ├── cannot-be-lateral.ts │ │ │ │ ├── cannot-call-before-from-clause.ts │ │ │ │ ├── cannot-have-duplicate-in-current-joins.ts │ │ │ │ ├── cannot-have-duplicate-in-outer-query-joins.ts │ │ │ │ ├── cannot-have-used-ref.ts │ │ │ │ ├── max-joins-no-columns.ts │ │ │ │ ├── max-joins-with-columns.ts │ │ │ │ └── no-union.ts │ │ │ ├── exists │ │ │ │ └── before-select-before-from-not-allowed.ts │ │ │ ├── fetch-all-mapped │ │ │ │ ├── basic.ts │ │ │ │ ├── compose-2.ts │ │ │ │ ├── compose.ts │ │ │ │ ├── promise-basic.ts │ │ │ │ ├── promise-compose-2.ts │ │ │ │ └── promise-compose.ts │ │ │ ├── fetch-all-unmapped-flattened │ │ │ │ ├── basic.ts │ │ │ │ ├── ignore-map-delegate.ts │ │ │ │ ├── inner-join-2.ts │ │ │ │ ├── inner-join-ignore-other-table.ts │ │ │ │ ├── inner-join-with-alias.ts │ │ │ │ ├── inner-join.ts │ │ │ │ ├── left-join-2.ts │ │ │ │ ├── left-join-3.ts │ │ │ │ └── left-join.ts │ │ │ ├── fetch-all-unmapped │ │ │ │ ├── basic.ts │ │ │ │ ├── ignore-map-delegate.ts │ │ │ │ ├── inner-join-2.ts │ │ │ │ ├── inner-join-ignore-other-table.ts │ │ │ │ ├── inner-join-with-alias.ts │ │ │ │ ├── inner-join.ts │ │ │ │ ├── left-join-2.ts │ │ │ │ ├── left-join-3.ts │ │ │ │ └── left-join.ts │ │ │ ├── fetch-all-with-map-delegate │ │ │ │ ├── basic.ts │ │ │ │ ├── compose-2.ts │ │ │ │ ├── compose.ts │ │ │ │ ├── promise-basic.ts │ │ │ │ ├── promise-compose-2.ts │ │ │ │ └── promise-compose.ts │ │ │ ├── fetch-all-without-map-delegate │ │ │ │ ├── basic.ts │ │ │ │ ├── inner-join-2.ts │ │ │ │ ├── inner-join-ignore-other-table.ts │ │ │ │ ├── inner-join-with-alias.ts │ │ │ │ ├── inner-join.ts │ │ │ │ ├── left-join-2.ts │ │ │ │ ├── left-join-3.ts │ │ │ │ └── left-join.ts │ │ │ ├── fetch-one-or-undefined-with-map-delegate │ │ │ │ └── basic.ts │ │ │ ├── fetch-one-or-undefined-without-map-delegate │ │ │ │ ├── basic.ts │ │ │ │ ├── multi-table-and-aliased-with-duplicate-column-alias.ts │ │ │ │ ├── multi-table-and-aliased.ts │ │ │ │ └── table-and-aliased.ts │ │ │ ├── fetch-one-or-with-map-delegate │ │ │ │ └── basic.ts │ │ │ ├── fetch-one-or-without-map-delegate │ │ │ │ ├── basic.ts │ │ │ │ ├── multi-table-and-aliased-with-duplicate-column-alias.ts │ │ │ │ ├── multi-table-and-aliased.ts │ │ │ │ └── table-and-aliased.ts │ │ │ ├── fetch-one-with-map-delegate │ │ │ │ └── basic.ts │ │ │ ├── fetch-one-without-map-delegate │ │ │ │ ├── basic.ts │ │ │ │ ├── multi-table-and-aliased-with-duplicate-column-alias.ts │ │ │ │ ├── multi-table-and-aliased.ts │ │ │ │ └── table-and-aliased.ts │ │ │ ├── fetch-value-array │ │ │ │ ├── column-map-not-allowed.ts │ │ │ │ ├── column-ref-not-allowed.ts │ │ │ │ ├── ignore-map-delegate.ts │ │ │ │ ├── select-column.ts │ │ │ │ ├── select-expr-select-item.ts │ │ │ │ └── select-expr.ts │ │ │ ├── fetch-value-or-undefined │ │ │ │ ├── column-map-not-allowed.ts │ │ │ │ ├── column-ref-not-allowed.ts │ │ │ │ ├── ignore-map-delegate.ts │ │ │ │ ├── select-column.ts │ │ │ │ ├── select-expr-select-item.ts │ │ │ │ └── select-expr.ts │ │ │ ├── fetch-value-or │ │ │ │ ├── column-map-not-allowed.ts │ │ │ │ ├── column-ref-not-allowed.ts │ │ │ │ ├── ignore-map-delegate.ts │ │ │ │ ├── select-column.ts │ │ │ │ ├── select-expr-select-item.ts │ │ │ │ └── select-expr.ts │ │ │ ├── fetch-value │ │ │ │ ├── column-map-not-allowed.ts │ │ │ │ ├── column-ref-not-allowed.ts │ │ │ │ ├── ignore-map-delegate.ts │ │ │ │ ├── select-column.ts │ │ │ │ ├── select-expr-select-item.ts │ │ │ │ └── select-expr.ts │ │ │ ├── from │ │ │ │ ├── basic.ts │ │ │ │ └── cannot-call-twice.ts │ │ │ ├── group-by │ │ │ │ ├── basic.ts │ │ │ │ └── long-chain.ts │ │ │ ├── having │ │ │ │ ├── after-from-clause-aggregate-can-use-column-not-in-group-by.ts │ │ │ │ ├── after-from-clause-non-aggregate-cannot-use-column-not-in-group-by.ts │ │ │ │ ├── after-from-clause.ts │ │ │ │ ├── before-from-clause-cannot-use-columns.ts │ │ │ │ ├── before-from-clause.ts │ │ │ │ ├── boolean-column-allowed.ts │ │ │ │ ├── boolean-literal-allowed.ts │ │ │ │ ├── can-reference-outer-query-column-aggregate.ts │ │ │ │ ├── can-reference-outer-query-column-non-aggregate.ts │ │ │ │ ├── cannot-use-before-group-by-clause.ts │ │ │ │ ├── cannot-use-with-empty-group-by-clause.ts │ │ │ │ ├── eq.ts │ │ │ │ ├── long-chain-2.ts │ │ │ │ ├── long-chain.ts │ │ │ │ └── nullable-having-clause-not-allowed.ts │ │ │ ├── inner-join-using-candidate-key │ │ │ │ ├── basic.ts │ │ │ │ ├── max-joins-with-columns.ts │ │ │ │ └── three-table-different-pks.ts │ │ │ ├── inner-join-using-primary-key │ │ │ │ ├── basic.ts │ │ │ │ ├── custom-data-type-2.ts │ │ │ │ ├── custom-data-type-3.ts │ │ │ │ ├── custom-data-type-4.ts │ │ │ │ ├── custom-data-type.ts │ │ │ │ ├── max-joins-with-columns.ts │ │ │ │ └── three-table-different-pks.ts │ │ │ ├── inner-join │ │ │ │ ├── basic.ts │ │ │ │ ├── can-have-correlated-subquery-in-on-clause.ts │ │ │ │ ├── cannot-be-lateral.ts │ │ │ │ ├── cannot-have-used-ref.ts │ │ │ │ ├── cannot-reference-outer-query-joins-in-on-clause.ts │ │ │ │ ├── max-joins-no-columns.ts │ │ │ │ ├── max-joins-with-columns.ts │ │ │ │ ├── no-union.ts │ │ │ │ └── three-table-different-pks.ts │ │ │ ├── left-join-using-candidate-key │ │ │ │ ├── basic.ts │ │ │ │ ├── max-joins-with-columns.ts │ │ │ │ └── three-table-different-pks.ts │ │ │ ├── left-join-using-primary-key │ │ │ │ ├── basic.ts │ │ │ │ ├── max-joins-with-columns.ts │ │ │ │ └── three-table-different-pks.ts │ │ │ ├── left-join │ │ │ │ ├── basic.ts │ │ │ │ ├── cannot-be-lateral.ts │ │ │ │ ├── cannot-have-used-ref.ts │ │ │ │ ├── left-join-causes-columns-to-be-nullable-2.ts │ │ │ │ ├── left-join-causes-columns-to-be-nullable.ts │ │ │ │ ├── max-joins-no-columns.ts │ │ │ │ ├── max-joins-with-columns.ts │ │ │ │ ├── no-union.ts │ │ │ │ └── three-table-different-pks.ts │ │ │ ├── limit │ │ │ │ ├── long-chain.ts │ │ │ │ ├── with-limit-clause.ts │ │ │ │ └── without-limit-clause.ts │ │ │ ├── map │ │ │ │ ├── compose-2.ts │ │ │ │ ├── compose.ts │ │ │ │ ├── initial-one-table.ts │ │ │ │ ├── initial.ts │ │ │ │ ├── promise-compose-2.ts │ │ │ │ ├── promise-compose.ts │ │ │ │ └── promise-initial.ts │ │ │ ├── offset │ │ │ │ ├── long-chain.ts │ │ │ │ ├── with-limit-clause.ts │ │ │ │ └── without-limit-clause.ts │ │ │ ├── order-by │ │ │ │ ├── cannot-nest-aggregate-expressions.ts │ │ │ │ ├── cannot-reference-outer-query-column.ts │ │ │ │ ├── cannot-use-aggregate-in-order-by-without-group-by.1.ts │ │ │ │ ├── cannot-use-aggregate-in-order-by-without-group-by.ts │ │ │ │ ├── long-chain-2.ts │ │ │ │ ├── long-chain.ts │ │ │ │ ├── subquery-as-sort-expr-implicit-asc-not-allowed.ts │ │ │ │ └── subquery-as-sort-expr.ts │ │ │ ├── select-value │ │ │ │ ├── cannot-duplicate-names-2.ts │ │ │ │ ├── cannot-duplicate-names-3.ts │ │ │ │ ├── cannot-duplicate-names.ts │ │ │ │ ├── cannot-select-expr-twice.ts │ │ │ │ ├── cannot-select-primitive-expr-twice.ts │ │ │ │ ├── cannot-select-subquery-twice.ts │ │ │ │ ├── select-boolean.ts │ │ │ │ ├── select-column-multi.ts │ │ │ │ ├── select-column.ts │ │ │ │ ├── select-expr-select-item-multi.ts │ │ │ │ ├── select-expr-select-item.ts │ │ │ │ ├── select-expr.ts │ │ │ │ ├── select-primitive-expr.ts │ │ │ │ ├── select-subquery.ts │ │ │ │ └── subquery-as-select-item.ts │ │ │ ├── select │ │ │ │ ├── can-reference-outer-query-column.ts │ │ │ │ ├── covering-group-by-problem.ts │ │ │ │ ├── no-group-by-aggregate-only.ts │ │ │ │ ├── no-group-by-mix-aggregate.ts │ │ │ │ ├── no-group-by-non-aggregate-only.ts │ │ │ │ ├── subquery-as-select-item.ts │ │ │ │ ├── with-group-by-aggregate-only.ts │ │ │ │ ├── with-group-by-mix-aggregate-error.ts │ │ │ │ ├── with-group-by-mix-aggregate.ts │ │ │ │ ├── with-group-by-non-aggregate-only-error.ts │ │ │ │ └── with-group-by-non-aggregate-only.ts │ │ │ ├── union-limit │ │ │ │ ├── long-chain.ts │ │ │ │ ├── with-limit-clause.ts │ │ │ │ └── without-limit-clause.ts │ │ │ ├── union-offset │ │ │ │ ├── long-chain.ts │ │ │ │ ├── with-limit-clause.ts │ │ │ │ └── without-limit-clause.ts │ │ │ ├── use-as-expr │ │ │ │ ├── one-row-after-from-clause.ts │ │ │ │ └── one-row-before-from-clause.ts │ │ │ ├── where-eq-candidate-key │ │ │ │ ├── basic.ts │ │ │ │ ├── cannot-return-union-type.ts │ │ │ │ ├── cannot-use-before-from-clause.ts │ │ │ │ ├── cannot-use-without-candidate-key.ts │ │ │ │ ├── error-on-excess-property-multple-candidate-keys.ts │ │ │ │ ├── error-on-excess-property.ts │ │ │ │ ├── use-after-join-2.ts │ │ │ │ └── use-after-join.ts │ │ │ ├── where-eq-columns │ │ │ │ ├── basic.ts │ │ │ │ ├── cannot-return-union-type.ts │ │ │ │ ├── cannot-use-before-from-clause.ts │ │ │ │ ├── error-on-excess-property.ts │ │ │ │ ├── long-chain.ts │ │ │ │ ├── use-after-join-2.ts │ │ │ │ └── use-after-join.ts │ │ │ ├── where-eq-inner-query-primary-key │ │ │ │ ├── basic.ts │ │ │ │ ├── cannot-use-before-from-clause.ts │ │ │ │ ├── cannot-use-non-correlated.ts │ │ │ │ ├── dst-can-return-union-type.ts │ │ │ │ ├── long-chain.ts │ │ │ │ ├── must-be-null-safe-comparable.ts │ │ │ │ ├── must-have-dst-pk-column-names.ts │ │ │ │ ├── src-cannot-return-union-type.ts │ │ │ │ └── use-after-join.ts │ │ │ ├── where-eq-outer-query-primary-key │ │ │ │ ├── basic.ts │ │ │ │ ├── cannot-use-before-from-clause.ts │ │ │ │ ├── cannot-use-non-correlated.ts │ │ │ │ ├── dst-can-return-union-type.ts │ │ │ │ ├── long-chain.ts │ │ │ │ ├── must-be-null-safe-comparable.ts │ │ │ │ ├── must-have-dst-pk-column-names.ts │ │ │ │ ├── src-cannot-return-union-type.ts │ │ │ │ └── use-after-join.ts │ │ │ ├── where-eq-primary-key │ │ │ │ ├── basic.ts │ │ │ │ ├── candidate-key-is-not-primary-key.ts │ │ │ │ ├── cannot-return-union-type.ts │ │ │ │ ├── cannot-use-before-from-clause.ts │ │ │ │ ├── cannot-use-without-primary-key.ts │ │ │ │ ├── error-on-excess-property.ts │ │ │ │ ├── long-chain.ts │ │ │ │ ├── use-after-join-2.ts │ │ │ │ └── use-after-join.ts │ │ │ ├── where-eq-super-key │ │ │ │ ├── basic.ts │ │ │ │ ├── cannot-return-union-type.ts │ │ │ │ ├── cannot-use-before-from-clause.ts │ │ │ │ ├── cannot-use-without-candidate-key.ts │ │ │ │ ├── error-on-excess-property-multple-candidate-keys.ts │ │ │ │ ├── error-on-excess-property.ts │ │ │ │ ├── use-after-join-2.ts │ │ │ │ └── use-after-join.ts │ │ │ ├── where-eq │ │ │ │ ├── basic.ts │ │ │ │ ├── cannot-compare-against-null.ts │ │ │ │ ├── cannot-return-union-type.ts │ │ │ │ ├── custom-data-type-2.ts │ │ │ │ ├── custom-data-type.ts │ │ │ │ ├── data-type-must-match.ts │ │ │ │ ├── long-chain.ts │ │ │ │ ├── multi-column.ts │ │ │ │ ├── narrow-twice.ts │ │ │ │ ├── nullable-not-allowed.ts │ │ │ │ └── will-not-narrow-string.ts │ │ │ ├── where-is-not-null │ │ │ │ ├── basic.ts │ │ │ │ ├── long-chain.ts │ │ │ │ ├── multi-table-both-have-nullable.ts │ │ │ │ └── multi-table-one-have-nullable.ts │ │ │ ├── where-is-null │ │ │ │ ├── basic.ts │ │ │ │ ├── long-chain.ts │ │ │ │ ├── multi-null-column.ts │ │ │ │ ├── multi-table-both-have-nullable.ts │ │ │ │ └── multi-table-one-have-nullable.ts │ │ │ ├── where-null-safe-eq │ │ │ │ ├── basic.ts │ │ │ │ ├── can-compare-to-null.ts │ │ │ │ ├── cannot-return-union-type.ts │ │ │ │ ├── data-type-must-match.ts │ │ │ │ ├── long-chain.ts │ │ │ │ ├── multi-column.ts │ │ │ │ └── narrow-twice.ts │ │ │ └── where │ │ │ │ ├── after-from-clause.ts │ │ │ │ ├── before-from-clause-cannot-use-columns.ts │ │ │ │ ├── before-from-clause.ts │ │ │ │ ├── boolean-column-allowed.ts │ │ │ │ ├── boolean-literal-allowed.ts │ │ │ │ ├── cannot-use-aggregate-expression.ts │ │ │ │ ├── eq.ts │ │ │ │ ├── long-chain-2.ts │ │ │ │ ├── long-chain.ts │ │ │ │ ├── non-boolean-column-not-allowed.ts │ │ │ │ ├── nullable-where-clause-not-allowed.ts │ │ │ │ ├── test-allowed-used-ref-assignability.ts │ │ │ │ ├── test-use-column-too-narrow.ts │ │ │ │ ├── test-use-column-too-wide.ts │ │ │ │ ├── test-use-non-existent-column-no-from-clause.ts │ │ │ │ └── test-use-non-existent-column.ts │ │ └── used-ref │ │ │ ├── use-fewer-columns-assignable-to-use-more-columns.ts │ │ │ ├── use-more-columns-not-assignable-to-use-fewer-columns.ts │ │ │ ├── use-non-nullable-not-assignable-to-use-nullable.ts │ │ │ └── use-nullable-assignable-to-use-non-nullable.ts │ ├── interactive.ts │ ├── runner-travis.ts │ ├── runner.ts │ ├── test-one.ts │ ├── tsconfig.json │ └── util.ts ├── loop-test.ts ├── run-time │ ├── README.md │ ├── bigint-polyfill.ts │ ├── bluebird-promise.ts │ ├── input │ │ ├── __unified-test │ │ │ └── __unified-test.ts │ │ ├── async-queue │ │ │ ├── enqueue │ │ │ │ ├── async-error-async-deallocate-error.ts │ │ │ │ ├── async-error-sync-deallocate-error.ts │ │ │ │ ├── sync-error-async-deallocate-error.ts │ │ │ │ └── sync-error-sync-deallocate-error.ts │ │ │ └── lock │ │ │ │ ├── async-deallocate-error-no-enqueue.ts │ │ │ │ ├── async-deallocate-error.ts │ │ │ │ ├── async-error.ts │ │ │ │ ├── sync-deallocate-error-no-enqueue.ts │ │ │ │ ├── sync-deallocate-error.ts │ │ │ │ └── sync-error.ts │ │ ├── built-in-value-expr │ │ │ ├── is-built-in-value-expr-array │ │ │ │ ├── array-containing-built-in.ts │ │ │ │ ├── cannot-contain-custom-type.ts │ │ │ │ ├── empty-array-ok.ts │ │ │ │ └── must-be-array.ts │ │ │ └── is-non-null-built-in-value-expr-array │ │ │ │ ├── array-containing-non-null-built-in.ts │ │ │ │ ├── cannot-contain-null.ts │ │ │ │ ├── empty-array-ok.ts │ │ │ │ └── must-be-array.ts │ │ ├── connection │ │ │ ├── is-deallocated │ │ │ │ └── basic.ts │ │ │ ├── read-only-transaction-if-not-in-one │ │ │ │ ├── same-access-mode.ts │ │ │ │ ├── same-isolation-level.ts │ │ │ │ ├── stronger-isolation-level.ts │ │ │ │ └── weaker-isolation-level.ts │ │ │ ├── savepoint │ │ │ │ ├── delete-one │ │ │ │ │ ├── delete-more-than-one-in-savepoint.ts │ │ │ │ │ ├── delete-more-than-one-in-transaction.ts │ │ │ │ │ ├── delete-more-than-one.ts │ │ │ │ │ ├── delete-one-commit-2.ts │ │ │ │ │ ├── delete-one-commit-3.ts │ │ │ │ │ ├── delete-one-commit-4.ts │ │ │ │ │ ├── delete-one-commit-5.ts │ │ │ │ │ ├── delete-one-commit.ts │ │ │ │ │ ├── delete-one-in-nested-savepoint-rollback-after-parent-savepoint.ts │ │ │ │ │ ├── delete-one-in-nested-savepoint-rollback-to-savepoint-in-parent-savepoint.ts │ │ │ │ │ ├── delete-one-in-nested-savepoint-rollback.ts │ │ │ │ │ ├── delete-one-in-nested-savepoint-throw-error-in-parent-savepoint.ts │ │ │ │ │ ├── delete-one-in-savepoint-rollback-to-savepoint.ts │ │ │ │ │ ├── delete-one-in-savepoint-throw-error.ts │ │ │ │ │ ├── delete-one-in-savepoint.ts │ │ │ │ │ ├── delete-one-in-transaction.ts │ │ │ │ │ ├── delete-one.ts │ │ │ │ │ └── delete-zero.ts │ │ │ │ ├── delete-zero-or-one │ │ │ │ │ ├── delete-more-than-one-in-savepoint.ts │ │ │ │ │ ├── delete-more-than-one-in-transaction.ts │ │ │ │ │ ├── delete-more-than-one.ts │ │ │ │ │ ├── delete-one-commit-2.ts │ │ │ │ │ ├── delete-one-commit-3.ts │ │ │ │ │ ├── delete-one-commit-4.ts │ │ │ │ │ ├── delete-one-commit-5.ts │ │ │ │ │ ├── delete-one-commit.ts │ │ │ │ │ ├── delete-one-in-nested-savepoint-rollback-after-parent-savepoint.ts │ │ │ │ │ ├── delete-one-in-nested-savepoint-rollback-to-savepoint-in-parent-savepoint.ts │ │ │ │ │ ├── delete-one-in-nested-savepoint-rollback.ts │ │ │ │ │ ├── delete-one-in-nested-savepoint-throw-error-in-parent-savepoint.ts │ │ │ │ │ ├── delete-one-in-savepoint-rollback-to-savepoint.ts │ │ │ │ │ ├── delete-one-in-savepoint-throw-error.ts │ │ │ │ │ ├── delete-one-in-savepoint.ts │ │ │ │ │ ├── delete-one-in-transaction.ts │ │ │ │ │ ├── delete-one.ts │ │ │ │ │ └── delete-zero.ts │ │ │ │ ├── insert-and-fetch │ │ │ │ │ ├── fetch-more-than-one-in-savepoint.ts │ │ │ │ │ ├── fetch-more-than-one-in-transaction.ts │ │ │ │ │ ├── fetch-more-than-one.ts │ │ │ │ │ ├── insert-one-in-savepoint-rollback-to-savepoint.ts │ │ │ │ │ ├── insert-one-in-savepoint-rollback.ts │ │ │ │ │ ├── insert-one-in-savepoint.ts │ │ │ │ │ ├── insert-one-in-transaction-rollback.ts │ │ │ │ │ ├── insert-one-in-transaction.ts │ │ │ │ │ └── insert-one.ts │ │ │ │ ├── table-per-type │ │ │ │ │ ├── delete-one │ │ │ │ │ │ ├── delete-more-than-one-2.ts │ │ │ │ │ │ ├── delete-more-than-one-3.ts │ │ │ │ │ │ ├── delete-more-than-one-4.ts │ │ │ │ │ │ ├── delete-more-than-one.ts │ │ │ │ │ │ ├── delete-one-2.ts │ │ │ │ │ │ ├── delete-one-3.ts │ │ │ │ │ │ ├── delete-one-4.ts │ │ │ │ │ │ ├── delete-one-5.ts │ │ │ │ │ │ ├── delete-one-6.ts │ │ │ │ │ │ ├── delete-one-rollback-2.ts │ │ │ │ │ │ ├── delete-one-rollback-3.ts │ │ │ │ │ │ ├── delete-one-rollback-4.ts │ │ │ │ │ │ ├── delete-one-rollback-5.ts │ │ │ │ │ │ ├── delete-one-rollback-6.ts │ │ │ │ │ │ ├── delete-one-rollback-7.ts │ │ │ │ │ │ ├── delete-one-rollback-8.ts │ │ │ │ │ │ ├── delete-one-rollback-9.ts │ │ │ │ │ │ ├── delete-one-rollback.ts │ │ │ │ │ │ └── delete-one.ts │ │ │ │ │ ├── insert-and-fetch │ │ │ │ │ │ ├── fetch-more-than-one-in-savepoint.ts │ │ │ │ │ │ ├── fetch-more-than-one-in-transaction.ts │ │ │ │ │ │ ├── fetch-more-than-one.ts │ │ │ │ │ │ ├── insert-one-in-savepoint-rollback-to-savepoint.ts │ │ │ │ │ │ ├── insert-one-in-savepoint-rollback.ts │ │ │ │ │ │ ├── insert-one-in-savepoint.ts │ │ │ │ │ │ ├── insert-one-in-transaction-rollback.ts │ │ │ │ │ │ ├── insert-one-in-transaction.ts │ │ │ │ │ │ └── insert-one.ts │ │ │ │ │ ├── update-and-fetch-one │ │ │ │ │ │ ├── fetch-more-than-one-in-savepoint.ts │ │ │ │ │ │ ├── fetch-more-than-one-in-transaction.ts │ │ │ │ │ │ ├── fetch-more-than-one.ts │ │ │ │ │ │ ├── update-one-in-savepoint-rollback-to-savepoint.ts │ │ │ │ │ │ ├── update-one-in-savepoint-rollback.ts │ │ │ │ │ │ ├── update-one-in-savepoint.ts │ │ │ │ │ │ ├── update-one-in-transaction-rollback.ts │ │ │ │ │ │ ├── update-one-in-transaction.ts │ │ │ │ │ │ └── update-one.ts │ │ │ │ │ └── update-and-fetch-zero-or-one │ │ │ │ │ │ ├── fetch-more-than-one-in-savepoint.ts │ │ │ │ │ │ ├── fetch-more-than-one-in-transaction.ts │ │ │ │ │ │ ├── fetch-more-than-one.ts │ │ │ │ │ │ ├── update-one-in-savepoint-rollback-to-savepoint.ts │ │ │ │ │ │ ├── update-one-in-savepoint-rollback.ts │ │ │ │ │ │ ├── update-one-in-savepoint.ts │ │ │ │ │ │ ├── update-one-in-transaction-rollback.ts │ │ │ │ │ │ ├── update-one-in-transaction.ts │ │ │ │ │ │ └── update-one.ts │ │ │ │ ├── update-and-fetch-one │ │ │ │ │ ├── fetch-more-than-one-in-savepoint.ts │ │ │ │ │ ├── fetch-more-than-one-in-transaction.ts │ │ │ │ │ ├── fetch-more-than-one.ts │ │ │ │ │ ├── update-more-than-one-in-savepoint.ts │ │ │ │ │ ├── update-more-than-one-in-transaction.ts │ │ │ │ │ ├── update-more-than-one.ts │ │ │ │ │ ├── update-one-in-savepoint-rollback-to-savepoint.ts │ │ │ │ │ ├── update-one-in-savepoint-rollback.ts │ │ │ │ │ ├── update-one-in-savepoint.ts │ │ │ │ │ ├── update-one-in-transaction-rollback.ts │ │ │ │ │ ├── update-one-in-transaction.ts │ │ │ │ │ └── update-one.ts │ │ │ │ ├── update-and-fetch-zero-or-one │ │ │ │ │ ├── fetch-more-than-one-in-savepoint.ts │ │ │ │ │ ├── fetch-more-than-one-in-transaction.ts │ │ │ │ │ ├── fetch-more-than-one.ts │ │ │ │ │ ├── update-more-than-one-in-savepoint.ts │ │ │ │ │ ├── update-more-than-one-in-transaction.ts │ │ │ │ │ ├── update-more-than-one.ts │ │ │ │ │ ├── update-one-in-savepoint-rollback-to-savepoint.ts │ │ │ │ │ ├── update-one-in-savepoint-rollback.ts │ │ │ │ │ ├── update-one-in-savepoint.ts │ │ │ │ │ ├── update-one-in-transaction-rollback.ts │ │ │ │ │ ├── update-one-in-transaction.ts │ │ │ │ │ └── update-one.ts │ │ │ │ ├── update-one │ │ │ │ │ ├── update-more-than-one-in-savepoint.ts │ │ │ │ │ ├── update-more-than-one-in-transaction.ts │ │ │ │ │ ├── update-more-than-one.ts │ │ │ │ │ ├── update-one-in-savepoint-rollback-to-savepoint.ts │ │ │ │ │ ├── update-one-in-savepoint-rollback.ts │ │ │ │ │ ├── update-one-in-savepoint.ts │ │ │ │ │ ├── update-one-in-transaction-rollback.ts │ │ │ │ │ ├── update-one-in-transaction.ts │ │ │ │ │ └── update-one.ts │ │ │ │ └── update-zero-or-one │ │ │ │ │ ├── update-more-than-one-in-savepoint.ts │ │ │ │ │ ├── update-more-than-one-in-transaction.ts │ │ │ │ │ ├── update-more-than-one.ts │ │ │ │ │ ├── update-one-in-savepoint-rollback-to-savepoint.ts │ │ │ │ │ ├── update-one-in-savepoint-rollback.ts │ │ │ │ │ ├── update-one-in-savepoint.ts │ │ │ │ │ ├── update-one-in-transaction-rollback.ts │ │ │ │ │ ├── update-one-in-transaction.ts │ │ │ │ │ └── update-one.ts │ │ │ └── transaction-if-not-in-one │ │ │ │ ├── same-access-mode.ts │ │ │ │ ├── same-isolation-level.ts │ │ │ │ ├── stronger-access-mode.ts │ │ │ │ ├── stronger-isolation-level.ts │ │ │ │ ├── weaker-access-mode.ts │ │ │ │ └── weaker-isolation-level.ts │ │ ├── data-type │ │ │ ├── is-data-type │ │ │ │ └── must-be-function.ts │ │ │ ├── is-null-safe-equal │ │ │ │ ├── blob │ │ │ │ │ └── default │ │ │ │ │ │ ├── basic.ts │ │ │ │ │ │ └── with-extra-mapper.ts │ │ │ │ ├── date-time │ │ │ │ │ └── basic.ts │ │ │ │ ├── decimal-not-valid.ts │ │ │ │ ├── decimal-parsed-same.ts │ │ │ │ ├── decimal-string-same.ts │ │ │ │ ├── decimal-to-string-same.ts │ │ │ │ ├── double │ │ │ │ │ └── basic.ts │ │ │ │ ├── integer │ │ │ │ │ └── basic.ts │ │ │ │ ├── null.ts │ │ │ │ └── text │ │ │ │ │ ├── default │ │ │ │ │ ├── basic.ts │ │ │ │ │ └── with-extra-mapper.ts │ │ │ │ │ ├── max-only │ │ │ │ │ ├── basic.ts │ │ │ │ │ └── with-extra-mapper.ts │ │ │ │ │ └── min-and-max │ │ │ │ │ ├── basic.ts │ │ │ │ │ └── with-extra-mapper.ts │ │ │ └── to-raw-expr │ │ │ │ ├── date-time │ │ │ │ └── basic.ts │ │ │ │ ├── decimal.ts │ │ │ │ ├── double │ │ │ │ └── basic.ts │ │ │ │ ├── need-data-type-to-raw-expr-for-non-primitive.ts │ │ │ │ └── text │ │ │ │ ├── default │ │ │ │ ├── basic.ts │ │ │ │ └── with-extra-mapper.ts │ │ │ │ ├── max-only │ │ │ │ ├── basic.ts │ │ │ │ └── with-extra-mapper.ts │ │ │ │ └── min-and-max │ │ │ │ ├── basic.ts │ │ │ │ └── with-extra-mapper.ts │ │ ├── design-pattern-log │ │ │ ├── correlated-subquery │ │ │ │ ├── exists │ │ │ │ │ └── basic.ts │ │ │ │ ├── latest-value-or-default │ │ │ │ │ ├── basic-nullable.ts │ │ │ │ │ └── basic.ts │ │ │ │ ├── latest-value │ │ │ │ │ ├── basic-expr.ts │ │ │ │ │ └── basic.ts │ │ │ │ └── latest │ │ │ │ │ └── basic.ts │ │ │ ├── exists │ │ │ │ └── basic.ts │ │ │ ├── fetch-default │ │ │ │ ├── basic.ts │ │ │ │ ├── defaults-custom-data-type.ts │ │ │ │ ├── expr.ts │ │ │ │ ├── optional-copy-default-2.ts │ │ │ │ ├── optional-copy-default.ts │ │ │ │ └── tracked-custom-data-type.ts │ │ │ ├── fetch-latest-or-default │ │ │ │ └── basic.ts │ │ │ ├── fetch-latest-value-or-default │ │ │ │ ├── basic-expr.ts │ │ │ │ └── basic.ts │ │ │ ├── fetch-latest-value │ │ │ │ ├── basic-expr.ts │ │ │ │ └── basic.ts │ │ │ ├── fetch-latest │ │ │ │ └── basic.ts │ │ │ ├── track-or-insert │ │ │ │ ├── different-from-default-insert.ts │ │ │ │ ├── different-from-previous-insert.ts │ │ │ │ ├── partial-tracked-defaults-different-from-previous-insert-2.ts │ │ │ │ ├── partial-tracked-defaults-different-from-previous-insert-3.ts │ │ │ │ ├── partial-tracked-defaults-different-from-previous-insert.ts │ │ │ │ ├── partial-tracked-defaults-insert-first-row.ts │ │ │ │ ├── partial-tracked-defaults-no-tracked-default-must-have-value-set.ts │ │ │ │ ├── partial-tracked-defaults-optional-do-not-copy-can-be-unset.ts │ │ │ │ ├── partial-tracked-defaults-required-do-not-copy-must-have-value-set.ts │ │ │ │ ├── partial-tracked-defaults-same-as-previous-no-insert.ts │ │ │ │ ├── same-as-default-no-insert.ts │ │ │ │ └── same-as-previous-no-insert.ts │ │ │ ├── track │ │ │ │ ├── different-from-default-insert.ts │ │ │ │ ├── different-from-previous-insert.ts │ │ │ │ ├── fully-tracked-defaults-different-from-previous-insert-2.ts │ │ │ │ ├── fully-tracked-defaults-different-from-previous-insert-3.ts │ │ │ │ ├── fully-tracked-defaults-different-from-previous-insert-4.ts │ │ │ │ ├── fully-tracked-defaults-different-from-previous-insert.ts │ │ │ │ ├── fully-tracked-defaults-insert-first-row.ts │ │ │ │ ├── fully-tracked-defaults-optional-do-not-copy-can-be-unset.ts │ │ │ │ ├── fully-tracked-defaults-required-do-not-copy-must-have-value-set.ts │ │ │ │ ├── fully-tracked-defaults-same-as-previous-no-insert-2.ts │ │ │ │ ├── fully-tracked-defaults-same-as-previous-no-insert.ts │ │ │ │ ├── partial-tracked-defaults-cannot-use-track.ts │ │ │ │ ├── same-as-default-no-insert-2.ts │ │ │ │ ├── same-as-default-no-insert.ts │ │ │ │ ├── same-as-previous-no-insert-2.ts │ │ │ │ └── same-as-previous-no-insert.ts │ │ │ ├── unsafe-track-literal-3-becomes-7-on-copy │ │ │ │ ├── README.md │ │ │ │ ├── different-from-default-insert.ts │ │ │ │ ├── different-from-previous-insert.ts │ │ │ │ ├── literal-3-is-7.ts │ │ │ │ └── same-as-default-no-insert.ts │ │ │ ├── unsafe-track-literal-3-is-7 │ │ │ │ ├── README.md │ │ │ │ ├── different-from-default-insert.ts │ │ │ │ ├── different-from-previous-insert.ts │ │ │ │ ├── literal-3-is-7.ts │ │ │ │ └── same-as-default-no-insert.ts │ │ │ ├── unsafe-track-use-data-type │ │ │ │ ├── different-from-default-insert.ts │ │ │ │ ├── different-from-previous-insert.ts │ │ │ │ ├── partial-tracked-defaults-different-from-previous-insert-2.ts │ │ │ │ ├── partial-tracked-defaults-different-from-previous-insert-3.ts │ │ │ │ ├── partial-tracked-defaults-different-from-previous-insert-4.ts │ │ │ │ ├── partial-tracked-defaults-different-from-previous-insert.ts │ │ │ │ ├── partial-tracked-defaults-insert-first-row.ts │ │ │ │ ├── partial-tracked-defaults-no-tracked-default-must-have-value-set.ts │ │ │ │ ├── partial-tracked-defaults-optional-do-not-copy-can-be-unset.ts │ │ │ │ ├── partial-tracked-defaults-required-do-not-copy-must-have-value-set.ts │ │ │ │ ├── partial-tracked-defaults-same-as-previous-no-insert-2.ts │ │ │ │ ├── partial-tracked-defaults-same-as-previous-no-insert.ts │ │ │ │ ├── same-as-default-no-insert.ts │ │ │ │ └── same-as-previous-no-insert.ts │ │ │ ├── unsafe-track-use-nullable-data-type │ │ │ │ ├── different-from-default-insert-copy-non-null.ts │ │ │ │ ├── different-from-default-insert-copy-null.ts │ │ │ │ ├── different-from-default-insert-from-null.ts │ │ │ │ ├── different-from-default-insert-null.ts │ │ │ │ ├── different-from-default-insert.ts │ │ │ │ ├── different-from-previous-insert-from-null.ts │ │ │ │ ├── different-from-previous-insert-null.ts │ │ │ │ ├── different-from-previous-insert.ts │ │ │ │ ├── same-as-default-no-insert-null.ts │ │ │ │ ├── same-as-default-no-insert-only-true-allowed-anyway.ts │ │ │ │ ├── same-as-default-no-insert.ts │ │ │ │ ├── same-as-previous-no-insert-null.ts │ │ │ │ └── same-as-previous-no-insert.ts │ │ │ └── unsafe-track │ │ │ │ ├── different-from-default-insert.ts │ │ │ │ ├── different-from-previous-insert.ts │ │ │ │ ├── partial-tracked-defaults-different-from-previous-insert-2.ts │ │ │ │ ├── partial-tracked-defaults-different-from-previous-insert-3.ts │ │ │ │ ├── partial-tracked-defaults-different-from-previous-insert-4.ts │ │ │ │ ├── partial-tracked-defaults-different-from-previous-insert.ts │ │ │ │ ├── partial-tracked-defaults-insert-first-row.ts │ │ │ │ ├── partial-tracked-defaults-no-tracked-default-must-have-value-set.ts │ │ │ │ ├── partial-tracked-defaults-optional-do-not-copy-can-be-unset.ts │ │ │ │ ├── partial-tracked-defaults-required-do-not-copy-must-have-value-set.ts │ │ │ │ ├── partial-tracked-defaults-same-as-previous-no-insert-2.ts │ │ │ │ ├── partial-tracked-defaults-same-as-previous-no-insert.ts │ │ │ │ ├── same-as-default-no-insert.ts │ │ │ │ └── same-as-previous-no-insert.ts │ │ ├── design-pattern-table-per-type │ │ │ ├── add-parent │ │ │ │ └── must-be-table-or-table-per-type.ts │ │ │ ├── app-key-example.ts │ │ │ ├── assert-exists-by-candidate-key │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── basic-tree-example-c.ts │ │ │ │ └── does-not-exist-app-key-example-server.ts │ │ │ ├── assert-exists-by-primary-key │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── basic-tree-example-c.ts │ │ │ │ └── does-not-exist-app-key-example-server.ts │ │ │ ├── assert-exists-by-super-key │ │ │ │ ├── basic-app-key-example-server-2.ts │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── basic-tree-example-c-2.ts │ │ │ │ ├── basic-tree-example-c.ts │ │ │ │ ├── does-not-exist-app-key-example-server-2.ts │ │ │ │ ├── does-not-exist-app-key-example-server-3.ts │ │ │ │ ├── does-not-exist-app-key-example-server.ts │ │ │ │ └── does-not-exist-tree-example-c.ts │ │ │ ├── delete-one-by-candidate-key │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── basic-tree-example-c.ts │ │ │ │ └── does-not-exist-app-key-example-server.ts │ │ │ ├── delete-one-by-primary-key │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── basic-tree-example-c.ts │ │ │ │ └── does-not-exist-app-key-example-server.ts │ │ │ ├── delete-one-by-super-key │ │ │ │ ├── basic-app-key-example-server-2.ts │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── basic-tree-example-c-2.ts │ │ │ │ ├── basic-tree-example-c.ts │ │ │ │ ├── does-not-exist-app-key-example-server-2.ts │ │ │ │ ├── does-not-exist-app-key-example-server-3.ts │ │ │ │ ├── does-not-exist-app-key-example-server.ts │ │ │ │ └── does-not-exist-tree-example-c.ts │ │ │ ├── delete-zero-or-one-by-candidate-key │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── basic-tree-example-c.ts │ │ │ │ └── does-not-exist-app-key-example-server.ts │ │ │ ├── delete-zero-or-one-by-primary-key │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── basic-tree-example-c.ts │ │ │ │ └── does-not-exist-app-key-example-server.ts │ │ │ ├── delete-zero-or-one-by-super-key │ │ │ │ ├── basic-app-key-example-server-2.ts │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── basic-tree-example-c-2.ts │ │ │ │ ├── basic-tree-example-c.ts │ │ │ │ ├── does-not-exist-app-key-example-server-2.ts │ │ │ │ ├── does-not-exist-app-key-example-server-3.ts │ │ │ │ ├── does-not-exist-app-key-example-server.ts │ │ │ │ └── does-not-exist-tree-example-c.ts │ │ │ ├── diamond-example.ts │ │ │ ├── exists-by-candidate-key │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── basic-tree-example-c.ts │ │ │ │ └── does-not-exist-app-key-example-server.ts │ │ │ ├── exists-by-primary-key │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── basic-tree-example-c.ts │ │ │ │ └── does-not-exist-app-key-example-server.ts │ │ │ ├── exists-by-super-key │ │ │ │ ├── basic-app-key-example-server-2.ts │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── basic-tree-example-c-2.ts │ │ │ │ ├── basic-tree-example-c.ts │ │ │ │ ├── does-not-exist-app-key-example-server-2.ts │ │ │ │ ├── does-not-exist-app-key-example-server-3.ts │ │ │ │ ├── does-not-exist-app-key-example-server.ts │ │ │ │ └── does-not-exist-tree-example-c.ts │ │ │ ├── explicit-default-value-column-aliases │ │ │ │ └── app-key-example.ts │ │ │ ├── fetch-one-by-candidate-key │ │ │ │ ├── app-key-example-browser.ts │ │ │ │ └── app-key-example-server-or-undefined.ts │ │ │ ├── fetch-one-by-primary-key │ │ │ │ ├── app-key-example-browser.ts │ │ │ │ └── app-key-example-server-or-undefined.ts │ │ │ ├── fetch-one-by-super-key │ │ │ │ ├── app-key-example-browser.ts │ │ │ │ └── app-key-example-server-or-undefined.ts │ │ │ ├── fetch-one-impl │ │ │ │ ├── app-key-example-browser.ts │ │ │ │ ├── app-key-example-server-does-not-exist.ts │ │ │ │ ├── app-key-example-server-or-undefined-2.ts │ │ │ │ ├── app-key-example-server-or-undefined.ts │ │ │ │ ├── app-key-example-server-or.ts │ │ │ │ ├── app-key-example-server.ts │ │ │ │ ├── invalid-query-2.ts │ │ │ │ ├── invalid-query-or-2.ts │ │ │ │ ├── invalid-query-or-undefined-2.ts │ │ │ │ ├── invalid-query-or-undefined.ts │ │ │ │ ├── invalid-query-or.ts │ │ │ │ ├── invalid-query.ts │ │ │ │ ├── no-parents-does-not-exist.ts │ │ │ │ ├── no-parents-or-undefined-2.ts │ │ │ │ ├── no-parents-or-undefined.ts │ │ │ │ ├── no-parents-or.ts │ │ │ │ └── no-parents.ts │ │ │ ├── fetch-one │ │ │ │ ├── add-table-per-type-as-parent.ts │ │ │ │ ├── app-key-example-browser-row-mapper.ts │ │ │ │ ├── app-key-example-browser.ts │ │ │ │ ├── app-key-example-server-does-not-exist.ts │ │ │ │ ├── app-key-example-server-or-undefined-2.ts │ │ │ │ ├── app-key-example-server-or-undefined.ts │ │ │ │ ├── app-key-example-server-or.ts │ │ │ │ ├── app-key-example-server-row-mapper.ts │ │ │ │ ├── app-key-example-server.ts │ │ │ │ ├── diamond-example-cat-dog.ts │ │ │ │ ├── invalid-query-2.ts │ │ │ │ ├── invalid-query-or-2.ts │ │ │ │ ├── invalid-query-or-undefined-2.ts │ │ │ │ ├── invalid-query-or-undefined.ts │ │ │ │ ├── invalid-query-or.ts │ │ │ │ ├── invalid-query.ts │ │ │ │ ├── no-parents-does-not-exist.ts │ │ │ │ ├── no-parents-or-undefined-2.ts │ │ │ │ ├── no-parents-or-undefined.ts │ │ │ │ ├── no-parents-or.ts │ │ │ │ ├── no-parents-row-mapper.ts │ │ │ │ ├── no-parents.ts │ │ │ │ ├── shared-column-alias-must-have-same-value.ts │ │ │ │ └── tree-example-c.ts │ │ │ ├── generated-column-aliases │ │ │ │ └── app-key-example.ts │ │ │ ├── insert-and-fetch │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── basic-tree-example-c.ts │ │ │ │ ├── default-value-app-key-example-server.ts │ │ │ │ ├── explicit-auto-increment-value-enabled-app-key-example-server.ts │ │ │ │ ├── narrow-to-non-null-app-key-example-server.ts │ │ │ │ ├── narrow-to-null-app-key-example-server.ts │ │ │ │ ├── parent-generated-column-alias-value-mismatch.ts │ │ │ │ ├── parent-generated-column-alias.ts │ │ │ │ └── required-column-must-exist-app-key-example-server.ts │ │ │ ├── is-explicit-default-value-column-alias │ │ │ │ └── app-key-example.ts │ │ │ ├── is-generated-column-alias │ │ │ │ └── app-key-example.ts │ │ │ ├── is-mutable-column-alias │ │ │ │ └── app-key-example.ts │ │ │ ├── is-nullable-column-alias │ │ │ │ └── app-key-example.ts │ │ │ ├── is-optional-column-alias │ │ │ │ └── app-key-example.ts │ │ │ ├── is-parent-column-alias │ │ │ │ └── app-key-example.ts │ │ │ ├── is-required-column-alias │ │ │ │ └── app-key-example.ts │ │ │ ├── mutable-column-aliases │ │ │ │ └── app-key-example.ts │ │ │ ├── non-generated-column-aliases │ │ │ │ └── app-key-example.ts │ │ │ ├── nullable-column-aliases │ │ │ │ └── app-key-example.ts │ │ │ ├── optional-column-aliases │ │ │ │ └── app-key-example.ts │ │ │ ├── parent-column-aliases │ │ │ │ └── app-key-example.ts │ │ │ ├── required-column-aliases │ │ │ │ └── app-key-example.ts │ │ │ ├── tree-example.ts │ │ │ ├── update-and-fetch-one-by-candidate-key │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── does-not-exist-app-key-example-server.ts │ │ │ │ ├── empty-update-app-key-example-server.ts │ │ │ │ ├── partial-update-app-key-example-server.ts │ │ │ │ └── with-column-reference-app-key-example-server.ts │ │ │ ├── update-and-fetch-one-by-primary-key │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── does-not-exist-app-key-example-server.ts │ │ │ │ ├── empty-update-app-key-example-server.ts │ │ │ │ ├── partial-update-app-key-example-server.ts │ │ │ │ └── with-column-reference-app-key-example-server.ts │ │ │ ├── update-and-fetch-one-by-super-key │ │ │ │ ├── basic-app-key-example-server-2.ts │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── does-not-exist-app-key-example-server-2.ts │ │ │ │ ├── does-not-exist-app-key-example-server.ts │ │ │ │ ├── does-not-exist-empty-update-app-key-example-server.ts │ │ │ │ ├── empty-update-app-key-example-server.ts │ │ │ │ ├── partial-update-app-key-example-server.ts │ │ │ │ └── with-column-reference-app-key-example-server.ts │ │ │ ├── update-and-fetch-zero-or-one-by-candidate-key │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── does-not-exist-app-key-example-server.ts │ │ │ │ ├── empty-update-app-key-example-server.ts │ │ │ │ ├── partial-update-app-key-example-server.ts │ │ │ │ └── with-column-reference-app-key-example-server.ts │ │ │ ├── update-and-fetch-zero-or-one-by-primary-key │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── does-not-exist-app-key-example-server.ts │ │ │ │ ├── empty-update-app-key-example-server.ts │ │ │ │ ├── partial-update-app-key-example-server.ts │ │ │ │ └── with-column-reference-app-key-example-server.ts │ │ │ └── update-and-fetch-zero-or-one-by-super-key │ │ │ │ ├── basic-app-key-example-server-2.ts │ │ │ │ ├── basic-app-key-example-server.ts │ │ │ │ ├── does-not-exist-app-key-example-server-2.ts │ │ │ │ ├── does-not-exist-app-key-example-server.ts │ │ │ │ ├── does-not-exist-empty-update-app-key-example-server.ts │ │ │ │ ├── empty-update-app-key-example-server.ts │ │ │ │ ├── partial-update-app-key-example-server.ts │ │ │ │ └── with-column-reference-app-key-example-server.ts │ │ ├── dt-point.ts │ │ ├── execution │ │ │ ├── delete-one │ │ │ │ ├── delete-by-pk.ts │ │ │ │ ├── delete-many-rows.ts │ │ │ │ └── delete-zero-rows.ts │ │ │ ├── delete-zero-or-one │ │ │ │ ├── delete-by-pk.ts │ │ │ │ ├── delete-many-rows.ts │ │ │ │ └── delete-zero-rows.ts │ │ │ ├── delete │ │ │ │ ├── delete-by-pk.ts │ │ │ │ ├── delete-many-rows.ts │ │ │ │ └── delete-zero-rows.ts │ │ │ ├── fetch-all-mapped │ │ │ │ ├── basic.ts │ │ │ │ ├── compose-2.ts │ │ │ │ ├── compose.ts │ │ │ │ ├── promise-basic.ts │ │ │ │ ├── promise-compose-2.ts │ │ │ │ └── promise-compose.ts │ │ │ ├── fetch-all-unmapped-flattened │ │ │ │ ├── basic.ts │ │ │ │ ├── ignore-map-delegate.ts │ │ │ │ ├── inner-join-2.ts │ │ │ │ ├── inner-join-ignore-other-table.ts │ │ │ │ ├── inner-join-with-alias.ts │ │ │ │ ├── inner-join.ts │ │ │ │ ├── left-join-2.ts │ │ │ │ └── left-join.ts │ │ │ ├── fetch-all-unmapped │ │ │ │ ├── basic.ts │ │ │ │ ├── ignore-map-delegate.ts │ │ │ │ ├── inner-join-2.ts │ │ │ │ ├── inner-join-ignore-other-table.ts │ │ │ │ ├── inner-join-with-alias.ts │ │ │ │ ├── inner-join.ts │ │ │ │ ├── left-join-2.ts │ │ │ │ └── left-join.ts │ │ │ ├── fetch-all-with-map-delegate │ │ │ │ ├── basic.ts │ │ │ │ ├── compose-2.ts │ │ │ │ ├── compose.ts │ │ │ │ ├── promise-basic.ts │ │ │ │ ├── promise-compose-2.ts │ │ │ │ └── promise-compose.ts │ │ │ ├── fetch-all-without-map-delegate │ │ │ │ ├── basic.ts │ │ │ │ ├── inner-join-2.ts │ │ │ │ ├── inner-join-ignore-other-table.ts │ │ │ │ ├── inner-join-with-alias.ts │ │ │ │ ├── inner-join.ts │ │ │ │ ├── left-join-2.ts │ │ │ │ └── left-join.ts │ │ │ ├── fetch-value │ │ │ │ ├── buffer.ts │ │ │ │ └── date-time.ts │ │ │ ├── insert-ignore-many │ │ │ │ ├── auto-increment-explicit-value-non-primitive.ts │ │ │ │ ├── auto-increment-explicit-value.ts │ │ │ │ ├── auto-increment-generated-explicit-value-is-ignored.ts │ │ │ │ ├── auto-increment.ts │ │ │ │ ├── basic.ts │ │ │ │ ├── default-value.ts │ │ │ │ ├── insert-disabled.ts │ │ │ │ ├── no-default-value-but-lie-about-it.ts │ │ │ │ ├── nullable.ts │ │ │ │ ├── partial-ignore-basic.ts │ │ │ │ └── partial-ignore-multi-constraint.ts │ │ │ ├── insert-ignore-one │ │ │ │ ├── auto-increment-generated-explicit-value-is-ignored.ts │ │ │ │ ├── auto-increment-generated-implicit-value.ts │ │ │ │ ├── auto-increment-non-generated-explicit-non-primitive-value-leads-to-error.ts │ │ │ │ ├── auto-increment-non-generated-explicit-value.ts │ │ │ │ ├── auto-increment-non-generated-implicit-value.ts │ │ │ │ ├── basic.ts │ │ │ │ ├── empty-insert-auto-increment.ts │ │ │ │ ├── empty-insert.ts │ │ │ │ ├── ignored-auto-increment-generated-explicit-value-is-ignored.ts │ │ │ │ ├── ignored-auto-increment-non-generated-explicit-non-primitive-value-leads-to-error.ts │ │ │ │ ├── ignored-auto-increment-non-generated-explicit-value.ts │ │ │ │ ├── ignored-basic.ts │ │ │ │ ├── ignored-empty-insert-auto-increment.ts │ │ │ │ ├── ignored-empty-insert.ts │ │ │ │ ├── ignored-insert-disabled.ts │ │ │ │ ├── ignored-multi-constraint-auto-increment-generated.ts │ │ │ │ ├── ignored-multi-constraint.ts │ │ │ │ └── insert-disabled.ts │ │ │ ├── insert-ignore-select │ │ │ │ ├── basic-2.ts │ │ │ │ ├── basic-3.ts │ │ │ │ ├── basic.ts │ │ │ │ ├── default-value.ts │ │ │ │ ├── ignored-multi-constraint.ts │ │ │ │ └── insert-disabled.ts │ │ │ ├── insert-many │ │ │ │ ├── auto-increment-explicit-value-non-primitive.ts │ │ │ │ ├── auto-increment-explicit-value.ts │ │ │ │ ├── auto-increment-generated-explicit-value-is-ignored.ts │ │ │ │ ├── auto-increment.ts │ │ │ │ ├── basic.ts │ │ │ │ ├── default-value.ts │ │ │ │ ├── insert-disabled.ts │ │ │ │ ├── no-default-value-but-lie-about-it.ts │ │ │ │ └── nullable.ts │ │ │ ├── insert-one │ │ │ │ ├── auto-increment-generated-explicit-value-is-ignored.ts │ │ │ │ ├── auto-increment-generated-implicit-value.ts │ │ │ │ ├── auto-increment-non-generated-explicit-non-primitive-value-leads-to-error.ts │ │ │ │ ├── auto-increment-non-generated-explicit-value.ts │ │ │ │ ├── auto-increment-non-generated-implicit-value.ts │ │ │ │ ├── basic.ts │ │ │ │ ├── empty-insert-auto-increment.ts │ │ │ │ ├── empty-insert.ts │ │ │ │ └── insert-disabled.ts │ │ │ ├── insert-select │ │ │ │ ├── basic-2.ts │ │ │ │ ├── basic-3.ts │ │ │ │ ├── basic.ts │ │ │ │ ├── custom-data-type-expr.ts │ │ │ │ ├── custom-data-type-literal.ts │ │ │ │ ├── default-value.ts │ │ │ │ └── insert-disabled.ts │ │ │ ├── replace-many │ │ │ │ └── multi-constraint.ts │ │ │ ├── replace-one │ │ │ │ ├── basic.ts │ │ │ │ ├── empty-insert-replaced.ts │ │ │ │ ├── empty-insert.ts │ │ │ │ ├── multi-constraint-multi-replace-with-one-row.ts │ │ │ │ └── multi-constraint.ts │ │ │ ├── replace-select │ │ │ │ ├── basic-2.ts │ │ │ │ ├── basic-3.ts │ │ │ │ ├── basic.ts │ │ │ │ ├── default-value.ts │ │ │ │ ├── ignored-multi-constraint.ts │ │ │ │ └── insert-disabled.ts │ │ │ ├── transaction │ │ │ │ └── leaky-transaction.ts │ │ │ ├── try-fetch-schema-meta │ │ │ │ ├── basic.ts │ │ │ │ └── multi-column-primary-key.ts │ │ │ ├── update-one │ │ │ │ ├── empty-assignment-list.ts │ │ │ │ ├── no-op-assignment.ts │ │ │ │ ├── update-by-pk.ts │ │ │ │ ├── update-many.ts │ │ │ │ └── update-zero.ts │ │ │ ├── update-zero-or-one │ │ │ │ ├── empty-assignment-list.ts │ │ │ │ ├── no-op-assignment.ts │ │ │ │ ├── update-by-pk.ts │ │ │ │ ├── update-many.ts │ │ │ │ └── update-zero.ts │ │ │ └── update │ │ │ │ ├── empty-assignment-list.ts │ │ │ │ ├── no-op-assignment.ts │ │ │ │ ├── update-by-pk.ts │ │ │ │ ├── update-many.ts │ │ │ │ └── update-zero.ts │ │ ├── expr-library │ │ │ ├── aggregate │ │ │ │ └── count-expr │ │ │ │ │ └── basic.ts │ │ │ ├── comparison │ │ │ │ ├── coalesce │ │ │ │ │ ├── 0-arg.sql │ │ │ │ │ ├── 0-arg.ts │ │ │ │ │ ├── 1-arg.sql │ │ │ │ │ ├── 1-arg.ts │ │ │ │ │ ├── 2-arg.sql │ │ │ │ │ ├── 2-arg.ts │ │ │ │ │ ├── 3-arg.sql │ │ │ │ │ └── 3-arg.ts │ │ │ │ ├── escape-like-pattern │ │ │ │ │ ├── backslash-2.sql │ │ │ │ │ ├── backslash-2.ts │ │ │ │ │ ├── backslash.sql │ │ │ │ │ ├── backslash.ts │ │ │ │ │ ├── compound-query.sql │ │ │ │ │ ├── compound-query.ts │ │ │ │ │ ├── dollar-2.sql │ │ │ │ │ ├── dollar-2.ts │ │ │ │ │ ├── dollar.sql │ │ │ │ │ ├── dollar.ts │ │ │ │ │ ├── single-quote-2.sql │ │ │ │ │ ├── single-quote-2.ts │ │ │ │ │ ├── single-quote.sql │ │ │ │ │ └── single-quote.ts │ │ │ │ ├── in-array │ │ │ │ │ ├── basic.sql │ │ │ │ │ ├── basic.ts │ │ │ │ │ └── invoke.ts │ │ │ │ ├── in-list-like-in-query │ │ │ │ │ ├── basic.sql │ │ │ │ │ ├── basic.ts │ │ │ │ │ ├── limit-filters-out-value.ts │ │ │ │ │ ├── not-in-table.ts │ │ │ │ │ ├── test-00.sql │ │ │ │ │ └── test-00.ts │ │ │ │ ├── in-query │ │ │ │ │ ├── basic.sql │ │ │ │ │ ├── basic.ts │ │ │ │ │ ├── in-table.ts │ │ │ │ │ ├── limit-filters-out-value.ts │ │ │ │ │ ├── limit.sql │ │ │ │ │ ├── limit.ts │ │ │ │ │ └── not-in-table.ts │ │ │ │ ├── like │ │ │ │ │ ├── basic.sql │ │ │ │ │ ├── basic.ts │ │ │ │ │ ├── escape-2.sql │ │ │ │ │ ├── escape-2.ts │ │ │ │ │ ├── escape.sql │ │ │ │ │ ├── escape.ts │ │ │ │ │ ├── invoke-custom-escaped-pattern.ts │ │ │ │ │ ├── invoke-escaped-pattern.ts │ │ │ │ │ ├── invoke-one-char-wildcard.ts │ │ │ │ │ └── invoke-zero-to-many-char-wildcard.ts │ │ │ │ └── not-like │ │ │ │ │ ├── basic.sql │ │ │ │ │ ├── basic.ts │ │ │ │ │ ├── escape-2.sql │ │ │ │ │ ├── escape-2.ts │ │ │ │ │ ├── escape.sql │ │ │ │ │ └── escape.ts │ │ │ ├── control-flow │ │ │ │ ├── case-condition │ │ │ │ │ └── basic.ts │ │ │ │ ├── case-value │ │ │ │ │ └── basic.ts │ │ │ │ └── if-is-null │ │ │ │ │ └── basic.ts │ │ │ ├── decimal │ │ │ │ └── add │ │ │ │ │ ├── basic.ts │ │ │ │ │ ├── double.ts │ │ │ │ │ ├── flatten-2.ts │ │ │ │ │ ├── flatten-3.ts │ │ │ │ │ ├── flatten-4.ts │ │ │ │ │ └── flatten-5.ts │ │ │ ├── double │ │ │ │ ├── abs │ │ │ │ │ ├── basic.ts │ │ │ │ │ ├── idempotent.ts │ │ │ │ │ ├── invoke-negative-to-positive.ts │ │ │ │ │ ├── invoke-positive-unchanged.ts │ │ │ │ │ └── triple.ts │ │ │ │ ├── acos │ │ │ │ │ ├── basic.ts │ │ │ │ │ ├── double.ts │ │ │ │ │ ├── invoke.ts │ │ │ │ │ └── parenthesized-expr-as-arg.ts │ │ │ │ ├── add │ │ │ │ │ ├── basic.ts │ │ │ │ │ ├── double.ts │ │ │ │ │ ├── flatten-2.ts │ │ │ │ │ ├── flatten.ts │ │ │ │ │ ├── identity-element.ts │ │ │ │ │ ├── invoke.ts │ │ │ │ │ ├── literal.ts │ │ │ │ │ ├── other-operator-between.ts │ │ │ │ │ ├── triple.ts │ │ │ │ │ └── zero.ts │ │ │ │ ├── asin │ │ │ │ │ └── invoke.ts │ │ │ │ ├── atan │ │ │ │ │ └── invoke.ts │ │ │ │ ├── atan2 │ │ │ │ │ └── invoke.ts │ │ │ │ ├── avg │ │ │ │ │ └── basic.ts │ │ │ │ ├── cbrt │ │ │ │ │ └── invoke.ts │ │ │ │ ├── ceiling │ │ │ │ │ ├── basic.ts │ │ │ │ │ ├── idempotent.ts │ │ │ │ │ ├── invoke-fractional-to-integer.ts │ │ │ │ │ ├── invoke-integer-unchanged.ts │ │ │ │ │ └── triple.ts │ │ │ │ ├── cos │ │ │ │ │ └── invoke.ts │ │ │ │ ├── cot │ │ │ │ │ └── invoke.ts │ │ │ │ ├── degrees │ │ │ │ │ └── invoke.ts │ │ │ │ ├── exp │ │ │ │ │ └── invoke.ts │ │ │ │ ├── floor │ │ │ │ │ ├── basic.ts │ │ │ │ │ ├── idempotent.ts │ │ │ │ │ ├── invoke-fractional-to-integer.ts │ │ │ │ │ ├── invoke-integer-unchanged.ts │ │ │ │ │ └── triple.ts │ │ │ │ ├── fractional-div │ │ │ │ │ └── invoke.ts │ │ │ │ ├── integer-div │ │ │ │ │ └── invoke.ts.deprecated │ │ │ │ ├── integer-remainder │ │ │ │ │ └── invoke.ts.deprecated │ │ │ │ ├── ln │ │ │ │ │ └── invoke.ts │ │ │ │ ├── log │ │ │ │ │ └── invoke.ts │ │ │ │ ├── log10 │ │ │ │ │ └── invoke.ts │ │ │ │ ├── log2 │ │ │ │ │ └── invoke.ts │ │ │ │ ├── max │ │ │ │ │ └── basic.ts │ │ │ │ ├── min │ │ │ │ │ └── basic.ts │ │ │ │ ├── mul │ │ │ │ │ ├── basic.ts │ │ │ │ │ ├── double.ts │ │ │ │ │ ├── flatten-2.ts │ │ │ │ │ ├── flatten.ts │ │ │ │ │ ├── identity-element.ts │ │ │ │ │ ├── invoke.ts │ │ │ │ │ ├── literal.ts │ │ │ │ │ ├── one.ts │ │ │ │ │ ├── other-operator-between.ts │ │ │ │ │ └── triple.ts │ │ │ │ ├── neg │ │ │ │ │ ├── basic.ts │ │ │ │ │ ├── double-elimination.ts │ │ │ │ │ ├── invoke-negative-to-positive.ts │ │ │ │ │ ├── invoke-positive-to-negative.ts │ │ │ │ │ └── triple.ts │ │ │ │ ├── pi │ │ │ │ │ ├── basic.ts │ │ │ │ │ └── invoke.ts │ │ │ │ ├── power │ │ │ │ │ └── invoke.ts.deprecated │ │ │ │ ├── radians │ │ │ │ │ └── invoke.ts │ │ │ │ ├── random │ │ │ │ │ └── invoke.ts │ │ │ │ ├── round │ │ │ │ │ ├── basic.ts.deprecated │ │ │ │ │ ├── idempotent.ts.deprecated │ │ │ │ │ ├── invoke-fractional-to-integer.ts.deprecated │ │ │ │ │ ├── invoke-integer-to-fractional.ts.deprecated │ │ │ │ │ └── triple.ts.deprecated │ │ │ │ ├── sign │ │ │ │ │ ├── basic.ts │ │ │ │ │ ├── idempotent.ts │ │ │ │ │ ├── invoke-sign-no-change.ts │ │ │ │ │ ├── invoke-to-sign.ts │ │ │ │ │ └── triple.ts │ │ │ │ ├── sin │ │ │ │ │ └── invoke.ts │ │ │ │ ├── sqrt │ │ │ │ │ └── invoke.ts │ │ │ │ ├── sub │ │ │ │ │ ├── basic.ts.deprecated │ │ │ │ │ ├── double.ts │ │ │ │ │ ├── flatten.ts.deprecated │ │ │ │ │ ├── identity-element.ts.deprecated │ │ │ │ │ ├── literal.ts.deprecated │ │ │ │ │ ├── other-operator-between.ts.deprecated │ │ │ │ │ ├── triple.ts.deprecated │ │ │ │ │ └── zero.ts.deprecated │ │ │ │ ├── sum │ │ │ │ │ └── basic.ts │ │ │ │ ├── tan │ │ │ │ │ └── invoke.ts │ │ │ │ └── truncate │ │ │ │ │ └── invoke.ts.deprecated │ │ │ ├── integer │ │ │ │ ├── avg │ │ │ │ │ └── basic.ts │ │ │ │ ├── max │ │ │ │ │ └── basic.ts │ │ │ │ ├── min │ │ │ │ │ └── basic.ts │ │ │ │ └── sum │ │ │ │ │ └── basic.ts │ │ │ └── logical │ │ │ │ ├── is-not-null-and │ │ │ │ └── basic.ts │ │ │ │ ├── is-null-or │ │ │ │ └── basic.ts │ │ │ │ ├── not │ │ │ │ ├── basic.ts │ │ │ │ ├── double-elimination.ts │ │ │ │ └── triple.ts │ │ │ │ └── xor │ │ │ │ ├── basic.ts │ │ │ │ └── nested.ts │ │ ├── insert-one-event │ │ │ └── get-or-fetch │ │ │ │ ├── transaction-commit-auto-increment.ts │ │ │ │ └── transaction-commit.ts │ │ ├── pool │ │ │ ├── is-deallocated │ │ │ │ └── basic.ts │ │ │ ├── on-delete │ │ │ │ ├── non-transaction-async-throw.ts │ │ │ │ ├── non-transaction-delete-one.ts │ │ │ │ ├── non-transaction-delete-zero.ts │ │ │ │ ├── non-transaction-lock.ts │ │ │ │ ├── non-transaction-sync-throw.ts │ │ │ │ ├── non-transaction.ts │ │ │ │ ├── transaction-commit-multi-delete.ts │ │ │ │ ├── transaction-commit.ts │ │ │ │ ├── transaction-early-commit.ts │ │ │ │ ├── transaction-early-rollback.ts │ │ │ │ └── transaction-rollback.ts │ │ │ ├── on-insert-invoked-by-insert-and-fetch │ │ │ │ ├── insert-ignore-one-non-transaction-auto-increment-ignored.ts.todo │ │ │ │ ├── insert-ignore-one-non-transaction-auto-increment.ts.todo │ │ │ │ ├── insert-ignore-one-non-transaction-ignored.ts.todo │ │ │ │ ├── insert-ignore-one-non-transaction.ts.todo │ │ │ │ ├── non-transaction-async-throw.ts │ │ │ │ ├── non-transaction-auto-increment.ts │ │ │ │ ├── non-transaction-ignore-duplicate-handler.ts │ │ │ │ ├── non-transaction-ignore-duplicate-on-commit-listener.ts │ │ │ │ ├── non-transaction-lock.ts │ │ │ │ ├── non-transaction-on-commit-sync-throw-does-not-block.ts │ │ │ │ ├── non-transaction-remove-handler.ts │ │ │ │ ├── non-transaction-sync-throw-ignore-duplicate-on-rollback-listener.ts │ │ │ │ ├── non-transaction-sync-throw.ts │ │ │ │ ├── non-transaction.ts │ │ │ │ ├── transaction-commit.ts │ │ │ │ ├── transaction-early-commit.ts │ │ │ │ ├── transaction-early-rollback.ts │ │ │ │ ├── transaction-on-rollback-sync-throw-does-not-block.ts │ │ │ │ └── transaction-rollback.ts │ │ │ ├── on-insert-invoked-by-insert-many │ │ │ │ ├── insert-ignore-many-multi-insert-non-transaction-auto-increment-last-ignored.ts │ │ │ │ ├── insert-ignore-many-multi-insert-non-transaction-auto-increment-mid-ignored.ts │ │ │ │ ├── insert-ignore-many-multi-insert-non-transaction-auto-increment.ts │ │ │ │ ├── insert-ignore-many-non-transaction-zero.ts │ │ │ │ ├── insert-ignore-one-non-transaction-auto-increment-ignored.ts │ │ │ │ ├── insert-ignore-one-non-transaction-auto-increment.ts │ │ │ │ ├── insert-ignore-one-non-transaction-ignored.ts │ │ │ │ ├── insert-ignore-one-non-transaction.ts │ │ │ │ ├── multi-insert-non-transaction-auto-increment.ts │ │ │ │ ├── multi-insert-non-transaction.ts │ │ │ │ ├── non-transaction-async-throw.ts │ │ │ │ ├── non-transaction-auto-increment.ts │ │ │ │ ├── non-transaction-ignore-duplicate-handler.ts │ │ │ │ ├── non-transaction-ignore-duplicate-on-commit-listener.ts │ │ │ │ ├── non-transaction-lock.ts │ │ │ │ ├── non-transaction-on-commit-sync-throw-does-not-block.ts │ │ │ │ ├── non-transaction-remove-handler.ts │ │ │ │ ├── non-transaction-sync-throw-ignore-duplicate-on-rollback-listener.ts │ │ │ │ ├── non-transaction-sync-throw.ts │ │ │ │ ├── non-transaction-zero.ts │ │ │ │ ├── non-transaction.ts │ │ │ │ ├── transaction-commit.ts │ │ │ │ ├── transaction-early-commit.ts │ │ │ │ ├── transaction-early-rollback.ts │ │ │ │ ├── transaction-on-rollback-sync-throw-does-not-block.ts │ │ │ │ └── transaction-rollback.ts │ │ │ ├── on-insert-invoked-by-insert-one │ │ │ │ ├── insert-ignore-one-non-transaction-auto-increment-ignored.ts │ │ │ │ ├── insert-ignore-one-non-transaction-auto-increment.ts │ │ │ │ ├── insert-ignore-one-non-transaction-ignored.ts │ │ │ │ ├── insert-ignore-one-non-transaction.ts │ │ │ │ ├── non-transaction-async-throw.ts │ │ │ │ ├── non-transaction-auto-increment-2.ts │ │ │ │ ├── non-transaction-auto-increment.ts │ │ │ │ ├── non-transaction-ignore-duplicate-handler.ts │ │ │ │ ├── non-transaction-ignore-duplicate-on-commit-listener.ts │ │ │ │ ├── non-transaction-lock.ts │ │ │ │ ├── non-transaction-on-commit-sync-throw-does-not-block.ts │ │ │ │ ├── non-transaction-remove-handler.ts │ │ │ │ ├── non-transaction-sync-throw-ignore-duplicate-on-rollback-listener.ts │ │ │ │ ├── non-transaction-sync-throw.ts │ │ │ │ ├── non-transaction.ts │ │ │ │ ├── transaction-commit.ts │ │ │ │ ├── transaction-early-commit.ts │ │ │ │ ├── transaction-early-rollback.ts │ │ │ │ ├── transaction-on-rollback-sync-throw-does-not-block.ts │ │ │ │ └── transaction-rollback.ts │ │ │ ├── on-insert-one-invoked-by-insert-and-fetch │ │ │ │ ├── insert-ignore-one-non-transaction-ignored.ts.todo │ │ │ │ ├── insert-ignore-one-non-transaction.ts.todo │ │ │ │ ├── non-transaction-async-throw.ts │ │ │ │ ├── non-transaction-auto-increment-2.ts.todo │ │ │ │ ├── non-transaction-auto-increment.ts │ │ │ │ ├── non-transaction-ignore-duplicate-handler.ts │ │ │ │ ├── non-transaction-ignore-duplicate-on-commit-listener.ts │ │ │ │ ├── non-transaction-lock.ts │ │ │ │ ├── non-transaction-on-commit-sync-throw-does-not-block.ts │ │ │ │ ├── non-transaction-remove-handler.ts │ │ │ │ ├── non-transaction-sync-throw-ignore-duplicate-on-rollback-listener.ts │ │ │ │ ├── non-transaction-sync-throw.ts │ │ │ │ ├── non-transaction.ts │ │ │ │ ├── transaction-commit.ts │ │ │ │ ├── transaction-early-commit.ts │ │ │ │ ├── transaction-early-rollback.ts │ │ │ │ ├── transaction-on-rollback-sync-throw-does-not-block.ts │ │ │ │ └── transaction-rollback.ts │ │ │ ├── on-insert-one │ │ │ │ ├── insert-ignore-one-non-transaction-ignored.ts │ │ │ │ ├── insert-ignore-one-non-transaction.ts │ │ │ │ ├── non-transaction-async-throw.ts │ │ │ │ ├── non-transaction-auto-increment-2.ts │ │ │ │ ├── non-transaction-auto-increment.ts │ │ │ │ ├── non-transaction-ignore-duplicate-handler.ts │ │ │ │ ├── non-transaction-ignore-duplicate-on-commit-listener.ts │ │ │ │ ├── non-transaction-lock.ts │ │ │ │ ├── non-transaction-on-commit-sync-throw-does-not-block.ts │ │ │ │ ├── non-transaction-remove-handler.ts │ │ │ │ ├── non-transaction-sync-throw-ignore-duplicate-on-rollback-listener.ts │ │ │ │ ├── non-transaction-sync-throw.ts │ │ │ │ ├── non-transaction.ts │ │ │ │ ├── transaction-commit.ts │ │ │ │ ├── transaction-early-commit.ts │ │ │ │ ├── transaction-early-rollback.ts │ │ │ │ ├── transaction-on-rollback-sync-throw-does-not-block.ts │ │ │ │ └── transaction-rollback.ts │ │ │ ├── on-insert-select-invoked-by-insert-ignore-select │ │ │ │ └── non-transaction.ts │ │ │ ├── on-insert-select │ │ │ │ └── non-transaction.ts │ │ │ ├── on-replace-invoked-by-replace-many │ │ │ │ ├── multi-insert-non-transaction-auto-increment.ts │ │ │ │ ├── multi-insert-non-transaction.ts │ │ │ │ ├── non-transaction-async-throw.ts │ │ │ │ ├── non-transaction-auto-increment.ts │ │ │ │ ├── non-transaction-ignore-duplicate-handler.ts │ │ │ │ ├── non-transaction-ignore-duplicate-on-commit-listener.ts │ │ │ │ ├── non-transaction-lock.ts │ │ │ │ ├── non-transaction-on-commit-sync-throw-does-not-block.ts │ │ │ │ ├── non-transaction-remove-handler.ts │ │ │ │ ├── non-transaction-sync-throw-ignore-duplicate-on-rollback-listener.ts │ │ │ │ ├── non-transaction-sync-throw.ts │ │ │ │ ├── non-transaction-zero.ts │ │ │ │ ├── non-transaction.ts │ │ │ │ ├── transaction-commit.ts │ │ │ │ ├── transaction-early-commit.ts │ │ │ │ ├── transaction-early-rollback.ts │ │ │ │ ├── transaction-on-rollback-sync-throw-does-not-block.ts │ │ │ │ └── transaction-rollback.ts │ │ │ ├── on-replace-invoked-by-replace-one │ │ │ │ ├── non-transaction-async-throw.ts │ │ │ │ ├── non-transaction-auto-increment.ts │ │ │ │ ├── non-transaction-ignore-duplicate-handler.ts │ │ │ │ ├── non-transaction-ignore-duplicate-on-commit-listener.ts │ │ │ │ ├── non-transaction-lock.ts │ │ │ │ ├── non-transaction-on-commit-sync-throw-does-not-block.ts │ │ │ │ ├── non-transaction-remove-handler.ts │ │ │ │ ├── non-transaction-sync-throw-ignore-duplicate-on-rollback-listener.ts │ │ │ │ ├── non-transaction-sync-throw.ts │ │ │ │ ├── non-transaction.ts │ │ │ │ ├── transaction-commit.ts │ │ │ │ ├── transaction-early-commit.ts │ │ │ │ ├── transaction-early-rollback.ts │ │ │ │ ├── transaction-on-rollback-sync-throw-does-not-block.ts │ │ │ │ └── transaction-rollback.ts │ │ │ ├── on-replace-one │ │ │ │ ├── non-transaction-async-throw.ts │ │ │ │ ├── non-transaction-auto-increment.ts │ │ │ │ ├── non-transaction-ignore-duplicate-handler.ts │ │ │ │ ├── non-transaction-ignore-duplicate-on-commit-listener.ts │ │ │ │ ├── non-transaction-lock.ts │ │ │ │ ├── non-transaction-on-commit-sync-throw-does-not-block.ts │ │ │ │ ├── non-transaction-remove-handler.ts │ │ │ │ ├── non-transaction-sync-throw-ignore-duplicate-on-rollback-listener.ts │ │ │ │ ├── non-transaction-sync-throw.ts │ │ │ │ ├── non-transaction.ts │ │ │ │ ├── replace-one-non-transaction-replaced.ts │ │ │ │ ├── transaction-commit.ts │ │ │ │ ├── transaction-early-commit.ts │ │ │ │ ├── transaction-early-rollback.ts │ │ │ │ ├── transaction-on-rollback-sync-throw-does-not-block.ts │ │ │ │ └── transaction-rollback.ts │ │ │ ├── on-replace-select │ │ │ │ └── non-transaction.ts │ │ │ ├── on-update-and-fetch │ │ │ │ ├── non-transaction-update-and-fetch-one.ts │ │ │ │ ├── non-transaction-update-and-fetch-zero-or-one-not-found.ts │ │ │ │ ├── non-transaction-update-and-fetch-zero-or-one.ts │ │ │ │ ├── transaction-update-and-fetch-one.ts │ │ │ │ └── transaction-update-and-fetch-zero-or-one.ts │ │ │ └── on-update │ │ │ │ ├── non-transaction-async-throw.ts │ │ │ │ ├── non-transaction-lock.ts │ │ │ │ ├── non-transaction-sync-throw.ts │ │ │ │ ├── non-transaction-update-one-2.ts │ │ │ │ ├── non-transaction-update-one-3.ts │ │ │ │ ├── non-transaction-update-one-4.ts │ │ │ │ ├── non-transaction-update-one-5.ts │ │ │ │ ├── non-transaction-update-one.ts │ │ │ │ ├── non-transaction-update-zero-2.ts │ │ │ │ ├── non-transaction-update-zero-3.ts │ │ │ │ ├── non-transaction-update-zero.ts │ │ │ │ ├── non-transaction.ts │ │ │ │ ├── transaction-commit-multi-update.ts │ │ │ │ ├── transaction-commit.ts │ │ │ │ ├── transaction-early-commit.ts │ │ │ │ ├── transaction-early-rollback.ts │ │ │ │ └── transaction-rollback.ts │ │ ├── promise-util │ │ │ └── safely-invoke-async-callback │ │ │ │ └── sync-error.ts │ │ ├── query │ │ │ ├── as │ │ │ │ ├── can-be-used-as-expr-2.sql │ │ │ │ ├── can-be-used-as-expr-2.ts │ │ │ │ ├── can-be-used-as-expr.sql │ │ │ │ ├── can-be-used-as-expr.ts │ │ │ │ ├── can-be-used-in-join.sql │ │ │ │ └── can-be-used-in-join.ts │ │ │ ├── basic-group-by.sql │ │ │ ├── basic-group-by.ts │ │ │ ├── basic-having.sql │ │ │ ├── basic-having.ts │ │ │ ├── basic-order-by.sql │ │ │ ├── basic-order-by.ts │ │ │ ├── basic-select-expr-select-item.sql │ │ │ ├── basic-select-expr-select-item.ts │ │ │ ├── basic-select-from.sql │ │ │ ├── basic-select-from.ts │ │ │ ├── basic-union-order-by-no-union.sql │ │ │ ├── basic-union-order-by-no-union.ts │ │ │ ├── basic-where.sql │ │ │ ├── basic-where.ts │ │ │ ├── coalesce │ │ │ │ ├── basic.sql │ │ │ │ └── basic.ts │ │ │ ├── compound-query-order-by │ │ │ │ ├── basic.sql │ │ │ │ └── basic.ts │ │ │ ├── cross-join.sql │ │ │ ├── cross-join.ts │ │ │ ├── distinct │ │ │ │ ├── basic.sql │ │ │ │ └── basic.ts │ │ │ ├── fetch-all-without-map-delegate │ │ │ │ ├── inner-join-aliased-2.sql │ │ │ │ ├── inner-join-aliased-2.ts │ │ │ │ ├── inner-join-aliased-3.sql │ │ │ │ ├── inner-join-aliased-3.ts │ │ │ │ ├── inner-join-aliased-4.sql │ │ │ │ ├── inner-join-aliased-4.ts │ │ │ │ ├── inner-join-aliased.sql │ │ │ │ └── inner-join-aliased.ts │ │ │ ├── fetch-one-or-undefined-with-map-delegate │ │ │ │ ├── basic.ts │ │ │ │ ├── compound-explicit-limit-1.ts │ │ │ │ ├── compound-fetch-more-than-one-error.ts │ │ │ │ ├── compound-only-one-matching-row-implicit.ts │ │ │ │ ├── explicit-limit-1.ts │ │ │ │ ├── fetch-more-than-one-error.ts │ │ │ │ ├── only-one-matching-row-implicit.ts │ │ │ │ └── row-not-found.ts │ │ │ ├── fetch-one-or-undefined-without-map-delegate │ │ │ │ ├── basic.ts │ │ │ │ ├── compound-explicit-limit-1.ts │ │ │ │ ├── compound-fetch-more-than-one-error.ts │ │ │ │ ├── compound-only-one-matching-row-implicit.ts │ │ │ │ ├── explicit-limit-1.ts │ │ │ │ ├── fetch-more-than-one-error.ts │ │ │ │ ├── only-one-matching-row-implicit.ts │ │ │ │ └── row-not-found.ts │ │ │ ├── fetch-one-or-with-map-delegate │ │ │ │ ├── basic.ts │ │ │ │ ├── compound-explicit-limit-1.ts │ │ │ │ ├── compound-fetch-more-than-one-error.ts │ │ │ │ ├── compound-only-one-matching-row-implicit.ts │ │ │ │ ├── explicit-limit-1.ts │ │ │ │ ├── fetch-more-than-one-error.ts │ │ │ │ ├── only-one-matching-row-implicit.ts │ │ │ │ └── row-not-found.ts │ │ │ ├── fetch-one-or-without-map-delegate │ │ │ │ ├── basic.ts │ │ │ │ ├── compound-explicit-limit-1.ts │ │ │ │ ├── compound-fetch-more-than-one-error.ts │ │ │ │ ├── compound-only-one-matching-row-implicit.ts │ │ │ │ ├── explicit-limit-1.ts │ │ │ │ ├── fetch-more-than-one-error.ts │ │ │ │ ├── only-one-matching-row-implicit.ts │ │ │ │ └── row-not-found.ts │ │ │ ├── fetch-one-with-map-delegate │ │ │ │ ├── basic.ts │ │ │ │ ├── compound-explicit-limit-1.ts │ │ │ │ ├── compound-fetch-more-than-one-error.ts │ │ │ │ ├── compound-only-one-matching-row-implicit.ts │ │ │ │ ├── explicit-limit-1.ts │ │ │ │ ├── fetch-more-than-one-error.ts │ │ │ │ ├── only-one-matching-row-implicit.ts │ │ │ │ └── row-not-found.ts │ │ │ ├── fetch-one-without-map-delegate │ │ │ │ ├── basic.ts │ │ │ │ ├── compound-explicit-limit-1.ts │ │ │ │ ├── compound-fetch-more-than-one-error.ts │ │ │ │ ├── compound-only-one-matching-row-implicit.ts │ │ │ │ ├── explicit-limit-1.ts │ │ │ │ ├── fetch-more-than-one-error.ts │ │ │ │ ├── only-one-matching-row-implicit.ts │ │ │ │ ├── row-not-found.ts │ │ │ │ └── where-eq-custom-data-type.ts │ │ │ ├── fetch-value-array │ │ │ │ ├── ignore-map.ts │ │ │ │ ├── select-column.ts │ │ │ │ ├── select-expr-select-item.ts │ │ │ │ └── select-expr.ts │ │ │ ├── fetch-value-or-undefined │ │ │ │ ├── basic.ts │ │ │ │ ├── compound-explicit-limit-1.ts │ │ │ │ ├── compound-fetch-more-than-one-error.ts │ │ │ │ ├── compound-only-one-matching-row-implicit.ts │ │ │ │ ├── explicit-limit-1.ts │ │ │ │ ├── fetch-more-than-one-error.ts │ │ │ │ ├── ignore-map.ts │ │ │ │ ├── only-one-matching-row-implicit.ts │ │ │ │ ├── row-not-found.ts │ │ │ │ ├── select-column.ts │ │ │ │ ├── select-expr-select-item.ts │ │ │ │ └── select-expr.ts │ │ │ ├── fetch-value-or │ │ │ │ ├── basic.ts │ │ │ │ ├── compound-explicit-limit-1.ts │ │ │ │ ├── compound-fetch-more-than-one-error.ts │ │ │ │ ├── compound-only-one-matching-row-implicit.ts │ │ │ │ ├── explicit-limit-1.ts │ │ │ │ ├── fetch-more-than-one-error.ts │ │ │ │ ├── ignore-map.ts │ │ │ │ ├── only-one-matching-row-implicit.ts │ │ │ │ ├── row-not-found.ts │ │ │ │ ├── select-column.ts │ │ │ │ ├── select-expr-select-item-use-data-type.ts │ │ │ │ ├── select-expr-select-item.ts │ │ │ │ └── select-expr.ts │ │ │ ├── fetch-value │ │ │ │ ├── basic.ts │ │ │ │ ├── compound-explicit-limit-1.ts │ │ │ │ ├── compound-fetch-more-than-one-error.ts │ │ │ │ ├── compound-only-one-matching-row-implicit.ts │ │ │ │ ├── explicit-limit-1.ts │ │ │ │ ├── fetch-more-than-one-error.ts │ │ │ │ ├── ignore-map.ts │ │ │ │ ├── only-one-matching-row-implicit.ts │ │ │ │ ├── row-not-found.ts │ │ │ │ ├── select-column.ts │ │ │ │ ├── select-expr-select-item.ts │ │ │ │ └── select-expr.ts │ │ │ ├── group-by-then-having.sql │ │ │ ├── group-by-then-having.ts │ │ │ ├── having-true.sql │ │ │ ├── having-true.ts │ │ │ ├── inner-join-using-candidate-key.sql │ │ │ ├── inner-join-using-candidate-key.ts │ │ │ ├── inner-join-using-primary-key.sql │ │ │ ├── inner-join-using-primary-key.ts │ │ │ ├── inner-join.sql │ │ │ ├── inner-join.ts │ │ │ ├── left-join-using-candidate-key.sql │ │ │ ├── left-join-using-candidate-key.ts │ │ │ ├── left-join-using-primary-key.sql │ │ │ ├── left-join-using-primary-key.ts │ │ │ ├── left-join.sql │ │ │ ├── left-join.ts │ │ │ ├── limit-no-offset.sql │ │ │ ├── limit-no-offset.ts │ │ │ ├── limit-with-offset.sql │ │ │ ├── limit-with-offset.ts │ │ │ ├── limit │ │ │ │ ├── limit-1e300.ts │ │ │ │ ├── limit-max.sql │ │ │ │ ├── limit-max.ts │ │ │ │ ├── limit-too-high.ts │ │ │ │ ├── offset-1e300.ts │ │ │ │ ├── offset-max.sql │ │ │ │ ├── offset-max.ts │ │ │ │ └── offset-too-high.ts │ │ │ ├── offset-no-limit.sql │ │ │ ├── offset-no-limit.ts │ │ │ ├── order-by-double-literal.sql │ │ │ ├── order-by-double-literal.ts │ │ │ ├── order-by-empty.sql │ │ │ ├── order-by-empty.ts │ │ │ ├── order-by-integer-literal.sql │ │ │ ├── order-by-integer-literal.ts │ │ │ ├── order-by-limit-union-order-by-union-limit │ │ │ │ ├── 0000.sql │ │ │ │ ├── 0000.ts │ │ │ │ ├── 0001.sql │ │ │ │ ├── 0001.ts │ │ │ │ ├── 0010.sql │ │ │ │ ├── 0010.ts │ │ │ │ ├── 0011.sql │ │ │ │ ├── 0011.ts │ │ │ │ ├── 0100.sql │ │ │ │ ├── 0100.ts │ │ │ │ ├── 0101.sql │ │ │ │ ├── 0101.ts │ │ │ │ ├── 0110.sql │ │ │ │ ├── 0110.ts │ │ │ │ ├── 0111.sql │ │ │ │ ├── 0111.ts │ │ │ │ ├── 1000.sql │ │ │ │ ├── 1000.ts │ │ │ │ ├── 1001.sql │ │ │ │ ├── 1001.ts │ │ │ │ ├── 1010.sql │ │ │ │ ├── 1010.ts │ │ │ │ ├── 1011.sql │ │ │ │ ├── 1011.ts │ │ │ │ ├── 1100.sql │ │ │ │ ├── 1100.ts │ │ │ │ ├── 1101.sql │ │ │ │ ├── 1101.ts │ │ │ │ ├── 1110.sql │ │ │ │ ├── 1110.ts │ │ │ │ ├── 1111.sql │ │ │ │ └── 1111.ts │ │ │ ├── order-by-select-clause-only.sql │ │ │ ├── order-by-select-clause-only.ts │ │ │ ├── order-by-select-clause.sql │ │ │ ├── order-by-select-clause.ts │ │ │ ├── paginate │ │ │ │ ├── basic-2.ts │ │ │ │ ├── basic-3.ts │ │ │ │ ├── basic-4.ts │ │ │ │ └── basic.ts │ │ │ ├── select-column-map.sql │ │ │ ├── select-column-map.ts │ │ │ ├── select-column-ref.sql │ │ │ ├── select-column-ref.ts │ │ │ ├── select-decimal-literal.sql │ │ │ ├── select-decimal-literal.ts │ │ │ ├── select-decimal-subquery.sql │ │ │ ├── select-decimal-subquery.ts │ │ │ ├── select-value │ │ │ │ ├── select-column-multi.sql │ │ │ │ ├── select-column-multi.ts │ │ │ │ ├── select-expr-select-item-multi.sql │ │ │ │ ├── select-expr-select-item-multi.ts │ │ │ │ ├── select-expr.sql │ │ │ │ ├── select-expr.ts │ │ │ │ ├── select-primitive-expr.sql │ │ │ │ ├── select-primitive-expr.ts │ │ │ │ ├── select-subquery.sql │ │ │ │ └── select-subquery.ts │ │ │ ├── union-all │ │ │ │ ├── basic.sql │ │ │ │ ├── basic.ts │ │ │ │ ├── map-to-map.sql │ │ │ │ ├── map-to-map.ts │ │ │ │ ├── nested-union-all.sql │ │ │ │ ├── nested-union-all.ts │ │ │ │ ├── target-has-order-by-clause.sql │ │ │ │ ├── target-has-order-by-clause.ts │ │ │ │ ├── with-order-by-clause.sql │ │ │ │ └── with-order-by-clause.ts │ │ │ ├── union-distinct │ │ │ │ ├── basic.sql │ │ │ │ ├── basic.ts │ │ │ │ ├── map-to-map.sql │ │ │ │ ├── map-to-map.ts │ │ │ │ ├── nested-union-distinct.sql │ │ │ │ ├── nested-union-distinct.ts │ │ │ │ ├── target-has-order-by-clause.sql │ │ │ │ ├── target-has-order-by-clause.ts │ │ │ │ ├── with-order-by-clause.sql │ │ │ │ └── with-order-by-clause.ts │ │ │ ├── union-limit-no-offset-no-union.sql │ │ │ ├── union-limit-no-offset-no-union.ts │ │ │ ├── union-limit-with-offset-no-union.sql │ │ │ ├── union-limit-with-offset-no-union.ts │ │ │ ├── union-offset-no-limit-no-union.sql │ │ │ ├── union-offset-no-limit-no-union.ts │ │ │ ├── where-eq-candidate-key.sql │ │ │ ├── where-eq-candidate-key.ts │ │ │ ├── where-eq-columns.sql │ │ │ ├── where-eq-columns.ts │ │ │ ├── where-eq-inner-query-primary-key.sql │ │ │ ├── where-eq-inner-query-primary-key.ts │ │ │ ├── where-eq-outer-query-primary-key.sql │ │ │ ├── where-eq-outer-query-primary-key.ts │ │ │ ├── where-eq-primary-key.sql │ │ │ ├── where-eq-primary-key.ts │ │ │ ├── where-eq-super-key.sql │ │ │ ├── where-eq-super-key.ts │ │ │ ├── where-eq.sql │ │ │ ├── where-eq.ts │ │ │ ├── where-is-not-null.sql │ │ │ ├── where-is-not-null.ts │ │ │ ├── where-is-null.sql │ │ │ ├── where-is-null.ts │ │ │ ├── where-null-safe-eq.sql │ │ │ ├── where-null-safe-eq.ts │ │ │ ├── where-true.sql │ │ │ └── where-true.ts │ │ ├── raw-expr │ │ │ ├── assert-non-null │ │ │ │ └── null-not-allowed.ts │ │ │ ├── build-ast │ │ │ │ ├── expr-select-item.ts │ │ │ │ └── uint8array.ts │ │ │ ├── expr-select-item │ │ │ │ ├── basic.ts │ │ │ │ ├── expr-select-item.ts │ │ │ │ └── has-outer-query-join.ts │ │ │ ├── is-any-non-primitive-raw-expr │ │ │ │ ├── query-one-select-item.ts │ │ │ │ └── query-too-many-select-items.ts │ │ │ └── used-ref │ │ │ │ └── uint8array.ts │ │ ├── schema-validation │ │ │ ├── validate-column │ │ │ │ ├── column-alias-mismatch.ts │ │ │ │ ├── column-explicit-value-on-application-only-insert-disabled.ts │ │ │ │ ├── column-explicit-value-on-application-only-insert-will-fail.ts │ │ │ │ ├── column-explicit-value-on-application-only-using-database-generated-or-null-value.ts │ │ │ │ ├── column-explicit-value-on-database-only.ts │ │ │ │ ├── column-generated-on-application-only-auto-increment-mismatch-insert-disabled.ts │ │ │ │ ├── column-generated-on-application-only-auto-increment-mismatch-insert-will-fail.ts │ │ │ │ ├── column-generated-on-application-only-insert-disabled.ts │ │ │ │ ├── column-generated-on-application-only-insert-will-fail.ts │ │ │ │ ├── column-generated-on-application-only-using-database-default-value-explicit-default-value.ts │ │ │ │ ├── column-generated-on-application-only-using-database-default-value-nullable.ts │ │ │ │ ├── column-generated-on-both.ts │ │ │ │ ├── column-generated-on-database-only-insert-and-update-disabled.ts │ │ │ │ ├── column-generated-on-database-only-insert-will-fail.ts │ │ │ │ ├── column-generated-on-database-only-update-will-fail.ts │ │ │ │ ├── column-nullable-on-application-only-insert-and-update-disabled.ts │ │ │ │ ├── column-nullable-on-application-only-insert-will-fail.ts │ │ │ │ ├── column-nullable-on-application-only-update-will-fail.ts │ │ │ │ └── column-nullable-on-database-only.ts │ │ │ ├── validate-schema │ │ │ │ ├── table-on-application-only.ts │ │ │ │ └── table-on-database-only.ts │ │ │ └── validate-table │ │ │ │ ├── auto-increment-mismatch-insert-disabled.ts │ │ │ │ ├── auto-increment-mismatch-insert-will-fail.ts │ │ │ │ ├── auto-increment-on-application-only-insert-disabled.ts │ │ │ │ ├── auto-increment-on-application-only-insert-will-fail.ts │ │ │ │ ├── auto-increment-on-database-only.ts │ │ │ │ ├── candidate-key-on-application-only.ts │ │ │ │ ├── candidate-key-on-database-only.ts │ │ │ │ ├── column-on-application-only.ts │ │ │ │ ├── column-on-database-only-insert-disabled.ts │ │ │ │ ├── column-on-database-only-insert-will-fail.ts │ │ │ │ ├── column-on-database-only-with-default-or-generated-value-auto-increment.ts │ │ │ │ ├── column-on-database-only-with-default-or-generated-value-explicit-default-value.ts │ │ │ │ ├── column-on-database-only-with-default-or-generated-value-nullable.ts │ │ │ │ ├── primary-key-mismatch.ts │ │ │ │ ├── primary-key-ok.ts │ │ │ │ ├── primary-key-on-application-only.ts │ │ │ │ ├── primary-key-on-database-only.ts │ │ │ │ ├── table-alias-mismatch.ts │ │ │ │ ├── table-has-no-primary-key-or-candidate-key.ts │ │ │ │ └── table-has-no-primary-key.ts │ │ ├── sql-web-worker │ │ │ ├── basic-create-aggregate.ts │ │ │ ├── basic-create-function.ts │ │ │ ├── basic-select.ts │ │ │ ├── boolean-type.ts │ │ │ ├── buffer-type.ts │ │ │ ├── bug-return-zero-from-user-defined-function.ts │ │ │ ├── double-type.ts │ │ │ ├── integer-type.ts │ │ │ ├── null-type.ts │ │ │ ├── promise.sql.ts │ │ │ ├── string-type.ts │ │ │ ├── worker-impl.sql.ts │ │ │ └── worker.sql.ts │ │ ├── sql.js │ │ │ ├── auto-increment-explicit-keyword.ts │ │ │ ├── auto-increment-fail.ts │ │ │ ├── auto-increment.ts │ │ │ ├── basic-close.ts │ │ │ ├── basic-create-database.ts │ │ │ ├── basic-create-function.ts │ │ │ ├── basic-create-table.ts │ │ │ ├── basic-each.ts │ │ │ ├── basic-export-and-import.ts │ │ │ ├── basic-get-rows-modified.ts │ │ │ ├── basic-prepared-statement.ts │ │ │ ├── basic-run.ts │ │ │ ├── basic-select-boolean.ts │ │ │ ├── basic-select.ts │ │ │ ├── cannot-nest-transaction.ts │ │ │ ├── copy-paste │ │ │ │ ├── sql-wasm.d.ts │ │ │ │ ├── sql-wasm.js │ │ │ │ └── sql-wasm.wasm │ │ │ ├── insert-many-error.ts │ │ │ ├── replace-multi-with-one-row.ts │ │ │ ├── replace-partial.ts │ │ │ └── sql.ts │ │ ├── sqlstring │ │ │ └── escape-value │ │ │ │ ├── double │ │ │ │ ├── sql.plain.sql │ │ │ │ ├── sql.sql │ │ │ │ └── sql.ts │ │ │ │ ├── test-bigint.ts │ │ │ │ └── test-buffer.ts │ │ ├── table-where │ │ │ ├── fetch-one-explicit-select-clause │ │ │ │ ├── using-candidate-key-duplicate-alias.ts │ │ │ │ ├── using-candidate-key.ts │ │ │ │ ├── using-primary-key-duplicate-alias.ts │ │ │ │ ├── using-primary-key.ts │ │ │ │ ├── using-super-key-duplicate-alias.ts │ │ │ │ ├── using-super-key.ts │ │ │ │ ├── where-duplicate-alias.ts │ │ │ │ └── where.ts │ │ │ ├── fetch-one-implicit-select-clause │ │ │ │ ├── using-candidate-key.ts │ │ │ │ ├── using-primary-key-custom-data-type-set-id.ts │ │ │ │ ├── using-primary-key-custom-data-type.ts │ │ │ │ ├── using-primary-key.ts │ │ │ │ ├── using-super-key.ts │ │ │ │ └── where.ts │ │ │ ├── fetch-one-or-explicit-select-clause │ │ │ │ ├── using-candidate-key-duplicate-alias.ts │ │ │ │ ├── using-candidate-key.ts │ │ │ │ ├── using-primary-key-duplicate-alias.ts │ │ │ │ ├── using-primary-key.ts │ │ │ │ ├── using-super-key-duplicate-alias.ts │ │ │ │ ├── using-super-key.ts │ │ │ │ ├── where-duplicate-alias.ts │ │ │ │ └── where.ts │ │ │ ├── fetch-one-or-implicit-select-clause │ │ │ │ ├── using-candidate-key.ts │ │ │ │ ├── using-primary-key-custom-data-type-set-id.ts │ │ │ │ ├── using-primary-key-custom-data-type.ts │ │ │ │ ├── using-primary-key.ts │ │ │ │ ├── using-super-key.ts │ │ │ │ └── where.ts │ │ │ ├── fetch-one-or-undefined-explicit-select-clause │ │ │ │ ├── using-candidate-key-duplicate-alias.ts │ │ │ │ ├── using-candidate-key.ts │ │ │ │ ├── using-primary-key-duplicate-alias.ts │ │ │ │ ├── using-primary-key.ts │ │ │ │ ├── using-super-key-duplicate-alias.ts │ │ │ │ ├── using-super-key.ts │ │ │ │ ├── where-duplicate-alias.ts │ │ │ │ └── where.ts │ │ │ └── fetch-one-or-undefined-implicit-select-clause │ │ │ │ ├── using-candidate-key.ts │ │ │ │ ├── using-primary-key-custom-data-type-set-id.ts │ │ │ │ ├── using-primary-key-custom-data-type.ts │ │ │ │ ├── using-primary-key.ts │ │ │ │ ├── using-super-key.ts │ │ │ │ └── where.ts │ │ ├── table │ │ │ ├── add-columns-from-mapper-map │ │ │ │ ├── duplicate-column-alias-10.ts │ │ │ │ ├── duplicate-column-alias-11.ts │ │ │ │ ├── duplicate-column-alias-2.ts │ │ │ │ ├── duplicate-column-alias-3.ts │ │ │ │ ├── duplicate-column-alias-4.ts │ │ │ │ ├── duplicate-column-alias-5.ts │ │ │ │ ├── duplicate-column-alias-6.ts │ │ │ │ ├── duplicate-column-alias-7.ts │ │ │ │ ├── duplicate-column-alias-8.ts │ │ │ │ ├── duplicate-column-alias-9.ts │ │ │ │ ├── duplicate-column-alias-to-built-in-expr-2.ts │ │ │ │ ├── duplicate-column-alias-to-built-in-expr.ts │ │ │ │ ├── duplicate-column-alias-tpt-2.ts │ │ │ │ ├── duplicate-column-alias-tpt.ts │ │ │ │ ├── duplicate-column-alias.ts │ │ │ │ └── index.ts │ │ │ ├── assert-has-candidate-key │ │ │ │ ├── has-candidate-key.ts │ │ │ │ └── no-candidate-key.ts │ │ │ ├── double-quote-in-table-alias.sql │ │ │ ├── double-quote-in-table-alias.ts │ │ │ ├── is-implicit-auto-increment │ │ │ │ ├── is-explicit.ts │ │ │ │ └── is-implicit.ts │ │ │ ├── update-and-fetch-one-by-candidate-key │ │ │ │ ├── custom-data-type-candidate-key-3.ts │ │ │ │ ├── custom-data-type-candidate-key-4-does-not-exist.ts │ │ │ │ └── custom-data-type-candidate-key-4.ts │ │ │ ├── update-and-fetch-one-by-primary-key │ │ │ │ ├── custom-data-type-primary-key-3.ts │ │ │ │ ├── custom-data-type-primary-key-4-does-not-exist.ts │ │ │ │ └── custom-data-type-primary-key-4.ts │ │ │ ├── update-and-fetch-one-by-super-key │ │ │ │ ├── custom-data-type-super-key-3.ts │ │ │ │ ├── custom-data-type-super-key-4-does-not-exist.ts │ │ │ │ ├── custom-data-type-super-key-4.ts │ │ │ │ ├── custom-data-type-super-key-7.ts │ │ │ │ ├── custom-data-type-super-key-8-does-not-exist.ts │ │ │ │ └── custom-data-type-super-key-8.ts │ │ │ ├── update-and-fetch-zero-or-one-by-candidate-key │ │ │ │ ├── custom-data-type-candidate-key-4-does-not-exist.ts │ │ │ │ └── custom-data-type-candidate-key-4.ts │ │ │ ├── update-and-fetch-zero-or-one-by-primary-key │ │ │ │ ├── custom-data-type-primary-key-4-does-not-exist.ts │ │ │ │ └── custom-data-type-primary-key-4.ts │ │ │ └── update-and-fetch-zero-or-one-by-super-key │ │ │ │ ├── custom-data-type-super-key-4-does-not-exist.ts │ │ │ │ ├── custom-data-type-super-key-4.ts │ │ │ │ ├── custom-data-type-super-key-5-does-not-exist.ts │ │ │ │ └── custom-data-type-super-key-5.ts │ │ ├── tsconfig.json │ │ └── typings │ │ │ └── sql.js.d.ts │ ├── runner.ts │ ├── tape-stream.ts │ ├── tsconfig.json │ └── util.ts ├── sqlite-sqlfier.ts ├── tsconfig.json └── util.ts ├── tsconfig-base.json ├── tsconfig.json └── unified-test ├── .eslintrc.js ├── index.ts ├── input ├── __hello-world │ └── hello-world.ts ├── _from-ununified │ ├── dt-point.ts │ ├── query │ │ ├── as │ │ │ ├── can-be-used-as-expr-2.ts │ │ │ ├── can-be-used-as-expr.ts │ │ │ └── can-be-used-in-join.ts │ │ ├── assert-exists │ │ │ ├── after-select-after-from.ts │ │ │ ├── after-select-before-from.ts │ │ │ └── before-select-after-from.ts │ │ ├── compound-query-order-by │ │ │ └── basic.ts │ │ ├── count-with-compound-query-clause │ │ │ ├── higher-compound-query-limit.ts │ │ │ ├── higher-limit.ts │ │ │ ├── lower-compound-query-limit.ts │ │ │ ├── lower-limit.ts │ │ │ └── no-limit.ts │ │ ├── count │ │ │ ├── after-select-clause-higher-compound-query-limit.ts │ │ │ ├── after-select-clause-higher-limit.ts │ │ │ ├── after-select-clause-inner-join-2.ts │ │ │ ├── after-select-clause-lower-compound-query-limit.ts │ │ │ ├── after-select-clause-lower-limit.ts │ │ │ ├── before-from-clause-after-select-clause.ts │ │ │ ├── before-from-clause-before-select-clause.ts │ │ │ ├── before-select-clause-higher-compound-query-limit.ts │ │ │ ├── before-select-clause-higher-limit.ts │ │ │ ├── before-select-clause-inner-join-2.ts │ │ │ ├── before-select-clause-lower-compound-query-limit.ts │ │ │ └── before-select-clause-lower-limit.ts │ │ ├── distinct │ │ │ └── basic.ts │ │ ├── emulated-cursor │ │ │ ├── basic.ts │ │ │ ├── buffer-larger-than-table.ts │ │ │ ├── negative-row-offset-ignored.ts │ │ │ ├── page-offset-row-offset.ts │ │ │ ├── page-offset.ts │ │ │ ├── row-offset-and-buffer-larger-than-table.ts │ │ │ ├── row-offset-larger-than-buffer.ts │ │ │ ├── row-offset-larger-than-table.ts │ │ │ └── row-offset.ts │ │ ├── exists │ │ │ ├── after-select-after-from.ts │ │ │ ├── after-select-before-from.ts │ │ │ └── before-select-after-from.ts │ │ ├── fetch-all-mapped │ │ │ ├── basic.ts │ │ │ ├── compose-2.ts │ │ │ ├── compose.ts │ │ │ ├── nested-select-statement.ts │ │ │ ├── promise-basic.ts │ │ │ ├── promise-compose-2.ts │ │ │ └── promise-compose.ts │ │ ├── fetch-all-unmapped-flattened │ │ │ ├── basic.ts │ │ │ ├── ignore-map-delegate.ts │ │ │ ├── inner-join-2.ts │ │ │ ├── inner-join-ignore-other-table.ts │ │ │ ├── inner-join-with-alias.ts │ │ │ ├── inner-join.ts │ │ │ ├── left-join-2.ts │ │ │ └── left-join.ts │ │ ├── fetch-all-unmapped │ │ │ ├── basic.ts │ │ │ ├── ignore-map-delegate.ts │ │ │ ├── inner-join-2.ts │ │ │ ├── inner-join-ignore-other-table.ts │ │ │ ├── inner-join-with-alias.ts │ │ │ ├── inner-join.ts │ │ │ ├── left-join-2.ts │ │ │ └── left-join.ts │ │ ├── fetch-all-with-map-delegate │ │ │ ├── basic.ts │ │ │ ├── compose-2.ts │ │ │ ├── compose.ts │ │ │ ├── promise-basic.ts │ │ │ ├── promise-compose-2.ts │ │ │ └── promise-compose.ts │ │ └── fetch-all-without-map-delegate │ │ │ ├── basic.ts │ │ │ ├── inner-join-2.ts │ │ │ ├── inner-join-aliased-2.ts │ │ │ ├── inner-join-aliased-3.ts │ │ │ ├── inner-join-aliased-4.ts │ │ │ ├── inner-join-aliased.ts │ │ │ ├── inner-join-ignore-other-table.ts │ │ │ ├── inner-join-order-by-query-asc.ts │ │ │ ├── inner-join-order-by-query-desc.ts │ │ │ ├── inner-join-order-by-query-sort.ts │ │ │ ├── inner-join-with-alias.ts │ │ │ ├── inner-join.ts │ │ │ ├── left-join-2.ts │ │ │ └── left-join.ts │ └── table │ │ ├── assert-exists-by-candidate-key │ │ └── basic.ts │ │ ├── assert-exists-by-primary-key │ │ └── basic.ts │ │ ├── assert-exists-by-super-key │ │ └── basic.ts │ │ ├── assert-exists │ │ └── basic.ts │ │ ├── delete-one-by-candidate-key │ │ ├── many.ts │ │ ├── one.ts │ │ └── zero.ts │ │ ├── delete-one-by-primary-key │ │ ├── many.ts │ │ ├── one.ts │ │ └── zero.ts │ │ ├── delete-one-by-super-key │ │ ├── many.ts │ │ ├── one.ts │ │ └── zero.ts │ │ ├── delete-one │ │ ├── delete-by-pk.ts │ │ ├── delete-many-rows.ts │ │ └── delete-zero-rows.ts │ │ ├── delete-zero-or-one-by-candidate-key │ │ ├── many.ts │ │ ├── one.ts │ │ └── zero.ts │ │ ├── delete-zero-or-one-by-primary-key │ │ ├── many.ts │ │ ├── one.ts │ │ └── zero.ts │ │ ├── delete-zero-or-one-by-super-key │ │ ├── many.ts │ │ ├── one.ts │ │ └── zero.ts │ │ ├── delete-zero-or-one │ │ ├── delete-by-pk.ts │ │ ├── delete-many-rows.ts │ │ └── delete-zero-rows.ts │ │ ├── delete │ │ ├── delete-by-pk.ts │ │ ├── delete-disabled.ts │ │ ├── delete-many-rows.ts │ │ └── delete-zero-rows.ts │ │ ├── exists-by-candidate-key │ │ └── basic.ts │ │ ├── exists-by-primary-key │ │ └── basic.ts │ │ ├── exists-by-super-key │ │ └── basic.ts │ │ ├── exists │ │ └── basic.ts │ │ ├── fetch-one-by-candidate-key │ │ ├── duplicate-alias.ts │ │ ├── explicit-select-clause.ts │ │ └── implicit-select-clause.ts │ │ ├── fetch-one-by-primary-key │ │ ├── duplicate-alias.ts │ │ ├── explicit-select-clause.ts │ │ ├── implicit-select-clause-custom-data-type-set-id.ts │ │ ├── implicit-select-clause-custom-data-type.ts │ │ └── implicit-select-clause.ts │ │ ├── fetch-one-by-super-key │ │ ├── duplicate-alias.ts │ │ ├── explicit-select-clause.ts │ │ └── implicit-select-clause.ts │ │ ├── fetch-one-or-by-candidate-key │ │ ├── duplicate-alias.ts │ │ ├── explicit-select-clause.ts │ │ └── implicit-select-clause.ts │ │ ├── fetch-one-or-by-primary-key │ │ ├── duplicate-alias.ts │ │ ├── explicit-select-clause.ts │ │ └── implicit-select-clause.ts │ │ ├── fetch-one-or-by-super-key │ │ ├── duplicate-alias.ts │ │ ├── explicit-select-clause.ts │ │ └── implicit-select-clause.ts │ │ ├── fetch-one-or-undefined │ │ ├── no-select-delegate.ts │ │ ├── with-select-delegate-and-duplicate-alias.ts │ │ └── with-select-delegate.ts │ │ ├── fetch-one-or │ │ ├── no-select-delegate.ts │ │ ├── with-select-delegate-and-duplicate-alias.ts │ │ └── with-select-delegate.ts │ │ ├── fetch-one │ │ ├── no-select-delegate.ts │ │ ├── with-select-delegate-and-duplicate-alias.ts │ │ └── with-select-delegate.ts │ │ ├── fetch-value-by-candidate-key │ │ └── explicit-select-clause.ts │ │ ├── fetch-value-by-primary-key │ │ └── explicit-select-clause.ts │ │ ├── fetch-value-by-super-key │ │ └── explicit-select-clause.ts │ │ ├── fetch-value-or-undefined │ │ └── with-select-delegate.ts │ │ ├── fetch-value-or │ │ └── with-select-delegate.ts │ │ ├── fetch-value │ │ └── with-select-delegate.ts │ │ ├── insert-and-fetch │ │ ├── auto-increment-generated-explicit-value-is-ignored.ts │ │ ├── auto-increment-generated-implicit-value.ts │ │ ├── auto-increment-non-generated-explicit-non-deterministic-expression.ts │ │ ├── auto-increment-non-generated-explicit-non-primitive-value-leads-to-error.ts │ │ ├── auto-increment-non-generated-explicit-value-2.ts │ │ ├── auto-increment-non-generated-explicit-value.ts │ │ ├── auto-increment-non-generated-implicit-value.ts │ │ ├── basic.ts │ │ ├── candidate-key-generated-2.ts │ │ ├── candidate-key-generated-3.ts │ │ ├── candidate-key-generated.ts │ │ ├── custom-data-type-candidate-key.ts │ │ ├── custom-data-type.ts │ │ ├── empty-insert-auto-increment.ts │ │ ├── empty-insert.ts │ │ ├── insert-candidate-key-expr.ts │ │ ├── insert-candidate-key-non-deterministic-expr.ts │ │ ├── insert-disabled.ts │ │ ├── promise-all.ts │ │ └── remove-generated.ts │ │ ├── insert-ignore-many │ │ ├── auto-increment-explicit-value-non-primitive.ts │ │ ├── auto-increment-explicit-value.ts │ │ ├── auto-increment-generated-explicit-value-is-ignored.ts │ │ ├── auto-increment.ts │ │ ├── basic.ts │ │ ├── default-value.ts │ │ ├── insert-disabled.ts │ │ ├── no-default-value-but-lie-about-it.ts.todo │ │ ├── nullable.ts │ │ ├── partial-ignore-basic.ts │ │ ├── partial-ignore-multi-constraint.ts │ │ └── zero.ts │ │ ├── insert-ignore-one │ │ ├── auto-increment-generated-explicit-value-is-ignored.ts │ │ ├── auto-increment-generated-implicit-value.ts │ │ ├── auto-increment-non-generated-explicit-non-primitive-value-leads-to-error.ts │ │ ├── auto-increment-non-generated-explicit-value.ts │ │ ├── auto-increment-non-generated-implicit-value.ts │ │ ├── basic.ts │ │ ├── empty-insert-auto-increment.ts │ │ ├── empty-insert.ts │ │ ├── ignored-auto-increment-generated-explicit-value-is-ignored.ts │ │ ├── ignored-auto-increment-non-generated-explicit-non-primitive-value-leads-to-error.ts │ │ ├── ignored-auto-increment-non-generated-explicit-value.ts │ │ ├── ignored-basic.ts │ │ ├── ignored-empty-insert-auto-increment.ts │ │ ├── ignored-empty-insert.ts │ │ ├── ignored-insert-disabled.ts │ │ ├── ignored-multi-constraint-auto-increment-generated.ts │ │ ├── ignored-multi-constraint.ts │ │ ├── insert-disabled.ts │ │ └── promise-all.ts │ │ ├── insert-many │ │ ├── auto-increment-explicit-value-non-primitive.ts │ │ ├── auto-increment-explicit-value.ts │ │ ├── auto-increment-generated-explicit-value-is-ignored.ts │ │ ├── auto-increment.ts │ │ ├── basic.ts │ │ ├── default-value.ts │ │ ├── insert-disabled.ts │ │ ├── no-default-value-but-lie-about-it.ts │ │ ├── nullable.ts │ │ └── zero.ts │ │ ├── insert-one │ │ ├── auto-increment-generated-explicit-value-is-ignored.ts │ │ ├── auto-increment-generated-implicit-value.ts │ │ ├── auto-increment-non-generated-explicit-non-deterministic-expression.ts │ │ ├── auto-increment-non-generated-explicit-non-primitive-value-leads-to-error.ts │ │ ├── auto-increment-non-generated-explicit-value.ts │ │ ├── auto-increment-non-generated-implicit-value.ts │ │ ├── basic.ts │ │ ├── empty-insert-auto-increment.ts │ │ ├── empty-insert.ts │ │ ├── from-table.ts │ │ ├── insert-disabled.ts │ │ ├── promise-all.ts │ │ ├── remove-explicit-default-value-2.ts │ │ ├── remove-explicit-default-value.ts │ │ └── set-table-alias.ts │ │ ├── replace-many │ │ ├── multi-constraint.ts │ │ └── zero.ts │ │ ├── replace-one │ │ ├── auto-increment-generated-explicit-value-is-ignored.ts │ │ ├── auto-increment-generated-implicit-value.ts │ │ ├── auto-increment-non-generated-explicit-non-deterministic-expression.ts │ │ ├── auto-increment-non-generated-explicit-non-primitive-value-leads-to-error.ts │ │ ├── auto-increment-non-generated-explicit-value.ts │ │ ├── auto-increment-non-generated-implicit-value.ts │ │ ├── basic.ts │ │ ├── empty-insert-auto-increment-deleted-multi.ts │ │ ├── empty-insert-auto-increment-deleted-one.ts │ │ ├── empty-insert-auto-increment.ts │ │ ├── empty-insert-replaced.ts │ │ ├── empty-insert.ts │ │ ├── multi-constraint-multi-replace-with-one-row.ts │ │ └── multi-constraint.ts │ │ ├── update-and-fetch-one-by-candidate-key │ │ ├── cannot-update-immutable-candidate-key-column.ts │ │ ├── custom-data-type-candidate-key-2.ts │ │ ├── custom-data-type-candidate-key.ts │ │ ├── update-can-change-candidate-key-to-other-primitive-2.ts │ │ ├── update-can-change-candidate-key-to-other-primitive.ts │ │ ├── update-cannot-change-candidate-key-to-non-primitive.ts │ │ ├── update-one-from-non-null-to-null.ts │ │ ├── update-one-from-null-to-non-null.ts │ │ └── zero.ts │ │ ├── update-and-fetch-one-by-primary-key │ │ ├── cannot-update-immutable-primary-key-column.ts │ │ ├── custom-data-type-primary-key-2.ts │ │ ├── custom-data-type-primary-key.ts │ │ ├── update-can-change-primary-key-to-other-primitive-2.ts │ │ ├── update-can-change-primary-key-to-other-primitive.ts │ │ ├── update-cannot-change-primary-key-to-non-primitive.ts │ │ ├── update-one-from-non-null-to-null-use-data-type.ts │ │ ├── update-one-from-non-null-to-null.ts │ │ └── update-one-from-null-to-non-null.ts │ │ ├── update-and-fetch-one-by-super-key │ │ ├── cannot-update-immutable-super-key-column.ts │ │ ├── custom-data-type-super-key-2.ts │ │ ├── custom-data-type-super-key-5.ts │ │ ├── custom-data-type-super-key-6.ts │ │ ├── custom-data-type-super-key.ts │ │ ├── update-can-change-super-key-to-other-primitive-2.ts │ │ ├── update-can-change-super-key-to-other-primitive-3.ts │ │ ├── update-can-change-super-key-to-other-primitive.ts │ │ ├── update-cannot-change-super-key-to-non-primitive-2.ts │ │ ├── update-cannot-change-super-key-to-non-primitive.ts │ │ ├── update-one-from-non-null-to-null.ts │ │ └── update-one-from-null-to-non-null.ts │ │ ├── update-and-fetch-zero-or-one-by-candidate-key │ │ ├── update-can-change-candidate-key-to-other-primitive-2.ts │ │ ├── update-can-change-candidate-key-to-other-primitive.ts │ │ ├── update-cannot-change-candidate-key-to-non-primitive.ts │ │ ├── update-one-from-non-null-to-null.ts │ │ ├── update-one-from-null-to-non-null.ts │ │ └── zero.ts │ │ ├── update-and-fetch-zero-or-one-by-primary-key │ │ ├── update-can-change-primary-key-to-other-primitive-2.ts │ │ ├── update-can-change-primary-key-to-other-primitive.ts │ │ ├── update-cannot-change-primary-key-to-non-primitive.ts │ │ ├── update-one-from-non-null-to-null.ts │ │ ├── update-one-from-null-to-non-null.ts │ │ └── zero.ts │ │ ├── update-and-fetch-zero-or-one-by-super-key │ │ ├── update-can-change-super-key-to-other-primitive-2.ts │ │ ├── update-can-change-super-key-to-other-primitive-3.ts │ │ ├── update-can-change-super-key-to-other-primitive.ts │ │ ├── update-cannot-change-super-key-to-non-primitive-2.ts │ │ ├── update-cannot-change-super-key-to-non-primitive.ts │ │ ├── update-one-from-non-null-to-null.ts │ │ ├── update-one-from-null-to-non-null.ts │ │ └── zero.ts │ │ ├── update-one-by-candidate-key │ │ ├── many.ts │ │ ├── one.ts │ │ └── zero.ts │ │ ├── update-one-by-primary-key │ │ ├── many.ts │ │ ├── one.ts │ │ └── zero.ts │ │ ├── update-one-by-super-key │ │ ├── many.ts │ │ ├── one.ts │ │ └── zero.ts │ │ ├── update-one │ │ ├── empty-assignment-list.ts │ │ ├── no-op-assignment.ts │ │ ├── remove-mutable.ts │ │ ├── update-by-pk.ts │ │ ├── update-many.ts │ │ └── update-zero.ts │ │ ├── update-zero-or-one-by-candidate-key │ │ ├── many.ts │ │ ├── one.ts │ │ └── zero.ts │ │ ├── update-zero-or-one-by-primary-key │ │ ├── many.ts │ │ ├── one.ts │ │ └── zero.ts │ │ ├── update-zero-or-one-by-super-key │ │ ├── many.ts │ │ ├── one.ts │ │ └── zero.ts │ │ ├── update-zero-or-one │ │ ├── empty-assignment-list.ts │ │ ├── no-op-assignment.ts │ │ ├── update-by-pk.ts │ │ ├── update-many.ts │ │ └── update-zero.ts │ │ └── update │ │ ├── empty-assignment-list.ts │ │ ├── no-op-assignment.ts │ │ ├── non-mutable.ts │ │ ├── update-by-pk.ts │ │ ├── update-many-2.ts │ │ ├── update-many.ts │ │ └── update-zero.ts ├── column │ └── as │ │ ├── basic.ts │ │ └── derived-table.ts ├── derived-table-select-item │ └── as │ │ ├── asc-after.ts │ │ └── desc-after.ts ├── expr-library │ ├── aggregate │ │ ├── count-all │ │ │ ├── all-non-null.ts │ │ │ ├── all-null.ts │ │ │ ├── empty-table.ts │ │ │ ├── mix-null.ts │ │ │ └── no-from-clause.ts │ │ ├── count-expr-all │ │ │ ├── all-non-null-count-column.ts │ │ │ ├── all-non-null-count-non-null-constant.ts │ │ │ ├── all-non-null-count-null.ts │ │ │ ├── all-null-count-column.ts │ │ │ ├── all-null-count-non-null-constant.ts │ │ │ ├── all-null-count-null.ts │ │ │ ├── empty-table-count-column.ts │ │ │ ├── empty-table-count-non-null-constant.ts │ │ │ ├── empty-table-count-null.ts │ │ │ ├── mix-null-count-column.ts │ │ │ ├── mix-null-count-non-null-constant.ts │ │ │ ├── mix-null-count-null.ts │ │ │ ├── no-from-clause-non-null.ts │ │ │ └── no-from-clause-null.ts │ │ └── count-expr-distinct │ │ │ ├── all-non-null-count-column.ts │ │ │ ├── all-non-null-count-non-null-constant.ts │ │ │ ├── all-non-null-count-null.ts │ │ │ ├── all-null-count-column.ts │ │ │ ├── all-null-count-non-null-constant.ts │ │ │ ├── all-null-count-null.ts │ │ │ ├── empty-table-count-column.ts │ │ │ ├── empty-table-count-non-null-constant.ts │ │ │ ├── empty-table-count-null.ts │ │ │ ├── mix-null-count-column.ts │ │ │ ├── mix-null-count-non-null-constant.ts │ │ │ ├── mix-null-count-null.ts │ │ │ ├── no-from-clause-non-null.ts │ │ │ └── no-from-clause-null.ts │ ├── assert │ │ └── throw-if-null │ │ │ └── basic.ts │ ├── cast │ │ ├── bigint-signed-literal │ │ │ ├── from-number.ts │ │ │ └── from-string.ts │ │ ├── unsafe-cast-as-bigint-signed │ │ │ └── basic.ts │ │ ├── unsafe-cast-as-binary │ │ │ └── basic.ts │ │ ├── unsafe-cast-as-double │ │ │ └── basic.ts │ │ ├── unsafe-cast-as-json │ │ │ └── basic.ts │ │ └── unsafe-cast-as-varchar │ │ │ └── basic.ts │ ├── comparison │ │ ├── between │ │ │ └── double.ts │ │ ├── greatest │ │ │ └── double.ts │ │ ├── gt-eq │ │ │ └── double.ts │ │ ├── gt │ │ │ └── double.ts │ │ ├── least │ │ │ └── double.ts │ │ ├── lt-eq │ │ │ └── double.ts │ │ ├── lt │ │ │ └── double.ts │ │ └── not-between │ │ │ └── double.ts │ ├── control-flow │ │ ├── case-condition │ │ │ ├── constant-no-else-1.ts │ │ │ ├── constant-no-else-2.ts │ │ │ ├── constant-no-else-3.ts │ │ │ ├── constant-with-else-1.ts │ │ │ ├── constant-with-else-2.ts │ │ │ └── constant-with-else-3.ts │ │ ├── case-value │ │ │ ├── constant-no-else-1.ts │ │ │ ├── constant-no-else-2.ts │ │ │ ├── constant-no-else-3.ts │ │ │ ├── constant-no-else-4.ts │ │ │ ├── constant-with-else-1.ts │ │ │ ├── constant-with-else-2.ts │ │ │ ├── constant-with-else-3.ts │ │ │ └── constant-with-else-4.ts │ │ ├── coalesce │ │ │ ├── arg-0.ts │ │ │ ├── arg-1-0.ts │ │ │ ├── arg-1-1.ts │ │ │ ├── arg-2-00.ts │ │ │ ├── arg-2-01.ts │ │ │ ├── arg-2-10.ts │ │ │ ├── arg-2-11.ts │ │ │ ├── arg-3-000.ts │ │ │ ├── arg-3-001.ts │ │ │ ├── arg-3-010.ts │ │ │ ├── arg-3-011.ts │ │ │ ├── arg-3-100.ts │ │ │ ├── arg-3-101.ts │ │ │ ├── arg-3-110.ts │ │ │ ├── arg-3-111.ts │ │ │ └── double.ts │ │ ├── if-is-null │ │ │ └── basic.ts │ │ ├── if-null │ │ │ └── double.ts │ │ ├── if │ │ │ └── double.ts │ │ └── null-if-equal │ │ │ └── double.ts │ ├── date-time │ │ ├── current-date │ │ │ └── basic.ts │ │ ├── current-timestamp-0 │ │ │ └── basic.ts │ │ ├── current-timestamp-1 │ │ │ └── basic.ts │ │ ├── current-timestamp-2 │ │ │ └── basic.ts │ │ ├── current-timestamp-3 │ │ │ └── basic.ts │ │ ├── extract-day │ │ │ └── basic.ts │ │ ├── extract-fractional-second-3 │ │ │ └── basic.ts │ │ ├── extract-hour │ │ │ └── basic.ts │ │ ├── extract-integer-second │ │ │ └── basic.ts │ │ ├── extract-minute │ │ │ └── basic.ts │ │ ├── extract-month │ │ │ └── basic.ts │ │ ├── extract-year │ │ │ └── basic.ts │ │ ├── last-day │ │ │ └── basic.ts │ │ ├── timestamp-add-day │ │ │ ├── basic.ts │ │ │ ├── overflow-negative.ts.todo │ │ │ └── overflow-positive.ts │ │ ├── timestamp-add-hour │ │ │ ├── basic.ts │ │ │ ├── overflow-negative.ts.todo │ │ │ └── overflow-positive.ts │ │ ├── timestamp-add-millisecond │ │ │ ├── basic.ts │ │ │ ├── overflow-negative.ts.todo │ │ │ └── overflow-positive.ts │ │ ├── timestamp-add-minute │ │ │ ├── basic.ts │ │ │ ├── overflow-negative.ts.todo │ │ │ └── overflow-positive.ts │ │ ├── timestamp-add-month │ │ │ ├── basic-1.ts │ │ │ ├── basic-31.ts │ │ │ ├── max-date-time.ts │ │ │ ├── min-date-time.ts │ │ │ ├── mysql-add-months.ts │ │ │ ├── no-need-to-normalize-day-of-month.ts │ │ │ ├── overflow-negative.ts │ │ │ └── overflow-positive.ts │ │ ├── timestamp-add-second │ │ │ ├── basic.ts │ │ │ ├── overflow-negative.ts.todo │ │ │ └── overflow-positive.ts │ │ ├── timestamp-add-year │ │ │ ├── basic.ts │ │ │ ├── overflow-negative.ts │ │ │ └── overflow-positive.ts │ │ ├── timestamp-diff-day │ │ │ └── basic.ts │ │ ├── timestamp-diff-hour │ │ │ └── basic.ts │ │ ├── timestamp-diff-millisecond │ │ │ ├── basic.ts │ │ │ └── largest-diff.ts │ │ ├── timestamp-diff-minute │ │ │ └── basic.ts │ │ ├── timestamp-diff-second │ │ │ ├── basic.ts │ │ │ └── largest-diff.ts │ │ ├── unix-timestamp-now │ │ │ └── basic.ts │ │ └── utc-string-to-timestamp │ │ │ ├── beyond-y2038-date-only.ts │ │ │ ├── beyond-y2038-date-time.ts │ │ │ ├── double-digit-year.ts │ │ │ ├── invalid-date-time-string.ts │ │ │ ├── single-digit-year.ts │ │ │ └── year-zero.ts.deprecated │ ├── double │ │ ├── abs │ │ │ ├── basic.ts │ │ │ ├── infinity.ts │ │ │ ├── nan.ts │ │ │ └── neg-infinity.ts │ │ ├── acos │ │ │ ├── basic.ts │ │ │ └── not-in-domain.ts │ │ ├── add │ │ │ ├── 2-operand.ts │ │ │ ├── 3-operand.ts │ │ │ ├── nan.ts │ │ │ ├── overflow-negative.ts │ │ │ └── overflow-positive.ts │ │ ├── aggregate │ │ │ ├── avg-all │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ └── mix-null.ts │ │ │ ├── avg-distinct │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ └── mix-null.ts │ │ │ ├── max │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ └── mix-null.ts │ │ │ ├── min │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ └── mix-null.ts │ │ │ ├── stddev-pop │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ ├── mix-null.ts │ │ │ │ └── stddev-pop.ts │ │ │ ├── stddev-samp │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ ├── mix-null.ts │ │ │ │ └── stddev-pop.ts │ │ │ ├── sum-all │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ └── mix-null.ts │ │ │ ├── sum-distinct │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ └── mix-null.ts │ │ │ ├── var-pop │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ ├── mix-null.ts │ │ │ │ └── stddev-pop.ts │ │ │ └── var-samp │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ ├── mix-null.ts │ │ │ │ └── stddev-pop.ts │ │ ├── asin │ │ │ ├── basic.ts │ │ │ └── not-in-domain.ts │ │ ├── atan │ │ │ ├── basic.ts │ │ │ ├── infinity.ts │ │ │ └── neg-infinity.ts │ │ ├── atan2 │ │ │ ├── basic.ts │ │ │ └── infinities.ts │ │ ├── cbrt │ │ │ ├── basic.ts │ │ │ └── infinities.ts │ │ ├── ceiling │ │ │ ├── basic.ts │ │ │ └── infinities.ts │ │ ├── cos │ │ │ ├── basic.ts │ │ │ └── infinities.ts │ │ ├── cot │ │ │ ├── basic.ts │ │ │ ├── infinities.ts │ │ │ └── not-in-domain.ts │ │ ├── degrees │ │ │ ├── basic.ts │ │ │ ├── infinities.ts │ │ │ ├── result-infinity.ts │ │ │ └── result-neg-infinity.ts │ │ ├── exp │ │ │ ├── basic.ts │ │ │ └── infinities.ts │ │ ├── floor │ │ │ ├── basic.ts │ │ │ └── infinities.ts │ │ ├── fractional-div │ │ │ ├── basic.ts │ │ │ ├── divide-by-zero.ts │ │ │ ├── infinities.ts │ │ │ ├── result-infinity.ts │ │ │ └── result-neg-infinity.ts │ │ ├── fractional-remainder │ │ │ ├── basic.ts │ │ │ ├── divide-by-zero.ts │ │ │ ├── infinities.ts │ │ │ ├── result-infinity.ts │ │ │ └── result-neg-infinity.ts │ │ ├── integer-div │ │ │ ├── basic.ts.deprecated │ │ │ └── divide-by-zero.ts.deprecated │ │ ├── ln │ │ │ ├── infinity.ts │ │ │ ├── neg-infinity.ts │ │ │ ├── negative.ts │ │ │ ├── positive.ts │ │ │ └── zero.ts │ │ ├── log │ │ │ ├── 1-base-1-antilog.ts │ │ │ ├── 1-base-negative-antilog.ts │ │ │ ├── 1-base-positive-antilog.ts │ │ │ ├── 1-base-zero-antilog.ts │ │ │ ├── negative-base-1-antilog.ts │ │ │ ├── negative-base-negative-antilog.ts │ │ │ ├── negative-base-positive-antilog.ts │ │ │ ├── negative-base-zero-antilog.ts │ │ │ ├── positive-base-1-antilog.ts │ │ │ ├── positive-base-negative-antilog.ts │ │ │ ├── positive-base-positive-antilog.ts │ │ │ ├── positive-base-zero-antilog.ts │ │ │ ├── zero-base-1-antilog.ts │ │ │ ├── zero-base-negative-antilog.ts │ │ │ ├── zero-base-positive-antilog.ts │ │ │ └── zero-base-zero-antilog.ts │ │ ├── log10 │ │ │ ├── infinity.ts │ │ │ ├── neg-infinity.ts │ │ │ ├── negative.ts │ │ │ ├── positive.ts │ │ │ └── zero.ts │ │ ├── log2 │ │ │ ├── infinity.ts │ │ │ ├── neg-infinity.ts │ │ │ ├── negative.ts │ │ │ ├── positive.ts │ │ │ └── zero.ts │ │ ├── mul │ │ │ ├── 2-operand.ts │ │ │ ├── 3-operand.ts │ │ │ ├── infinities.ts │ │ │ ├── nan.ts │ │ │ ├── overflow-negative.ts │ │ │ └── overflow-positive.ts │ │ ├── neg │ │ │ ├── basic.ts │ │ │ └── infinities.ts │ │ ├── pi │ │ │ └── basic.ts │ │ ├── power │ │ │ ├── neg-infinity-base.ts │ │ │ ├── negative-base-fractional-exponent.ts │ │ │ ├── non-zero-base-integer-exponent.ts │ │ │ ├── positive-base-fractional-exponent.ts │ │ │ ├── positive-infinity-base.ts │ │ │ ├── zero-base-negative-exponent.ts │ │ │ ├── zero-base-positive-exponent.ts │ │ │ └── zero-base-zero-exponent.ts │ │ ├── radians │ │ │ ├── 1e308.ts │ │ │ ├── basic.ts │ │ │ ├── infinities.ts │ │ │ └── neg-1e308.ts │ │ ├── random │ │ │ └── basic.ts │ │ ├── round │ │ │ ├── basic.ts.deprecated │ │ │ └── infinities.ts.deprecated │ │ ├── sign │ │ │ ├── basic.ts │ │ │ └── infinities.ts │ │ ├── sin │ │ │ ├── basic.ts │ │ │ └── infinities.ts │ │ ├── sqrt │ │ │ ├── infinity.ts │ │ │ ├── neg-infinity.ts │ │ │ ├── negative.ts │ │ │ └── non-negative.ts │ │ ├── sub │ │ │ ├── 2-operand.ts │ │ │ ├── nan.ts │ │ │ ├── overflow-negative.ts │ │ │ └── overflow-positive.ts │ │ └── tan │ │ │ ├── basic.ts │ │ │ └── infinities.ts │ ├── equation │ │ ├── eq-primary-key │ │ │ ├── lie-about-pk-match-multi.ts │ │ │ ├── match-one.ts │ │ │ └── match-zero.ts │ │ ├── eq │ │ │ ├── compound-subquery.ts │ │ │ ├── double.ts │ │ │ ├── lie-about-pk-match-multi.ts │ │ │ ├── match-one.ts │ │ │ └── match-zero.ts │ │ ├── in-array │ │ │ ├── double.ts │ │ │ ├── match-multi.ts │ │ │ ├── match-one.ts │ │ │ └── match-zero.ts │ │ ├── in-query │ │ │ ├── double.ts │ │ │ ├── match-multi.ts │ │ │ ├── match-one.ts │ │ │ └── match-zero.ts │ │ ├── not-eq │ │ │ ├── double.ts │ │ │ ├── match-multi.ts │ │ │ ├── match-one.ts │ │ │ └── match-zero.ts │ │ ├── not-in-array │ │ │ ├── double.ts │ │ │ ├── match-multi.ts │ │ │ ├── match-one.ts │ │ │ └── match-zero.ts │ │ └── not-in-query │ │ │ ├── double.ts │ │ │ ├── match-multi.ts │ │ │ ├── match-one.ts │ │ │ └── match-zero.ts │ ├── information │ │ ├── current-database │ │ │ └── basic.ts │ │ └── current-user │ │ │ └── basic.ts │ ├── integer │ │ ├── abs │ │ │ ├── negative-idempotent.ts │ │ │ ├── negative.ts │ │ │ ├── overflow.ts │ │ │ ├── positive.ts │ │ │ └── zero.ts │ │ ├── add │ │ │ ├── 2-operand.ts │ │ │ ├── 3-operand.ts │ │ │ └── overflow.ts │ │ ├── aggregate │ │ │ ├── avg-all │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ └── mix-null.ts │ │ │ ├── avg-distinct │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ └── mix-null.ts │ │ │ ├── max │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ └── mix-null.ts │ │ │ ├── min │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ └── mix-null.ts │ │ │ ├── sum-as-bigint-signed-all │ │ │ │ ├── all-non-null-div-2.ts │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ └── mix-null.ts │ │ │ ├── sum-as-bigint-signed-distinct │ │ │ │ ├── all-non-null-div-2.ts │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ └── mix-null.ts │ │ │ ├── sum-as-decimal-all │ │ │ │ ├── all-non-null-div-2.ts │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ └── mix-null.ts │ │ │ └── sum-as-decimal-distinct │ │ │ │ ├── all-non-null-div-2.ts │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ └── mix-null.ts │ │ ├── bitwise │ │ │ ├── bitwise-and │ │ │ │ └── basic.ts │ │ │ ├── bitwise-left-shift │ │ │ │ ├── shift-0-to-64.ts │ │ │ │ ├── shift-65-to-90.ts │ │ │ │ ├── shift-neg-1-to-neg-64.ts.todo │ │ │ │ └── throw-if-negative-rhs.ts │ │ │ ├── bitwise-not │ │ │ │ └── basic.ts │ │ │ ├── bitwise-or │ │ │ │ └── basic.ts │ │ │ ├── bitwise-right-shift │ │ │ │ ├── shift-0-to-64.ts │ │ │ │ ├── shift-65-to-90.ts │ │ │ │ ├── shift-neg-1-to-neg-64.ts.todo │ │ │ │ └── throw-if-negative-rhs.ts │ │ │ └── bitwise-xor │ │ │ │ └── basic.ts │ │ ├── integer-div │ │ │ ├── 2-operand.ts │ │ │ ├── divide-by-zero.ts │ │ │ ├── truncate-fractional-1.ts │ │ │ ├── truncate-fractional-2.ts │ │ │ ├── truncate-fractional-3.ts │ │ │ └── truncate-fractional-4.ts │ │ ├── integer-remainder │ │ │ ├── divide-by-non-zero.ts │ │ │ ├── divide-by-zero.ts │ │ │ ├── large-result-2.ts │ │ │ ├── large-result.ts │ │ │ ├── truncate-fractional-1.ts │ │ │ ├── truncate-fractional-2.ts │ │ │ ├── truncate-fractional-3.ts │ │ │ └── truncate-fractional-4.ts │ │ ├── mul │ │ │ ├── 2-operand.ts │ │ │ ├── 3-operand.ts │ │ │ └── overflow.ts │ │ ├── neg │ │ │ ├── basic.ts │ │ │ ├── overflow-no-column-ref.ts │ │ │ └── overflow-with-column-ref.ts │ │ ├── random-bigint-signed │ │ │ └── basic.ts │ │ ├── sign │ │ │ └── basic.ts │ │ └── sub │ │ │ ├── 2-operand.ts │ │ │ └── overflow.ts │ ├── logical-3 │ │ ├── and-3 │ │ │ └── 2-operand.ts │ │ ├── is-false │ │ │ └── basic.ts │ │ ├── is-not-false │ │ │ └── basic.ts │ │ ├── is-not-true │ │ │ └── basic.ts │ │ ├── is-not-unknown │ │ │ └── basic.ts │ │ ├── is-true │ │ │ └── basic.ts │ │ ├── is-unknown │ │ │ └── basic.ts │ │ ├── not-3 │ │ │ └── basic.ts │ │ ├── or-3 │ │ │ └── 2-operand.ts │ │ └── xor-3 │ │ │ └── 2-operand.ts │ ├── logical │ │ ├── and │ │ │ └── 2-operand.ts │ │ ├── is-not-null-and │ │ │ └── basic.ts │ │ ├── is-null-or │ │ │ └── basic.ts │ │ ├── not │ │ │ └── basic.ts │ │ ├── or │ │ │ └── 2-operand.ts │ │ └── xor │ │ │ └── 2-operand.ts │ ├── null-safe-equation │ │ ├── eq-candidate-key-of-table │ │ │ ├── ck-1.ts │ │ │ └── ck-2.ts │ │ ├── eq-candidate-key │ │ │ ├── col-1-match-multi-null.ts │ │ │ ├── col-1-match-one-null.ts │ │ │ ├── col-1-match-one.ts │ │ │ ├── col-1-match-zero-null.ts │ │ │ └── col-1-match-zero.ts │ │ ├── eq-columns │ │ │ ├── col-0-match-multi.ts │ │ │ ├── col-0-match-one.ts │ │ │ ├── col-0-match-zero.ts │ │ │ ├── col-1-match-multi.ts │ │ │ ├── col-1-match-one.ts │ │ │ ├── col-1-match-zero.ts │ │ │ ├── col-2-match-multi.ts │ │ │ ├── col-2-match-one.ts │ │ │ └── col-2-match-zero.ts │ │ ├── eq-primary-key-of-table │ │ │ ├── pk-1.ts │ │ │ └── pk-2.ts │ │ ├── eq-super-key │ │ │ ├── col-1-match-multi-null-super.ts │ │ │ ├── col-1-match-multi-null.ts │ │ │ ├── col-1-match-one-null-super.ts │ │ │ ├── col-1-match-one-null.ts │ │ │ ├── col-1-match-one-super.ts │ │ │ ├── col-1-match-one.ts │ │ │ ├── col-1-match-zero-null-super.ts │ │ │ ├── col-1-match-zero-null.ts │ │ │ ├── col-1-match-zero-super.ts │ │ │ └── col-1-match-zero.ts │ │ ├── is-not-null │ │ │ ├── basic.ts │ │ │ ├── compound-subquery.ts │ │ │ ├── match-multi.ts │ │ │ ├── match-one.ts │ │ │ └── match-zero.ts │ │ ├── is-null │ │ │ ├── basic.ts │ │ │ ├── compound-subquery.ts │ │ │ ├── match-multi.ts │ │ │ ├── match-one.ts │ │ │ └── match-zero.ts │ │ ├── not-null-safe-eq │ │ │ ├── compound-subquery.ts │ │ │ ├── double.ts │ │ │ ├── match-multi-null.ts │ │ │ ├── match-multi.ts │ │ │ ├── match-one-2.ts │ │ │ ├── match-one-null.ts │ │ │ ├── match-one.ts │ │ │ ├── match-zero-null.ts │ │ │ └── match-zero.ts │ │ └── null-safe-eq │ │ │ ├── compound-subquery.ts │ │ │ ├── double.ts │ │ │ ├── lie-about-pk-match-multi.ts │ │ │ ├── match-multi-null.ts │ │ │ ├── match-one-null.ts │ │ │ ├── match-one.ts │ │ │ ├── match-zero-null.ts │ │ │ └── match-zero.ts │ ├── string │ │ ├── aggregate │ │ │ ├── group-concat-all │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ └── mix-null.ts │ │ │ └── group-concat-distinct │ │ │ │ ├── all-non-null.ts │ │ │ │ ├── all-null.ts │ │ │ │ ├── empty-table.ts │ │ │ │ └── mix-null.ts │ │ ├── ascii │ │ │ └── basic.ts │ │ ├── bin │ │ │ └── basic.ts │ │ ├── bit-length │ │ │ └── basic.ts │ │ ├── char-length │ │ │ └── basic.ts │ │ ├── concat-ws │ │ │ ├── empty-string-separator-no-nulls.ts │ │ │ ├── empty-string-separator-with-nulls.ts │ │ │ ├── non-empty-string-separator-no-nulls.ts │ │ │ └── non-empty-string-separator-with-nulls.ts │ │ ├── concat │ │ │ └── basic.ts │ │ ├── from-base64 │ │ │ └── basic.ts │ │ ├── hex │ │ │ └── basic.ts │ │ ├── in-str │ │ │ ├── found.ts │ │ │ └── not-found.ts │ │ ├── like-escape │ │ │ ├── backslash-escape.ts │ │ │ ├── dollar-escape.ts │ │ │ ├── no-pattern.ts │ │ │ ├── one-character-wildcard.ts │ │ │ └── zero-to-many-character-wildcard.ts │ │ ├── lower │ │ │ └── basic.ts │ │ ├── lpad │ │ │ ├── empty-padding-not-allowed.ts │ │ │ ├── input-exactly-desired-length.ts │ │ │ ├── input-longer-than-desired-length.ts │ │ │ ├── input-shorter-than-desired-length-pad-length-1.ts │ │ │ ├── input-shorter-than-desired-length-pad-length-2.ts │ │ │ └── negative-desired-length-not-allowed.ts │ │ ├── ltrim │ │ │ ├── no-leading-space.ts │ │ │ └── with-leading-space.ts │ │ ├── not-like-escape │ │ │ ├── backslash-escape.ts │ │ │ ├── dollar-escape.ts │ │ │ ├── no-pattern.ts │ │ │ ├── one-character-wildcard.ts │ │ │ └── zero-to-many-character-wildcard.ts │ │ ├── null-safe-concat │ │ │ ├── no-nulls.ts │ │ │ └── with-nulls.ts │ │ ├── octet-length │ │ │ └── basic.ts │ │ ├── position │ │ │ ├── found.ts │ │ │ └── not-found.ts │ │ ├── repeat │ │ │ ├── negative.ts │ │ │ ├── one.ts │ │ │ ├── three.ts │ │ │ ├── two.ts │ │ │ └── zero.ts │ │ ├── replace │ │ │ ├── empty-from.ts │ │ │ ├── empty-to.ts │ │ │ ├── to-length-1.ts │ │ │ └── to-length-2.ts │ │ ├── reverse │ │ │ └── basic.ts │ │ ├── rpad │ │ │ ├── empty-padding-not-allowed.ts │ │ │ ├── input-exactly-desired-length.ts │ │ │ ├── input-longer-than-desired-length.ts │ │ │ ├── input-shorter-than-desired-length-pad-length-1.ts │ │ │ ├── input-shorter-than-desired-length-pad-length-2.ts │ │ │ └── negative-desired-length-not-allowed.ts │ │ ├── rtrim │ │ │ ├── no-trailing-space.ts │ │ │ └── with-trailing-space.ts │ │ ├── to-base64 │ │ │ └── basic.ts │ │ ├── trim │ │ │ ├── leading-space-only.ts │ │ │ ├── no-leading-or-trailing-space.ts │ │ │ ├── trailing-space-only.ts │ │ │ └── with-leading-and-trailing-space.ts │ │ ├── unhex │ │ │ └── basic.ts │ │ └── upper │ │ │ └── basic.ts │ └── subquery │ │ └── exists │ │ ├── compound-subquery-exists.ts │ │ ├── compound-subquery-not-exists.ts │ │ ├── no-select-clause-exists.ts │ │ ├── no-select-clause-not-exists.ts │ │ ├── subquery-exists.ts │ │ └── subquery-not-exists.ts ├── insert-and-fetch │ ├── all-explicit-columns.ts │ ├── explicit-schema-name.ts │ ├── implicit-schema-name.ts │ ├── literal │ │ ├── bigint.ts │ │ ├── boolean.ts │ │ ├── buffer.ts │ │ ├── date-time.ts │ │ ├── decimal-65-10.ts │ │ ├── decimal-65-30.ts │ │ ├── double.ts │ │ ├── null.ts │ │ └── string.ts │ ├── some-explicit-columns.ts │ └── zero-explicit-columns.ts ├── pool │ ├── acquire-read-only-transaction │ │ └── basic.ts │ ├── acquire-transaction │ │ └── basic.ts │ ├── on-insert-one │ │ ├── insert-ignore-one-non-transaction-ignored.ts │ │ ├── insert-ignore-one-non-transaction.ts │ │ ├── non-transaction-async-throw.ts │ │ ├── non-transaction-auto-increment-2.ts │ │ ├── non-transaction-auto-increment.ts │ │ ├── non-transaction-ignore-duplicate-handler.ts │ │ ├── non-transaction-ignore-duplicate-on-commit-listener.ts │ │ ├── non-transaction-lock.ts │ │ ├── non-transaction-on-commit-sync-throw-does-not-block.ts │ │ ├── non-transaction-remove-handler.ts │ │ ├── non-transaction-sync-throw-ignore-duplicate-on-rollback-listener.ts │ │ ├── non-transaction-sync-throw.ts │ │ ├── non-transaction.ts │ │ ├── transaction-commit.ts │ │ ├── transaction-early-commit.ts │ │ ├── transaction-early-rollback.ts │ │ ├── transaction-on-rollback-sync-throw-does-not-block.ts │ │ └── transaction-rollback.ts │ ├── on-insert-select-invoked-by-insert-ignore-select │ │ └── non-transaction.ts │ ├── on-insert-select │ │ └── non-transaction.ts │ └── on-replace-select │ │ └── non-transaction.ts ├── select │ ├── column-in-select-clause.ts │ ├── column-map-in-select-clause.ts │ ├── column-ref-in-select-clause.ts │ ├── compound-query-in-join-clause.ts │ ├── distinct.ts │ ├── expr-select-item-in-select-clause.ts │ ├── group-by │ │ ├── group-by-expr-select-item.ts │ │ ├── multi-column-group.ts │ │ ├── one-column-group.ts │ │ ├── sub-query-uses-grouped-column.ts │ │ └── zero-column-group.ts │ ├── having │ │ ├── can-reference-outer-query-column.ts │ │ ├── with-group-by-multi-column.ts │ │ ├── with-group-by-one-column.ts │ │ ├── with-group-by-zero-column.ts │ │ └── without-group-by.ts │ ├── join │ │ ├── aliased-table.ts │ │ ├── derived-table.ts │ │ ├── explicit-schema-name.ts │ │ ├── implicit-schema-name.ts │ │ ├── inner-join.ts │ │ ├── left-join.ts │ │ ├── non-nullable-join-has-all-null-2.ts │ │ ├── non-nullable-join-has-all-null.ts │ │ ├── right-join.ts │ │ └── table-function.ts.todo │ ├── limit │ │ ├── max-row-count-one.ts │ │ ├── max-row-count-two.ts │ │ ├── max-row-count-zero.ts │ │ ├── offset-one.ts │ │ ├── offset-two.ts │ │ └── offset-zero.ts │ ├── literal │ │ ├── bigint.ts │ │ ├── boolean.ts │ │ ├── buffer.ts │ │ ├── date-time.ts │ │ ├── decimal.ts │ │ ├── double.ts │ │ ├── null.ts │ │ └── string.ts │ ├── non-distinct.ts │ ├── order-by │ │ ├── aliased-column.ts │ │ ├── explicit-ascending.ts │ │ ├── explicit-descending.ts │ │ ├── expr-order-by.ts │ │ ├── expr-select-item-order-by.ts │ │ ├── implicit-ascending.ts │ │ ├── literal-boolean.ts │ │ ├── literal-zero-bigint-signed.ts │ │ ├── multi-column-order-by.ts │ │ ├── one-column-order-by.ts │ │ ├── sort-by-expression-2.ts │ │ ├── sort-by-expression.ts │ │ ├── subquery.ts │ │ └── zero-column-order-by.ts │ ├── query-in-join-clause.ts │ └── where │ │ ├── matching-one-row.ts │ │ ├── matching-some-rows.ts │ │ ├── where-false.ts │ │ └── where-true.ts └── table-where │ └── where │ └── chain.ts ├── test.ts ├── tsconfig.json └── util.ts /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | test/compile-time/actual-output/* 4 | report.* 5 | test/run-time/run-time-test-imports.ts 6 | guiker-feedback.md 7 | coverage 8 | test-imports.ts 9 | -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- 1 | ignore: 2 | - "unified-test" 3 | -------------------------------------------------------------------------------- /doc/00-getting-started/01b-custom-data-types.md: -------------------------------------------------------------------------------- 1 | TODO 2 | 3 | + The `IDataType` interface 4 | + The `DataTypeUtil.makeDataType()` function 5 | -------------------------------------------------------------------------------- /squill-doc/README.md: -------------------------------------------------------------------------------- 1 | ### Table of Contents 2 | 3 | 1. [Data Types](data-type/README.md) 4 | 1. Table Declaration 5 | 1. Expressions 6 | -------------------------------------------------------------------------------- /src/aliased-expr/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./aliased-expr-impl"; 2 | -------------------------------------------------------------------------------- /src/aliased-table/array-util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./predicate"; 2 | export * from "./query"; 3 | -------------------------------------------------------------------------------- /src/aliased-table/array-util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./assert-no-duplicate-table-alias"; 2 | -------------------------------------------------------------------------------- /src/aliased-table/array-util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./duplicate-table-alias"; 2 | -------------------------------------------------------------------------------- /src/aliased-table/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./aliased-table"; 2 | 3 | import * as AliasedTableArrayUtil from "./array-util"; 4 | import * as AliasedTableUtil from "./util"; 5 | export { 6 | AliasedTableArrayUtil, 7 | AliasedTableUtil, 8 | }; 9 | -------------------------------------------------------------------------------- /src/aliased-table/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./query"; 2 | -------------------------------------------------------------------------------- /src/aliased-table/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./candidate-keys"; 2 | export * from "./delete-enabled"; 3 | export * from "./extract-with-table-alias"; 4 | export * from "./mutable-columns"; 5 | export * from "./primary-key"; 6 | -------------------------------------------------------------------------------- /src/ast/case-condition-node/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./case-condition-node"; 2 | 3 | import * as CaseConditionNodeUtil from "./util"; 4 | export { 5 | CaseConditionNodeUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/ast/case-condition-node/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./predicate"; 2 | -------------------------------------------------------------------------------- /src/ast/case-condition-node/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-case-condition-node"; 2 | -------------------------------------------------------------------------------- /src/ast/case-value-node/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./case-value-node"; 2 | 3 | import * as CaseValueNodeUtil from "./util"; 4 | export { 5 | CaseValueNodeUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/ast/case-value-node/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./predicate"; 2 | -------------------------------------------------------------------------------- /src/ast/case-value-node/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-case-value-node"; 2 | -------------------------------------------------------------------------------- /src/ast/literal-value-node/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./literal-value-node"; 2 | 3 | import * as LiteralValueNodeUtil from "./util"; 4 | export { 5 | LiteralValueNodeUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/ast/literal-value-node/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./predicate"; 3 | -------------------------------------------------------------------------------- /src/ast/literal-value-node/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-literal-value-node"; 2 | -------------------------------------------------------------------------------- /src/ast/operator-node/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operand"; 2 | export * from "./operator-node"; 3 | export * from "./operator-operand"; 4 | 5 | import * as OperatorNodeUtil from "./util"; 6 | export { 7 | OperatorNodeUtil, 8 | }; 9 | -------------------------------------------------------------------------------- /src/ast/operator-node/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./predicate"; 3 | -------------------------------------------------------------------------------- /src/ast/sqlfier/identifier-sqlfier.ts: -------------------------------------------------------------------------------- 1 | import {IdentifierNode} from "../identifier-node"; 2 | 3 | export interface IdentifierSqlfier { 4 | (identifierNode : IdentifierNode) : string; 5 | } 6 | -------------------------------------------------------------------------------- /src/ast/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./insert-between"; 2 | export * from "./is-ast"; 3 | export * from "./to-sql-pretty"; 4 | export * from "./to-sql"; 5 | export * from "./try-extract-ast"; 6 | export * from "./try-unwrap-parentheses"; 7 | -------------------------------------------------------------------------------- /src/built-in-expr/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./built-in-expr"; 2 | 3 | import * as BuiltInExprUtil from "./util"; 4 | export { 5 | BuiltInExprUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/built-in-expr/util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./from-custom-expr-map-correlated"; 2 | export * from "./from-value-expr"; 3 | -------------------------------------------------------------------------------- /src/built-in-expr/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./operation"; 3 | export * from "./predicate"; 4 | export * from "./query"; 5 | -------------------------------------------------------------------------------- /src/built-in-expr/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./build-ast"; 2 | export * from "./intersect-used-ref"; 3 | -------------------------------------------------------------------------------- /src/built-in-expr/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./assert-non-aggregate"; 2 | export * from "./assert-non-null"; 3 | export * from "./is-any-non-value-expr"; 4 | export * from "./is-any-subquery-expr"; 5 | export * from "./is-built-in-expr"; 6 | -------------------------------------------------------------------------------- /src/built-in-expr/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-aggregate"; 2 | export * from "./mapper"; 3 | export * from "./type-of"; 4 | export * from "./used-ref"; 5 | -------------------------------------------------------------------------------- /src/built-in-value-expr/array-util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./predicate"; 2 | -------------------------------------------------------------------------------- /src/built-in-value-expr/array-util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-non-null-built-in-value-expr-array"; 2 | export * from "./is-built-in-value-expr-array"; 3 | -------------------------------------------------------------------------------- /src/built-in-value-expr/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operation"; 2 | export * from "./predicate"; 3 | -------------------------------------------------------------------------------- /src/built-in-value-expr/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./case-insensitive-narrow"; 2 | export * from "./case-sensitive-narrow"; 3 | export * from "./null-safe-case-insensitive-narrow"; 4 | export * from "./null-safe-case-sensitive-narrow"; 5 | -------------------------------------------------------------------------------- /src/built-in-value-expr/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-equal"; 2 | export * from "./is-non-null-built-in-value-expr"; 3 | export * from "./is-built-in-value-expr"; 4 | -------------------------------------------------------------------------------- /src/built-in-value-expr/util/query/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/src/built-in-value-expr/util/query/index.ts -------------------------------------------------------------------------------- /src/candidate-key/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./candidate-key"; 2 | 3 | import * as CandidateKeyUtil from "./util"; 4 | export { 5 | CandidateKeyUtil, 6 | }; -------------------------------------------------------------------------------- /src/candidate-key/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./query"; -------------------------------------------------------------------------------- /src/candidate-key/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./mapper"; -------------------------------------------------------------------------------- /src/column-identifier-map/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./column-identifier-map"; 2 | 3 | import * as ColumnIdentifierMapUtil from "./util"; 4 | export { 5 | ColumnIdentifierMapUtil, 6 | }; -------------------------------------------------------------------------------- /src/column-identifier-map/util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./from-column-map"; 2 | export * from "./from-column-union"; 3 | export * from "./from-column"; 4 | -------------------------------------------------------------------------------- /src/column-identifier-map/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./operation"; 3 | export * from "./predicate"; 4 | export * from "./query"; -------------------------------------------------------------------------------- /src/column-identifier-map/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./intersect"; -------------------------------------------------------------------------------- /src/column-identifier-map/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./has-column-identifier"; -------------------------------------------------------------------------------- /src/column-identifier-map/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./column-alias"; 2 | export * from "./extract-column-identifier"; 3 | -------------------------------------------------------------------------------- /src/column-identifier-ref/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./column-identifier-ref"; 2 | 3 | import * as ColumnIdentifierRefUtil from "./util"; 4 | export { 5 | ColumnIdentifierRefUtil, 6 | }; -------------------------------------------------------------------------------- /src/column-identifier-ref/util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./from-column-map-union"; 2 | export * from "./from-column-map"; 3 | export * from "./from-column"; 4 | export * from "./from-join-array"; 5 | export * from "./from-select-clause"; 6 | -------------------------------------------------------------------------------- /src/column-identifier-ref/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./operation"; 3 | export * from "./predicate"; 4 | export * from "./query"; -------------------------------------------------------------------------------- /src/column-identifier-ref/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./intersect"; 2 | export * from "./left-intersect"; 3 | export * from "./try-flatten"; 4 | -------------------------------------------------------------------------------- /src/column-identifier-ref/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./has-column-identifier"; 2 | export * from "./has-one-table"; 3 | -------------------------------------------------------------------------------- /src/column-identifier-ref/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./column-alias"; 2 | export * from "./extract-column-identifier"; 3 | -------------------------------------------------------------------------------- /src/column-identifier/array-util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./from-column-map"; 2 | export * from "./from-column-ref"; -------------------------------------------------------------------------------- /src/column-identifier/array-util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./predicate"; 3 | -------------------------------------------------------------------------------- /src/column-identifier/array-util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./assert-disjoint"; 2 | export * from "./assert-no-duplicate"; 3 | -------------------------------------------------------------------------------- /src/column-identifier/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./operation"; 3 | export * from "./predicate"; 4 | export * from "./query"; 5 | -------------------------------------------------------------------------------- /src/column-identifier/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./to-error-message-friendly-type"; 2 | -------------------------------------------------------------------------------- /src/column-identifier/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-column-identifier"; 2 | export * from "./is-equal"; -------------------------------------------------------------------------------- /src/column-identifier/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./extract-with-column-alias"; 2 | export * from "./extract-with-table-alias"; 3 | -------------------------------------------------------------------------------- /src/column-map/column-map.ts: -------------------------------------------------------------------------------- 1 | import {IColumn} from "../column"; 2 | 3 | export interface ColumnMap { 4 | readonly [columAlias : string] : IColumn 5 | }; 6 | export interface WritableColumnMap { 7 | [columnAlias : string] : IColumn 8 | } -------------------------------------------------------------------------------- /src/column-map/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./column-map"; 2 | 3 | import * as ColumnMapUtil from "./util"; 4 | export { 5 | ColumnMapUtil, 6 | }; -------------------------------------------------------------------------------- /src/column-map/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./operation"; 3 | export * from "./predicate"; 4 | export * from "./query"; 5 | -------------------------------------------------------------------------------- /src/column-ref/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./column-ref"; 2 | 3 | import * as ColumnRefUtil from "./util"; 4 | export { 5 | ColumnRefUtil, 6 | }; -------------------------------------------------------------------------------- /src/column-ref/util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./from-column-array"; 2 | export * from "./from-column"; 3 | export * from "./from-from-clause"; 4 | export * from "./from-join-array"; 5 | export * from "./from-select-clause"; 6 | -------------------------------------------------------------------------------- /src/column-ref/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./operation"; 3 | export * from "./predicate"; 4 | export * from "./query"; 5 | -------------------------------------------------------------------------------- /src/column-ref/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./compound"; 2 | export * from "./intersect"; 3 | export * from "./try-flatten"; 4 | -------------------------------------------------------------------------------- /src/column-ref/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-column-ref"; 2 | -------------------------------------------------------------------------------- /src/column/array-util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./from-column-map"; 2 | -------------------------------------------------------------------------------- /src/column/array-util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | -------------------------------------------------------------------------------- /src/column/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./operation"; 3 | export * from "./predicate"; 4 | export * from "./query"; 5 | -------------------------------------------------------------------------------- /src/column/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-column"; -------------------------------------------------------------------------------- /src/column/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./extract-non-nullable"; 2 | export * from "./extract-nullable"; 3 | export * from "./extract-with-column-alias"; 4 | export * from "./extract-with-table-alias"; 5 | export * from "./extract-with-type"; 6 | -------------------------------------------------------------------------------- /src/comparable-type/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./comparable-type"; 2 | -------------------------------------------------------------------------------- /src/compile-error/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./compile-error"; -------------------------------------------------------------------------------- /src/compound-query-clause/compound-query-clause.ts: -------------------------------------------------------------------------------- 1 | import {CompoundQuery} from "../compound-query"; 2 | 3 | export type CompoundQueryClause = readonly CompoundQuery[]; 4 | -------------------------------------------------------------------------------- /src/compound-query-clause/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./compound-query-clause"; 2 | 3 | import * as CompoundQueryClauseUtil from "./util"; 4 | export { 5 | CompoundQueryClauseUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/compound-query-clause/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operation"; 2 | export * from "./predicate"; 3 | -------------------------------------------------------------------------------- /src/compound-query-clause/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./compound-query"; 2 | -------------------------------------------------------------------------------- /src/compound-query-clause/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./assert-compatible"; 2 | export * from "./assert-outer-query-joins-compatible"; 3 | export * from "./assert-select-clause-compatible"; 4 | -------------------------------------------------------------------------------- /src/compound-query-order-by-clause/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operation"; 2 | export * from "./query"; 3 | -------------------------------------------------------------------------------- /src/compound-query-order-by-clause/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./compound-query-order-by"; 2 | -------------------------------------------------------------------------------- /src/compound-query-order-by-clause/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./allowed-used-ref"; 2 | -------------------------------------------------------------------------------- /src/compound-query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./compound-query"; 2 | -------------------------------------------------------------------------------- /src/custom-expr/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./custom-expr"; 2 | 3 | import * as CustomExprUtil from "./util"; 4 | export { 5 | CustomExprUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/custom-expr/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operation"; 2 | export * from "./query"; 3 | -------------------------------------------------------------------------------- /src/custom-expr/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./map-non-correlated"; 2 | -------------------------------------------------------------------------------- /src/custom-expr/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-aggregate"; 2 | export * from "./type-of"; 3 | export * from "./used-ref"; 4 | -------------------------------------------------------------------------------- /src/data-type/built-in-value-expr/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./blob"; 2 | export * from "./boolean"; 3 | export * from "./date-time"; 4 | export * from "./double"; 5 | export * from "./integer"; 6 | export * from "./text"; 7 | -------------------------------------------------------------------------------- /src/data-type/non-built-in-value-expr/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./decimal"; 2 | -------------------------------------------------------------------------------- /src/data-type/util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./make-data-type"; 2 | -------------------------------------------------------------------------------- /src/data-type/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./operation"; 3 | export * from "./predicate"; 4 | -------------------------------------------------------------------------------- /src/data-type/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-data-type"; 2 | export * from "./is-null-safe-equal"; 3 | -------------------------------------------------------------------------------- /src/date-time-util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./util"; 2 | -------------------------------------------------------------------------------- /src/date-util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-date"; -------------------------------------------------------------------------------- /src/date-util/is-date.ts: -------------------------------------------------------------------------------- 1 | export function isDate (x : unknown) : x is Date { 2 | return Object.prototype.toString.call(x) === "[object Date]"; 3 | } -------------------------------------------------------------------------------- /src/decimal/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./decimal"; 2 | -------------------------------------------------------------------------------- /src/derived-table-select-item/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./derived-table-select-item-impl"; 2 | -------------------------------------------------------------------------------- /src/derived-table/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./derived-table-impl"; 2 | 3 | import * as DerivedTableUtil from "./util"; 4 | export { 5 | DerivedTableUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/derived-table/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operation"; 2 | -------------------------------------------------------------------------------- /src/derived-table/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./lateral"; 2 | -------------------------------------------------------------------------------- /src/design-pattern-log/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./log-impl"; 2 | export * from "./log"; 3 | 4 | import * as LogUtil from "./util"; 5 | export { 6 | LogUtil, 7 | }; 8 | 9 | import {log} from "./util"; 10 | export { 11 | log, 12 | }; 13 | -------------------------------------------------------------------------------- /src/design-pattern-log/util/correlated-subquery/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./exists"; 2 | export * from "./latest-value-or-default"; 3 | export * from "./latest-value"; 4 | export * from "./latest"; 5 | -------------------------------------------------------------------------------- /src/design-pattern-log/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./execution"; 3 | //export * from "./operation"; 4 | 5 | import * as CorrelatedSubquery from "./correlated-subquery"; 6 | export { 7 | CorrelatedSubquery, 8 | }; 9 | -------------------------------------------------------------------------------- /src/design-pattern-log/util/operation/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/src/design-pattern-log/util/operation/index.ts -------------------------------------------------------------------------------- /src/design-pattern-table-per-type/util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./table-per-type"; 2 | -------------------------------------------------------------------------------- /src/design-pattern-table-per-type/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./execution"; 3 | export * from "./execution-impl"; 4 | export * from "./operation"; 5 | export * from "./query"; 6 | -------------------------------------------------------------------------------- /src/design-pattern-table-per-type/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./add-parent"; 2 | export * from "./eq-super-key"; 3 | export * from "./remove-duplicate-parents"; 4 | -------------------------------------------------------------------------------- /src/design-pattern-table-per-type/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-table-per-type"; 2 | -------------------------------------------------------------------------------- /src/error/clean-insert-row/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./missing-required-insert-column"; 2 | export * from "./potential-null-in-required-insert-column"; 3 | -------------------------------------------------------------------------------- /src/error/execution/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./invalid-sql"; 2 | export * from "./row-not-found"; 3 | export * from "./too-many-rows-found"; 4 | -------------------------------------------------------------------------------- /src/error/expr/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./cannot-count"; 2 | export * from "./data-out-of-range"; 3 | export * from "./divide-by-zero"; 4 | export * from "./invalid-input"; 5 | -------------------------------------------------------------------------------- /src/error/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./clean-insert-row"; 2 | export * from "./execution"; 3 | export * from "./expr"; 4 | export * from "./sql-error"; 5 | -------------------------------------------------------------------------------- /src/event/event-handler.ts: -------------------------------------------------------------------------------- 1 | import {IEventBase} from "./event-base"; 2 | 3 | export interface EventHandler { 4 | (event : EventT) : void|Promise; 5 | } 6 | -------------------------------------------------------------------------------- /src/execution/connection/component/is-in-transaction.ts: -------------------------------------------------------------------------------- 1 | export interface IsInTransaction { 2 | /** 3 | * Tells you if this connection is in a transaction. 4 | */ 5 | isInTransaction () : this is ConnectionT; 6 | } 7 | -------------------------------------------------------------------------------- /src/execution/pool/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./pool"; -------------------------------------------------------------------------------- /src/execution/util/operation-delete/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./delete-one"; 2 | export * from "./delete-zero-or-one"; 3 | export * from "./delete"; 4 | -------------------------------------------------------------------------------- /src/execution/util/operation-insert-select/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./insert-ignore-select"; 2 | export * from "./insert-select"; 3 | export * from "./replace-select"; 4 | -------------------------------------------------------------------------------- /src/execution/util/operation/emulated-cursor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./emulated-cursor-impl"; 2 | export * from "./emulated-cursor"; 3 | -------------------------------------------------------------------------------- /src/execution/util/operation/paginate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./apply-paginate-args"; 2 | export * from "./paginate-args"; 3 | export * from "./paginate"; 4 | export * from "./remove-paginate-args"; 5 | -------------------------------------------------------------------------------- /src/execution/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./can-flatten-unmapped-row"; 2 | -------------------------------------------------------------------------------- /src/expr-column/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./expr-column-impl"; 2 | export * from "./expr-column"; 3 | 4 | import * as ExprColumnUtil from "./util"; 5 | export {ExprColumnUtil}; 6 | -------------------------------------------------------------------------------- /src/expr-column/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./predicate"; 2 | -------------------------------------------------------------------------------- /src/expr-column/util/operation/index.ts.todo: -------------------------------------------------------------------------------- 1 | export * from "./as"; 2 | -------------------------------------------------------------------------------- /src/expr-column/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-expr-column"; 2 | -------------------------------------------------------------------------------- /src/expr-library/aggregate-factory/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./make-aggregate-operator-0"; 2 | export * from "./make-aggregate-operator-1"; 3 | export * from "./make-aggregate-operator-2"; 4 | export * from "./make-aggregate-operator-3"; 5 | -------------------------------------------------------------------------------- /src/expr-library/aggregate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./count-all"; 2 | export * from "./count-expr"; 3 | -------------------------------------------------------------------------------- /src/expr-library/assert/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./throw-if-null"; 2 | -------------------------------------------------------------------------------- /src/expr-library/control-flow/case-condition/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./case-condition-builder-impl"; 2 | export * from "./case-condition"; 3 | export * from "./uninitialized-case-condition-builder-impl"; 4 | -------------------------------------------------------------------------------- /src/expr-library/control-flow/case-value/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./case-value-builder-impl"; 2 | export * from "./case-value"; 3 | export * from "./uninitialized-case-value-builder-impl"; 4 | -------------------------------------------------------------------------------- /src/expr-library/custom-factory/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./make-custom-operator-0"; 2 | export * from "./make-custom-operator-1"; 3 | -------------------------------------------------------------------------------- /src/expr-library/decimal/README.md: -------------------------------------------------------------------------------- 1 | SQLite **DOES NOT** support arbitrary precision decimal types. 2 | 3 | When using `DECIMAL` with SQLite, you're actually using `DOUBLE/INTEGER` 4 | 5 | ----- 6 | 7 | TODO Add `DECIMAL` extension to SQLite 8 | -------------------------------------------------------------------------------- /src/expr-library/decimal/aggregate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./avg"; 2 | export * from "./max"; 3 | export * from "./min"; 4 | export * from "./sum"; 5 | -------------------------------------------------------------------------------- /src/expr-library/information/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./current-schema"; 2 | export * from "./current-user"; 3 | -------------------------------------------------------------------------------- /src/expr-library/integer/aggregate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./avg"; 2 | export * from "./max"; 3 | export * from "./min"; 4 | export * from "./sum-as-bigint"; 5 | export * from "./sum-as-decimal"; 6 | -------------------------------------------------------------------------------- /src/expr-library/logical-3/README.md: -------------------------------------------------------------------------------- 1 | Implements three-valued logic. 2 | -------------------------------------------------------------------------------- /src/expr-library/logical/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./and"; 2 | export * from "./is-not-null-and"; 3 | export * from "./is-null-or"; 4 | export * from "./not"; 5 | export * from "./or"; 6 | export * from "./xor"; 7 | -------------------------------------------------------------------------------- /src/expr-library/null-safe-equation/eq-candidate-key-of-table/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./assert-null-safe-comparable-to-candidate-keys-of-table"; 2 | export * from "./eq-candidate-key-of-table"; 3 | export * from "./eq-candidate-keys-of-table-delegate"; 4 | -------------------------------------------------------------------------------- /src/expr-library/string/aggregate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./group-concat"; 2 | -------------------------------------------------------------------------------- /src/expr-library/subquery/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./exists"; 2 | -------------------------------------------------------------------------------- /src/expr-select-item/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./expr-select-item"; 2 | 3 | import * as ExprSelectItemUtil from "./util"; 4 | export { 5 | ExprSelectItemUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/expr-select-item/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operation"; 2 | export * from "./predicate"; 3 | -------------------------------------------------------------------------------- /src/expr-select-item/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./with-type"; 2 | -------------------------------------------------------------------------------- /src/expr-select-item/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-expr-select-item"; 2 | -------------------------------------------------------------------------------- /src/expr/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./expr-impl"; 2 | export * from "./expr"; 3 | 4 | import * as ExprUtil from "./util"; 5 | export { 6 | ExprUtil, 7 | }; 8 | -------------------------------------------------------------------------------- /src/expr/util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./from-built-in-expr"; 2 | -------------------------------------------------------------------------------- /src/expr/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./operation"; 3 | export * from "./predicate"; 4 | -------------------------------------------------------------------------------- /src/expr/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./aggregate-intersect"; 2 | export * from "./as"; 3 | export * from "./intersect"; 4 | export * from "./sort"; 5 | -------------------------------------------------------------------------------- /src/expr/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-expr"; 2 | -------------------------------------------------------------------------------- /src/formatter/README.md: -------------------------------------------------------------------------------- 1 | The code in this folder was taken from [here](https://github.com/zeroturnaround/sql-formatter) and adapted for use in this project. -------------------------------------------------------------------------------- /src/formatter/Token.ts: -------------------------------------------------------------------------------- 1 | import {TokenType} from "./TokenType"; 2 | export interface Token { 3 | type : TokenType, 4 | value : string, 5 | key? : string, 6 | } -------------------------------------------------------------------------------- /src/from-clause/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./from-clause"; 2 | 3 | import * as FromClauseUtil from "./util"; 4 | export { 5 | FromClauseUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/from-clause/util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./new-instance"; 2 | -------------------------------------------------------------------------------- /src/from-clause/util/helper-type/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./after-from-clause"; 2 | export * from "./before-from-clause"; 3 | export * from "./correlated"; 4 | export * from "./non-correlated"; 5 | -------------------------------------------------------------------------------- /src/from-clause/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./helper-type"; 3 | export * from "./operation"; 4 | export * from "./predicate"; 5 | export * from "./query"; 6 | -------------------------------------------------------------------------------- /src/from-clause/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./outer-query-table-alias"; 2 | -------------------------------------------------------------------------------- /src/group-by-clause/group-by-clause.ts: -------------------------------------------------------------------------------- 1 | import {ColumnIdentifier} from "../column-identifier"; 2 | 3 | export type GroupByClause = readonly ColumnIdentifier[]; 4 | -------------------------------------------------------------------------------- /src/group-by-clause/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./group-by-clause"; 2 | export * from "./group-by-delegate"; 3 | 4 | import * as GroupByClauseUtil from "./util"; 5 | export { 6 | GroupByClauseUtil, 7 | }; 8 | -------------------------------------------------------------------------------- /src/group-by-clause/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operation"; 2 | export * from "./predicate"; 3 | export * from "./query"; 4 | -------------------------------------------------------------------------------- /src/group-by-clause/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./group-by"; 2 | -------------------------------------------------------------------------------- /src/group-by-clause/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-non-empty"; 2 | -------------------------------------------------------------------------------- /src/group-by-clause/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./allowed-used-ref"; 2 | -------------------------------------------------------------------------------- /src/having-clause/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./having-clause"; 2 | export * from "./having-delegate"; 3 | 4 | import * as HavingClauseUtil from "./util"; 5 | export { 6 | HavingClauseUtil, 7 | }; 8 | -------------------------------------------------------------------------------- /src/having-clause/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operation"; 2 | export * from "./query"; 3 | -------------------------------------------------------------------------------- /src/having-clause/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./having"; 2 | -------------------------------------------------------------------------------- /src/having-clause/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./allowed-non-aggregate-used-ref"; 2 | export * from "./allowed-used-ref"; 3 | -------------------------------------------------------------------------------- /src/insert-select/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./insert-select-delegate"; 2 | export * from "./insert-select-row"; 3 | 4 | import * as InsertSelectUtil from "./util"; 5 | export { 6 | InsertSelectUtil, 7 | }; 8 | -------------------------------------------------------------------------------- /src/insert-select/util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./insert-select"; 2 | -------------------------------------------------------------------------------- /src/insert-select/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./operation"; 3 | -------------------------------------------------------------------------------- /src/insert-select/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./clean-insert-select-column"; 2 | export * from "./clean-insert-select-row"; 3 | -------------------------------------------------------------------------------- /src/insert/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./insert-row"; 2 | 3 | import * as InsertUtil from "./util"; 4 | export { 5 | InsertUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/insert/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operation"; 2 | -------------------------------------------------------------------------------- /src/insert/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./clean-insert-column"; 2 | export * from "./clean-insert-row"; 3 | -------------------------------------------------------------------------------- /src/join-map/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./join-map"; 2 | 3 | import * as JoinMapUtil from "./util"; 4 | export { 5 | JoinMapUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/join-map/join-map.ts: -------------------------------------------------------------------------------- 1 | import {IJoin} from "../join"; 2 | 3 | export interface JoinMap { 4 | readonly [tableAlias : string] : IJoin 5 | }; 6 | export interface WritableJoinMap { 7 | [tableAlias : string] : IJoin 8 | } 9 | -------------------------------------------------------------------------------- /src/join-map/util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./from-join-array"; 2 | -------------------------------------------------------------------------------- /src/join-map/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | -------------------------------------------------------------------------------- /src/join/array-util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operation"; 2 | export * from "./query"; 3 | -------------------------------------------------------------------------------- /src/join/array-util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./append"; 2 | export * from "./replace-column"; 3 | -------------------------------------------------------------------------------- /src/join/array-util/query/table-alias.ts: -------------------------------------------------------------------------------- 1 | import {IJoin} from "../../join"; 2 | 3 | export type TableAlias = ( 4 | JoinsT[number]["tableAlias"] 5 | ); 6 | -------------------------------------------------------------------------------- /src/join/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./join-impl"; 2 | export * from "./join"; 3 | 4 | import * as JoinArrayUtil from "./array-util"; 5 | import * as JoinUtil from "./util"; 6 | export { 7 | JoinArrayUtil, 8 | JoinUtil, 9 | }; 10 | -------------------------------------------------------------------------------- /src/join/util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./from-aliased-table"; 2 | -------------------------------------------------------------------------------- /src/join/util/helper-type/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./with-primary-key"; 2 | -------------------------------------------------------------------------------- /src/join/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./helper-type"; 3 | export * from "./operation"; 4 | export * from "./query"; 5 | -------------------------------------------------------------------------------- /src/join/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./replace-column"; 2 | -------------------------------------------------------------------------------- /src/join/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./has-null-safe-comparable-primary-key"; 2 | -------------------------------------------------------------------------------- /src/join/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./extract-with-candidate-key"; 2 | export * from "./extract-with-null-safe-comparable-primary-key"; 3 | export * from "./extract-with-primary-key"; 4 | export * from "./extract-with-table-alias"; 5 | -------------------------------------------------------------------------------- /src/key/array-util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operation"; 2 | export * from "./predicate"; 3 | export * from "./query"; 4 | -------------------------------------------------------------------------------- /src/key/array-util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./append"; 2 | export * from "./remove-duplicates"; 3 | -------------------------------------------------------------------------------- /src/key/array-util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./has-key"; 2 | export * from "./has-sub-key"; 3 | export * from "./has-super-key"; 4 | export * from "./is-key-array"; 5 | export * from "./is-disjoint"; -------------------------------------------------------------------------------- /src/key/array-util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./extract-keys-in-common"; 2 | export * from "./find-sub-key"; 3 | export * from "./find-super-key"; 4 | -------------------------------------------------------------------------------- /src/key/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./key"; 2 | 3 | import * as KeyArrayUtil from "./array-util"; 4 | import * as KeyUtil from "./util"; 5 | export { 6 | KeyArrayUtil, 7 | KeyUtil, 8 | }; 9 | -------------------------------------------------------------------------------- /src/key/key.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Each `string` element represents a column name. 3 | * 4 | * A "key" is a set of columns that uniquely identifies 5 | * a row in a table. 6 | */ 7 | export type Key = readonly string[]; -------------------------------------------------------------------------------- /src/key/util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./from-column-array"; 2 | export * from "./from-column"; 3 | -------------------------------------------------------------------------------- /src/key/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./operation"; 3 | export * from "./predicate"; 4 | export * from "./query"; 5 | -------------------------------------------------------------------------------- /src/key/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-key"; 2 | export * from "./is-equal"; 3 | export * from "./is-sub-key"; -------------------------------------------------------------------------------- /src/key/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./exclude-if-in-key-array"; 2 | export * from "./extract-if-in-column-map"; 3 | export * from "./extract-if-in-key-array"; 4 | -------------------------------------------------------------------------------- /src/limit-clause/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./limit-clause"; 2 | 3 | import * as LimitClauseUtil from "./util"; 4 | export { 5 | LimitClauseUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/limit-clause/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operation"; 2 | -------------------------------------------------------------------------------- /src/limit-clause/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./limit-bigint"; 2 | export * from "./limit-number"; 3 | export * from "./limit"; 4 | export * from "./offset-bigint"; 5 | export * from "./offset-number"; 6 | export * from "./offset"; 7 | -------------------------------------------------------------------------------- /src/map-delegate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./map-delegate"; 2 | 3 | import * as MapDelegateUtil from "./util"; 4 | export { 5 | MapDelegateUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/map-delegate/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operation"; 2 | -------------------------------------------------------------------------------- /src/map-delegate/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./compose"; 2 | -------------------------------------------------------------------------------- /src/mapper-map/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./mapper-map"; 2 | 3 | import * as MapperMapUtil from "./util"; 4 | export { 5 | MapperMapUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/mapper-map/mapper-map.ts: -------------------------------------------------------------------------------- 1 | import * as tm from "type-mapping"; 2 | 3 | //Moon Moon 4 | //Mappy McMapface 5 | export type MapperMap = { 6 | readonly [columnAlias : string] : tm.AnySafeMapper 7 | }; 8 | -------------------------------------------------------------------------------- /src/mapper-map/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./query"; 2 | -------------------------------------------------------------------------------- /src/mapper-map/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./nullable-key"; 2 | -------------------------------------------------------------------------------- /src/on-clause/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./on-clause"; 2 | export * from "./on-delegate"; 3 | 4 | import * as OnClauseUtil from "./util"; 5 | export { 6 | OnClauseUtil, 7 | }; 8 | -------------------------------------------------------------------------------- /src/on-clause/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operation"; 2 | export * from "./predicate"; 3 | export * from "./query"; 4 | -------------------------------------------------------------------------------- /src/on-clause/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./on"; 2 | -------------------------------------------------------------------------------- /src/on-clause/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./assert-no-outer-query-used-ref"; 2 | export * from "./assert-valid-used-ref"; 3 | -------------------------------------------------------------------------------- /src/on-clause/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./allowed-used-ref"; 2 | -------------------------------------------------------------------------------- /src/order-by-clause/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./order-by-clause"; 2 | export * from "./order-by-delegate"; 3 | 4 | import * as OrderByClauseUtil from "./util"; 5 | export { 6 | OrderByClauseUtil, 7 | }; 8 | -------------------------------------------------------------------------------- /src/order-by-clause/order-by-clause.ts: -------------------------------------------------------------------------------- 1 | import {Order} from "../order"; 2 | 3 | /** 4 | * The `ORDER BY` clause of a query. 5 | * 6 | */ 7 | export type OrderByClause = readonly Order[]; 8 | -------------------------------------------------------------------------------- /src/order-by-clause/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operation"; 2 | export * from "./query"; 3 | -------------------------------------------------------------------------------- /src/order-by-clause/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./order-by"; 2 | -------------------------------------------------------------------------------- /src/order-by-clause/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./allowed-non-aggregate-used-ref"; 2 | export * from "./allowed-used-ref"; 3 | -------------------------------------------------------------------------------- /src/order/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./order"; 2 | 3 | import * as OrderUtil from "./util"; 4 | export { 5 | OrderUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/order/util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./from-raw-order"; 2 | -------------------------------------------------------------------------------- /src/order/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./predicate"; 3 | export * from "./query"; 4 | -------------------------------------------------------------------------------- /src/order/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-order"; 2 | export * from "./is-sort-expr"; 3 | -------------------------------------------------------------------------------- /src/order/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./extract-sort-expr"; 2 | -------------------------------------------------------------------------------- /src/partial-row/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./partial-row"; 2 | 3 | import * as PartialRowUtil from "./util"; 4 | export { 5 | PartialRowUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/partial-row/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./query"; 2 | -------------------------------------------------------------------------------- /src/partial-row/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./mapper"; 2 | -------------------------------------------------------------------------------- /src/primary-key/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./primary-key"; 2 | 3 | import * as PrimaryKeyUtil from "./util"; 4 | export { 5 | PrimaryKeyUtil, 6 | }; -------------------------------------------------------------------------------- /src/primary-key/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./query"; -------------------------------------------------------------------------------- /src/primary-key/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./mapper"; -------------------------------------------------------------------------------- /src/promise-util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./invoke-async-callback-safely"; 2 | -------------------------------------------------------------------------------- /src/query-base/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./query-base"; 2 | 3 | import * as QueryBaseUtil from "./util"; 4 | export { 5 | QueryBaseUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/query-base/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./helper-type"; 2 | export * from "./operation"; 3 | export * from "./predicate"; 4 | export * from "./query"; 5 | -------------------------------------------------------------------------------- /src/query-base/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./as"; 2 | export * from "./asc"; 3 | export * from "./coalesce"; 4 | export * from "./desc"; 5 | export * from "./sort"; 6 | export * from "./throw-if-null"; 7 | -------------------------------------------------------------------------------- /src/query-base/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./mapper"; 2 | export * from "./type-of"; 3 | -------------------------------------------------------------------------------- /src/row/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./row"; 2 | 3 | import * as RowUtil from "./util"; 4 | export { 5 | RowUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/row/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./query"; 2 | -------------------------------------------------------------------------------- /src/row/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./mapper"; 2 | -------------------------------------------------------------------------------- /src/schema-introspection/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @todo Come up with better names? 3 | */ 4 | export * from "./candidate-key-meta"; 5 | export * from "./column-meta"; 6 | export * from "./schema-meta"; 7 | export * from "./table-meta"; 8 | -------------------------------------------------------------------------------- /src/schema-introspection/schema-meta.ts: -------------------------------------------------------------------------------- 1 | import {TableMeta} from "./table-meta"; 2 | 3 | export interface SchemaMeta { 4 | schemaAlias : string, 5 | 6 | tables : readonly TableMeta[], 7 | } 8 | -------------------------------------------------------------------------------- /src/schema-validation/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operation"; 2 | -------------------------------------------------------------------------------- /src/schema-validation/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./validate-column"; 2 | export * from "./validate-schema"; 3 | export * from "./validate-table"; 4 | -------------------------------------------------------------------------------- /src/select-clause/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./select-clause"; 2 | export * from "./select-delegate"; 3 | export * from "./select-value-delegate"; 4 | 5 | import * as SelectClauseUtil from "./util"; 6 | export { 7 | SelectClauseUtil, 8 | }; 9 | -------------------------------------------------------------------------------- /src/select-clause/select-clause.ts: -------------------------------------------------------------------------------- 1 | import {SelectItem} from "../select-item"; 2 | 3 | export type SelectClause = readonly SelectItem[]; 4 | -------------------------------------------------------------------------------- /src/select-clause/util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./value-from-built-in-expr"; 2 | -------------------------------------------------------------------------------- /src/select-clause/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./operation"; 3 | export * from "./predicate"; 4 | export * from "./query"; 5 | -------------------------------------------------------------------------------- /src/select-clause/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./left-compound"; 2 | export * from "./select-value"; 3 | export * from "./select"; 4 | -------------------------------------------------------------------------------- /src/select-clause/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./allowed-non-aggregate-used-ref"; 2 | export * from "./allowed-used-ref"; 3 | export * from "./column-alias"; 4 | export * from "./duplicate-column-alias"; 5 | -------------------------------------------------------------------------------- /src/select-item/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./select-item"; 2 | 3 | import * as SelectItemUtil from "./util"; 4 | export { 5 | SelectItemUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/select-item/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./predicate"; 2 | export * from "./query"; 3 | -------------------------------------------------------------------------------- /src/select-item/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-single-value-select-item"; 2 | -------------------------------------------------------------------------------- /src/select-item/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./column-alias"; 2 | export * from "./type-of"; 3 | -------------------------------------------------------------------------------- /src/select-item/util/query/type-of.ts: -------------------------------------------------------------------------------- 1 | import * as tm from "type-mapping"; 2 | import {SingleValueSelectItem} from "../../select-item"; 3 | 4 | export type TypeOf = ( 5 | tm.OutputOf 6 | ); 7 | -------------------------------------------------------------------------------- /src/sort-direction/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./sort-direction"; 2 | 3 | import * as SortDirectionUtil from "./util"; 4 | export { 5 | SortDirectionUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/sort-direction/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./predicate"; 2 | -------------------------------------------------------------------------------- /src/sort-direction/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./is-sort-direction"; 2 | -------------------------------------------------------------------------------- /src/sqlstring/README.md: -------------------------------------------------------------------------------- 1 | The code in this folder was taken from [here](https://github.com/mysqljs/sqlstring) and adapted for use in this project. -------------------------------------------------------------------------------- /src/string-util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./zero-pad"; 2 | -------------------------------------------------------------------------------- /src/super-key/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./super-key"; 2 | 3 | import * as SuperKeyUtil from "./util"; 4 | export { 5 | SuperKeyUtil, 6 | }; -------------------------------------------------------------------------------- /src/super-key/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./query"; -------------------------------------------------------------------------------- /src/super-key/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./mapper"; -------------------------------------------------------------------------------- /src/table-where/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./table-where"; 2 | -------------------------------------------------------------------------------- /src/table/util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./from-table-alias"; 2 | export * from "./from-table"; 3 | -------------------------------------------------------------------------------- /src/table/util/execution/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./assert-exists"; 2 | export * from "./exists"; 3 | export * from "./fetch-one"; 4 | export * from "./fetch-value"; 5 | -------------------------------------------------------------------------------- /src/table/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./execution"; 3 | export * from "./operation"; 4 | export * from "./predicate"; 5 | export * from "./query"; 6 | -------------------------------------------------------------------------------- /src/table/util/query/column-type.ts: -------------------------------------------------------------------------------- 1 | import {ITable} from "../../table"; 2 | 3 | export type ColumnType< 4 | TableT extends ITable, 5 | ColumnAliasT extends string 6 | > = 7 | ReturnType 8 | ; 9 | -------------------------------------------------------------------------------- /src/tuple-util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./concat"; 2 | export * from "./pop-front"; 3 | export * from "./push-front"; 4 | export * from "./reverse"; 5 | -------------------------------------------------------------------------------- /src/tuple-util/trampoline-util.ts: -------------------------------------------------------------------------------- 1 | export type MaxDepth = 8; 2 | type Countdown = [0,0,1,2,3,4,5,6,7] 3 | export type DecrementMaxDepth = 4 | Countdown[MaxDepthT] 5 | ; 6 | -------------------------------------------------------------------------------- /src/type-map/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./type-map"; 2 | 3 | import * as TypeMapUtil from "./util"; 4 | export { 5 | TypeMapUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/type-map/type-map.ts: -------------------------------------------------------------------------------- 1 | export interface TypeMap { 2 | /** 3 | * The `any` is the type of the column. 4 | */ 5 | readonly [columnAlias : string] : any; 6 | } 7 | -------------------------------------------------------------------------------- /src/type-map/util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./from-column-array"; 2 | export * from "./from-column-map"; 3 | -------------------------------------------------------------------------------- /src/type-map/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./operator"; 3 | -------------------------------------------------------------------------------- /src/type-map/util/operator/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./intersect"; 2 | export * from "./with-value"; 3 | -------------------------------------------------------------------------------- /src/type-ref/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./type-ref"; 2 | 3 | import * as TypeRefUtil from "./util"; 4 | export { 5 | TypeRefUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/type-ref/type-ref.ts: -------------------------------------------------------------------------------- 1 | import {TypeMap} from "../type-map"; 2 | 3 | export interface TypeRef { 4 | readonly [tableAlias : string] : TypeMap; 5 | } 6 | -------------------------------------------------------------------------------- /src/type-ref/util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./from-column-array"; 2 | export * from "./from-column-map"; 3 | export * from "./from-column-ref"; 4 | export * from "./from-column"; 5 | -------------------------------------------------------------------------------- /src/type-ref/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./operator"; 3 | export * from "./query"; 4 | -------------------------------------------------------------------------------- /src/type-ref/util/operator/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./intersect"; 2 | export * from "./with-value"; 3 | -------------------------------------------------------------------------------- /src/type-ref/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./extract-excess-column-identifier"; 2 | export * from "./extract-type-map"; 3 | export * from "./extract-with-strict-sub-type"; 4 | -------------------------------------------------------------------------------- /src/type-util/identity.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * https://github.com/microsoft/TypeScript/issues/31992#issuecomment-503816806 3 | * 4 | * A hack to generate "better looking" types. 5 | */ 6 | export type Identity = T; 7 | -------------------------------------------------------------------------------- /src/type-util/outersect.ts: -------------------------------------------------------------------------------- 1 | export type Outersect = 2 | | Exclude 3 | | Exclude 4 | ; 5 | -------------------------------------------------------------------------------- /src/type-util/to-promise.ts: -------------------------------------------------------------------------------- 1 | export type ToPromise = 2 | T extends PromiseLike ? 3 | Promise : 4 | Promise 5 | ; 6 | -------------------------------------------------------------------------------- /src/type-util/writable.ts: -------------------------------------------------------------------------------- 1 | export type Writable = ( 2 | T extends any ? 3 | { 4 | -readonly [k in keyof T] : T[k] 5 | } : 6 | never 7 | ); -------------------------------------------------------------------------------- /src/unified-query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./convenience"; 2 | export * from "./query-impl"; 3 | export * from "./query"; 4 | 5 | import * as QueryUtil from "./util"; 6 | export { 7 | QueryUtil, 8 | }; 9 | -------------------------------------------------------------------------------- /src/unified-query/util/constructor/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./new-instance"; 2 | -------------------------------------------------------------------------------- /src/unified-query/util/helper-type/after-from-clause.ts: -------------------------------------------------------------------------------- 1 | import {QueryBaseUtil} from "../../../query-base"; 2 | import {IQuery} from "../../query"; 3 | 4 | export interface AfterFromClause extends QueryBaseUtil.AfterFromClause, IQuery { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /src/unified-query/util/helper-type/correlated.ts: -------------------------------------------------------------------------------- 1 | import {QueryBaseUtil} from "../../../query-base"; 2 | import {IQuery} from "../../query"; 3 | 4 | export interface Correlated extends QueryBaseUtil.Correlated, IQuery { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /src/unified-query/util/helper-type/mapped.ts: -------------------------------------------------------------------------------- 1 | import {QueryBaseUtil} from "../../../query-base"; 2 | import {IQuery} from "../../query"; 3 | 4 | export interface Mapped extends QueryBaseUtil.Mapped, IQuery { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /src/unified-query/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./helper-type"; 3 | export * from "./operation"; 4 | export * from "./predicate"; 5 | -------------------------------------------------------------------------------- /src/unified-query/util/operation/compound-query-offset/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./compound-query-offset-bigint"; 2 | export * from "./compound-query-offset-number"; 3 | export * from "./compound-query-offset"; 4 | -------------------------------------------------------------------------------- /src/unified-query/util/operation/map/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./map-compose"; 2 | export * from "./map-initial"; 3 | export * from "./map"; 4 | -------------------------------------------------------------------------------- /src/unified-query/util/operation/offset/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./offset-bigint"; 2 | export * from "./offset-number"; 3 | export * from "./offset"; 4 | -------------------------------------------------------------------------------- /src/unified-query/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./assert-valid-current-join"; 2 | -------------------------------------------------------------------------------- /src/update/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./assignment-map-delegate"; 2 | export * from "./assignment-map"; 3 | 4 | import * as UpdateUtil from "./util"; 5 | export { 6 | UpdateUtil, 7 | }; 8 | -------------------------------------------------------------------------------- /src/update/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operation"; 2 | -------------------------------------------------------------------------------- /src/update/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./clean-assignment-map"; 2 | export * from "./set"; 3 | -------------------------------------------------------------------------------- /src/used-ref/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./used-ref"; 2 | 3 | import * as UsedRefUtil from "./util"; 4 | export { 5 | UsedRefUtil, 6 | }; 7 | -------------------------------------------------------------------------------- /src/used-ref/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./constructor"; 2 | export * from "./operation"; 3 | export * from "./predicate"; 4 | export * from "./query"; 5 | -------------------------------------------------------------------------------- /src/used-ref/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./intersect"; 2 | export * from "./with-value"; 3 | -------------------------------------------------------------------------------- /src/used-ref/util/predicate/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./assert-allowed"; 2 | export * from "./assert-empty"; 3 | export * from "./is-used-ref"; 4 | -------------------------------------------------------------------------------- /src/used-ref/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./extract-column-identifier"; 2 | export * from "./table-alias"; 3 | export * from "./type-ref-of"; 4 | -------------------------------------------------------------------------------- /src/used-ref/util/query/table-alias.ts: -------------------------------------------------------------------------------- 1 | import {IUsedRef} from "../../used-ref"; 2 | import {TypeRefOf} from "./type-ref-of"; 3 | 4 | export type TableAlias = ( 5 | Extract, string> 6 | ); 7 | -------------------------------------------------------------------------------- /src/value-expr/index.ts: -------------------------------------------------------------------------------- 1 | import * as ValueExprUtil from "./util"; 2 | export { 3 | ValueExprUtil, 4 | }; 5 | -------------------------------------------------------------------------------- /src/value-expr/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operation"; 2 | -------------------------------------------------------------------------------- /src/value-expr/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./case-insensitive-narrow"; 2 | export * from "./null-safe-case-insensitive-narrow"; 3 | -------------------------------------------------------------------------------- /src/where-clause/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./where-clause"; 2 | export * from "./where-delegate"; 3 | 4 | import * as WhereClauseUtil from "./util"; 5 | export { 6 | WhereClauseUtil, 7 | }; 8 | -------------------------------------------------------------------------------- /src/where-clause/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./operation"; 2 | export * from "./query"; 3 | -------------------------------------------------------------------------------- /src/where-clause/util/operation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./where"; 2 | -------------------------------------------------------------------------------- /src/where-clause/util/query/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./allowed-used-ref"; 2 | -------------------------------------------------------------------------------- /src/where-clause/where-clause.ts: -------------------------------------------------------------------------------- 1 | import {IAnonymousExpr} from "../expr"; 2 | 3 | /** 4 | * The `WHERE` clause of a query. 5 | */ 6 | export type WhereClause = IAnonymousExpr; 7 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/candidate-key/candidate-key-non-union/bad-things-happen-with-union.d.ts: -------------------------------------------------------------------------------- 1 | export declare const k: never; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/compound-query-clause/compound-query/cannot-compound-column-and-map.d.ts: -------------------------------------------------------------------------------- 1 | export declare const compound: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/compound-query-clause/compound-query/cannot-compound-column-and-ref.d.ts: -------------------------------------------------------------------------------- 1 | export declare const compound: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/compound-query-clause/compound-query/cannot-compound-map-and-column.d.ts: -------------------------------------------------------------------------------- 1 | export declare const compound: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/compound-query-clause/compound-query/cannot-compound-map-and-ref.d.ts: -------------------------------------------------------------------------------- 1 | export declare const compound: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/compound-query-clause/compound-query/cannot-compound-ref-and-column.d.ts: -------------------------------------------------------------------------------- 1 | export declare const compound: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/compound-query-clause/compound-query/cannot-compound-ref-and-map.d.ts: -------------------------------------------------------------------------------- 1 | export declare const compound: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/compound-query-clause/compound-query/map-must-be-sub-type.d.ts: -------------------------------------------------------------------------------- 1 | export declare const compound: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/compound-query-clause/compound-query/map-must-not-have-extra-columns.d.ts: -------------------------------------------------------------------------------- 1 | export declare const compound: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/compound-query-clause/compound-query/map-must-not-have-missing-columns.d.ts: -------------------------------------------------------------------------------- 1 | export declare const compound: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/compound-query-clause/compound-query/must-have-same-number-of-select-items-1.d.ts: -------------------------------------------------------------------------------- 1 | export declare const compound: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/compound-query-clause/compound-query/must-have-same-number-of-select-items-2.d.ts: -------------------------------------------------------------------------------- 1 | export declare const compound: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/compound-query-clause/compound-query/must-have-subset-of-outer-query-join-2.d.ts: -------------------------------------------------------------------------------- 1 | export declare const compound: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/compound-query-clause/compound-query/must-have-subset-of-outer-query-join.d.ts: -------------------------------------------------------------------------------- 1 | export declare const compound: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/compound-query-clause/compound-query/one-column-to-one-column-must-be-sub-type.d.ts: -------------------------------------------------------------------------------- 1 | export declare const compound: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/compound-query-clause/compound-query/ref-map-must-be-sub-type.d.ts: -------------------------------------------------------------------------------- 1 | export declare const compound: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/compound-query-clause/compound-query/ref-map-must-not-have-extra-columns.d.ts: -------------------------------------------------------------------------------- 1 | export declare const compound: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/compound-query-clause/compound-query/ref-map-must-not-have-missing-columns.d.ts: -------------------------------------------------------------------------------- 1 | export declare const compound: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/compound-query-clause/compound-query/ref-must-not-have-extra-tables.d.ts: -------------------------------------------------------------------------------- 1 | export declare const compound: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/compound-query-clause/compound-query/ref-must-not-have-missing-tables.d.ts: -------------------------------------------------------------------------------- 1 | export declare const compound: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/fetch-all-mapped/basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise<{ 2 | x: number; 3 | }[]>; 4 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/fetch-all-mapped/promise-basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise<{ 2 | x: number; 3 | }[]>; 4 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/fetch-all-unmapped-flattened/basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise<{ 2 | readonly value: 42; 3 | }[]>; 4 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/fetch-all-unmapped-flattened/ignore-map-delegate.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise<{ 2 | readonly value: 42; 3 | }[]>; 4 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/fetch-all-unmapped-flattened/inner-join-2.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise<{ 2 | readonly testId: bigint; 3 | readonly otherVal: bigint; 4 | readonly testVal: bigint; 5 | }[]>; 6 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/fetch-all-unmapped-flattened/inner-join-ignore-other-table.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise<{ 2 | readonly testId: bigint; 3 | readonly testVal: bigint; 4 | }[]>; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/fetch-all-unmapped/basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise<{ 2 | readonly $aliased: { 3 | readonly value: 42; 4 | }; 5 | }[]>; 6 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/fetch-all-unmapped/ignore-map-delegate.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise<{ 2 | readonly $aliased: { 3 | readonly value: 42; 4 | }; 5 | }[]>; 6 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/fetch-all-with-map-delegate/basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise<{ 2 | x: number; 3 | }[]>; 4 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/fetch-all-with-map-delegate/promise-basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise<{ 2 | x: number; 3 | }[]>; 4 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/fetch-all-without-map-delegate/basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise<{ 2 | readonly value: 42; 3 | }[]>; 4 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/fetch-all-without-map-delegate/inner-join-2.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise<{ 2 | readonly testId: bigint; 3 | readonly otherVal: bigint; 4 | readonly testVal: bigint; 5 | }[]>; 6 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/fetch-all-without-map-delegate/inner-join-ignore-other-table.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise<{ 2 | readonly testId: bigint; 3 | readonly testVal: bigint; 4 | }[]>; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/insert-ignore-one/auto-increment-generated-cannot-specify-explicit-value.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/insert-ignore-one/cannot-omit-required-column.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: any; 2 | export declare const p2: any; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/insert-ignore-one/insert-disabled.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/insert-ignore-one/no-auto-increment.d.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | export declare const p: Promise; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/insert-one/auto-increment-generated-cannot-specify-explicit-value.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/insert-one/cannot-omit-required-column.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: any; 2 | export declare const p2: any; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/insert-one/insert-disabled.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/execution/insert-one/no-auto-increment.d.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | export declare const p: Promise; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/cannot-nest-aggregate-expression.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/comparison/coalesce/no-arg.d.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../../dist"; 2 | export declare const expr: tsql.ExprImpl, false>; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/comparison/greatest/must-have-same-type-as-first-arg.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/comparison/greatest/null-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/comparison/in-array/must-have-same-type-as-first-arg.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/comparison/in-array/null-first-arg-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/comparison/in-array/null-in-rest-arg-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/comparison/in-array/query-in-rest.d.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../../dist"; 2 | export declare const expr0: tsql.ExprImpl, false>; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/comparison/in-query/must-have-same-type-as-first-arg.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/comparison/in-query/null-first-arg-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/comparison/in-query/null-in-rest-arg-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/comparison/in-query/query-in-rest.d.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../../dist"; 2 | export declare const expr0: tsql.ExprImpl, false>; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/comparison/like/expression-not-allowed-for-escape-char.d.ts: -------------------------------------------------------------------------------- 1 | export declare const expr0: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/comparison/like/literals.d.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../../dist"; 2 | export declare const expr0: tsql.ExprImpl, false>; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/control-flow/case-value/then-must-use-same-comparable-type.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/control-flow/case-value/value-cannot-use-null.d.ts: -------------------------------------------------------------------------------- 1 | export declare const expr: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/control-flow/case-value/when-cannot-use-null-2.d.ts: -------------------------------------------------------------------------------- 1 | export declare const expr: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/control-flow/case-value/when-cannot-use-null.d.ts: -------------------------------------------------------------------------------- 1 | export declare const expr: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/equation/eq/lhs-cannot-be-null.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/equation/eq/rhs-cannot-be-null.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/operator/null-safe-comparison/make-eq-candidate-key-of-table/cannot-use-extra-columns.d.ts: -------------------------------------------------------------------------------- 1 | export declare const expr: any; 2 | export declare const expr2: any; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/operator/null-safe-comparison/make-eq-candidate-key-of-table/cannot-use-sub-part-of-key.d.ts: -------------------------------------------------------------------------------- 1 | export declare const expr: any; 2 | export declare const expr2: any; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/operator/null-safe-comparison/make-eq-candidate-key-of-table/test-00.d.ts: -------------------------------------------------------------------------------- 1 | export declare const expr: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/operator/null-safe-comparison/make-eq-candidate-key-of-table/test-01.d.ts: -------------------------------------------------------------------------------- 1 | export declare const expr: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/operator/null-safe-comparison/make-eq-candidate-key-of-table/test-05.d.ts: -------------------------------------------------------------------------------- 1 | export declare const expr: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/operator/null-safe-comparison/make-eq-candidate-key-of-table/test-06.d.ts: -------------------------------------------------------------------------------- 1 | export declare const expr: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/operator/null-safe-comparison/make-eq-candidate-key-of-table/union-of-columns-cannot-use-extra-columns.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/operator/null-safe-comparison/make-eq-candidate-key-of-table/union-of-columns-cannot-use-sub-part-of-key.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/operator/null-safe-comparison/make-eq-primary-key-of-table/dst-can-be-union-but-src-must-have-all-primary-keys-2.d.ts: -------------------------------------------------------------------------------- 1 | export declare const expr: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/operator/null-safe-comparison/make-eq-primary-key-of-table/must-have-all-columns.d.ts: -------------------------------------------------------------------------------- 1 | export declare const expr: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/operator/null-safe-comparison/make-eq-primary-key-of-table/src-can-union-but-must-all-be-valid-2.d.ts: -------------------------------------------------------------------------------- 1 | export declare const expr: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/expr-library/operator/null-safe-comparison/make-eq-primary-key-of-table/src-can-union-but-must-all-be-valid.d.ts: -------------------------------------------------------------------------------- 1 | export declare const expr: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/cross-join/must-be-after-from-clause.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/cross-join/no-duplicate-2.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/cross-join/no-duplicate.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/cross-join/no-union.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/cross-join/referenced-outer-query-join-must-exist.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/inner-join-using-candidate-key/cannot-use-extra-columns.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | export declare const fromClause2: any; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/inner-join-using-candidate-key/cannot-use-sub-part-of-key.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | export declare const fromClause2: any; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/inner-join-using-candidate-key/dst-cannot-be-union.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/inner-join-using-candidate-key/src-and-dst-must-have-same-primitive-type-2.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/inner-join-using-candidate-key/union-of-columns-cannot-use-extra-columns.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/inner-join-using-candidate-key/union-of-columns-cannot-use-sub-part-of-key.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/inner-join-using-primary-key/dst-cannot-be-union.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/inner-join-using-primary-key/must-have-all-columns.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/inner-join-using-primary-key/src-can-be-union-but-must-all-be-valid-2.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/inner-join-using-primary-key/src-can-be-union-but-must-all-be-valid.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/inner-join/cannot-reference-columns-not-in-joins.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/inner-join/cannot-reference-strict-sub-type.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/inner-join/must-be-after-from-clause.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/inner-join/no-duplicate-2.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/inner-join/no-duplicate.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/inner-join/no-union.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/inner-join/referenced-outer-query-join-must-exist.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/left-join-using-candidate-key/cannot-use-extra-columns.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | export declare const fromClause2: any; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/left-join-using-candidate-key/cannot-use-sub-part-of-key.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | export declare const fromClause2: any; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/left-join-using-candidate-key/dst-cannot-be-union.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/left-join-using-candidate-key/src-and-dst-must-have-same-primitive-type-2.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/left-join-using-candidate-key/union-of-columns-cannot-use-extra-columns.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/left-join-using-candidate-key/union-of-columns-cannot-use-sub-part-of-key.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/left-join-using-primary-key/dst-cannot-be-union.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/left-join-using-primary-key/must-have-all-columns.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/left-join-using-primary-key/src-can-be-union-but-must-all-be-valid-2.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/left-join-using-primary-key/src-can-be-union-but-must-all-be-valid.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/left-join/cannot-reference-columns-not-in-joins.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/left-join/cannot-reference-strict-sub-type.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/left-join/must-be-after-from-clause.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/left-join/no-duplicate-2.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/left-join/no-duplicate.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/left-join/no-union.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/left-join/referenced-outer-query-join-must-exist.d.ts: -------------------------------------------------------------------------------- 1 | export declare const fromClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/from-clause/where-eq-outer-query-candidate-key/multi-outer-query-multi-candidate-key-invalid.d.ts: -------------------------------------------------------------------------------- 1 | export declare const result: any; 2 | export declare const result2: any; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/group-by-clause/group-by/cannot-reference-outer-query-column.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/group-by-clause/group-by/must-be-in-from-or-select-clause-2.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/group-by-clause/group-by/must-be-in-from-or-select-clause.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/having-clause/having/before-from-clause-cannot-use-columns.d.ts: -------------------------------------------------------------------------------- 1 | export declare const havingClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/having-clause/having/cannot-use-column-not-in-from-clause.d.ts: -------------------------------------------------------------------------------- 1 | export declare const havingClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/having-clause/having/cannot-use-narrowed-column.d.ts: -------------------------------------------------------------------------------- 1 | export declare const havingClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/having-clause/having/nullable-having-clause-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export declare const havingClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/limit-clause/limit/no-limit-clause-limit-number-0-or-1.d.ts: -------------------------------------------------------------------------------- 1 | export declare const limitClause: { 2 | readonly maxRowCount: 0n | 1n; 3 | readonly offset: 0n; 4 | }; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/limit-clause/limit/no-limit-clause-limit-number-0.d.ts: -------------------------------------------------------------------------------- 1 | export declare const limitClause: { 2 | readonly maxRowCount: 0n; 3 | readonly offset: 0n; 4 | }; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/limit-clause/limit/no-limit-clause-limit-number-1.d.ts: -------------------------------------------------------------------------------- 1 | export declare const limitClause: { 2 | readonly maxRowCount: 1n; 3 | readonly offset: 0n; 4 | }; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/limit-clause/limit/no-limit-clause-limit-number-2.d.ts: -------------------------------------------------------------------------------- 1 | export declare const limitClause: { 2 | readonly maxRowCount: bigint; 3 | readonly offset: 0n; 4 | }; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/limit-clause/limit/no-limit-clause-limit-number-or-bigint.d.ts: -------------------------------------------------------------------------------- 1 | export declare const limitClause: { 2 | readonly maxRowCount: bigint; 3 | readonly offset: 0n; 4 | }; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/limit-clause/limit/no-limit-clause-limit-number.d.ts: -------------------------------------------------------------------------------- 1 | export declare const limitClause: { 2 | readonly maxRowCount: bigint; 3 | readonly offset: 0n; 4 | }; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/limit-clause/limit/no-limit-clause.d.ts: -------------------------------------------------------------------------------- 1 | export declare const limitClause: { 2 | readonly maxRowCount: 9001n; 3 | readonly offset: 0n; 4 | }; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/limit-clause/limit/with-limit-clause.d.ts: -------------------------------------------------------------------------------- 1 | export declare const limitClause: { 2 | readonly maxRowCount: 9001n; 3 | readonly offset: 42n; 4 | }; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/limit-clause/offset/no-limit-clause-offset-number-or-bigint.d.ts: -------------------------------------------------------------------------------- 1 | export declare const limitClause: { 2 | readonly maxRowCount: 9223372036854775807n; 3 | readonly offset: bigint; 4 | }; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/limit-clause/offset/no-limit-clause-offset-number.d.ts: -------------------------------------------------------------------------------- 1 | export declare const limitClause: { 2 | readonly maxRowCount: 9223372036854775807n; 3 | readonly offset: bigint; 4 | }; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/limit-clause/offset/no-limit-clause.d.ts: -------------------------------------------------------------------------------- 1 | export declare const limitClause: { 2 | readonly maxRowCount: 9223372036854775807n; 3 | readonly offset: 9001n; 4 | }; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/limit-clause/offset/with-limit-clause.d.ts: -------------------------------------------------------------------------------- 1 | export declare const limitClause: { 2 | readonly maxRowCount: 1337n; 3 | readonly offset: 9001n; 4 | }; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/order-by-clause/order-by/before-from-clause-cannot-use-columns.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/order-by-clause/order-by/can-use-widened-column.d.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | export declare const orderByClause: readonly (readonly [tsql.SortExpr, "ASC" | "DESC"])[]; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/order-by-clause/order-by/cannot-use-column-not-in-from-clause.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/order-by-clause/order-by/cannot-use-narrowed-column.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/order-by-clause/order-by/implicit-empty-grouping-set-with-aggregate-expression-in-select-clause.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/pool/transaction-if-not-in-one/cannot-go-from-read-only-to-read-write.d.ts: -------------------------------------------------------------------------------- 1 | export declare const v: Promise; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/primary-key/primary-key-input/basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const k: { 2 | readonly a: Date; 3 | readonly b: number; 4 | }; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/primary-key/primary-key-input/union.d.ts: -------------------------------------------------------------------------------- 1 | export declare const k: { 2 | readonly a: Date; 3 | readonly b: number; 4 | } & { 5 | readonly x: boolean; 6 | readonly y: bigint; 7 | }; 8 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/primary-key/primary-key-non-union/bad-things-happen-with-union.d.ts: -------------------------------------------------------------------------------- 1 | export declare const k: never; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/primary-key/primary-key-non-union/basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const k: { 2 | readonly a: Date; 3 | readonly b: number; 4 | }; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/primary-key/primary-key-output/basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const k: { 2 | readonly a: Date; 3 | readonly b: number; 4 | }; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/primary-key/primary-key-output/union.d.ts: -------------------------------------------------------------------------------- 1 | export declare const k: { 2 | readonly a: Date; 3 | readonly b: number; 4 | } | { 5 | readonly x: boolean; 6 | readonly y: bigint; 7 | }; 8 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/select-clause/select/cannot-return-union-2.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/select-clause/select/cannot-return-union.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/select-clause/select/cannot-select-expr.d.ts: -------------------------------------------------------------------------------- 1 | export declare const selectClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/select-clause/select/empty-select-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/select-clause/select/extra-column-map-in-column-ref-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export declare const selectClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/select-clause/select/extra-columns-in-column-map-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export declare const selectClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/select-clause/select/extra-columns-in-column-ref-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export declare const selectClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/select-clause/select/narrowed-column-map-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export declare const selectClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/select-clause/select/narrowed-column-ref-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export declare const selectClause: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/select-clause/select/narrowed-column-type-not-allowed-2.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/select-clause/select/narrowed-column-type-not-allowed-3.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/select-clause/select/narrowed-column-type-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/select-clause/select/no-duplicate-identifiers-2.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/select-clause/select/no-duplicate-identifiers-3.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/select-clause/select/no-duplicate-identifiers-4.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/select-clause/select/no-duplicate-identifiers.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/super-key/super-key-non-union/bad-things-happen-with-union.d.ts: -------------------------------------------------------------------------------- 1 | export declare const k: never; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table-per-type-util/add-parent/column-01-auto-increment-00-explicit-00.d.ts: -------------------------------------------------------------------------------- 1 | export declare const autoIncrement: readonly never[], explicitAutoIncrementValueEnabled: readonly never[]; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table-per-type-util/add-parent/column-01-auto-increment-01-explicit-00.d.ts: -------------------------------------------------------------------------------- 1 | export declare const autoIncrement: readonly "appKeyId"[], explicitAutoIncrementValueEnabled: readonly never[]; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table-per-type-util/add-parent/column-01-auto-increment-01-explicit-01.d.ts: -------------------------------------------------------------------------------- 1 | export declare const autoIncrement: readonly "appKeyId"[], explicitAutoIncrementValueEnabled: readonly "appKeyId"[]; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table-per-type-util/add-parent/column-10-auto-increment-00-explicit-00.d.ts: -------------------------------------------------------------------------------- 1 | export declare const autoIncrement: readonly never[], explicitAutoIncrementValueEnabled: readonly never[]; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table-per-type-util/add-parent/column-10-auto-increment-10-explicit-00.d.ts: -------------------------------------------------------------------------------- 1 | export declare const autoIncrement: readonly "appKeyId"[], explicitAutoIncrementValueEnabled: readonly never[]; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table-per-type-util/add-parent/column-10-auto-increment-10-explicit-10.d.ts: -------------------------------------------------------------------------------- 1 | export declare const autoIncrement: readonly "appKeyId"[], explicitAutoIncrementValueEnabled: readonly "appKeyId"[]; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table-per-type-util/add-parent/column-11-auto-increment-00-explicit-00.d.ts: -------------------------------------------------------------------------------- 1 | export declare const autoIncrement: readonly never[], explicitAutoIncrementValueEnabled: readonly never[]; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table-per-type-util/add-parent/column-11-auto-increment-01-explicit-00.d.ts: -------------------------------------------------------------------------------- 1 | export declare const autoIncrement: readonly never[], explicitAutoIncrementValueEnabled: readonly never[]; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table-per-type-util/add-parent/column-11-auto-increment-01-explicit-01.d.ts: -------------------------------------------------------------------------------- 1 | export declare const autoIncrement: readonly never[], explicitAutoIncrementValueEnabled: readonly never[]; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table-per-type-util/add-parent/column-11-auto-increment-10-explicit-00.d.ts: -------------------------------------------------------------------------------- 1 | export declare const autoIncrement: readonly "appKeyId"[], explicitAutoIncrementValueEnabled: readonly never[]; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table-per-type-util/add-parent/column-11-auto-increment-10-explicit-10.d.ts: -------------------------------------------------------------------------------- 1 | export declare const autoIncrement: readonly "appKeyId"[], explicitAutoIncrementValueEnabled: readonly "appKeyId"[]; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table-per-type-util/add-parent/column-11-auto-increment-11-explicit-00.d.ts: -------------------------------------------------------------------------------- 1 | export declare const autoIncrement: readonly "appKeyId"[], explicitAutoIncrementValueEnabled: readonly never[]; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table-per-type-util/add-parent/column-11-auto-increment-11-explicit-01.d.ts: -------------------------------------------------------------------------------- 1 | export declare const autoIncrement: readonly "appKeyId"[], explicitAutoIncrementValueEnabled: readonly never[]; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table-per-type-util/add-parent/column-11-auto-increment-11-explicit-10.d.ts: -------------------------------------------------------------------------------- 1 | export declare const autoIncrement: readonly "appKeyId"[], explicitAutoIncrementValueEnabled: readonly never[]; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table-per-type-util/add-parent/column-11-auto-increment-11-explicit-11.d.ts: -------------------------------------------------------------------------------- 1 | export declare const autoIncrement: readonly "appKeyId"[], explicitAutoIncrementValueEnabled: readonly "appKeyId"[]; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table-per-type-util/explicit-default-value-column-alias/app-key-example.d.ts: -------------------------------------------------------------------------------- 1 | export declare const browser: "createdAt"[]; 2 | export declare const server: ("createdAt" | "trustProxy")[]; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table-per-type-util/generated-column-alias/app-key-example.d.ts: -------------------------------------------------------------------------------- 1 | export declare const browser: "appKeyTypeId"[]; 2 | export declare const server: "appKeyTypeId"[]; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table-per-type-util/nullable-column-alias/app-key-example.d.ts: -------------------------------------------------------------------------------- 1 | export declare const browser: ("disabledAt" | "referer")[]; 2 | export declare const server: ("disabledAt" | "ipAddress")[]; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table-per-type-util/required-column-alias/app-key-example.d.ts: -------------------------------------------------------------------------------- 1 | export declare const browser: ("key" | "appId")[]; 2 | export declare const server: ("key" | "appId")[]; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table/add-candidate-key/add-sub-key.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table/add-candidate-key/add-super-key.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table/add-candidate-key/empty-key.d.ts: -------------------------------------------------------------------------------- 1 | export declare const t: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table/add-candidate-key/not-a-column.d.ts: -------------------------------------------------------------------------------- 1 | export declare const t: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table/add-candidate-key/set-auto-increment-before.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table/add-candidate-key/set-id-before.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table/insert-and-fetch/candidate-key-generated-2.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: any; 2 | export declare const p2: Promise<{ 3 | readonly testId: bigint; 4 | readonly testVal: bigint; 5 | }>; 6 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table/insert-and-fetch/candidate-key-generated-3.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: any; 2 | export declare const p2: any; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table/insert-and-fetch/candidate-key-generated.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table/insert-and-fetch/empty-insert.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table/insert-and-fetch/no-candidate-key.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table/set-primary-key/add-sub-key.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table/set-primary-key/add-super-key.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table/set-primary-key/empty-key.d.ts: -------------------------------------------------------------------------------- 1 | export declare const t: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table/set-primary-key/not-a-column.d.ts: -------------------------------------------------------------------------------- 1 | export declare const t: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table/set-primary-key/set-auto-increment-before.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table/set-primary-key/set-id-before.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table/update-and-fetch-one-by-candidate-key/column-must-be-mutable.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/table/update-and-fetch-one-by-candidate-key/column-must-exist.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/as/can-be-used-as-expr.d.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | export declare const aliased: tsql.ExprImpl, false>; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/as/must-not-have-duplicate-name-in-select-clause-column-to-column.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/as/must-not-have-duplicate-name-in-select-clause-column-to-map.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/as/must-not-have-duplicate-name-in-select-clause-map-to-column.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/as/must-not-have-duplicate-name-in-select-clause-map-to-map.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/as/must-not-have-duplicate-name-in-select-clause-ref-internal.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/as/must-not-have-duplicate-name-in-select-clause-ref-to-column.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/as/must-not-have-duplicate-name-in-select-clause-ref-to-map.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/assert-exists/before-select-before-from-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/cross-join/cannot-be-lateral.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/cross-join/cannot-call-before-from-clause.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/cross-join/cannot-have-duplicate-in-current-joins.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/cross-join/cannot-have-duplicate-in-outer-query-joins.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/cross-join/cannot-have-used-ref.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/cross-join/no-union.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/exists/before-select-before-from-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-all-mapped/basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise<{ 2 | x: number; 3 | }[]>; 4 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-all-mapped/promise-basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise<{ 2 | x: number; 3 | }[]>; 4 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-all-unmapped-flattened/basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise<{ 2 | readonly value: 42; 3 | }[]>; 4 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-all-unmapped-flattened/ignore-map-delegate.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise<{ 2 | readonly value: 42; 3 | }[]>; 4 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-all-unmapped-flattened/inner-join-2.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise<{ 2 | readonly testId: bigint; 3 | readonly otherVal: bigint; 4 | readonly testVal: bigint; 5 | }[]>; 6 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-all-unmapped-flattened/inner-join-ignore-other-table.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise<{ 2 | readonly testId: bigint; 3 | readonly testVal: bigint; 4 | }[]>; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-all-unmapped/basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise<{ 2 | readonly $aliased: { 3 | readonly value: 42; 4 | }; 5 | }[]>; 6 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-all-unmapped/ignore-map-delegate.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise<{ 2 | readonly $aliased: { 3 | readonly value: 42; 4 | }; 5 | }[]>; 6 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-all-with-map-delegate/basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise<{ 2 | x: number; 3 | }[]>; 4 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-all-with-map-delegate/promise-basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise<{ 2 | x: number; 3 | }[]>; 4 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-all-without-map-delegate/basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise<{ 2 | readonly value: 42; 3 | }[]>; 4 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-all-without-map-delegate/inner-join-2.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise<{ 2 | readonly testId: bigint; 3 | readonly otherVal: bigint; 4 | readonly testVal: bigint; 5 | }[]>; 6 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-all-without-map-delegate/inner-join-ignore-other-table.d.ts: -------------------------------------------------------------------------------- 1 | export declare const p: Promise<{ 2 | readonly testId: bigint; 3 | readonly testVal: bigint; 4 | }[]>; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-one-or-undefined-with-map-delegate/basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const row: Promise<{ 2 | x: number; 3 | } | undefined>; 4 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-one-or-undefined-without-map-delegate/basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const row: Promise<{ 2 | readonly value: 42; 3 | } | undefined>; 4 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-one-or-undefined-without-map-delegate/table-and-aliased.d.ts: -------------------------------------------------------------------------------- 1 | export declare const row: Promise<{ 2 | readonly value: 42; 3 | readonly myTableId: bigint; 4 | } | undefined>; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-one-or-with-map-delegate/basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const row: Promise; 4 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-one-or-without-map-delegate/basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const row: Promise; 4 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-one-or-without-map-delegate/table-and-aliased.d.ts: -------------------------------------------------------------------------------- 1 | export declare const row: Promise; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-one-with-map-delegate/basic.d.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | export declare const row: tsql.ExecutionUtil.FetchOnePromise<{ 3 | x: number; 4 | }>; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-one-without-map-delegate/basic.d.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | export declare const row: tsql.ExecutionUtil.FetchOnePromise<{ 3 | readonly value: 42; 4 | }>; 5 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value-array/column-map-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value-array/column-ref-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value-array/ignore-map-delegate.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value-array/select-column.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value-array/select-expr-select-item.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value-array/select-expr.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value-or-undefined/column-map-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value-or-undefined/column-ref-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value-or-undefined/ignore-map-delegate.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value-or-undefined/select-column.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value-or-undefined/select-expr-select-item.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value-or-undefined/select-expr.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value-or/column-map-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value-or/column-ref-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value-or/ignore-map-delegate.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value-or/select-column.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value-or/select-expr-select-item.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value-or/select-expr.d.ts: -------------------------------------------------------------------------------- 1 | export declare const resultSet: Promise; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value/column-map-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | export declare const resultSet: tsql.ExecutionUtil.FetchValuePromise; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value/column-ref-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | export declare const resultSet: tsql.ExecutionUtil.FetchValuePromise; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value/ignore-map-delegate.d.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | export declare const resultSet: tsql.ExecutionUtil.FetchValuePromise; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value/select-column.d.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | export declare const resultSet: tsql.ExecutionUtil.FetchValuePromise; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value/select-expr-select-item.d.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | export declare const resultSet: tsql.ExecutionUtil.FetchValuePromise; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/fetch-value/select-expr.d.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | export declare const resultSet: tsql.ExecutionUtil.FetchValuePromise; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/from/cannot-call-twice.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/having/after-from-clause-aggregate-can-use-column-not-in-group-by.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/having/after-from-clause-non-aggregate-cannot-use-column-not-in-group-by.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/having/cannot-use-before-group-by-clause.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/having/cannot-use-with-empty-group-by-clause.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/inner-join/cannot-be-lateral.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/inner-join/cannot-have-used-ref.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/inner-join/no-union.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/left-join/cannot-be-lateral.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/left-join/cannot-have-used-ref.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/left-join/left-join-causes-columns-to-be-nullable.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/left-join/no-union.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/order-by/cannot-nest-aggregate-expressions.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/order-by/cannot-reference-outer-query-column.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/order-by/cannot-use-aggregate-in-order-by-without-group-by.1.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/order-by/cannot-use-aggregate-in-order-by-without-group-by.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/select-value/cannot-duplicate-names-3.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/select-value/cannot-duplicate-names.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/select-value/cannot-select-expr-twice.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/select-value/cannot-select-primitive-expr-twice.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/select-value/cannot-select-subquery-twice.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/select/can-reference-outer-query-column.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/select/covering-group-by-problem.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/select/no-group-by-aggregate-only.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/select/no-group-by-mix-aggregate.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/select/no-group-by-non-aggregate-only.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/select/with-group-by-aggregate-only.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/select/with-group-by-mix-aggregate-error.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/select/with-group-by-mix-aggregate.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/select/with-group-by-non-aggregate-only-error.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/select/with-group-by-non-aggregate-only.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/use-as-expr/one-row-before-from-clause.d.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | export declare const expr: tsql.ExprImpl, false>; 3 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-candidate-key/cannot-return-union-type.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-candidate-key/cannot-use-before-from-clause.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-candidate-key/cannot-use-without-candidate-key.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-candidate-key/error-on-excess-property-multple-candidate-keys.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-candidate-key/error-on-excess-property.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-columns/cannot-return-union-type.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-columns/cannot-use-before-from-clause.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-columns/error-on-excess-property.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-inner-query-primary-key/cannot-use-before-from-clause.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-inner-query-primary-key/cannot-use-non-correlated.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-inner-query-primary-key/must-be-null-safe-comparable.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-inner-query-primary-key/must-have-dst-pk-column-names.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-inner-query-primary-key/src-cannot-return-union-type.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-outer-query-primary-key/cannot-use-before-from-clause.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-outer-query-primary-key/cannot-use-non-correlated.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-outer-query-primary-key/must-be-null-safe-comparable.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-outer-query-primary-key/must-have-dst-pk-column-names.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-outer-query-primary-key/src-cannot-return-union-type.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-primary-key/candidate-key-is-not-primary-key.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-primary-key/cannot-return-union-type.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-primary-key/cannot-use-before-from-clause.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-primary-key/cannot-use-without-primary-key.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-primary-key/error-on-excess-property.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-super-key/cannot-return-union-type.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-super-key/cannot-use-before-from-clause.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-super-key/cannot-use-without-candidate-key.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-super-key/error-on-excess-property-multple-candidate-keys.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq-super-key/error-on-excess-property.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq/cannot-compare-against-null.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq/cannot-return-union-type.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq/data-type-must-match.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-eq/nullable-not-allowed.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-null-safe-eq/cannot-return-union-type.d.ts: -------------------------------------------------------------------------------- 1 | export declare const query: any; 2 | -------------------------------------------------------------------------------- /test/compile-time/expected-output/unified-query/where-null-safe-eq/data-type-must-match.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /test/compile-time/input/execution/fetch-all-unmapped/basic.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const p = tsql.ExecutionUtil.fetchAllUnmapped( 4 | tsql.selectValue(() => 42), 5 | null as any 6 | ); 7 | -------------------------------------------------------------------------------- /test/compile-time/input/execution/fetch-all-without-map-delegate/basic.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const p = tsql.ExecutionUtil.fetchAll( 4 | tsql.selectValue(() => 42), 5 | null as any 6 | ); 7 | -------------------------------------------------------------------------------- /test/compile-time/input/expr-library/cannot-nest-aggregate-expression.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../dist"; 2 | 3 | tsql.countExpr(tsql.countAll()); 4 | -------------------------------------------------------------------------------- /test/compile-time/input/expr-library/comparison/coalesce/no-arg.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../../dist"; 2 | 3 | export const expr = tsql.coalesce(); 4 | -------------------------------------------------------------------------------- /test/compile-time/input/expr-library/comparison/in-array/null-first-arg-not-allowed.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../../dist"; 2 | 3 | tsql.inArray(null, []); 4 | -------------------------------------------------------------------------------- /test/compile-time/input/expr-library/comparison/in-query/null-first-arg-not-allowed.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../../dist"; 2 | 3 | tsql.inQuery(null, tsql.selectValue(() => null)); 4 | -------------------------------------------------------------------------------- /test/compile-time/input/expr-library/comparison/like/literals.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../../dist"; 2 | 3 | export const expr0 = tsql.like("ä", "ae", "\\"); 4 | -------------------------------------------------------------------------------- /test/compile-time/input/expr/as/basic.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const expr = tsql.and(true, true); 4 | export const aliasedExprA = expr.as("a"); 5 | export const aliasedExprB = aliasedExprA.as("b"); 6 | -------------------------------------------------------------------------------- /test/compile-time/input/limit-clause/limit/no-limit-clause-limit-number-0-or-1.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const limitClause = tsql.LimitClauseUtil.limit( 4 | undefined, 5 | 0 as 0|1 6 | ); 7 | -------------------------------------------------------------------------------- /test/compile-time/input/limit-clause/limit/no-limit-clause-limit-number-0.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const limitClause = tsql.LimitClauseUtil.limit( 4 | undefined, 5 | 0 6 | ); 7 | -------------------------------------------------------------------------------- /test/compile-time/input/limit-clause/limit/no-limit-clause-limit-number-1.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const limitClause = tsql.LimitClauseUtil.limit( 4 | undefined, 5 | 1 6 | ); 7 | -------------------------------------------------------------------------------- /test/compile-time/input/limit-clause/limit/no-limit-clause-limit-number-2.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const limitClause = tsql.LimitClauseUtil.limit( 4 | undefined, 5 | 2 6 | ); 7 | -------------------------------------------------------------------------------- /test/compile-time/input/limit-clause/limit/no-limit-clause-limit-number-or-bigint.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const limitClause = tsql.LimitClauseUtil.limit( 4 | undefined, 5 | 0 as number|bigint 6 | ); 7 | -------------------------------------------------------------------------------- /test/compile-time/input/limit-clause/limit/no-limit-clause-limit-number.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const limitClause = tsql.LimitClauseUtil.limit( 4 | undefined, 5 | 0 as number 6 | ); 7 | -------------------------------------------------------------------------------- /test/compile-time/input/limit-clause/limit/no-limit-clause.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const limitClause = tsql.LimitClauseUtil.limit( 4 | undefined, 5 | 9001n 6 | ); 7 | -------------------------------------------------------------------------------- /test/compile-time/input/limit-clause/offset/no-limit-clause-offset-number-or-bigint.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const limitClause = tsql.LimitClauseUtil.offset( 4 | undefined, 5 | 0 as number|bigint 6 | ); 7 | -------------------------------------------------------------------------------- /test/compile-time/input/limit-clause/offset/no-limit-clause-offset-number.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const limitClause = tsql.LimitClauseUtil.offset( 4 | undefined, 5 | 0 as number 6 | ); 7 | -------------------------------------------------------------------------------- /test/compile-time/input/limit-clause/offset/no-limit-clause.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const limitClause = tsql.LimitClauseUtil.offset( 4 | undefined, 5 | 9001n 6 | ); 7 | -------------------------------------------------------------------------------- /test/compile-time/input/unified-query/as/no-from-clause-derived-table-select-item.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const aliased = tsql 4 | .select(() => [tsql.and(true, false).as("and")]) 5 | .as("myAlias"); 6 | -------------------------------------------------------------------------------- /test/compile-time/input/unified-query/assert-exists/before-select-before-from-not-allowed.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const p = tsql.QueryUtil.newInstance() 4 | .assertExists(null as any); 5 | -------------------------------------------------------------------------------- /test/compile-time/input/unified-query/correlate/has-neither.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const correlated = tsql.QueryUtil 4 | .newInstance() 5 | .correlate(); 6 | -------------------------------------------------------------------------------- /test/compile-time/input/unified-query/exists/before-select-before-from-not-allowed.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const p = tsql.QueryUtil.newInstance() 4 | .exists(null as any); 5 | -------------------------------------------------------------------------------- /test/compile-time/input/unified-query/fetch-all-unmapped-flattened/basic.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const p = tsql.selectValue(() => 42) 4 | .fetchAllUnmappedFlattened( 5 | null as any 6 | ); 7 | -------------------------------------------------------------------------------- /test/compile-time/input/unified-query/fetch-all-unmapped/basic.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const p = tsql.selectValue(() => 42) 4 | .fetchAllUnmapped( 5 | null as any 6 | ); 7 | -------------------------------------------------------------------------------- /test/compile-time/input/unified-query/fetch-all-without-map-delegate/basic.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const p = tsql.selectValue(() => 42) 4 | .fetchAll( 5 | null as any 6 | ); 7 | -------------------------------------------------------------------------------- /test/compile-time/input/unified-query/fetch-one-without-map-delegate/basic.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const row = tsql.selectValue(() => 42) 4 | .fetchOne( 5 | null as any 6 | ); 7 | -------------------------------------------------------------------------------- /test/compile-time/input/unified-query/limit/with-limit-clause.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const query = tsql.QueryUtil.newInstance() 4 | .limit(90010n) 5 | .offset(420n) 6 | .limit(13370n); 7 | -------------------------------------------------------------------------------- /test/compile-time/input/unified-query/limit/without-limit-clause.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const query = tsql.QueryUtil.newInstance() 4 | .limit(90010n); 5 | -------------------------------------------------------------------------------- /test/compile-time/input/unified-query/offset/with-limit-clause.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const query = tsql.QueryUtil.newInstance() 4 | .offset(90010n) 5 | .limit(420n) 6 | .offset(13370n); 7 | -------------------------------------------------------------------------------- /test/compile-time/input/unified-query/offset/without-limit-clause.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const query = tsql.QueryUtil.newInstance() 4 | .offset(90010n); 5 | -------------------------------------------------------------------------------- /test/compile-time/input/unified-query/select-value/select-boolean.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const q = tsql.selectValue(() => true as boolean); 4 | -------------------------------------------------------------------------------- /test/compile-time/input/unified-query/union-limit/without-limit-clause.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const query = tsql.QueryUtil.newInstance() 4 | .compoundQueryLimit(90010n); 5 | -------------------------------------------------------------------------------- /test/compile-time/input/unified-query/union-offset/without-limit-clause.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const query = tsql.QueryUtil.newInstance() 4 | .compoundQueryOffset(90010n); 5 | -------------------------------------------------------------------------------- /test/compile-time/input/unified-query/where/before-from-clause.ts: -------------------------------------------------------------------------------- 1 | import * as tsql from "../../../../../dist"; 2 | 3 | export const query = tsql.QueryUtil.newInstance() 4 | .where(() => tsql.and( 5 | true, 6 | false 7 | )); 8 | -------------------------------------------------------------------------------- /test/run-time/bluebird-promise.ts: -------------------------------------------------------------------------------- 1 | import * as bluebird from "bluebird"; 2 | 3 | bluebird.config({ 4 | //warnings : true, 5 | longStackTraces : true, 6 | }); 7 | global.Promise = bluebird; 8 | -------------------------------------------------------------------------------- /test/run-time/input/design-pattern-log/unsafe-track-literal-3-becomes-7-on-copy/README.md: -------------------------------------------------------------------------------- 1 | A contrived example data type where the literal 3 is converted to the literal 7... 2 | Only on `INSERT` 3 | -------------------------------------------------------------------------------- /test/run-time/input/design-pattern-log/unsafe-track-literal-3-is-7/README.md: -------------------------------------------------------------------------------- 1 | A contrived example data type where the literal 3 is converted to the literal 7 2 | -------------------------------------------------------------------------------- /test/run-time/input/expr-library/comparison/coalesce/0-arg.sql: -------------------------------------------------------------------------------- 1 | NULL 2 | -------------------------------------------------------------------------------- /test/run-time/input/expr-library/comparison/coalesce/1-arg.sql: -------------------------------------------------------------------------------- 1 | FALSE 2 | -------------------------------------------------------------------------------- /test/run-time/input/expr-library/comparison/coalesce/2-arg.sql: -------------------------------------------------------------------------------- 1 | COALESCE(FALSE, FALSE) 2 | -------------------------------------------------------------------------------- /test/run-time/input/expr-library/comparison/coalesce/3-arg.sql: -------------------------------------------------------------------------------- 1 | COALESCE( 2 | FALSE, 3 | ( 4 | SELECT 5 | FALSE AS "$aliased--value" 6 | ), 7 | FALSE 8 | ) 9 | -------------------------------------------------------------------------------- /test/run-time/input/expr-library/comparison/escape-like-pattern/backslash-2.sql: -------------------------------------------------------------------------------- 1 | ( 2 | "myTable"."myColumn" LIKE '\%D\_v\_d\%' ESCAPE '\' 3 | ) 4 | -------------------------------------------------------------------------------- /test/run-time/input/expr-library/comparison/escape-like-pattern/backslash.sql: -------------------------------------------------------------------------------- 1 | ( 2 | "myTable"."myColumn" LIKE '\%D\\\_v\\\_d\%' ESCAPE '\' 3 | ) 4 | -------------------------------------------------------------------------------- /test/run-time/input/expr-library/comparison/escape-like-pattern/compound-query.sql: -------------------------------------------------------------------------------- 1 | ( 2 | ( 3 | "myTable"."myColumn" LIKE '\%D\\\_v\\\_d\%' ESCAPE '\' 4 | ) AND 5 | (32e0 > 12e0) 6 | ) 7 | -------------------------------------------------------------------------------- /test/run-time/input/expr-library/comparison/escape-like-pattern/dollar-2.sql: -------------------------------------------------------------------------------- 1 | ( 2 | "myTable"."myColumn" LIKE '$%D$_v$_d$%' ESCAPE '$' 3 | ) 4 | -------------------------------------------------------------------------------- /test/run-time/input/expr-library/comparison/escape-like-pattern/dollar.sql: -------------------------------------------------------------------------------- 1 | ( 2 | "myTable"."myColumn" LIKE '$%D$$$_v$$$_d$%' ESCAPE '$' 3 | ) 4 | -------------------------------------------------------------------------------- /test/run-time/input/expr-library/comparison/escape-like-pattern/single-quote-2.sql: -------------------------------------------------------------------------------- 1 | ( 2 | "myTable"."myColumn" LIKE '''%D''_v''_d''%' ESCAPE '''' 3 | ) 4 | -------------------------------------------------------------------------------- /test/run-time/input/expr-library/comparison/escape-like-pattern/single-quote.sql: -------------------------------------------------------------------------------- 1 | ( 2 | "myTable"."myColumn" LIKE '''%D''''''_v''''''_d''%' ESCAPE '''' 3 | ) 4 | -------------------------------------------------------------------------------- /test/run-time/input/expr-library/comparison/in-query/basic.sql: -------------------------------------------------------------------------------- 1 | ( 2 | 9001e0 IN( 3 | SELECT 4 | "myTable"."myColumn" AS "myTable--myColumn" 5 | FROM 6 | "myTable" 7 | ) 8 | ) 9 | -------------------------------------------------------------------------------- /test/run-time/input/expr-library/comparison/like/basic.sql: -------------------------------------------------------------------------------- 1 | ("myTable"."myColumn" LIKE '%D_v_d%' ESCAPE '''') 2 | -------------------------------------------------------------------------------- /test/run-time/input/expr-library/comparison/like/escape-2.sql: -------------------------------------------------------------------------------- 1 | ("myTable"."myColumn" LIKE '%D?_v?_d%' ESCAPE '\') 2 | -------------------------------------------------------------------------------- /test/run-time/input/expr-library/comparison/like/escape.sql: -------------------------------------------------------------------------------- 1 | ("myTable"."myColumn" LIKE '%D?_v?_d%' ESCAPE '?') 2 | -------------------------------------------------------------------------------- /test/run-time/input/expr-library/comparison/not-like/basic.sql: -------------------------------------------------------------------------------- 1 | ( 2 | "myTable"."myColumn" NOT LIKE '%D_v_d%' ESCAPE '~' 3 | ) 4 | -------------------------------------------------------------------------------- /test/run-time/input/expr-library/comparison/not-like/escape-2.sql: -------------------------------------------------------------------------------- 1 | ( 2 | "myTable"."myColumn" NOT LIKE '%D?_v?_d%' ESCAPE '\' 3 | ) 4 | -------------------------------------------------------------------------------- /test/run-time/input/expr-library/comparison/not-like/escape.sql: -------------------------------------------------------------------------------- 1 | ( 2 | "myTable"."myColumn" NOT LIKE '%D?_v?_d%' ESCAPE '?' 3 | ) 4 | -------------------------------------------------------------------------------- /test/run-time/input/query/basic-select-expr-select-item.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | (NOT "myTable"."myBoolColumn") AS "$aliased--neg" 3 | FROM 4 | "myTable" 5 | -------------------------------------------------------------------------------- /test/run-time/input/query/basic-select-from.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | "myTable"."myBoolColumn" AS "myTable--myBoolColumn" 3 | FROM 4 | "myTable" 5 | -------------------------------------------------------------------------------- /test/run-time/input/query/cross-join.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | "myTable"."myBoolColumn" AS "myTable--myBoolColumn" 3 | FROM 4 | "myTable" 5 | CROSS JOIN 6 | "myTable2" 7 | CROSS JOIN 8 | "myTable3" 9 | -------------------------------------------------------------------------------- /test/run-time/input/query/distinct/basic.sql: -------------------------------------------------------------------------------- 1 | SELECT DISTINCT 2 | "myTable"."myTableId" AS "myTable--myTableId" 3 | FROM 4 | "myTable" 5 | -------------------------------------------------------------------------------- /test/run-time/input/query/limit-no-offset.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | "myTable"."myBoolColumn" AS "myTable--myBoolColumn" 3 | FROM 4 | "myTable" 5 | LIMIT 6 | 32 7 | OFFSET 8 | 0 9 | -------------------------------------------------------------------------------- /test/run-time/input/query/limit-with-offset.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | "myTable"."myBoolColumn" AS "myTable--myBoolColumn" 3 | FROM 4 | "myTable" 5 | LIMIT 6 | 32 7 | OFFSET 8 | 45 9 | -------------------------------------------------------------------------------- /test/run-time/input/query/limit/limit-max.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | "myTable"."myBoolColumn" AS "myTable--myBoolColumn" 3 | FROM 4 | "myTable" 5 | LIMIT 6 | 9223372036854775807 7 | OFFSET 8 | 0 9 | -------------------------------------------------------------------------------- /test/run-time/input/query/limit/offset-max.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | "myTable"."myBoolColumn" AS "myTable--myBoolColumn" 3 | FROM 4 | "myTable" 5 | LIMIT 6 | 9223372036854775807 7 | OFFSET 8 | 9223372036854775807 9 | -------------------------------------------------------------------------------- /test/run-time/input/query/offset-no-limit.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | "myTable"."myBoolColumn" AS "myTable--myBoolColumn" 3 | FROM 4 | "myTable" 5 | LIMIT 6 | 9223372036854775807 7 | OFFSET 8 | 45 9 | -------------------------------------------------------------------------------- /test/run-time/input/query/order-by-double-literal.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | PI() AS "$aliased--pi" 3 | ORDER BY 4 | 1e0 ASC 5 | -------------------------------------------------------------------------------- /test/run-time/input/query/order-by-empty.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | PI() AS "$aliased--pi" 3 | -------------------------------------------------------------------------------- /test/run-time/input/query/order-by-integer-literal.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | PI() AS "$aliased--pi" 3 | ORDER BY 4 | 1 + 0 ASC 5 | -------------------------------------------------------------------------------- /test/run-time/input/query/order-by-limit-union-order-by-union-limit/0000.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | PI() AS "$aliased--pi" 3 | FROM 4 | "myTable" 5 | -------------------------------------------------------------------------------- /test/run-time/input/query/order-by-limit-union-order-by-union-limit/0001.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | PI() AS "$aliased--pi" 3 | FROM 4 | "myTable" 5 | LIMIT 6 | 2 7 | OFFSET 8 | 0 9 | -------------------------------------------------------------------------------- /test/run-time/input/query/order-by-limit-union-order-by-union-limit/0010.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | PI() AS "$aliased--pi" 3 | FROM 4 | "myTable" 5 | ORDER BY 6 | "$aliased--pi" DESC 7 | -------------------------------------------------------------------------------- /test/run-time/input/query/order-by-limit-union-order-by-union-limit/0011.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | PI() AS "$aliased--pi" 3 | FROM 4 | "myTable" 5 | ORDER BY 6 | "$aliased--pi" DESC 7 | LIMIT 8 | 2 9 | OFFSET 10 | 0 11 | -------------------------------------------------------------------------------- /test/run-time/input/query/order-by-limit-union-order-by-union-limit/0100.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | PI() AS "$aliased--pi" 3 | FROM 4 | "myTable" 5 | LIMIT 6 | 1 7 | OFFSET 8 | 0 9 | -------------------------------------------------------------------------------- /test/run-time/input/query/order-by-limit-union-order-by-union-limit/0101.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | PI() AS "$aliased--pi" 3 | FROM 4 | "myTable" 5 | LIMIT 6 | 2 7 | OFFSET 8 | 0 9 | -------------------------------------------------------------------------------- /test/run-time/input/query/order-by-limit-union-order-by-union-limit/1000.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | PI() AS "$aliased--pi" 3 | FROM 4 | "myTable" 5 | ORDER BY 6 | "myTable"."myBoolColumn" ASC, 7 | "$aliased--pi" ASC 8 | -------------------------------------------------------------------------------- /test/run-time/input/query/order-by-limit-union-order-by-union-limit/1010.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | PI() AS "$aliased--pi" 3 | FROM 4 | "myTable" 5 | ORDER BY 6 | "$aliased--pi" DESC 7 | -------------------------------------------------------------------------------- /test/run-time/input/query/order-by-limit-union-order-by-union-limit/1011.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | PI() AS "$aliased--pi" 3 | FROM 4 | "myTable" 5 | ORDER BY 6 | "$aliased--pi" DESC 7 | LIMIT 8 | 2 9 | OFFSET 10 | 0 11 | -------------------------------------------------------------------------------- /test/run-time/input/query/select-decimal-literal.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | decimal_ctor('1.234', 42, 10) AS "$aliased--value" 3 | -------------------------------------------------------------------------------- /test/run-time/input/query/select-decimal-subquery.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | decimal_ctor( 3 | ( 4 | SELECT 5 | decimal_ctor('1.234', 10, 4) AS "$aliased--value" 6 | ), 7 | 42, 8 | 10 9 | ) AS "$aliased--value" 10 | -------------------------------------------------------------------------------- /test/run-time/input/query/select-value/select-column-multi.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | "myTable"."myColumn2" AS "myTable--myColumn2", 3 | "myTable"."myColumn" AS "myTable--myColumn" 4 | FROM 5 | "myTable" 6 | -------------------------------------------------------------------------------- /test/run-time/input/query/select-value/select-expr-select-item-multi.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | (NOT "myTable"."myColumn") AS "$aliased--x", 3 | (NOT "myTable"."myColumn") AS "$aliased--y" 4 | FROM 5 | "myTable" 6 | -------------------------------------------------------------------------------- /test/run-time/input/query/select-value/select-expr.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | (NOT TRUE) AS "$aliased--value" 3 | FROM 4 | "myTable" 5 | -------------------------------------------------------------------------------- /test/run-time/input/query/select-value/select-primitive-expr.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | TRUE AS "$aliased--value" 3 | FROM 4 | "myTable" 5 | -------------------------------------------------------------------------------- /test/run-time/input/query/select-value/select-subquery.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | ( 3 | SELECT 4 | (NOT TRUE) AS "$aliased--x" 5 | ) AS "$aliased--value" 6 | FROM 7 | "myTable" 8 | -------------------------------------------------------------------------------- /test/run-time/input/query/union-limit-no-offset-no-union.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | "myTable"."myBoolColumn" AS "myTable--myBoolColumn" 3 | FROM 4 | "myTable" 5 | LIMIT 6 | 3 7 | OFFSET 8 | 0 9 | -------------------------------------------------------------------------------- /test/run-time/input/query/union-limit-with-offset-no-union.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | "myTable"."myBoolColumn" AS "myTable--myBoolColumn" 3 | FROM 4 | "myTable" 5 | LIMIT 6 | 3 7 | OFFSET 8 | 4 9 | -------------------------------------------------------------------------------- /test/run-time/input/query/union-offset-no-limit-no-union.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | "myTable"."myBoolColumn" AS "myTable--myBoolColumn" 3 | FROM 4 | "myTable" 5 | LIMIT 6 | 9223372036854775807 7 | OFFSET 8 | 3 9 | -------------------------------------------------------------------------------- /test/run-time/input/query/where-true.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | "myTable"."myBoolColumn" AS "myTable--myBoolColumn" 3 | FROM 4 | "myTable" 5 | CROSS JOIN 6 | "myTable2" 7 | CROSS JOIN 8 | "myTable3" 9 | WHERE 10 | TRUE 11 | -------------------------------------------------------------------------------- /test/run-time/input/sql.js/copy-paste/sql-wasm.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/test/run-time/input/sql.js/copy-paste/sql-wasm.wasm -------------------------------------------------------------------------------- /test/run-time/input/table/double-quote-in-table-alias.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | "test\""slash"."myBoolColumn" AS "test\""slash--myBoolColumn" 3 | FROM 4 | "test\""slash" 5 | -------------------------------------------------------------------------------- /test/run-time/util.ts: -------------------------------------------------------------------------------- 1 | import {getAllTsFiles} from "../util"; 2 | export {getAllTsFiles}; -------------------------------------------------------------------------------- /unified-test/input/__hello-world/hello-world.ts: -------------------------------------------------------------------------------- 1 | import {Test} from "../../test"; 2 | 3 | export const test : Test = ({tape}) => { 4 | tape(__filename, t => { 5 | t.pass("Hello, world"); 6 | t.end(); 7 | }); 8 | }; 9 | -------------------------------------------------------------------------------- /unified-test/input/insert-and-fetch/all-explicit-columns.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/insert-and-fetch/all-explicit-columns.ts -------------------------------------------------------------------------------- /unified-test/input/insert-and-fetch/explicit-schema-name.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/insert-and-fetch/explicit-schema-name.ts -------------------------------------------------------------------------------- /unified-test/input/insert-and-fetch/implicit-schema-name.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/insert-and-fetch/implicit-schema-name.ts -------------------------------------------------------------------------------- /unified-test/input/insert-and-fetch/some-explicit-columns.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/insert-and-fetch/some-explicit-columns.ts -------------------------------------------------------------------------------- /unified-test/input/insert-and-fetch/zero-explicit-columns.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/insert-and-fetch/zero-explicit-columns.ts -------------------------------------------------------------------------------- /unified-test/input/select/column-in-select-clause.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/column-in-select-clause.ts -------------------------------------------------------------------------------- /unified-test/input/select/column-map-in-select-clause.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/column-map-in-select-clause.ts -------------------------------------------------------------------------------- /unified-test/input/select/column-ref-in-select-clause.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/column-ref-in-select-clause.ts -------------------------------------------------------------------------------- /unified-test/input/select/distinct.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/distinct.ts -------------------------------------------------------------------------------- /unified-test/input/select/expr-select-item-in-select-clause.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/expr-select-item-in-select-clause.ts -------------------------------------------------------------------------------- /unified-test/input/select/having/with-group-by-multi-column.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/having/with-group-by-multi-column.ts -------------------------------------------------------------------------------- /unified-test/input/select/having/with-group-by-one-column.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/having/with-group-by-one-column.ts -------------------------------------------------------------------------------- /unified-test/input/select/having/with-group-by-zero-column.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/having/with-group-by-zero-column.ts -------------------------------------------------------------------------------- /unified-test/input/select/having/without-group-by.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/having/without-group-by.ts -------------------------------------------------------------------------------- /unified-test/input/select/join/aliased-table.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/join/aliased-table.ts -------------------------------------------------------------------------------- /unified-test/input/select/join/derived-table.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/join/derived-table.ts -------------------------------------------------------------------------------- /unified-test/input/select/join/explicit-schema-name.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/join/explicit-schema-name.ts -------------------------------------------------------------------------------- /unified-test/input/select/join/implicit-schema-name.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/join/implicit-schema-name.ts -------------------------------------------------------------------------------- /unified-test/input/select/join/inner-join.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/join/inner-join.ts -------------------------------------------------------------------------------- /unified-test/input/select/join/left-join.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/join/left-join.ts -------------------------------------------------------------------------------- /unified-test/input/select/join/right-join.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/join/right-join.ts -------------------------------------------------------------------------------- /unified-test/input/select/join/table-function.ts.todo: -------------------------------------------------------------------------------- 1 | MySQL 5.7 does not have table functions. 2 | -------------------------------------------------------------------------------- /unified-test/input/select/limit/max-row-count-one.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/limit/max-row-count-one.ts -------------------------------------------------------------------------------- /unified-test/input/select/limit/max-row-count-two.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/limit/max-row-count-two.ts -------------------------------------------------------------------------------- /unified-test/input/select/limit/max-row-count-zero.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/limit/max-row-count-zero.ts -------------------------------------------------------------------------------- /unified-test/input/select/limit/offset-one.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/limit/offset-one.ts -------------------------------------------------------------------------------- /unified-test/input/select/limit/offset-two.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/limit/offset-two.ts -------------------------------------------------------------------------------- /unified-test/input/select/limit/offset-zero.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/limit/offset-zero.ts -------------------------------------------------------------------------------- /unified-test/input/select/non-distinct.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/non-distinct.ts -------------------------------------------------------------------------------- /unified-test/input/select/order-by/aliased-column.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/order-by/aliased-column.ts -------------------------------------------------------------------------------- /unified-test/input/select/order-by/explicit-ascending.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/order-by/explicit-ascending.ts -------------------------------------------------------------------------------- /unified-test/input/select/order-by/explicit-descending.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/order-by/explicit-descending.ts -------------------------------------------------------------------------------- /unified-test/input/select/order-by/expr-order-by.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/order-by/expr-order-by.ts -------------------------------------------------------------------------------- /unified-test/input/select/order-by/expr-select-item-order-by.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/order-by/expr-select-item-order-by.ts -------------------------------------------------------------------------------- /unified-test/input/select/order-by/implicit-ascending.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/order-by/implicit-ascending.ts -------------------------------------------------------------------------------- /unified-test/input/select/order-by/literal-boolean.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/order-by/literal-boolean.ts -------------------------------------------------------------------------------- /unified-test/input/select/order-by/literal-zero-bigint-signed.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/order-by/literal-zero-bigint-signed.ts -------------------------------------------------------------------------------- /unified-test/input/select/order-by/multi-column-order-by.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/order-by/multi-column-order-by.ts -------------------------------------------------------------------------------- /unified-test/input/select/order-by/one-column-order-by.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/order-by/one-column-order-by.ts -------------------------------------------------------------------------------- /unified-test/input/select/order-by/subquery.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/order-by/subquery.ts -------------------------------------------------------------------------------- /unified-test/input/select/order-by/zero-column-order-by.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/order-by/zero-column-order-by.ts -------------------------------------------------------------------------------- /unified-test/input/select/where/matching-one-row.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/where/matching-one-row.ts -------------------------------------------------------------------------------- /unified-test/input/select/where/matching-some-rows.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/where/matching-some-rows.ts -------------------------------------------------------------------------------- /unified-test/input/select/where/where-false.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/where/where-false.ts -------------------------------------------------------------------------------- /unified-test/input/select/where/where-true.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnyhowStep/tsql/00d4acc051ce450e1f71867818b96afaf11c2eeb/unified-test/input/select/where/where-true.ts --------------------------------------------------------------------------------