@relq/orm 0.1.3 → 0.1.5
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 +2 -1407
- package/dist/cjs/addon/mysql2.cjs +21143 -0
- package/dist/cjs/addon/pg.cjs +5 -5
- 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 +59 -41
- 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 +1 -1438
- package/dist/esm/addon/mysql2.js +21129 -0
- package/dist/esm/addon/pg.js +5 -5
- 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 +54 -32
- 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 +6 -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
|
@@ -42,11 +42,12 @@ exports.executeSoftDelete = executeSoftDelete;
|
|
|
42
42
|
exports.executeRestore = executeRestore;
|
|
43
43
|
exports.executeCreateWith = executeCreateWith;
|
|
44
44
|
exports.getPrimaryKeyColumn = getPrimaryKeyColumn;
|
|
45
|
-
const count_builder_1 = require("
|
|
46
|
-
const insert_builder_1 = require("
|
|
47
|
-
const select_builder_1 = require("
|
|
48
|
-
const update_builder_1 = require("
|
|
49
|
-
const methods_1 = require("
|
|
45
|
+
const count_builder_1 = require("../count/count-builder.cjs");
|
|
46
|
+
const insert_builder_1 = require("../insert/insert-builder.cjs");
|
|
47
|
+
const select_builder_1 = require("../select/select-builder.cjs");
|
|
48
|
+
const update_builder_1 = require("../update/update-builder.cjs");
|
|
49
|
+
const methods_1 = require("../../core/helpers/methods.cjs");
|
|
50
|
+
const relq_errors_1 = require("../../shared/errors/relq-errors.cjs");
|
|
50
51
|
async function executeFindById(ctx, id, getPrimaryKeyColumn) {
|
|
51
52
|
const pkColumn = getPrimaryKeyColumn();
|
|
52
53
|
const dbColumn = ctx.relq[methods_1.INTERNAL].transformToDbColumns(ctx.tableName, { [pkColumn]: id });
|
|
@@ -150,8 +151,7 @@ async function executeCreateWith(ctx, parentData, related) {
|
|
|
150
151
|
const schema = internal.getSchema();
|
|
151
152
|
const relations = internal.getRelations();
|
|
152
153
|
if (!schema || !relations) {
|
|
153
|
-
throw new
|
|
154
|
-
'Use separate insert calls with a transaction instead.');
|
|
154
|
+
throw new relq_errors_1.RelqBuilderError('Cannot use createWith() without schema and relations config', { builder: 'createWith', hint: 'Pass schema and relations to your Relq client, or use separate insert calls with a transaction instead' });
|
|
155
155
|
}
|
|
156
156
|
const parentSchemaKey = findSchemaKeyByTableName(schema, ctx.tableName) || ctx.tableName;
|
|
157
157
|
try {
|
|
@@ -162,20 +162,19 @@ async function executeCreateWith(ctx, parentData, related) {
|
|
|
162
162
|
const parentSQL = parentBuilder.toString();
|
|
163
163
|
const parentResult = await internal.executeQuery(parentSQL);
|
|
164
164
|
if (!parentResult.result.rows || parentResult.result.rows.length === 0) {
|
|
165
|
-
throw new
|
|
165
|
+
throw new relq_errors_1.RelqBuilderError('Parent insert returned no rows', { builder: 'createWith', hint: 'Ensure the parent table supports RETURNING * and the insert data is valid' });
|
|
166
166
|
}
|
|
167
167
|
const parentRow = parentResult.result.rows[0];
|
|
168
168
|
for (const [relationKey, childData] of Object.entries(related)) {
|
|
169
169
|
const childTableDef = schema[relationKey];
|
|
170
170
|
if (!childTableDef) {
|
|
171
|
-
throw new
|
|
171
|
+
throw new relq_errors_1.RelqBuilderError(`Unknown table "${relationKey}" in createWith()`, { builder: 'createWith', hint: 'Verify the relation key matches a table name defined in your schema' });
|
|
172
172
|
}
|
|
173
173
|
const childTableName = childTableDef.$name || relationKey;
|
|
174
|
-
const { resolveForeignKey } = await Promise.resolve().then(() => __importStar(require("
|
|
174
|
+
const { resolveForeignKey } = await Promise.resolve().then(() => __importStar(require("../utils/fk-resolver.cjs")));
|
|
175
175
|
const fk = resolveForeignKey(relations, schema, parentSchemaKey, relationKey);
|
|
176
176
|
if (!fk) {
|
|
177
|
-
throw new
|
|
178
|
-
'Define the relationship in your relations config.');
|
|
177
|
+
throw new relq_errors_1.RelqBuilderError(`No FK relationship between "${parentSchemaKey}" and "${relationKey}"`, { builder: 'createWith', hint: 'Define the relationship in your relations config, or use separate insert calls with explicit FK values' });
|
|
179
178
|
}
|
|
180
179
|
let fkColumn;
|
|
181
180
|
let fkValue;
|
|
@@ -3,13 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.executeTypeSafeJoin = executeTypeSafeJoin;
|
|
4
4
|
exports.executeTypeSafeJoinMany = executeTypeSafeJoinMany;
|
|
5
5
|
exports.executeTypeSafeJoinManyThrough = executeTypeSafeJoinManyThrough;
|
|
6
|
-
const table_proxy_1 = require("
|
|
7
|
-
const join_condition_builder_1 = require("
|
|
8
|
-
const join_internals_1 = require("
|
|
9
|
-
const join_many_condition_builder_1 = require("
|
|
6
|
+
const table_proxy_1 = require("../select/table-proxy.cjs");
|
|
7
|
+
const join_condition_builder_1 = require("../select/join-condition-builder.cjs");
|
|
8
|
+
const join_internals_1 = require("../select/join-internals.cjs");
|
|
9
|
+
const join_many_condition_builder_1 = require("../select/join-many-condition-builder.cjs");
|
|
10
10
|
const relq_errors_1 = require("../../shared/errors/relq-errors.cjs");
|
|
11
|
-
const fk_resolver_1 = require("
|
|
12
|
-
const methods_1 = require("
|
|
11
|
+
const fk_resolver_1 = require("../utils/fk-resolver.cjs");
|
|
12
|
+
const methods_1 = require("../../core/helpers/methods.cjs");
|
|
13
13
|
function executeTypeSafeJoin(ctx, joinType, tableOrAlias, callback) {
|
|
14
14
|
const [rightTableKey, rightAlias] = Array.isArray(tableOrAlias)
|
|
15
15
|
? tableOrAlias
|
|
@@ -42,8 +42,8 @@ function executeTypeSafeJoin(ctx, joinType, tableOrAlias, callback) {
|
|
|
42
42
|
conditionBuilder.equal(leftCol, rightCol);
|
|
43
43
|
}
|
|
44
44
|
else {
|
|
45
|
-
throw new relq_errors_1.
|
|
46
|
-
`Either provide a callback with explicit join conditions, or define the relationship in your relations config.`, { hint: `Use .join('${rightTableKey}', (on, ${rightTableKey}, source) => on.equal(${rightTableKey}.
|
|
45
|
+
throw new relq_errors_1.RelqBuilderError(`No foreign key relationship found between "${ctx.schemaKey || ctx.tableName}" and "${rightTableKey}". ` +
|
|
46
|
+
`Either provide a callback with explicit join conditions, or define the relationship in your relations config.`, { builder: 'join', hint: `Use .join('${rightTableKey}', (on, ${rightTableKey}, source) => on.equal(${rightTableKey}.fkColumn, source.id))` });
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
const selectedProps = conditionInternals.getSelectedColumns();
|
|
@@ -66,6 +66,7 @@ function executeTypeSafeJoin(ctx, joinType, tableOrAlias, callback) {
|
|
|
66
66
|
sqlName: colDef.$columnName || toSnake(propName),
|
|
67
67
|
}));
|
|
68
68
|
}
|
|
69
|
+
const flatConfig = conditionInternals.getFlatConfig();
|
|
69
70
|
const joinClause = {
|
|
70
71
|
type: joinType,
|
|
71
72
|
table: rightTableName,
|
|
@@ -73,7 +74,11 @@ function executeTypeSafeJoin(ctx, joinType, tableOrAlias, callback) {
|
|
|
73
74
|
schemaKey: rightTableKey,
|
|
74
75
|
onClause: conditionInternals.toSQL() || undefined,
|
|
75
76
|
usingColumns: conditionInternals.getUsingColumns() || undefined,
|
|
76
|
-
selectColumns
|
|
77
|
+
selectColumns,
|
|
78
|
+
flat: flatConfig ? {
|
|
79
|
+
mode: 'prefix',
|
|
80
|
+
prefix: flatConfig.prefix || rightAlias,
|
|
81
|
+
} : undefined,
|
|
77
82
|
};
|
|
78
83
|
ctx.builder.addStructuredJoin(joinClause);
|
|
79
84
|
}
|
|
@@ -172,22 +177,20 @@ function executeTypeSafeJoinManyThrough(ctx, joinType, targetTableOrAlias, junct
|
|
|
172
177
|
const schema = internal.getSchema();
|
|
173
178
|
const relations = internal.getRelations();
|
|
174
179
|
if (!schema || !relations) {
|
|
175
|
-
throw new relq_errors_1.
|
|
180
|
+
throw new relq_errors_1.RelqBuilderError(`Cannot use { through } without schema and relations config. Pass relations when creating Relq: new Relq(schema, dialect, { relations }).`, { builder: 'joinMany', hint: `Use the callback form of joinMany instead, or add relations to your Relq config.` });
|
|
176
181
|
}
|
|
177
|
-
const leftTableDef = internal.getTableDef(ctx.schemaKey || ctx.tableName);
|
|
178
182
|
const junctionTableDef = internal.getTableDef(junctionTableKey);
|
|
179
183
|
const targetTableDef = internal.getTableDef(targetKey);
|
|
180
|
-
const leftTableName = leftTableDef?.$name || ctx.tableName;
|
|
181
184
|
const junctionTableName = junctionTableDef?.$name || junctionTableKey;
|
|
182
185
|
const targetTableName = targetTableDef?.$name || targetKey;
|
|
183
186
|
const leftAlias = ctx.builder.getTableIdentifier();
|
|
184
187
|
const leftToJunction = (0, fk_resolver_1.resolveForeignKey)(relations, schema, ctx.schemaKey || ctx.tableName, junctionTableKey);
|
|
185
188
|
if (!leftToJunction) {
|
|
186
|
-
throw new relq_errors_1.
|
|
189
|
+
throw new relq_errors_1.RelqBuilderError(`No foreign key relationship found between "${ctx.schemaKey || ctx.tableName}" and junction table "${junctionTableKey}". Define the relationship in your relations config.`, { builder: 'joinMany', hint: `Add a relation from "${ctx.schemaKey || ctx.tableName}" to "${junctionTableKey}" in pgRelations(), or use the callback form of joinMany.` });
|
|
187
190
|
}
|
|
188
191
|
const junctionToTarget = (0, fk_resolver_1.resolveForeignKey)(relations, schema, junctionTableKey, targetKey);
|
|
189
192
|
if (!junctionToTarget) {
|
|
190
|
-
throw new relq_errors_1.
|
|
193
|
+
throw new relq_errors_1.RelqBuilderError(`No foreign key relationship found between junction table "${junctionTableKey}" and target table "${targetKey}". Define the relationship in your relations config.`, { builder: 'joinMany', hint: `Add a relation from "${junctionTableKey}" to "${targetKey}" in pgRelations(), or use the callback form of joinMany.` });
|
|
191
194
|
}
|
|
192
195
|
const conditionBuilder = new join_many_condition_builder_1.JoinManyConditionBuilder();
|
|
193
196
|
if (callback) {
|
|
@@ -8,7 +8,7 @@ exports.executePagination = executePagination;
|
|
|
8
8
|
const pg_cursor_1 = __importDefault(require("../../addon/cursor.cjs"));
|
|
9
9
|
const relq_errors_1 = require("../../shared/errors/relq-errors.cjs");
|
|
10
10
|
const pagination_types_1 = require("../../types/pagination-types.cjs");
|
|
11
|
-
const methods_1 = require("
|
|
11
|
+
const methods_1 = require("../../core/helpers/methods.cjs");
|
|
12
12
|
async function executeCursorEach(ctx, callback, options = {}) {
|
|
13
13
|
const batchSize = options.batchSize ?? 100;
|
|
14
14
|
const sql = ctx.builder.toString();
|
|
@@ -8,7 +8,7 @@ exports.createExcludedProxy = createExcludedProxy;
|
|
|
8
8
|
exports.createRowProxy = createRowProxy;
|
|
9
9
|
exports.createSqlHelpers = createSqlHelpers;
|
|
10
10
|
exports.buildConflictUpdateSql = buildConflictUpdateSql;
|
|
11
|
-
const pg_format_1 = __importDefault(require("
|
|
11
|
+
const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
|
|
12
12
|
function isColumnRef(value) {
|
|
13
13
|
return typeof value === 'object' && value !== null && value.__type === 'column_ref';
|
|
14
14
|
}
|
|
@@ -184,7 +184,7 @@ class ConflictBuilder {
|
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
186
|
exports.ConflictBuilder = ConflictBuilder;
|
|
187
|
-
function buildConflictUpdateSql(updateData,
|
|
187
|
+
function buildConflictUpdateSql(updateData, _tableName, columnResolver) {
|
|
188
188
|
const resolve = (col) => columnResolver ? columnResolver(col) : col;
|
|
189
189
|
const setClauses = [];
|
|
190
190
|
for (const [column, value] of Object.entries(updateData)) {
|
|
@@ -4,12 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.InsertBuilder = void 0;
|
|
7
|
-
const pg_format_1 = __importDefault(require("
|
|
8
|
-
const case_converter_1 = require("
|
|
7
|
+
const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
|
|
8
|
+
const case_converter_1 = require("../../utils/case-converter.cjs");
|
|
9
9
|
const select_builder_1 = require("../select/select-builder.cjs");
|
|
10
10
|
const count_builder_1 = require("../count/count-builder.cjs");
|
|
11
11
|
const conflict_builder_1 = require("./conflict-builder.cjs");
|
|
12
|
-
const relq_errors_1 = require("
|
|
12
|
+
const relq_errors_1 = require("../../shared/errors/relq-errors.cjs");
|
|
13
13
|
class InsertBuilder {
|
|
14
14
|
tableName;
|
|
15
15
|
insertData;
|
|
@@ -82,8 +82,11 @@ class InsertBuilder {
|
|
|
82
82
|
if (this.insertData.length === 0) {
|
|
83
83
|
this.originalColumns = Object.keys(normalizedRows[0]).sort();
|
|
84
84
|
}
|
|
85
|
-
|
|
86
|
-
this.validateColumns(
|
|
85
|
+
if (normalizedRows.length > 0) {
|
|
86
|
+
this.validateColumns(normalizedRows[0]);
|
|
87
|
+
if (normalizedRows.length > 1) {
|
|
88
|
+
this.validateColumns(normalizedRows[normalizedRows.length - 1]);
|
|
89
|
+
}
|
|
87
90
|
}
|
|
88
91
|
this.insertData.push(...normalizedRows);
|
|
89
92
|
return this;
|
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.InsertFromSelectBuilder = void 0;
|
|
7
|
-
const pg_format_1 = __importDefault(require("
|
|
7
|
+
const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
|
|
8
8
|
const conflict_builder_1 = require("./conflict-builder.cjs");
|
|
9
9
|
class InsertFromSelectBuilder {
|
|
10
10
|
tableName;
|
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.NotifyBuilder = exports.UnlistenBuilder = exports.ListenBuilder = void 0;
|
|
7
|
-
const pg_format_1 = __importDefault(require("
|
|
7
|
+
const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
|
|
8
8
|
class ListenBuilder {
|
|
9
9
|
channelName;
|
|
10
10
|
constructor(channelName) {
|
|
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ListenerConnection = void 0;
|
|
7
7
|
const node_events_1 = require("node:events");
|
|
8
|
-
const pg_1 = require("
|
|
9
|
-
const pg_format_1 = __importDefault(require("
|
|
8
|
+
const pg_1 = require("../../addon/pg.cjs");
|
|
9
|
+
const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
|
|
10
10
|
class ListenerConnection extends node_events_1.EventEmitter {
|
|
11
11
|
client = null;
|
|
12
12
|
config;
|
|
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.RawQueryBuilder = void 0;
|
|
7
|
-
const pg_format_1 = __importDefault(require("
|
|
8
|
-
const relq_errors_1 = require("
|
|
7
|
+
const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
|
|
8
|
+
const relq_errors_1 = require("../../shared/errors/relq-errors.cjs");
|
|
9
9
|
class RawQueryBuilder {
|
|
10
10
|
query;
|
|
11
11
|
params;
|
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.SqlFragment = void 0;
|
|
7
7
|
exports.sql = sql;
|
|
8
|
-
const pg_format_1 = __importDefault(require("
|
|
8
|
+
const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
|
|
9
9
|
class SqlFragment {
|
|
10
10
|
text;
|
|
11
11
|
_isSqlFragment = true;
|
|
@@ -20,9 +20,6 @@ exports.SqlFragment = SqlFragment;
|
|
|
20
20
|
function sqlIdentifier(name) {
|
|
21
21
|
return new SqlFragment(pg_format_1.default.ident(name));
|
|
22
22
|
}
|
|
23
|
-
function sqlRaw(text) {
|
|
24
|
-
return new SqlFragment(text);
|
|
25
|
-
}
|
|
26
23
|
function sql(strings, ...values) {
|
|
27
24
|
let result = '';
|
|
28
25
|
for (let i = 0; i < strings.length; i++) {
|
|
@@ -69,5 +66,3 @@ function formatValue(value) {
|
|
|
69
66
|
return (0, pg_format_1.default)('%L', String(value));
|
|
70
67
|
}
|
|
71
68
|
sql.id = sqlIdentifier;
|
|
72
|
-
sql.raw = sqlRaw;
|
|
73
|
-
sql.fragment = sqlRaw;
|
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.AggregateQueryBuilder = void 0;
|
|
7
|
-
const pg_format_1 = __importDefault(require("
|
|
7
|
+
const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
|
|
8
8
|
const condition_collector_1 = require("../condition/condition-collector.cjs");
|
|
9
9
|
const NUMERIC_FUNCS = new Set(['COUNT', 'SUM', 'AVG', 'MIN', 'MAX']);
|
|
10
10
|
class AggregateQueryBuilder {
|
|
@@ -87,10 +87,15 @@ class AggregateQueryBuilder {
|
|
|
87
87
|
this.entries.push({ func: 'BOOL_OR', column, alias: alias || column });
|
|
88
88
|
return this;
|
|
89
89
|
}
|
|
90
|
-
where(
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
90
|
+
where(callbackOrCondition) {
|
|
91
|
+
if (callbackOrCondition instanceof condition_collector_1.ConditionCollector) {
|
|
92
|
+
this.whereConditions.push(...callbackOrCondition.getConditions());
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
const collector = new condition_collector_1.ConditionCollector();
|
|
96
|
+
callbackOrCondition(collector);
|
|
97
|
+
this.whereConditions.push(...collector.getConditions());
|
|
98
|
+
}
|
|
94
99
|
return this;
|
|
95
100
|
}
|
|
96
101
|
having(callback) {
|
|
@@ -8,7 +8,7 @@ exports.createJoinManyBuilder = createJoinManyBuilder;
|
|
|
8
8
|
const join_condition_builder_1 = require("./join-condition-builder.cjs");
|
|
9
9
|
const table_proxy_1 = require("./table-proxy.cjs");
|
|
10
10
|
const condition_collector_1 = require("../condition/condition-collector.cjs");
|
|
11
|
-
const pg_format_1 = __importDefault(require("
|
|
11
|
+
const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
|
|
12
12
|
class JoinManyBuilder extends join_condition_builder_1.JoinConditionBuilder {
|
|
13
13
|
orderBySpecs = [];
|
|
14
14
|
selectColumns = [];
|
|
@@ -127,7 +127,7 @@ class JoinManyBuilder extends join_condition_builder_1.JoinConditionBuilder {
|
|
|
127
127
|
.map(col => (0, table_proxy_1.columnRefToSQLUnqualified)(col))
|
|
128
128
|
.join(', ');
|
|
129
129
|
}
|
|
130
|
-
buildWherePart(
|
|
130
|
+
buildWherePart(_leftAlias) {
|
|
131
131
|
const parts = [];
|
|
132
132
|
for (const cond of this.conditions) {
|
|
133
133
|
if (cond.type === 'using' || cond.type === 'raw') {
|
|
@@ -7,12 +7,13 @@ exports.JoinConditionBuilder = void 0;
|
|
|
7
7
|
exports.createJoinConditionBuilder = createJoinConditionBuilder;
|
|
8
8
|
const table_proxy_1 = require("./table-proxy.cjs");
|
|
9
9
|
const condition_collector_1 = require("../condition/condition-collector.cjs");
|
|
10
|
-
const pg_format_1 = __importDefault(require("
|
|
10
|
+
const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
|
|
11
11
|
const join_internals_1 = require("./join-internals.cjs");
|
|
12
12
|
class JoinConditionBuilder {
|
|
13
13
|
conditions = [];
|
|
14
14
|
whereConditions = [];
|
|
15
15
|
selectedColumns;
|
|
16
|
+
flatConfig;
|
|
16
17
|
equal(left, right) {
|
|
17
18
|
this.conditions.push({
|
|
18
19
|
type: 'equal',
|
|
@@ -107,6 +108,14 @@ class JoinConditionBuilder {
|
|
|
107
108
|
}
|
|
108
109
|
return this;
|
|
109
110
|
}
|
|
111
|
+
flat() {
|
|
112
|
+
if (!this.selectedColumns || this.selectedColumns.length === 0) {
|
|
113
|
+
throw new Error('Relq: .flat() requires .select() with explicit columns. ' +
|
|
114
|
+
'Cannot flatten without knowing the column set.');
|
|
115
|
+
}
|
|
116
|
+
this.flatConfig = { mode: 'prefix' };
|
|
117
|
+
return this;
|
|
118
|
+
}
|
|
110
119
|
get [join_internals_1.JOIN_INTERNAL]() {
|
|
111
120
|
return {
|
|
112
121
|
toSQL: () => this.internalToSQL(),
|
|
@@ -118,6 +127,7 @@ class JoinConditionBuilder {
|
|
|
118
127
|
hasConditions: () => this.conditions.length > 0,
|
|
119
128
|
hasWhereConditions: () => this.whereConditions.length > 0,
|
|
120
129
|
getSelectedColumns: () => this.selectedColumns ?? null,
|
|
130
|
+
getFlatConfig: () => this.flatConfig ?? null,
|
|
121
131
|
};
|
|
122
132
|
}
|
|
123
133
|
internalToSQL() {
|
|
@@ -8,14 +8,13 @@ exports.createJoinManyConditionBuilder = createJoinManyConditionBuilder;
|
|
|
8
8
|
const table_proxy_1 = require("./table-proxy.cjs");
|
|
9
9
|
const join_condition_builder_1 = require("./join-condition-builder.cjs");
|
|
10
10
|
const join_internals_1 = require("./join-internals.cjs");
|
|
11
|
-
const pg_format_1 = __importDefault(require("
|
|
11
|
+
const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
|
|
12
12
|
class JoinManyConditionBuilder extends join_condition_builder_1.JoinConditionBuilder {
|
|
13
13
|
orderSpecs = [];
|
|
14
14
|
limitValue;
|
|
15
15
|
offsetValue;
|
|
16
16
|
innerJoins = [];
|
|
17
17
|
proxyCreator;
|
|
18
|
-
rightProxy;
|
|
19
18
|
orderBy(column, direction = 'ASC', nulls) {
|
|
20
19
|
this.orderSpecs.push({ column, direction, nulls });
|
|
21
20
|
return this;
|
|
@@ -29,9 +28,8 @@ class JoinManyConditionBuilder extends join_condition_builder_1.JoinConditionBui
|
|
|
29
28
|
return this;
|
|
30
29
|
}
|
|
31
30
|
get [join_internals_1.JOIN_SETUP]() {
|
|
32
|
-
return (creator,
|
|
31
|
+
return (creator, _rightProxy) => {
|
|
33
32
|
this.proxyCreator = creator;
|
|
34
|
-
this.rightProxy = rightProxy;
|
|
35
33
|
};
|
|
36
34
|
}
|
|
37
35
|
innerJoin(tableOrAlias, callback) {
|
|
@@ -92,6 +90,7 @@ class JoinManyConditionBuilder extends join_condition_builder_1.JoinConditionBui
|
|
|
92
90
|
hasConditions: () => this.conditions.length > 0,
|
|
93
91
|
hasWhereConditions: () => this.whereConditions.length > 0,
|
|
94
92
|
getSelectedColumns: () => this.selectedColumns ?? null,
|
|
93
|
+
getFlatConfig: () => this.flatConfig ?? null,
|
|
95
94
|
toSelectSQL: (alias) => this.buildSelectSQL(alias),
|
|
96
95
|
toOrderBySQL: () => this.buildOrderBySQL(),
|
|
97
96
|
toLimitSQL: () => this.buildLimitSQL(),
|
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ScalarQueryBuilderImpl = void 0;
|
|
7
7
|
exports.createScalarTableAccessor = createScalarTableAccessor;
|
|
8
|
-
const pg_format_1 = __importDefault(require("
|
|
8
|
+
const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
|
|
9
9
|
const condition_collector_1 = require("../condition/condition-collector.cjs");
|
|
10
10
|
class ScalarResultImpl {
|
|
11
11
|
sql;
|
|
@@ -73,6 +73,36 @@ class ScalarQueryBuilderImpl {
|
|
|
73
73
|
const sql = `(EXISTS(SELECT 1 FROM ${pg_format_1.default.ident(this.tableName)}${whereClause}))`;
|
|
74
74
|
return new ScalarResultImpl(sql);
|
|
75
75
|
}
|
|
76
|
+
countDistinct(column) {
|
|
77
|
+
const sqlColumn = this.resolveColumn(column);
|
|
78
|
+
const sql = this.buildSQL(`COUNT(DISTINCT ${pg_format_1.default.ident(sqlColumn)})`);
|
|
79
|
+
return new ScalarResultImpl(sql);
|
|
80
|
+
}
|
|
81
|
+
stringAgg(column, delimiter = ', ') {
|
|
82
|
+
const sqlColumn = this.resolveColumn(column);
|
|
83
|
+
const sql = this.buildSQL(`STRING_AGG(${pg_format_1.default.ident(sqlColumn)}::text, ${pg_format_1.default.literal(delimiter)})`);
|
|
84
|
+
return new ScalarResultImpl(sql);
|
|
85
|
+
}
|
|
86
|
+
arrayAgg(column) {
|
|
87
|
+
const sqlColumn = this.resolveColumn(column);
|
|
88
|
+
const sql = this.buildSQL(`COALESCE(ARRAY_AGG(${pg_format_1.default.ident(sqlColumn)}), ARRAY[]::text[])`);
|
|
89
|
+
return new ScalarResultImpl(sql);
|
|
90
|
+
}
|
|
91
|
+
jsonAgg(column) {
|
|
92
|
+
const sqlColumn = this.resolveColumn(column);
|
|
93
|
+
const sql = this.buildSQL(`COALESCE(JSON_AGG(${pg_format_1.default.ident(sqlColumn)}), '[]'::json)`);
|
|
94
|
+
return new ScalarResultImpl(sql);
|
|
95
|
+
}
|
|
96
|
+
boolAnd(column) {
|
|
97
|
+
const sqlColumn = this.resolveColumn(column);
|
|
98
|
+
const sql = this.buildSQL(`BOOL_AND(${pg_format_1.default.ident(sqlColumn)})`);
|
|
99
|
+
return new ScalarResultImpl(sql);
|
|
100
|
+
}
|
|
101
|
+
boolOr(column) {
|
|
102
|
+
const sqlColumn = this.resolveColumn(column);
|
|
103
|
+
const sql = this.buildSQL(`BOOL_OR(${pg_format_1.default.ident(sqlColumn)})`);
|
|
104
|
+
return new ScalarResultImpl(sql);
|
|
105
|
+
}
|
|
76
106
|
resolveColumn(column) {
|
|
77
107
|
if (this.columnResolver) {
|
|
78
108
|
return this.columnResolver(column);
|
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ConnectedScalarSelectBuilder = exports.ScalarSelectBuilder = void 0;
|
|
7
|
-
const pg_format_1 = __importDefault(require("
|
|
7
|
+
const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
|
|
8
8
|
const scalar_query_builder_1 = require("./scalar-query-builder.cjs");
|
|
9
9
|
class ScalarSelectBuilder {
|
|
10
10
|
executeQuery;
|
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.SelectBuilder = void 0;
|
|
7
|
-
const pg_format_1 = __importDefault(require("
|
|
7
|
+
const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
|
|
8
8
|
const condition_collector_1 = require("../condition/condition-collector.cjs");
|
|
9
9
|
class SelectBuilder {
|
|
10
10
|
tableName;
|
|
@@ -75,10 +75,15 @@ class SelectBuilder {
|
|
|
75
75
|
this.isDistinct = true;
|
|
76
76
|
return this;
|
|
77
77
|
}
|
|
78
|
-
where(
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
78
|
+
where(callbackOrCondition) {
|
|
79
|
+
if (callbackOrCondition instanceof condition_collector_1.ConditionCollector) {
|
|
80
|
+
this.whereConditions.push(...callbackOrCondition.getConditions());
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
const conditionBuilder = new condition_collector_1.ConditionCollector();
|
|
84
|
+
callbackOrCondition(conditionBuilder);
|
|
85
|
+
this.whereConditions.push(...conditionBuilder.getConditions());
|
|
86
|
+
}
|
|
82
87
|
return this;
|
|
83
88
|
}
|
|
84
89
|
join(table, condition) {
|
|
@@ -277,10 +282,32 @@ class SelectBuilder {
|
|
|
277
282
|
}
|
|
278
283
|
return pg_format_1.default.ident(col);
|
|
279
284
|
});
|
|
285
|
+
const hasGroupBy = this.groupByColumns.length > 0
|
|
286
|
+
|| (this.includeExpressions.length > 0 && this.selectColumns.some(c => typeof c === 'string' && c !== '*'));
|
|
280
287
|
for (const join of this.structuredJoins) {
|
|
281
288
|
if (join.type === 'LEFT JOIN LATERAL' || join.type === 'JOIN LATERAL') {
|
|
282
289
|
columns.push(`${pg_format_1.default.ident(join.alias + '_lateral')}.${pg_format_1.default.ident(join.alias)} AS ${pg_format_1.default.ident(join.alias)}`);
|
|
283
290
|
}
|
|
291
|
+
else if (hasGroupBy) {
|
|
292
|
+
if (join.selectColumns && join.selectColumns.length > 0) {
|
|
293
|
+
const jsonArgs = join.selectColumns
|
|
294
|
+
.map(col => `'${col.property}', ${pg_format_1.default.ident(join.alias)}.${pg_format_1.default.ident(col.sqlName)}`)
|
|
295
|
+
.join(', ');
|
|
296
|
+
columns.push(`COALESCE(json_agg(json_build_object(${jsonArgs})) FILTER (WHERE ${pg_format_1.default.ident(join.alias)}.${pg_format_1.default.ident(join.selectColumns[0].sqlName)} IS NOT NULL), '[]'::json) AS ${pg_format_1.default.ident(join.alias)}`);
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
columns.push(`COALESCE(json_agg(row_to_json(${pg_format_1.default.ident(join.alias)}.*)) FILTER (WHERE ${pg_format_1.default.ident(join.alias)} IS NOT NULL), '[]'::json) AS ${pg_format_1.default.ident(join.alias)}`);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
else if (join.flat && join.selectColumns && join.selectColumns.length > 0) {
|
|
303
|
+
const capitalize = (s) => s.charAt(0).toUpperCase() + s.slice(1);
|
|
304
|
+
const prefix = join.flat.prefix || join.alias;
|
|
305
|
+
for (const col of join.selectColumns) {
|
|
306
|
+
const sqlRef = `${pg_format_1.default.ident(join.alias)}.${pg_format_1.default.ident(col.sqlName)}`;
|
|
307
|
+
const alias = `${prefix}${capitalize(col.property)}`;
|
|
308
|
+
columns.push(`${sqlRef} AS ${pg_format_1.default.ident(alias)}`);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
284
311
|
else if (join.selectColumns && join.selectColumns.length > 0) {
|
|
285
312
|
const jsonArgs = join.selectColumns
|
|
286
313
|
.map(col => `'${col.property}', ${pg_format_1.default.ident(join.alias)}.${pg_format_1.default.ident(col.sqlName)}`)
|
|
@@ -325,8 +352,14 @@ class SelectBuilder {
|
|
|
325
352
|
}
|
|
326
353
|
query += ' WHERE ' + (0, condition_collector_1.buildConditionsSQL)(conditions);
|
|
327
354
|
}
|
|
328
|
-
|
|
329
|
-
|
|
355
|
+
let effectiveGroupBy = this.groupByColumns;
|
|
356
|
+
if (effectiveGroupBy.length === 0 && this.includeExpressions.length > 0) {
|
|
357
|
+
effectiveGroupBy = this.selectColumns
|
|
358
|
+
.filter(col => typeof col === 'string' && col !== '*')
|
|
359
|
+
.map(col => col);
|
|
360
|
+
}
|
|
361
|
+
if (effectiveGroupBy.length > 0) {
|
|
362
|
+
const groupBySQL = effectiveGroupBy.map(col => {
|
|
330
363
|
if (col.includes('.'))
|
|
331
364
|
return col;
|
|
332
365
|
if (hasJoins)
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AggregateFunctions = exports.SqlExpression = void 0;
|
|
4
|
+
const table_proxy_1 = require("./table-proxy.cjs");
|
|
5
|
+
class SqlExpression {
|
|
6
|
+
sql;
|
|
7
|
+
_isSqlExpression = true;
|
|
8
|
+
constructor(sql) {
|
|
9
|
+
this.sql = sql;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.SqlExpression = SqlExpression;
|
|
13
|
+
class AggregateFunctions {
|
|
14
|
+
count(ref) {
|
|
15
|
+
if (!ref)
|
|
16
|
+
return new SqlExpression('COALESCE(COUNT(*)::integer, 0)');
|
|
17
|
+
return new SqlExpression(`COALESCE(COUNT(${(0, table_proxy_1.columnRefToSQL)(ref)})::integer, 0)`);
|
|
18
|
+
}
|
|
19
|
+
countDistinct(ref) {
|
|
20
|
+
return new SqlExpression(`COALESCE(COUNT(DISTINCT ${(0, table_proxy_1.columnRefToSQL)(ref)})::integer, 0)`);
|
|
21
|
+
}
|
|
22
|
+
sum(ref) {
|
|
23
|
+
return new SqlExpression(`COALESCE(SUM(${(0, table_proxy_1.columnRefToSQL)(ref)})::float, 0)`);
|
|
24
|
+
}
|
|
25
|
+
avg(ref) {
|
|
26
|
+
return new SqlExpression(`AVG(${(0, table_proxy_1.columnRefToSQL)(ref)})::float`);
|
|
27
|
+
}
|
|
28
|
+
min(ref) {
|
|
29
|
+
return new SqlExpression(`MIN(${(0, table_proxy_1.columnRefToSQL)(ref)})`);
|
|
30
|
+
}
|
|
31
|
+
max(ref) {
|
|
32
|
+
return new SqlExpression(`MAX(${(0, table_proxy_1.columnRefToSQL)(ref)})`);
|
|
33
|
+
}
|
|
34
|
+
stringAgg(ref, delimiter = ', ') {
|
|
35
|
+
return new SqlExpression(`COALESCE(STRING_AGG(${(0, table_proxy_1.columnRefToSQL)(ref)}::text, '${delimiter}'), '')`);
|
|
36
|
+
}
|
|
37
|
+
arrayAgg(ref) {
|
|
38
|
+
return new SqlExpression(`COALESCE(ARRAY_AGG(${(0, table_proxy_1.columnRefToSQL)(ref)}) FILTER (WHERE ${(0, table_proxy_1.columnRefToSQL)(ref)} IS NOT NULL), '{}')`);
|
|
39
|
+
}
|
|
40
|
+
arrayAggDistinct(ref) {
|
|
41
|
+
return new SqlExpression(`COALESCE(ARRAY_AGG(DISTINCT ${(0, table_proxy_1.columnRefToSQL)(ref)}) FILTER (WHERE ${(0, table_proxy_1.columnRefToSQL)(ref)} IS NOT NULL), '{}')`);
|
|
42
|
+
}
|
|
43
|
+
boolAnd(ref) {
|
|
44
|
+
return new SqlExpression(`COALESCE(BOOL_AND(${(0, table_proxy_1.columnRefToSQL)(ref)}), false)`);
|
|
45
|
+
}
|
|
46
|
+
boolOr(ref) {
|
|
47
|
+
return new SqlExpression(`COALESCE(BOOL_OR(${(0, table_proxy_1.columnRefToSQL)(ref)}), false)`);
|
|
48
|
+
}
|
|
49
|
+
stddev(ref) {
|
|
50
|
+
return new SqlExpression(`STDDEV(${(0, table_proxy_1.columnRefToSQL)(ref)})::float`);
|
|
51
|
+
}
|
|
52
|
+
variance(ref) {
|
|
53
|
+
return new SqlExpression(`VARIANCE(${(0, table_proxy_1.columnRefToSQL)(ref)})::float`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.AggregateFunctions = AggregateFunctions;
|
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.SavepointBuilder = exports.TransactionBuilder = void 0;
|
|
7
|
-
const pg_format_1 = __importDefault(require("
|
|
7
|
+
const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
|
|
8
8
|
class TransactionBuilder {
|
|
9
9
|
isolationLevel;
|
|
10
10
|
mode;
|
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ArrayUpdateBuilder = exports.ArrayJsonbUpdateBuilder = exports.ArrayDateUpdateBuilder = exports.ArrayUuidUpdateBuilder = exports.ArrayBooleanUpdateBuilder = exports.ArrayNumericUpdateBuilder = exports.ArrayStringUpdateBuilder = void 0;
|
|
7
|
-
const pg_format_1 = __importDefault(require("
|
|
7
|
+
const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
|
|
8
8
|
class ArrayStringUpdateBuilder {
|
|
9
9
|
set(values) {
|
|
10
10
|
if (values.length === 0)
|
|
@@ -200,10 +200,7 @@ class ArrayJsonbUpdateBuilder {
|
|
|
200
200
|
}
|
|
201
201
|
exports.ArrayJsonbUpdateBuilder = ArrayJsonbUpdateBuilder;
|
|
202
202
|
class ArrayUpdateBuilder {
|
|
203
|
-
|
|
204
|
-
constructor(currentColumn) {
|
|
205
|
-
this.currentColumn = currentColumn;
|
|
206
|
-
}
|
|
203
|
+
constructor(_currentColumn) { }
|
|
207
204
|
get string() {
|
|
208
205
|
return new ArrayStringUpdateBuilder();
|
|
209
206
|
}
|