@relq/orm 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +33 -224
- package/dist/cjs/addon/cursor.cjs +4 -3
- package/dist/cjs/addon/mysql2.cjs +21144 -0
- package/dist/cjs/addon/pg.cjs +4 -3
- package/dist/cjs/cache/query-cache.cjs +1 -4
- package/dist/cjs/core/cte/cte-accessor.cjs +80 -0
- package/dist/cjs/core/cte/cte-types.cjs +24 -0
- package/dist/cjs/core/cte/native-cte-builder.cjs +254 -0
- package/dist/cjs/core/helpers/index.cjs +14 -14
- package/dist/cjs/core/relq-base.cjs +4 -88
- package/dist/cjs/core/relq-client.cjs +52 -25
- package/dist/cjs/core/shared/column-mapping.cjs +1 -1
- package/dist/cjs/core/shared/table-accessor.cjs +1 -1
- package/dist/cjs/core/shared/where.cjs +15 -0
- package/dist/cjs/index.cjs +40 -5
- package/dist/cjs/mysql/clients/index.cjs +17 -0
- package/dist/cjs/mysql/clients/mariadb-client/capabilities.cjs +31 -0
- package/dist/cjs/mysql/clients/mariadb-client/index.cjs +7 -0
- package/dist/cjs/mysql/clients/mariadb-client/relq-mariadb.cjs +14 -0
- package/dist/cjs/mysql/clients/mysql-client/capabilities.cjs +31 -0
- package/dist/cjs/mysql/clients/mysql-client/index.cjs +7 -0
- package/dist/cjs/mysql/clients/mysql-client/relq-mysql.cjs +14 -0
- package/dist/cjs/mysql/clients/planetscale-client/capabilities.cjs +31 -0
- package/dist/cjs/mysql/clients/planetscale-client/index.cjs +7 -0
- package/dist/cjs/mysql/clients/planetscale-client/relq-planetscale.cjs +32 -0
- package/dist/cjs/mysql/clients/shared/index.cjs +32 -0
- package/dist/cjs/mysql/clients/shared/mysql-base.cjs +362 -0
- package/dist/cjs/mysql/clients/shared/mysql-dialect.cjs +141 -0
- package/dist/cjs/mysql/clients/shared/mysql-error-parser.cjs +195 -0
- package/dist/cjs/mysql/clients/shared/mysql-format.cjs +95 -0
- package/dist/cjs/mysql/clients/shared/mysql-type-coercion.cjs +14 -0
- package/dist/cjs/mysql/condition/condition-collector.cjs +377 -0
- package/dist/cjs/mysql/condition/fulltext-condition-builder.cjs +63 -0
- package/dist/cjs/mysql/condition/index.cjs +16 -0
- package/dist/cjs/mysql/condition/json-condition-builder.cjs +144 -0
- package/dist/cjs/mysql/condition/json-path-proxy.cjs +520 -0
- package/dist/cjs/mysql/count/count-builder.cjs +109 -0
- package/dist/cjs/mysql/count/index.cjs +5 -0
- package/dist/cjs/mysql/delete/delete-builder.cjs +105 -0
- package/dist/cjs/mysql/delete/index.cjs +5 -0
- package/dist/cjs/mysql/explain/explain-builder.cjs +43 -0
- package/dist/cjs/mysql/explain/index.cjs +5 -0
- package/dist/cjs/mysql/helpers/MysqlConnectedAggregateBuilder.cjs +132 -0
- package/dist/cjs/mysql/helpers/MysqlConnectedCountBuilder.cjs +83 -0
- package/dist/cjs/mysql/helpers/MysqlConnectedDeleteBuilder.cjs +91 -0
- package/dist/cjs/mysql/helpers/MysqlConnectedInsertBuilder.cjs +75 -0
- package/dist/cjs/mysql/helpers/MysqlConnectedInsertFromSelectBuilder.cjs +57 -0
- package/dist/cjs/mysql/helpers/MysqlConnectedQueryBuilder.cjs +141 -0
- package/dist/cjs/mysql/helpers/MysqlConnectedRawQueryBuilder.cjs +60 -0
- package/dist/cjs/mysql/helpers/MysqlConnectedSelectBuilder.cjs +398 -0
- package/dist/cjs/mysql/helpers/MysqlConnectedTransactionBuilder.cjs +128 -0
- package/dist/cjs/mysql/helpers/MysqlConnectedUpdateBuilder.cjs +92 -0
- package/dist/cjs/mysql/helpers/MysqlPaginateBuilder.cjs +186 -0
- package/dist/cjs/mysql/helpers/MysqlReturningExecutor.cjs +69 -0
- package/dist/cjs/mysql/helpers/index.cjs +45 -0
- package/dist/cjs/mysql/helpers/query-convenience.cjs +210 -0
- package/dist/cjs/mysql/helpers/select-joins.cjs +465 -0
- package/dist/cjs/mysql/helpers/select-pagination.cjs +190 -0
- package/dist/cjs/mysql/index.cjs +154 -0
- package/dist/cjs/mysql/insert/duplicate-key-builder.cjs +185 -0
- package/dist/cjs/mysql/insert/index.cjs +13 -0
- package/dist/cjs/mysql/insert/insert-builder.cjs +169 -0
- package/dist/cjs/mysql/insert/insert-from-select-builder.cjs +74 -0
- package/dist/cjs/mysql/raw/index.cjs +8 -0
- package/dist/cjs/mysql/raw/raw-query-builder.cjs +27 -0
- package/dist/cjs/mysql/raw/sql-template.cjs +65 -0
- package/dist/cjs/mysql/select/aggregate-builder.cjs +211 -0
- package/dist/cjs/mysql/select/index.cjs +32 -0
- package/dist/cjs/mysql/select/join-builder.cjs +206 -0
- package/dist/cjs/mysql/select/join-condition-builder.cjs +205 -0
- package/dist/cjs/mysql/select/join-internals.cjs +5 -0
- package/dist/cjs/mysql/select/scalar-query-builder.cjs +164 -0
- package/dist/cjs/mysql/select/scalar-select-builder.cjs +78 -0
- package/dist/cjs/mysql/select/select-builder.cjs +414 -0
- package/dist/cjs/mysql/select/sql-expression.cjs +56 -0
- package/dist/cjs/mysql/select/table-proxy.cjs +99 -0
- package/dist/cjs/mysql/shared/mysql-table-accessor.cjs +22 -0
- package/dist/cjs/mysql/transaction/index.cjs +6 -0
- package/dist/cjs/mysql/transaction/transaction-builder.cjs +64 -0
- package/dist/cjs/mysql/update/column-expression-builder.cjs +49 -0
- package/dist/cjs/mysql/update/index.cjs +7 -0
- package/dist/cjs/mysql/update/mysql-json-update-builder.cjs +200 -0
- package/dist/cjs/mysql/update/update-builder.cjs +167 -0
- package/dist/cjs/mysql/utils/addon/mysql/mysql2.cjs +23 -0
- package/dist/cjs/mysql/utils/fk-resolver.cjs +187 -0
- package/dist/cjs/mysql/utils/index.cjs +16 -0
- package/dist/cjs/mysql/utils/type-coercion.cjs +158 -0
- package/dist/cjs/mysql/window/index.cjs +5 -0
- package/dist/cjs/mysql/window/window-builder.cjs +80 -0
- package/dist/cjs/pg/clients/alloydb-client/capabilities.cjs +31 -0
- package/dist/cjs/pg/clients/alloydb-client/index.cjs +7 -0
- package/dist/cjs/pg/clients/alloydb-client/relq-alloydb.cjs +43 -0
- package/dist/cjs/pg/clients/aurora-client/capabilities.cjs +31 -0
- package/dist/cjs/pg/clients/aurora-client/index.cjs +7 -0
- package/dist/cjs/pg/clients/aurora-client/relq-aurora.cjs +43 -0
- package/dist/cjs/pg/clients/citus-client/capabilities.cjs +31 -0
- package/dist/cjs/pg/clients/citus-client/index.cjs +7 -0
- package/dist/cjs/pg/clients/citus-client/relq-citus.cjs +43 -0
- package/dist/cjs/pg/clients/neon-client/capabilities.cjs +31 -0
- package/dist/cjs/pg/clients/neon-client/index.cjs +7 -0
- package/dist/cjs/pg/clients/neon-client/relq-neon.cjs +43 -0
- package/dist/cjs/pg/clients/pg-client/relq-postgres.cjs +56 -0
- package/dist/cjs/{core/pg-family → pg/clients}/shared/pg-base.cjs +64 -7
- package/dist/cjs/{core/pg-family → pg/clients}/shared/pg-type-coercion.cjs +1 -1
- package/dist/cjs/pg/clients/supabase-client/capabilities.cjs +31 -0
- package/dist/cjs/pg/clients/supabase-client/index.cjs +7 -0
- package/dist/cjs/{core/pg-family/pg-client/relq-postgres.cjs → pg/clients/supabase-client/relq-supabase.cjs} +9 -9
- package/dist/cjs/pg/clients/timescale-client/capabilities.cjs +31 -0
- package/dist/cjs/pg/clients/timescale-client/index.cjs +7 -0
- package/dist/cjs/pg/clients/timescale-client/relq-timescale.cjs +43 -0
- package/dist/cjs/pg/clients/yugabytedb-client/capabilities.cjs +31 -0
- package/dist/cjs/pg/clients/yugabytedb-client/index.cjs +7 -0
- package/dist/cjs/pg/clients/yugabytedb-client/relq-yugabytedb.cjs +16 -0
- package/dist/cjs/{condition → pg/condition}/array-condition-builder.cjs +1 -1
- package/dist/cjs/pg/condition/array-path-proxy.cjs +379 -0
- package/dist/cjs/{condition → pg/condition}/condition-collector.cjs +18 -9
- package/dist/cjs/{condition → pg/condition}/fulltext-condition-builder.cjs +1 -1
- package/dist/cjs/{condition → pg/condition}/geometric-condition-builder.cjs +1 -1
- package/dist/cjs/pg/condition/json-path-proxy.cjs +480 -0
- package/dist/cjs/{condition → pg/condition}/jsonb-condition-builder.cjs +1 -1
- package/dist/cjs/{condition → pg/condition}/network-condition-builder.cjs +1 -1
- package/dist/cjs/{condition → pg/condition}/postgis-condition-builder.cjs +1 -1
- package/dist/cjs/{condition → pg/condition}/range-condition-builder.cjs +1 -1
- package/dist/cjs/{count → pg/count}/count-builder.cjs +10 -5
- package/dist/cjs/{delete → pg/delete}/delete-builder.cjs +10 -5
- package/dist/cjs/{core → pg}/helpers/ConnectedAggregateBuilder.cjs +16 -3
- package/dist/cjs/{core → pg}/helpers/ConnectedCountBuilder.cjs +16 -3
- package/dist/cjs/{core → pg}/helpers/ConnectedDeleteBuilder.cjs +27 -7
- package/dist/cjs/{core → pg}/helpers/ConnectedInsertBuilder.cjs +16 -8
- package/dist/cjs/{core → pg}/helpers/ConnectedInsertFromSelectBuilder.cjs +9 -5
- package/dist/cjs/{core → pg}/helpers/ConnectedQueryBuilder.cjs +14 -19
- package/dist/cjs/pg/helpers/ConnectedRawQueryBuilder.cjs +67 -0
- package/dist/cjs/{core → pg}/helpers/ConnectedSelectBuilder.cjs +121 -25
- package/dist/cjs/{core → pg}/helpers/ConnectedTransactionBuilder.cjs +34 -4
- package/dist/cjs/{core → pg}/helpers/ConnectedUpdateBuilder.cjs +27 -7
- package/dist/cjs/{core → pg}/helpers/PaginateBuilder.cjs +3 -3
- package/dist/cjs/{core → pg}/helpers/ReturningExecutor.cjs +3 -3
- package/dist/cjs/{core → pg}/helpers/query-convenience.cjs +11 -12
- package/dist/cjs/{core → pg}/helpers/select-joins.cjs +17 -14
- package/dist/cjs/{core → pg}/helpers/select-pagination.cjs +1 -1
- package/dist/cjs/{insert → pg/insert}/conflict-builder.cjs +2 -2
- package/dist/cjs/{insert → pg/insert}/insert-builder.cjs +8 -5
- package/dist/cjs/{insert → pg/insert}/insert-from-select-builder.cjs +1 -1
- package/dist/cjs/{pubsub → pg/pubsub}/listen-notify-builder.cjs +1 -1
- package/dist/cjs/{pubsub → pg/pubsub}/listener-connection.cjs +2 -2
- package/dist/cjs/{raw → pg/raw}/raw-query-builder.cjs +2 -2
- package/dist/cjs/{raw → pg/raw}/sql-template.cjs +1 -6
- package/dist/cjs/{select → pg/select}/aggregate-builder.cjs +10 -5
- package/dist/cjs/{select → pg/select}/join-builder.cjs +2 -2
- package/dist/cjs/{select → pg/select}/join-condition-builder.cjs +11 -1
- package/dist/cjs/{select → pg/select}/join-many-condition-builder.cjs +3 -4
- package/dist/cjs/{select → pg/select}/scalar-query-builder.cjs +31 -1
- package/dist/cjs/{select → pg/select}/scalar-select-builder.cjs +1 -1
- package/dist/cjs/{select → pg/select}/select-builder.cjs +40 -7
- package/dist/cjs/pg/select/sql-expression.cjs +56 -0
- package/dist/cjs/{transaction → pg/transaction}/transaction-builder.cjs +1 -1
- package/dist/cjs/{update → pg/update}/array-update-builder.cjs +2 -5
- package/dist/cjs/pg/update/column-expression-builder.cjs +49 -0
- package/dist/cjs/{update → pg/update}/jsonb-update-builder.cjs +1 -1
- package/dist/cjs/{update → pg/update}/update-builder.cjs +14 -7
- package/dist/cjs/{utils → pg/utils}/addon/pg/cursor.cjs +1 -1
- package/dist/cjs/{utils → pg/utils}/addon/pg/pg.cjs +2 -2
- package/dist/cjs/{utils → pg/utils}/fk-resolver.cjs +47 -30
- package/dist/cjs/{window → pg/window}/window-builder.cjs +1 -1
- package/dist/cjs/shared/errors/relq-errors.cjs +496 -35
- package/dist/cjs/shared/types/config-types.cjs +2 -2
- package/dist/cjs/utils/env-resolver.cjs +76 -13
- package/dist/cjs/utils/index.cjs +1 -1
- package/dist/esm/addon/cursor.js +4 -3
- package/dist/esm/addon/mysql2.js +21132 -0
- package/dist/esm/addon/pg.js +4 -3
- package/dist/esm/cache/query-cache.js +1 -4
- package/dist/esm/core/cte/cte-accessor.js +75 -0
- package/dist/esm/core/cte/cte-types.js +20 -0
- package/dist/esm/core/cte/native-cte-builder.js +250 -0
- package/dist/esm/core/helpers/index.js +12 -12
- package/dist/esm/core/relq-base.js +5 -56
- package/dist/esm/core/relq-client.js +44 -24
- package/dist/esm/core/shared/column-mapping.js +1 -1
- package/dist/esm/core/shared/table-accessor.js +1 -1
- package/dist/esm/core/shared/where.js +12 -0
- package/dist/esm/index.js +17 -5
- package/dist/esm/mysql/clients/index.js +5 -0
- package/dist/esm/mysql/clients/mariadb-client/capabilities.js +28 -0
- package/dist/esm/mysql/clients/mariadb-client/index.js +2 -0
- package/dist/esm/mysql/clients/mariadb-client/relq-mariadb.js +10 -0
- package/dist/esm/mysql/clients/mysql-client/capabilities.js +28 -0
- package/dist/esm/mysql/clients/mysql-client/index.js +2 -0
- package/dist/esm/mysql/clients/mysql-client/relq-mysql.js +10 -0
- package/dist/esm/mysql/clients/planetscale-client/capabilities.js +28 -0
- package/dist/esm/mysql/clients/planetscale-client/index.js +2 -0
- package/dist/esm/mysql/clients/planetscale-client/relq-planetscale.js +28 -0
- package/dist/esm/mysql/clients/shared/index.js +7 -0
- package/dist/esm/mysql/clients/shared/mysql-base.js +321 -0
- package/dist/esm/mysql/clients/shared/mysql-dialect.js +136 -0
- package/dist/esm/mysql/clients/shared/mysql-error-parser.js +188 -0
- package/dist/esm/mysql/clients/shared/mysql-format.js +92 -0
- package/dist/esm/mysql/clients/shared/mysql-type-coercion.js +6 -0
- package/dist/esm/mysql/condition/condition-collector.js +368 -0
- package/dist/esm/mysql/condition/fulltext-condition-builder.js +55 -0
- package/dist/esm/mysql/condition/index.js +4 -0
- package/dist/esm/mysql/condition/json-condition-builder.js +136 -0
- package/dist/esm/mysql/condition/json-path-proxy.js +513 -0
- package/dist/esm/mysql/count/count-builder.js +102 -0
- package/dist/esm/mysql/count/index.js +1 -0
- package/dist/esm/mysql/delete/delete-builder.js +98 -0
- package/dist/esm/mysql/delete/index.js +1 -0
- package/dist/esm/mysql/explain/explain-builder.js +39 -0
- package/dist/esm/mysql/explain/index.js +1 -0
- package/dist/esm/mysql/helpers/MysqlConnectedAggregateBuilder.js +128 -0
- package/dist/esm/{core/helpers/ConnectedCountBuilder.js → mysql/helpers/MysqlConnectedCountBuilder.js} +15 -5
- package/dist/esm/mysql/helpers/MysqlConnectedDeleteBuilder.js +87 -0
- package/dist/esm/mysql/helpers/MysqlConnectedInsertBuilder.js +71 -0
- package/dist/esm/mysql/helpers/MysqlConnectedInsertFromSelectBuilder.js +53 -0
- package/dist/esm/mysql/helpers/MysqlConnectedQueryBuilder.js +137 -0
- package/dist/esm/mysql/helpers/MysqlConnectedRawQueryBuilder.js +56 -0
- package/dist/esm/mysql/helpers/MysqlConnectedSelectBuilder.js +391 -0
- package/dist/esm/mysql/helpers/MysqlConnectedTransactionBuilder.js +123 -0
- package/dist/esm/mysql/helpers/MysqlConnectedUpdateBuilder.js +88 -0
- package/dist/esm/mysql/helpers/MysqlPaginateBuilder.js +182 -0
- package/dist/esm/mysql/helpers/MysqlReturningExecutor.js +65 -0
- package/dist/esm/mysql/helpers/index.js +15 -0
- package/dist/esm/mysql/helpers/query-convenience.js +199 -0
- package/dist/esm/mysql/helpers/select-joins.js +455 -0
- package/dist/esm/mysql/helpers/select-pagination.js +186 -0
- package/dist/esm/mysql/index.js +47 -0
- package/dist/esm/mysql/insert/duplicate-key-builder.js +174 -0
- package/dist/esm/mysql/insert/index.js +3 -0
- package/dist/esm/mysql/insert/insert-builder.js +162 -0
- package/dist/esm/mysql/insert/insert-from-select-builder.js +67 -0
- package/dist/esm/mysql/raw/index.js +2 -0
- package/dist/esm/mysql/raw/raw-query-builder.js +20 -0
- package/dist/esm/mysql/raw/sql-template.js +58 -0
- package/dist/esm/mysql/select/aggregate-builder.js +204 -0
- package/dist/esm/mysql/select/index.js +9 -0
- package/dist/esm/mysql/select/join-builder.js +198 -0
- package/dist/esm/mysql/select/join-condition-builder.js +197 -0
- package/dist/esm/mysql/select/join-internals.js +2 -0
- package/dist/esm/mysql/select/scalar-query-builder.js +156 -0
- package/dist/esm/mysql/select/scalar-select-builder.js +70 -0
- package/dist/esm/mysql/select/select-builder.js +407 -0
- package/dist/esm/mysql/select/sql-expression.js +51 -0
- package/dist/esm/mysql/select/table-proxy.js +91 -0
- package/dist/esm/mysql/shared/mysql-table-accessor.js +19 -0
- package/dist/esm/mysql/transaction/index.js +1 -0
- package/dist/esm/mysql/transaction/transaction-builder.js +56 -0
- package/dist/esm/mysql/update/column-expression-builder.js +42 -0
- package/dist/esm/mysql/update/index.js +2 -0
- package/dist/esm/mysql/update/mysql-json-update-builder.js +193 -0
- package/dist/esm/mysql/update/update-builder.js +160 -0
- package/dist/esm/mysql/utils/addon/mysql/mysql2.js +2 -0
- package/dist/esm/mysql/utils/fk-resolver.js +179 -0
- package/dist/esm/mysql/utils/index.js +2 -0
- package/dist/esm/mysql/utils/type-coercion.js +150 -0
- package/dist/esm/mysql/window/index.js +1 -0
- package/dist/esm/mysql/window/window-builder.js +73 -0
- package/dist/esm/pg/clients/alloydb-client/capabilities.js +28 -0
- package/dist/esm/pg/clients/alloydb-client/index.js +2 -0
- package/dist/esm/{core/pg-family/pg-client/relq-postgres.js → pg/clients/alloydb-client/relq-alloydb.js} +8 -8
- package/dist/esm/pg/clients/aurora-client/capabilities.js +28 -0
- package/dist/esm/pg/clients/aurora-client/index.js +2 -0
- package/dist/esm/pg/clients/aurora-client/relq-aurora.js +39 -0
- package/dist/esm/pg/clients/citus-client/capabilities.js +28 -0
- package/dist/esm/pg/clients/citus-client/index.js +2 -0
- package/dist/esm/pg/clients/citus-client/relq-citus.js +39 -0
- package/dist/esm/pg/clients/neon-client/capabilities.js +28 -0
- package/dist/esm/pg/clients/neon-client/index.js +2 -0
- package/dist/esm/pg/clients/neon-client/relq-neon.js +39 -0
- package/dist/esm/pg/clients/pg-client/relq-postgres.js +52 -0
- package/dist/esm/{core/pg-family → pg/clients}/shared/pg-base.js +64 -7
- package/dist/esm/{core/pg-family → pg/clients}/shared/pg-type-coercion.js +1 -1
- package/dist/esm/pg/clients/supabase-client/capabilities.js +28 -0
- package/dist/esm/pg/clients/supabase-client/index.js +2 -0
- package/dist/esm/pg/clients/supabase-client/relq-supabase.js +39 -0
- package/dist/esm/pg/clients/timescale-client/capabilities.js +28 -0
- package/dist/esm/pg/clients/timescale-client/index.js +2 -0
- package/dist/esm/pg/clients/timescale-client/relq-timescale.js +39 -0
- package/dist/esm/pg/clients/yugabytedb-client/capabilities.js +28 -0
- package/dist/esm/pg/clients/yugabytedb-client/index.js +2 -0
- package/dist/esm/pg/clients/yugabytedb-client/relq-yugabytedb.js +12 -0
- package/dist/esm/{condition → pg/condition}/array-condition-builder.js +1 -1
- package/dist/esm/pg/condition/array-path-proxy.js +372 -0
- package/dist/esm/{condition → pg/condition}/condition-collector.js +20 -11
- package/dist/esm/{condition → pg/condition}/fulltext-condition-builder.js +1 -1
- package/dist/esm/{condition → pg/condition}/geometric-condition-builder.js +1 -1
- package/dist/esm/pg/condition/json-path-proxy.js +473 -0
- package/dist/esm/{condition → pg/condition}/jsonb-condition-builder.js +1 -1
- package/dist/esm/{condition → pg/condition}/network-condition-builder.js +1 -1
- package/dist/esm/{condition → pg/condition}/postgis-condition-builder.js +1 -1
- package/dist/esm/{condition → pg/condition}/range-condition-builder.js +1 -1
- package/dist/esm/{count → pg/count}/count-builder.js +10 -5
- package/dist/esm/{delete → pg/delete}/delete-builder.js +10 -5
- package/dist/esm/{core → pg}/helpers/ConnectedAggregateBuilder.js +16 -3
- package/dist/esm/pg/helpers/ConnectedCountBuilder.js +82 -0
- package/dist/esm/{core → pg}/helpers/ConnectedDeleteBuilder.js +27 -7
- package/dist/esm/{core → pg}/helpers/ConnectedInsertBuilder.js +16 -8
- package/dist/esm/{core → pg}/helpers/ConnectedInsertFromSelectBuilder.js +9 -5
- package/dist/esm/{core → pg}/helpers/ConnectedQueryBuilder.js +15 -20
- package/dist/esm/pg/helpers/ConnectedRawQueryBuilder.js +63 -0
- package/dist/esm/{core → pg}/helpers/ConnectedSelectBuilder.js +118 -25
- package/dist/esm/{core → pg}/helpers/ConnectedTransactionBuilder.js +34 -4
- package/dist/esm/{core → pg}/helpers/ConnectedUpdateBuilder.js +27 -7
- package/dist/esm/{core → pg}/helpers/PaginateBuilder.js +3 -3
- package/dist/esm/{core → pg}/helpers/ReturningExecutor.js +3 -3
- package/dist/esm/{core → pg}/helpers/query-convenience.js +11 -12
- package/dist/esm/{core → pg}/helpers/select-joins.js +18 -15
- package/dist/esm/{core → pg}/helpers/select-pagination.js +1 -1
- package/dist/esm/{insert → pg/insert}/conflict-builder.js +2 -2
- package/dist/esm/{insert → pg/insert}/insert-builder.js +8 -5
- package/dist/esm/{insert → pg/insert}/insert-from-select-builder.js +1 -1
- package/dist/esm/{pubsub → pg/pubsub}/listen-notify-builder.js +1 -1
- package/dist/esm/{pubsub → pg/pubsub}/listener-connection.js +2 -2
- package/dist/esm/{raw → pg/raw}/raw-query-builder.js +2 -2
- package/dist/esm/{raw → pg/raw}/sql-template.js +1 -6
- package/dist/esm/{select → pg/select}/aggregate-builder.js +10 -5
- package/dist/esm/{select → pg/select}/join-builder.js +2 -2
- package/dist/esm/{select → pg/select}/join-condition-builder.js +11 -1
- package/dist/esm/{select → pg/select}/join-many-condition-builder.js +3 -4
- package/dist/esm/{select → pg/select}/scalar-query-builder.js +31 -1
- package/dist/esm/{select → pg/select}/scalar-select-builder.js +1 -1
- package/dist/esm/{select → pg/select}/select-builder.js +40 -7
- package/dist/esm/pg/select/sql-expression.js +51 -0
- package/dist/esm/{transaction → pg/transaction}/transaction-builder.js +1 -1
- package/dist/esm/{update → pg/update}/array-update-builder.js +2 -5
- package/dist/esm/pg/update/column-expression-builder.js +42 -0
- package/dist/esm/{update → pg/update}/jsonb-update-builder.js +1 -1
- package/dist/esm/{update → pg/update}/update-builder.js +14 -7
- package/dist/esm/pg/utils/addon/pg/cursor.js +1 -0
- package/dist/esm/pg/utils/addon/pg/pg.js +2 -0
- package/dist/esm/{utils → pg/utils}/fk-resolver.js +47 -30
- package/dist/esm/{window → pg/window}/window-builder.js +1 -1
- package/dist/esm/shared/errors/relq-errors.js +486 -34
- package/dist/esm/shared/types/config-types.js +2 -2
- package/dist/esm/utils/env-resolver.js +74 -13
- package/dist/esm/utils/index.js +1 -1
- package/dist/index.d.ts +9629 -3974
- package/package.json +5 -3
- package/dist/cjs/core/helpers/ConnectedCTEBuilder.cjs +0 -53
- package/dist/cjs/core/helpers/ConnectedRawQueryBuilder.cjs +0 -46
- package/dist/cjs/select/sql-expression.cjs +0 -38
- package/dist/esm/core/helpers/ConnectedCTEBuilder.js +0 -49
- package/dist/esm/core/helpers/ConnectedRawQueryBuilder.js +0 -42
- package/dist/esm/select/sql-expression.js +0 -33
- package/dist/esm/utils/addon/pg/cursor.js +0 -1
- package/dist/esm/utils/addon/pg/pg.js +0 -2
- /package/dist/cjs/{core/pg-family → pg/clients}/cockroachdb-client/capabilities.cjs +0 -0
- /package/dist/cjs/{core/pg-family → pg/clients}/cockroachdb-client/index.cjs +0 -0
- /package/dist/cjs/{core/pg-family → pg/clients}/cockroachdb-client/relq-cockroach.cjs +0 -0
- /package/dist/cjs/{core/pg-family → pg/clients}/dsql-client/capabilities.cjs +0 -0
- /package/dist/cjs/{core/pg-family → pg/clients}/dsql-client/index.cjs +0 -0
- /package/dist/cjs/{core/pg-family → pg/clients}/dsql-client/relq-dsql.cjs +0 -0
- /package/dist/cjs/{core/pg-family → pg/clients}/index.cjs +0 -0
- /package/dist/cjs/{core/pg-family → pg/clients}/nile-client/capabilities.cjs +0 -0
- /package/dist/cjs/{core/pg-family → pg/clients}/nile-client/index.cjs +0 -0
- /package/dist/cjs/{core/pg-family → pg/clients}/nile-client/relq-nile.cjs +0 -0
- /package/dist/cjs/{core/pg-family → pg/clients}/nile-client/tenant-context.cjs +0 -0
- /package/dist/cjs/{core/pg-family → pg/clients}/pg-client/capabilities.cjs +0 -0
- /package/dist/cjs/{core/pg-family → pg/clients}/pg-client/index.cjs +0 -0
- /package/dist/cjs/{core/pg-family → pg/clients}/shared/pg-dialect.cjs +0 -0
- /package/dist/cjs/{core/pg-family → pg/clients}/shared/pg-error-parser.cjs +0 -0
- /package/dist/cjs/{condition → pg/condition}/array-numeric-condition-builder.cjs +0 -0
- /package/dist/cjs/{condition → pg/condition}/array-specialized-condition-builder.cjs +0 -0
- /package/dist/cjs/{condition → pg/condition}/array-string-condition-builder.cjs +0 -0
- /package/dist/cjs/{condition → pg/condition}/index.cjs +0 -0
- /package/dist/cjs/{count → pg/count}/index.cjs +0 -0
- /package/dist/cjs/{delete → pg/delete}/index.cjs +0 -0
- /package/dist/cjs/{explain → pg/explain}/explain-builder.cjs +0 -0
- /package/dist/cjs/{explain → pg/explain}/index.cjs +0 -0
- /package/dist/cjs/{insert → pg/insert}/index.cjs +0 -0
- /package/dist/cjs/{pubsub → pg/pubsub}/index.cjs +0 -0
- /package/dist/cjs/{raw → pg/raw}/index.cjs +0 -0
- /package/dist/cjs/{select → pg/select}/index.cjs +0 -0
- /package/dist/cjs/{select → pg/select}/join-internals.cjs +0 -0
- /package/dist/cjs/{select → pg/select}/table-proxy.cjs +0 -0
- /package/dist/cjs/{transaction → pg/transaction}/index.cjs +0 -0
- /package/dist/cjs/{update → pg/update}/index.cjs +0 -0
- /package/dist/cjs/{utils → pg/utils}/type-coercion.cjs +0 -0
- /package/dist/cjs/{window → pg/window}/index.cjs +0 -0
- /package/dist/esm/{core/pg-family → pg/clients}/cockroachdb-client/capabilities.js +0 -0
- /package/dist/esm/{core/pg-family → pg/clients}/cockroachdb-client/index.js +0 -0
- /package/dist/esm/{core/pg-family → pg/clients}/cockroachdb-client/relq-cockroach.js +0 -0
- /package/dist/esm/{core/pg-family → pg/clients}/dsql-client/capabilities.js +0 -0
- /package/dist/esm/{core/pg-family → pg/clients}/dsql-client/index.js +0 -0
- /package/dist/esm/{core/pg-family → pg/clients}/dsql-client/relq-dsql.js +0 -0
- /package/dist/esm/{core/pg-family → pg/clients}/index.js +0 -0
- /package/dist/esm/{core/pg-family → pg/clients}/nile-client/capabilities.js +0 -0
- /package/dist/esm/{core/pg-family → pg/clients}/nile-client/index.js +0 -0
- /package/dist/esm/{core/pg-family → pg/clients}/nile-client/relq-nile.js +0 -0
- /package/dist/esm/{core/pg-family → pg/clients}/nile-client/tenant-context.js +0 -0
- /package/dist/esm/{core/pg-family → pg/clients}/pg-client/capabilities.js +0 -0
- /package/dist/esm/{core/pg-family → pg/clients}/pg-client/index.js +0 -0
- /package/dist/esm/{core/pg-family → pg/clients}/shared/pg-dialect.js +0 -0
- /package/dist/esm/{core/pg-family → pg/clients}/shared/pg-error-parser.js +0 -0
- /package/dist/esm/{condition → pg/condition}/array-numeric-condition-builder.js +0 -0
- /package/dist/esm/{condition → pg/condition}/array-specialized-condition-builder.js +0 -0
- /package/dist/esm/{condition → pg/condition}/array-string-condition-builder.js +0 -0
- /package/dist/esm/{condition → pg/condition}/index.js +0 -0
- /package/dist/esm/{count → pg/count}/index.js +0 -0
- /package/dist/esm/{delete → pg/delete}/index.js +0 -0
- /package/dist/esm/{explain → pg/explain}/explain-builder.js +0 -0
- /package/dist/esm/{explain → pg/explain}/index.js +0 -0
- /package/dist/esm/{insert → pg/insert}/index.js +0 -0
- /package/dist/esm/{pubsub → pg/pubsub}/index.js +0 -0
- /package/dist/esm/{raw → pg/raw}/index.js +0 -0
- /package/dist/esm/{select → pg/select}/index.js +0 -0
- /package/dist/esm/{select → pg/select}/join-internals.js +0 -0
- /package/dist/esm/{select → pg/select}/table-proxy.js +0 -0
- /package/dist/esm/{transaction → pg/transaction}/index.js +0 -0
- /package/dist/esm/{update → pg/update}/index.js +0 -0
- /package/dist/esm/{utils → pg/utils}/type-coercion.js +0 -0
- /package/dist/esm/{window → pg/window}/index.js +0 -0
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ConnectedDeleteBuilder = void 0;
|
|
4
|
-
const
|
|
4
|
+
const condition_collector_1 = require("../condition/condition-collector.cjs");
|
|
5
|
+
const methods_1 = require("../../core/helpers/methods.cjs");
|
|
5
6
|
const ReturningExecutor_1 = require("./ReturningExecutor.cjs");
|
|
6
|
-
const capability_guard_1 = require("
|
|
7
|
-
const table_accessor_1 = require("
|
|
7
|
+
const capability_guard_1 = require("../../core/helpers/capability-guard.cjs");
|
|
8
|
+
const table_accessor_1 = require("../../core/shared/table-accessor.cjs");
|
|
9
|
+
const relq_errors_1 = require("../../shared/errors/relq-errors.cjs");
|
|
8
10
|
class ConnectedDeleteBuilder {
|
|
9
11
|
builder;
|
|
10
12
|
relq;
|
|
@@ -35,7 +37,21 @@ class ConnectedDeleteBuilder {
|
|
|
35
37
|
return column;
|
|
36
38
|
});
|
|
37
39
|
}
|
|
38
|
-
where(
|
|
40
|
+
where(callbackOrCondition) {
|
|
41
|
+
if (callbackOrCondition instanceof condition_collector_1.ConditionCollector) {
|
|
42
|
+
const conditionTable = callbackOrCondition._tableName;
|
|
43
|
+
if (conditionTable) {
|
|
44
|
+
const matches = conditionTable === this.schemaKey || conditionTable === this.tableName;
|
|
45
|
+
if (!matches) {
|
|
46
|
+
const queryTable = this.schemaKey || this.tableName;
|
|
47
|
+
throw new relq_errors_1.RelqBuilderError(`Condition was created for table '${conditionTable}' but is being used on '${queryTable}'. ` +
|
|
48
|
+
`Create the condition with db.where('${queryTable}') instead.`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
this.builder.where(callbackOrCondition);
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
const callback = callbackOrCondition;
|
|
39
55
|
this.builder.where((q) => {
|
|
40
56
|
q._tables = (0, table_accessor_1.createTableAccessor)(this.relq, this.relq.schema);
|
|
41
57
|
return callback(q);
|
|
@@ -53,9 +69,13 @@ class ConnectedDeleteBuilder {
|
|
|
53
69
|
}
|
|
54
70
|
return result.metadata.rowCount ?? 0;
|
|
55
71
|
}
|
|
56
|
-
returning(
|
|
57
|
-
|
|
58
|
-
|
|
72
|
+
returning(...args) {
|
|
73
|
+
let columns;
|
|
74
|
+
if (args.length === 1) {
|
|
75
|
+
columns = args[0];
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
columns = args;
|
|
59
79
|
}
|
|
60
80
|
(0, capability_guard_1.requireCapability)(this.relq, 'returning', 'RETURNING clause', 'Use a SELECT query after the DELETE to retrieve deleted data');
|
|
61
81
|
this.builder.returning(columns);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ConnectedInsertBuilder = void 0;
|
|
4
|
-
const condition_collector_1 = require("
|
|
5
|
-
const methods_1 = require("
|
|
4
|
+
const condition_collector_1 = require("../condition/condition-collector.cjs");
|
|
5
|
+
const methods_1 = require("../../core/helpers/methods.cjs");
|
|
6
6
|
const ReturningExecutor_1 = require("./ReturningExecutor.cjs");
|
|
7
|
-
const capability_guard_1 = require("
|
|
7
|
+
const capability_guard_1 = require("../../core/helpers/capability-guard.cjs");
|
|
8
8
|
class ConnectedInsertBuilder {
|
|
9
9
|
builder;
|
|
10
10
|
relq;
|
|
@@ -90,8 +90,12 @@ class ConnectedInsertBuilder {
|
|
|
90
90
|
async run(withMetadata) {
|
|
91
91
|
(0, methods_1.debugLog)(this.relq[methods_1.INTERNAL]?.config, `ConnectedInsertBuilder.run called for table: ${this.builder.tableName}`);
|
|
92
92
|
const internalRelq = this.relq[methods_1.INTERNAL];
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
const rows = this.builder.insertData;
|
|
94
|
+
if (rows.length > 0) {
|
|
95
|
+
internalRelq.validateData(this.builder.tableName, rows[0], 'insert');
|
|
96
|
+
if (rows.length > 1) {
|
|
97
|
+
internalRelq.validateData(this.builder.tableName, rows[rows.length - 1], 'insert');
|
|
98
|
+
}
|
|
95
99
|
}
|
|
96
100
|
const sql = this.builder.toString();
|
|
97
101
|
const result = await internalRelq.executeRun(sql);
|
|
@@ -100,9 +104,13 @@ class ConnectedInsertBuilder {
|
|
|
100
104
|
}
|
|
101
105
|
return result.metadata.rowCount ?? 0;
|
|
102
106
|
}
|
|
103
|
-
returning(
|
|
104
|
-
|
|
105
|
-
|
|
107
|
+
returning(...args) {
|
|
108
|
+
let columns;
|
|
109
|
+
if (args.length === 1) {
|
|
110
|
+
columns = args[0];
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
columns = args;
|
|
106
114
|
}
|
|
107
115
|
(0, capability_guard_1.requireCapability)(this.relq, 'returning', 'RETURNING clause', 'Use a SELECT query after the INSERT to retrieve inserted data');
|
|
108
116
|
this.builder.returning(columns);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ConnectedInsertFromSelectBuilder = void 0;
|
|
4
|
-
const methods_1 = require("
|
|
4
|
+
const methods_1 = require("../../core/helpers/methods.cjs");
|
|
5
5
|
const ReturningExecutor_1 = require("./ReturningExecutor.cjs");
|
|
6
|
-
const capability_guard_1 = require("
|
|
6
|
+
const capability_guard_1 = require("../../core/helpers/capability-guard.cjs");
|
|
7
7
|
class ConnectedInsertFromSelectBuilder {
|
|
8
8
|
builder;
|
|
9
9
|
relq;
|
|
@@ -54,9 +54,13 @@ class ConnectedInsertFromSelectBuilder {
|
|
|
54
54
|
}
|
|
55
55
|
return result.metadata.rowCount ?? 0;
|
|
56
56
|
}
|
|
57
|
-
returning(
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
returning(...args) {
|
|
58
|
+
let columns;
|
|
59
|
+
if (args.length === 1) {
|
|
60
|
+
columns = args[0];
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
columns = args;
|
|
60
64
|
}
|
|
61
65
|
(0, capability_guard_1.requireCapability)(this.relq, 'returning', 'RETURNING clause', 'Use a SELECT query after the INSERT to retrieve inserted data');
|
|
62
66
|
this.builder.returning(columns);
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ConnectedQueryBuilder = void 0;
|
|
4
|
-
const count_builder_1 = require("
|
|
5
|
-
const delete_builder_1 = require("
|
|
6
|
-
const insert_builder_1 = require("
|
|
7
|
-
const insert_from_select_builder_1 = require("
|
|
8
|
-
const aggregate_builder_1 = require("
|
|
9
|
-
const select_builder_1 = require("
|
|
10
|
-
const update_builder_1 = require("
|
|
4
|
+
const count_builder_1 = require("../count/count-builder.cjs");
|
|
5
|
+
const delete_builder_1 = require("../delete/delete-builder.cjs");
|
|
6
|
+
const insert_builder_1 = require("../insert/insert-builder.cjs");
|
|
7
|
+
const insert_from_select_builder_1 = require("../insert/insert-from-select-builder.cjs");
|
|
8
|
+
const aggregate_builder_1 = require("../select/aggregate-builder.cjs");
|
|
9
|
+
const select_builder_1 = require("../select/select-builder.cjs");
|
|
10
|
+
const update_builder_1 = require("../update/update-builder.cjs");
|
|
11
11
|
const ConnectedAggregateBuilder_1 = require("./ConnectedAggregateBuilder.cjs");
|
|
12
12
|
const ConnectedCountBuilder_1 = require("./ConnectedCountBuilder.cjs");
|
|
13
13
|
const ConnectedDeleteBuilder_1 = require("./ConnectedDeleteBuilder.cjs");
|
|
@@ -15,9 +15,10 @@ const ConnectedInsertBuilder_1 = require("./ConnectedInsertBuilder.cjs");
|
|
|
15
15
|
const ConnectedInsertFromSelectBuilder_1 = require("./ConnectedInsertFromSelectBuilder.cjs");
|
|
16
16
|
const ConnectedSelectBuilder_1 = require("./ConnectedSelectBuilder.cjs");
|
|
17
17
|
const ConnectedUpdateBuilder_1 = require("./ConnectedUpdateBuilder.cjs");
|
|
18
|
-
const methods_1 = require("
|
|
18
|
+
const methods_1 = require("../../core/helpers/methods.cjs");
|
|
19
19
|
const PaginateBuilder_1 = require("./PaginateBuilder.cjs");
|
|
20
|
-
const table_accessor_1 = require("
|
|
20
|
+
const table_accessor_1 = require("../../core/shared/table-accessor.cjs");
|
|
21
|
+
const relq_errors_1 = require("../../shared/errors/relq-errors.cjs");
|
|
21
22
|
const query_convenience_1 = require("./query-convenience.cjs");
|
|
22
23
|
class ConnectedQueryBuilder {
|
|
23
24
|
tableName;
|
|
@@ -45,12 +46,12 @@ class ConnectedQueryBuilder {
|
|
|
45
46
|
if (columns !== undefined) {
|
|
46
47
|
if (Array.isArray(columns)) {
|
|
47
48
|
if (columns.length === 0) {
|
|
48
|
-
throw new
|
|
49
|
+
throw new relq_errors_1.RelqBuilderError('select() requires at least one column', { builder: 'select', hint: 'Use .select() without arguments for SELECT *' });
|
|
49
50
|
}
|
|
50
51
|
}
|
|
51
52
|
else if (typeof columns === 'string') {
|
|
52
53
|
if (columns === '' || columns === '*') {
|
|
53
|
-
throw new
|
|
54
|
+
throw new relq_errors_1.RelqBuilderError(`Invalid column name: "${columns}"`, { builder: 'select', hint: 'Use .select() without arguments for SELECT *, or pass valid column names' });
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
}
|
|
@@ -84,8 +85,8 @@ class ConnectedQueryBuilder {
|
|
|
84
85
|
return new ConnectedInsertBuilder_1.ConnectedInsertBuilder(builder, this.relq, this.tableName, this.schemaKey);
|
|
85
86
|
}
|
|
86
87
|
const builder = new insert_builder_1.InsertBuilder(this.tableName, rows[0]);
|
|
87
|
-
|
|
88
|
-
builder.
|
|
88
|
+
if (rows.length > 1) {
|
|
89
|
+
builder.addRows(rows.slice(1));
|
|
89
90
|
}
|
|
90
91
|
return new ConnectedInsertBuilder_1.ConnectedInsertBuilder(builder, this.relq, this.tableName, this.schemaKey);
|
|
91
92
|
}
|
|
@@ -136,11 +137,5 @@ class ConnectedQueryBuilder {
|
|
|
136
137
|
async createWith(options) {
|
|
137
138
|
return (0, query_convenience_1.executeCreateWith)(this.ctx, options.data, options.with);
|
|
138
139
|
}
|
|
139
|
-
async softDelete(filter) {
|
|
140
|
-
return (0, query_convenience_1.executeSoftDelete)(this.ctx, filter);
|
|
141
|
-
}
|
|
142
|
-
async restore(filter) {
|
|
143
|
-
return (0, query_convenience_1.executeRestore)(this.ctx, filter);
|
|
144
|
-
}
|
|
145
140
|
}
|
|
146
141
|
exports.ConnectedQueryBuilder = ConnectedQueryBuilder;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConnectedRawQueryBuilder = void 0;
|
|
4
|
+
const raw_1 = require("../raw/index.cjs");
|
|
5
|
+
const methods_1 = require("../../core/helpers/methods.cjs");
|
|
6
|
+
class ConnectedRawQueryBuilder {
|
|
7
|
+
params;
|
|
8
|
+
relq;
|
|
9
|
+
builder;
|
|
10
|
+
constructor(query, params, relq) {
|
|
11
|
+
this.params = params;
|
|
12
|
+
this.relq = relq;
|
|
13
|
+
const convertedQuery = this.convertPlaceholders(query);
|
|
14
|
+
this.builder = new raw_1.RawQueryBuilder(convertedQuery, this.params);
|
|
15
|
+
}
|
|
16
|
+
convertPlaceholders(query) {
|
|
17
|
+
let index = 0;
|
|
18
|
+
return query.replace(/\?/g, () => `$${++index}`);
|
|
19
|
+
}
|
|
20
|
+
async all() {
|
|
21
|
+
const sql = this.builder.toString();
|
|
22
|
+
const { result, duration } = await this.relq[methods_1.INTERNAL].executeRawQuery(sql);
|
|
23
|
+
return {
|
|
24
|
+
data: result.rows,
|
|
25
|
+
metadata: { rowCount: result.rowCount, command: result.command, duration, fields: result.fields },
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
async get() {
|
|
29
|
+
const sql = this.builder.toString();
|
|
30
|
+
const { result, duration } = await this.relq[methods_1.INTERNAL].executeRawQuery(sql);
|
|
31
|
+
const row = result.rows[0] || null;
|
|
32
|
+
return {
|
|
33
|
+
data: row,
|
|
34
|
+
metadata: { rowCount: result.rowCount, command: result.command, duration, fields: result.fields },
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
async getMany(count) {
|
|
38
|
+
const sql = this.builder.toString();
|
|
39
|
+
const limitedSql = sql.toUpperCase().includes('LIMIT')
|
|
40
|
+
? sql
|
|
41
|
+
: `${sql} LIMIT ${count}`;
|
|
42
|
+
const { result, duration } = await this.relq[methods_1.INTERNAL].executeRawQuery(limitedSql);
|
|
43
|
+
return {
|
|
44
|
+
data: result.rows,
|
|
45
|
+
metadata: { rowCount: result.rowCount, command: result.command, duration, fields: result.fields },
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
async run() {
|
|
49
|
+
const sql = this.builder.toString();
|
|
50
|
+
const { result, duration } = await this.relq[methods_1.INTERNAL].executeRawQuery(sql);
|
|
51
|
+
return {
|
|
52
|
+
success: true,
|
|
53
|
+
metadata: { rowCount: result.rowCount, command: result.command, duration, fields: result.fields },
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
async count() {
|
|
57
|
+
const sql = this.builder.toString();
|
|
58
|
+
const { result, duration } = await this.relq[methods_1.INTERNAL].executeRawQuery(sql);
|
|
59
|
+
const row = result.rows[0];
|
|
60
|
+
const count = row ? Number(Object.values(row)[0]) || 0 : 0;
|
|
61
|
+
return {
|
|
62
|
+
count,
|
|
63
|
+
metadata: { rowCount: result.rowCount, command: result.command, duration, fields: result.fields },
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.ConnectedRawQueryBuilder = ConnectedRawQueryBuilder;
|
|
@@ -1,28 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.ConnectedSelectBuilder = void 0;
|
|
4
|
-
const
|
|
7
|
+
const condition_collector_1 = require("../condition/condition-collector.cjs");
|
|
8
|
+
const methods_1 = require("../../core/helpers/methods.cjs");
|
|
5
9
|
const select_joins_1 = require("./select-joins.cjs");
|
|
6
10
|
const select_pagination_1 = require("./select-pagination.cjs");
|
|
7
|
-
const capability_guard_1 = require("
|
|
8
|
-
const table_accessor_1 = require("
|
|
9
|
-
const sql_expression_1 = require("
|
|
10
|
-
const table_proxy_1 = require("
|
|
11
|
-
const fk_resolver_1 = require("
|
|
11
|
+
const capability_guard_1 = require("../../core/helpers/capability-guard.cjs");
|
|
12
|
+
const table_accessor_1 = require("../../core/shared/table-accessor.cjs");
|
|
13
|
+
const sql_expression_1 = require("../select/sql-expression.cjs");
|
|
14
|
+
const table_proxy_1 = require("../select/table-proxy.cjs");
|
|
15
|
+
const fk_resolver_1 = require("../utils/fk-resolver.cjs");
|
|
16
|
+
const relq_errors_1 = require("../../shared/errors/relq-errors.cjs");
|
|
17
|
+
const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
|
|
12
18
|
class ConnectedSelectBuilder {
|
|
13
19
|
builder;
|
|
14
20
|
relq;
|
|
15
21
|
tableName;
|
|
16
|
-
columns;
|
|
17
22
|
schemaKey;
|
|
18
|
-
constructor(builder, relq, tableName,
|
|
23
|
+
constructor(builder, relq, tableName, _columns, schemaKey) {
|
|
19
24
|
this.builder = builder;
|
|
20
25
|
this.relq = relq;
|
|
21
26
|
this.tableName = tableName;
|
|
22
|
-
this.columns = columns;
|
|
23
27
|
this.schemaKey = schemaKey;
|
|
24
28
|
this.setupColumnResolver();
|
|
25
29
|
}
|
|
30
|
+
get _sourceTableKey() {
|
|
31
|
+
return this.schemaKey || this.tableName;
|
|
32
|
+
}
|
|
26
33
|
get joinCtx() {
|
|
27
34
|
return { relq: this.relq, builder: this.builder, tableName: this.tableName, schemaKey: this.schemaKey };
|
|
28
35
|
}
|
|
@@ -57,6 +64,24 @@ class ConnectedSelectBuilder {
|
|
|
57
64
|
const transformed = { ...row };
|
|
58
65
|
for (const join of joins) {
|
|
59
66
|
const alias = join.alias;
|
|
67
|
+
if (join.flat && join.selectColumns) {
|
|
68
|
+
const capitalize = (s) => s.charAt(0).toUpperCase() + s.slice(1);
|
|
69
|
+
const prefix = join.flat.prefix || alias;
|
|
70
|
+
const joinedTableDef = internal.getTableDef(join.schemaKey || alias) || internal.getTableDef(join.table);
|
|
71
|
+
const tableColumns = joinedTableDef ? (joinedTableDef.$columns || joinedTableDef) : null;
|
|
72
|
+
for (const col of join.selectColumns) {
|
|
73
|
+
const flatKey = `${prefix}${capitalize(col.property)}`;
|
|
74
|
+
if (transformed[flatKey] != null && tableColumns) {
|
|
75
|
+
const colDef = tableColumns[col.property];
|
|
76
|
+
const sqlType = colDef?.$sqlType || (typeof colDef?.$type === 'string' ? colDef.$type : undefined);
|
|
77
|
+
if (sqlType) {
|
|
78
|
+
transformed[flatKey] = this.coerceValue(transformed[flatKey], sqlType.toLowerCase());
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
delete transformed[alias];
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
60
85
|
const nestedData = transformed[alias];
|
|
61
86
|
if (nestedData === null || nestedData === undefined) {
|
|
62
87
|
continue;
|
|
@@ -116,7 +141,21 @@ class ConnectedSelectBuilder {
|
|
|
116
141
|
return value;
|
|
117
142
|
}
|
|
118
143
|
}
|
|
119
|
-
where(
|
|
144
|
+
where(callbackOrCondition) {
|
|
145
|
+
if (callbackOrCondition instanceof condition_collector_1.ConditionCollector) {
|
|
146
|
+
const conditionTable = callbackOrCondition._tableName;
|
|
147
|
+
if (conditionTable) {
|
|
148
|
+
const matches = conditionTable === this.schemaKey || conditionTable === this.tableName;
|
|
149
|
+
if (!matches) {
|
|
150
|
+
const queryTable = this.schemaKey || this.tableName;
|
|
151
|
+
throw new relq_errors_1.RelqBuilderError(`Condition was created for table '${conditionTable}' but is being used on '${queryTable}'. ` +
|
|
152
|
+
`Create the condition with db.where('${queryTable}') instead.`);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
this.builder.where(callbackOrCondition);
|
|
156
|
+
return this;
|
|
157
|
+
}
|
|
158
|
+
const callback = callbackOrCondition;
|
|
120
159
|
this.builder.where((q) => {
|
|
121
160
|
q._tables = (0, table_accessor_1.createTableAccessor)(this.relq, this.relq.schema);
|
|
122
161
|
return callback(q);
|
|
@@ -160,21 +199,73 @@ class ConnectedSelectBuilder {
|
|
|
160
199
|
const agg = new sql_expression_1.AggregateFunctions();
|
|
161
200
|
const internal = this.relq[methods_1.INTERNAL];
|
|
162
201
|
const schema = internal.getSchema() || {};
|
|
202
|
+
const relations = internal.getRelations();
|
|
163
203
|
const sourceSchemaKey = this.schemaKey || this.tableName;
|
|
164
204
|
const sourceAlias = this.builder.getTableIdentifier();
|
|
205
|
+
const accessedTables = new Set();
|
|
165
206
|
const tableProxies = new Proxy({}, {
|
|
166
207
|
get(_, tableKey) {
|
|
167
208
|
if (typeof tableKey === 'symbol')
|
|
168
209
|
return undefined;
|
|
169
|
-
const
|
|
170
|
-
const
|
|
171
|
-
const
|
|
172
|
-
|
|
210
|
+
const key = tableKey;
|
|
211
|
+
const tableDef = schema[key];
|
|
212
|
+
const tableName = tableDef?.$name || key;
|
|
213
|
+
if (key === sourceSchemaKey) {
|
|
214
|
+
return (0, table_proxy_1.createTableProxy)(tableName, sourceAlias, tableDef);
|
|
215
|
+
}
|
|
216
|
+
accessedTables.add(key);
|
|
217
|
+
return (0, table_proxy_1.createTableProxy)(tableName, key, tableDef);
|
|
173
218
|
}
|
|
174
219
|
});
|
|
175
220
|
const expressions = callback(agg, tableProxies);
|
|
221
|
+
const sourceExprs = [];
|
|
222
|
+
const externalExprs = new Map();
|
|
176
223
|
for (const [alias, expr] of Object.entries(expressions)) {
|
|
177
|
-
|
|
224
|
+
let targetTable = null;
|
|
225
|
+
for (const tableKey of accessedTables) {
|
|
226
|
+
if (expr.sql.includes(`"${tableKey}".`)) {
|
|
227
|
+
targetTable = tableKey;
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
if (targetTable) {
|
|
232
|
+
if (!externalExprs.has(targetTable)) {
|
|
233
|
+
externalExprs.set(targetTable, []);
|
|
234
|
+
}
|
|
235
|
+
externalExprs.get(targetTable).push({ alias, sql: expr.sql });
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
sourceExprs.push({ alias, sql: expr.sql });
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
for (const e of sourceExprs) {
|
|
242
|
+
this.builder.addIncludeExpression(e.alias, e.sql);
|
|
243
|
+
}
|
|
244
|
+
for (const [tableKey, exprs] of externalExprs) {
|
|
245
|
+
const tableDef = schema[tableKey];
|
|
246
|
+
const sqlTableName = tableDef?.$name || tableKey;
|
|
247
|
+
const existingJoins = this.builder.getStructuredJoins();
|
|
248
|
+
const alreadyJoined = existingJoins.some(j => j.table === sqlTableName || j.schemaKey === tableKey || j.alias === tableKey);
|
|
249
|
+
if (alreadyJoined) {
|
|
250
|
+
for (const e of exprs) {
|
|
251
|
+
this.builder.addIncludeExpression(e.alias, e.sql);
|
|
252
|
+
}
|
|
253
|
+
continue;
|
|
254
|
+
}
|
|
255
|
+
const fk = (0, fk_resolver_1.resolveForeignKey)(relations, schema, sourceSchemaKey, tableKey);
|
|
256
|
+
if (!fk) {
|
|
257
|
+
throw new relq_errors_1.RelqBuilderError(`include() references table "${tableKey}" but no foreign key relationship exists between "${sourceSchemaKey}" and "${tableKey}". Define the relationship in your relations config.`, { builder: 'include', hint: `Add a relation from "${sourceSchemaKey}" to "${tableKey}" in pgRelations().` });
|
|
258
|
+
}
|
|
259
|
+
const lateralAlias = `${tableKey}_agg`;
|
|
260
|
+
const innerSelects = exprs.map(e => {
|
|
261
|
+
const unqualifiedSql = e.sql.replace(new RegExp(`"${tableKey}"\\.`, 'g'), '');
|
|
262
|
+
return `${unqualifiedSql} AS ${pg_format_1.default.ident(e.alias)}`;
|
|
263
|
+
}).join(', ');
|
|
264
|
+
const lateralSql = `LEFT JOIN LATERAL (SELECT ${innerSelects} FROM ${pg_format_1.default.ident(sqlTableName)} WHERE ${pg_format_1.default.ident(fk.toColumn)} = ${pg_format_1.default.ident(sourceAlias)}.${pg_format_1.default.ident(fk.fromColumn)}) AS ${pg_format_1.default.ident(lateralAlias)} ON true`;
|
|
265
|
+
this.builder.addRawJoin(lateralSql);
|
|
266
|
+
for (const e of exprs) {
|
|
267
|
+
this.builder.addIncludeExpression(e.alias, `(ARRAY_AGG(${pg_format_1.default.ident(lateralAlias)}.${pg_format_1.default.ident(e.alias)}))[1]`);
|
|
268
|
+
}
|
|
178
269
|
}
|
|
179
270
|
return this;
|
|
180
271
|
}
|
|
@@ -194,6 +285,15 @@ class ConnectedSelectBuilder {
|
|
|
194
285
|
(0, select_joins_1.executeTypeSafeJoin)(this.joinCtx, 'INNER JOIN', tableOrAlias, callback);
|
|
195
286
|
return this;
|
|
196
287
|
}
|
|
288
|
+
crossJoin(tableOrAlias) {
|
|
289
|
+
const [tableKey, alias] = Array.isArray(tableOrAlias) ? tableOrAlias : [tableOrAlias, tableOrAlias];
|
|
290
|
+
const internal = this.relq[methods_1.INTERNAL];
|
|
291
|
+
const tableDef = internal.getTableDef(tableKey);
|
|
292
|
+
const tableSqlName = tableDef?.$name || tableKey;
|
|
293
|
+
this.builder.crossJoin(tableSqlName);
|
|
294
|
+
this.builder.addStructuredJoin({ table: tableSqlName, alias, type: 'CROSS JOIN', schemaKey: tableKey });
|
|
295
|
+
return this;
|
|
296
|
+
}
|
|
197
297
|
joinSubquery(alias, subquery, onClause) {
|
|
198
298
|
const subquerySQL = typeof subquery === 'string' ? subquery : subquery.toString();
|
|
199
299
|
this.builder.addRawJoin(`JOIN (${subquerySQL}) AS "${alias}" ON ${onClause}`);
|
|
@@ -238,14 +338,12 @@ class ConnectedSelectBuilder {
|
|
|
238
338
|
const schema = internal.getSchema();
|
|
239
339
|
const relations = internal.getRelations();
|
|
240
340
|
if (!schema || !relations) {
|
|
241
|
-
throw new
|
|
242
|
-
`Use .leftJoinMany() with an explicit callback instead.`);
|
|
341
|
+
throw new relq_errors_1.RelqBuilderError(`Cannot use .withMany('${table}') without schema and relations config. Pass relations when creating Relq: new Relq(schema, dialect, { relations }).`, { builder: 'withMany', hint: `Use .leftJoinMany() with an explicit callback instead.` });
|
|
243
342
|
}
|
|
244
343
|
const sourceKey = this.schemaKey || this.tableName;
|
|
245
344
|
const fk = (0, fk_resolver_1.resolveForeignKey)(relations, schema, sourceKey, table);
|
|
246
345
|
if (!fk) {
|
|
247
|
-
throw new
|
|
248
|
-
`Use .leftJoinMany() with explicit join conditions instead.`);
|
|
346
|
+
throw new relq_errors_1.RelqBuilderError(`No foreign key relationship found between "${sourceKey}" and "${table}". Define the relationship in your relations config.`, { builder: 'withMany', hint: `Use .leftJoinMany() with explicit join conditions instead.` });
|
|
249
347
|
}
|
|
250
348
|
(0, select_joins_1.executeTypeSafeJoinMany)(this.joinCtx, 'LEFT JOIN', table, (on, right, left) => {
|
|
251
349
|
const rightCol = right[fk.toColumn];
|
|
@@ -288,6 +386,10 @@ class ConnectedSelectBuilder {
|
|
|
288
386
|
this.builder.forUpdateSkipLocked();
|
|
289
387
|
return this;
|
|
290
388
|
}
|
|
389
|
+
forUpdateNoWait() {
|
|
390
|
+
this.builder.forUpdateNoWait();
|
|
391
|
+
return this;
|
|
392
|
+
}
|
|
291
393
|
forShare() {
|
|
292
394
|
this.builder.forShare();
|
|
293
395
|
return this;
|
|
@@ -314,12 +416,6 @@ class ConnectedSelectBuilder {
|
|
|
314
416
|
}
|
|
315
417
|
return transformedData;
|
|
316
418
|
}
|
|
317
|
-
async value(column) {
|
|
318
|
-
this.builder.limit(1);
|
|
319
|
-
const sql = this.builder.toString();
|
|
320
|
-
const result = await this.relq[methods_1.INTERNAL].executeSelectOne(sql, this.tableName);
|
|
321
|
-
return result.data?.[column] ?? null;
|
|
322
|
-
}
|
|
323
419
|
async each(callback, options = {}) {
|
|
324
420
|
(0, capability_guard_1.requireCapability)(this.relq, 'cursors', 'Cursor-based iteration (each)', 'Use pagination() instead of each() for row-by-row processing');
|
|
325
421
|
return (0, select_pagination_1.executeCursorEach)(this.paginationCtx, callback, options);
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TransactionClient = void 0;
|
|
4
4
|
exports.executeTransaction = executeTransaction;
|
|
5
5
|
const ConnectedRawQueryBuilder_1 = require("./ConnectedRawQueryBuilder.cjs");
|
|
6
|
-
const table_accessor_1 = require("
|
|
7
|
-
const methods_1 = require("
|
|
6
|
+
const table_accessor_1 = require("../../core/shared/table-accessor.cjs");
|
|
7
|
+
const methods_1 = require("../../core/helpers/methods.cjs");
|
|
8
8
|
class TransactionClient {
|
|
9
9
|
client;
|
|
10
10
|
relq;
|
|
@@ -23,6 +23,15 @@ class TransactionClient {
|
|
|
23
23
|
raw(query, ...params) {
|
|
24
24
|
return new ConnectedRawQueryBuilder_1.ConnectedRawQueryBuilder(query, params, this);
|
|
25
25
|
}
|
|
26
|
+
async savepoint(name) {
|
|
27
|
+
await this.client.query(`SAVEPOINT "${name}"`);
|
|
28
|
+
}
|
|
29
|
+
async rollbackTo(name) {
|
|
30
|
+
await this.client.query(`ROLLBACK TO SAVEPOINT "${name}"`);
|
|
31
|
+
}
|
|
32
|
+
async releaseSavepoint(name) {
|
|
33
|
+
await this.client.query(`RELEASE SAVEPOINT "${name}"`);
|
|
34
|
+
}
|
|
26
35
|
get [methods_1.INTERNAL]() {
|
|
27
36
|
const parentInternal = this.relq[methods_1.INTERNAL];
|
|
28
37
|
const queryViaClient = async (sql) => {
|
|
@@ -70,6 +79,7 @@ class TransactionClient {
|
|
|
70
79
|
return { success: true, metadata: buildMetadata(result, duration) };
|
|
71
80
|
},
|
|
72
81
|
transformToDbColumns: parentInternal.transformToDbColumns,
|
|
82
|
+
executeRawQuery: queryViaClient,
|
|
73
83
|
transformFromDbColumns: parentInternal.transformFromDbColumns,
|
|
74
84
|
transformResultsFromDb: parentInternal.transformResultsFromDb,
|
|
75
85
|
hasColumnMapping: parentInternal.hasColumnMapping,
|
|
@@ -82,11 +92,31 @@ class TransactionClient {
|
|
|
82
92
|
}
|
|
83
93
|
}
|
|
84
94
|
exports.TransactionClient = TransactionClient;
|
|
85
|
-
async function executeTransaction(relq, callback) {
|
|
95
|
+
async function executeTransaction(relq, callback, options) {
|
|
86
96
|
await relq.ensureInitialized();
|
|
87
97
|
const { client, release } = await relq[methods_1.INTERNAL].getClientForCursor();
|
|
88
98
|
try {
|
|
89
|
-
|
|
99
|
+
let beginSql = 'BEGIN';
|
|
100
|
+
const parts = [];
|
|
101
|
+
if (options?.isolation) {
|
|
102
|
+
parts.push(`ISOLATION LEVEL ${options.isolation}`);
|
|
103
|
+
}
|
|
104
|
+
if (options?.readOnly === true) {
|
|
105
|
+
parts.push('READ ONLY');
|
|
106
|
+
}
|
|
107
|
+
else if (options?.readOnly === false) {
|
|
108
|
+
parts.push('READ WRITE');
|
|
109
|
+
}
|
|
110
|
+
if (options?.deferrable === true) {
|
|
111
|
+
parts.push('DEFERRABLE');
|
|
112
|
+
}
|
|
113
|
+
else if (options?.deferrable === false) {
|
|
114
|
+
parts.push('NOT DEFERRABLE');
|
|
115
|
+
}
|
|
116
|
+
if (parts.length > 0) {
|
|
117
|
+
beginSql += ' ' + parts.join(' ');
|
|
118
|
+
}
|
|
119
|
+
await client.query(beginSql);
|
|
90
120
|
const tx = new TransactionClient(client, relq);
|
|
91
121
|
const result = await callback(tx);
|
|
92
122
|
await client.query('COMMIT');
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ConnectedUpdateBuilder = void 0;
|
|
4
|
-
const
|
|
4
|
+
const condition_collector_1 = require("../condition/condition-collector.cjs");
|
|
5
|
+
const methods_1 = require("../../core/helpers/methods.cjs");
|
|
5
6
|
const ReturningExecutor_1 = require("./ReturningExecutor.cjs");
|
|
6
|
-
const capability_guard_1 = require("
|
|
7
|
-
const table_accessor_1 = require("
|
|
7
|
+
const capability_guard_1 = require("../../core/helpers/capability-guard.cjs");
|
|
8
|
+
const table_accessor_1 = require("../../core/shared/table-accessor.cjs");
|
|
9
|
+
const relq_errors_1 = require("../../shared/errors/relq-errors.cjs");
|
|
8
10
|
class ConnectedUpdateBuilder {
|
|
9
11
|
builder;
|
|
10
12
|
relq;
|
|
@@ -48,7 +50,21 @@ class ConnectedUpdateBuilder {
|
|
|
48
50
|
return { type: baseType, isArray };
|
|
49
51
|
});
|
|
50
52
|
}
|
|
51
|
-
where(
|
|
53
|
+
where(callbackOrCondition) {
|
|
54
|
+
if (callbackOrCondition instanceof condition_collector_1.ConditionCollector) {
|
|
55
|
+
const conditionTable = callbackOrCondition._tableName;
|
|
56
|
+
if (conditionTable) {
|
|
57
|
+
const matches = conditionTable === this.schemaKey || conditionTable === this.tableName;
|
|
58
|
+
if (!matches) {
|
|
59
|
+
const queryTable = this.schemaKey || this.tableName;
|
|
60
|
+
throw new relq_errors_1.RelqBuilderError(`Condition was created for table '${conditionTable}' but is being used on '${queryTable}'. ` +
|
|
61
|
+
`Create the condition with db.where('${queryTable}') instead.`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
this.builder.where(callbackOrCondition);
|
|
65
|
+
return this;
|
|
66
|
+
}
|
|
67
|
+
const callback = callbackOrCondition;
|
|
52
68
|
this.builder.where((q) => {
|
|
53
69
|
q._tables = (0, table_accessor_1.createTableAccessor)(this.relq, this.relq.schema);
|
|
54
70
|
return callback(q);
|
|
@@ -67,9 +83,13 @@ class ConnectedUpdateBuilder {
|
|
|
67
83
|
}
|
|
68
84
|
return result.metadata.rowCount ?? 0;
|
|
69
85
|
}
|
|
70
|
-
returning(
|
|
71
|
-
|
|
72
|
-
|
|
86
|
+
returning(...args) {
|
|
87
|
+
let columns;
|
|
88
|
+
if (args.length === 1) {
|
|
89
|
+
columns = args[0];
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
columns = args;
|
|
73
93
|
}
|
|
74
94
|
(0, capability_guard_1.requireCapability)(this.relq, 'returning', 'RETURNING clause', 'Use a SELECT query after the UPDATE to retrieve modified data');
|
|
75
95
|
this.builder.returning(columns);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PaginateBuilder = void 0;
|
|
4
|
-
const count_builder_1 = require("
|
|
4
|
+
const count_builder_1 = require("../count/count-builder.cjs");
|
|
5
5
|
const relq_errors_1 = require("../../shared/errors/relq-errors.cjs");
|
|
6
|
-
const select_builder_1 = require("
|
|
7
|
-
const methods_1 = require("
|
|
6
|
+
const select_builder_1 = require("../select/select-builder.cjs");
|
|
7
|
+
const methods_1 = require("../../core/helpers/methods.cjs");
|
|
8
8
|
class PaginateBuilder {
|
|
9
9
|
relq;
|
|
10
10
|
tableName;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ReturningExecutor = void 0;
|
|
4
|
-
const insert_builder_1 = require("
|
|
5
|
-
const update_builder_1 = require("
|
|
6
|
-
const methods_1 = require("
|
|
4
|
+
const insert_builder_1 = require("../insert/insert-builder.cjs");
|
|
5
|
+
const update_builder_1 = require("../update/update-builder.cjs");
|
|
6
|
+
const methods_1 = require("../../core/helpers/methods.cjs");
|
|
7
7
|
class ReturningExecutor {
|
|
8
8
|
builder;
|
|
9
9
|
relq;
|