Commit graph

748 commits

Author SHA1 Message Date
Zach Daniel
3ad3f5f5d6 chore: update ash, resources and an error message 2024-03-27 17:03:16 -04:00
Zach Daniel
37cc01957d
improvement!: 3.0 (#227)
* WIP

* chore: fix mix.lock merge issues

* improvement: upgrade to 3.0

* chore: remove `repo.to_tenant`

* chore: continue removal of unnecessary helper

* chore: use `Ash.ToTenant`
2024-03-27 16:52:28 -04:00
Zach Daniel
ec75b41dbe improvement: properly show unsupported error expression 2024-03-22 14:20:38 -04:00
Zach Daniel
5a513a82c2 fix: handle fully fleshed out aggregate fields 2024-03-22 02:13:07 -04:00
Zach Daniel
a0e2693998 fix: don't fail on aggregate query generation
fixes #225
2024-03-20 18:37:38 -04:00
Zach Daniel
adac811c79 fix: properly format migrations
fix: ensure exists aggregates have filters included
2024-03-20 16:18:27 -04:00
Jinkyou Son
b60f680ab3
Fix: undo default of nulls_distinct option to true (#223) 2024-03-20 12:01:53 -04:00
Minsub Kim
0c3b4e5425
fix: generate correct custom index name in down migration function (#222) 2024-03-20 08:36:44 -04:00
Zach Daniel
2c1381d5e6 fix: encode maps on update using fragments 2024-03-19 00:06:15 -04:00
Jinkyou Son
e27ce5e074
improvement: Add nulls_distinct option to CustomIndex (#221) 2024-03-12 20:22:34 -04:00
Zach Daniel
ea853e5171 improvement: properly format generated migrations 2024-03-11 22:09:05 -04:00
Zach Daniel
2a326ea6bd chore: fix dialyzer/mix.lock 2024-03-11 11:34:40 -04:00
Zach Daniel
abcdc05202 improvement: don't select fields in exists subquery 2024-03-11 11:20:50 -04:00
Zach Daniel
3c2b8912d0 fix: don't reuse binding in many to many aggregate joins 2024-03-07 11:33:39 -05:00
Robert Graff
842f16a2fa
fix: typo in extension generator creates invalid drop 2024-03-06 20:54:08 -08:00
Jechol Lee
603d9c8cc6
fix: merge base_filter and custom index's where correctly (#219) 2024-03-06 19:33:10 -05:00
Zach Daniel
c2aacc65db chore: only cast embedded maps statically 2024-03-06 08:30:41 -05:00
Zach Daniel
40481a17a0 fix: prevent ecto/pg from getting confused about the type of maps 2024-03-06 08:23:56 -05:00
Zach Daniel
70af9ee5bd fix: always exclude :order_by on bulk updateable query 2024-03-05 09:19:55 -05:00
Zach Daniel
fce0fefe72 fix: don't apply join relationship sort for lateral join
fixes #218
2024-03-04 00:10:57 -05:00
Zach Daniel
ec122c61d6 improvement: don't double cast to the same type
improvement: detect more types
2024-03-01 13:06:14 -05:00
Zach Daniel
cea4b70a51 improvement: no need for subquery for simple table aliases 2024-02-29 20:20:33 -05:00
Zach Daniel
43deb00e36 fix: properly handle multiple sorts in aggregate 2024-02-29 13:42:42 -05:00
Zach Daniel
2c8c993cf9 chore: optimization/cleanups 2024-02-29 13:01:53 -05:00
Zach Daniel
4db1b80eb1 fix: ensure that from_many? joins are properly limited
fix: ensure that lateral joins are properly filtered
2024-02-29 09:22:37 -05:00
Zach Daniel
b0cd8381c4 chore: remove unnecessary function head 2024-02-29 00:21:28 -05:00
Zach Daniel
cfebfa278a chore: fix dialyzer issue 2024-02-29 00:07:56 -05:00
Zach Daniel
d8baa64527 improvement: optimize more cases for simple join aggregates
fixes #215
2024-02-29 00:03:29 -05:00
Zach Daniel
bc9718d063 chore: fix dialyzer 2024-02-28 23:42:48 -05:00
Zach Daniel
f716e3bb69 fix: simplify(and fix) exists subquery generation 2024-02-28 22:55:53 -05:00
Zach Daniel
23dd650100 test: test improvements, regression test 2024-02-28 21:24:31 -05:00
Zach Daniel
2b3b6b0bc9 fix: properly leverage subqueries throughout relationship joining 2024-02-28 21:22:54 -05:00
Zach Daniel
61045700a2 chore: clarify join semantics 2024-02-28 21:22:54 -05:00
Robert Graff
b44d8cdc55
Fix: migration generator extensions in multiple repos (#214)
* Fix: Migration generator for extensions in multiple repos

* Do not rename legacy file on dry_run
2024-02-27 20:23:18 -05:00
Zach Daniel
735d7a202f chore: fix syntax error from unsaved file 2024-02-26 15:56:46 -05:00
Zach Daniel
480eadccf1 fix: fix error when encoding vectors 2024-02-26 15:46:29 -05:00
Zach Daniel
6455bef6ed fix: ensure select is applied (or not) properly in bulk update/destroys 2024-02-25 21:35:33 -05:00
Zach Daniel
b6b2dd1dc6 fix: handle more subquery filter cases for aggregates 2024-02-24 20:20:52 -05:00
Zach Daniel
98f24b1923 Revert "fix: remove buggy global filter extraction"
This reverts commit 7c3b60b942.
2024-02-24 17:35:43 -05:00
Zach Daniel
7c3b60b942 fix: remove buggy global filter extraction 2024-02-24 17:20:03 -05:00
Zach Daniel
8fa10ac6ec fix: only apply filters inside aggregate subquery 2024-02-24 17:10:01 -05:00
Zach Daniel
37cb3825f1 fix: properly handle complex types in lists 2024-02-23 20:53:19 -05:00
Zach Daniel
5052463767 fix: properly apply lateral join conditions to left lateral joins 2024-02-22 07:31:06 -05:00
Zach Daniel
c185ba80e8 fix: ensure select is properly set on delete_all 2024-02-21 16:37:28 -05:00
Zach Daniel
d0041ce88d improvement: optimize aggregate query filtering 2024-02-21 14:03:28 -05:00
Zach Daniel
2b91ebe488 fix: ensure proper return value for single aggregate runs 2024-02-21 09:56:33 -05:00
Zach Daniel
6e81afb24b fix: don't sort a query that will be used with delete_all
fix: ensure that `exists?` aggregates use `repo.exists?`
2024-02-21 07:54:58 -05:00
Zach Daniel
b5b1077032 chore: fix recursion error in to_many_path? 2024-02-20 22:13:23 -05:00
Zach Daniel
38d1beb0d8 fix: properly handle to_many joins in aggregates
fix: honor aggregate query filters
2024-02-20 18:38:35 -05:00
Dmitry Maganov
46928521c0
fix: use proper tables in joins originating from polymorphic resource (#211) 2024-02-20 11:15:56 -05:00
Dmitry Maganov
d2500b25f3
fix: properly transfer table names to non-inner wrapper queries (#210) 2024-02-20 11:15:06 -05:00
Zach Daniel
40522aadd8 chore: properly set __ash_bindings__ on bulk updatable query 2024-02-19 13:49:11 -05:00
Zach Daniel
f9a59cc5f6 chore: update style for credo 2024-02-19 13:35:36 -05:00
Zach Daniel
557bc6019c fix: handle non-inner joins in delete_all
fix: handle non-inner joins in update
2024-02-19 13:29:41 -05:00
Zach Daniel
7cbe482fc9 fix: don't update_all or delete_all with order_by 2024-02-19 12:40:26 -05:00
Zach Daniel
0979756b0b fix: handle updating from queries w/ non-inner initial joins 2024-02-19 11:56:48 -05:00
Zach Daniel
9edde198ef fix: joining to from_many?: true relationships not honoring limit 2024-02-19 09:27:16 -05:00
Zach Daniel
6cb53dc8d7 fix: allow subquerying a through while aggregating a many to many 2024-02-15 23:11:44 -05:00
Zach Daniel
cde117e18b fix: don't subquery if we need to reference parent_as 2024-02-15 23:06:24 -05:00
Zach Daniel
bdcf97a638 fix: avoid double wrapping in subqueries 2024-02-15 22:58:11 -05:00
Zach Daniel
fd746a784c fix: properly set 0 binding on joined subquery creation
fixes #208
2024-02-15 11:57:17 -05:00
Zach Daniel
2d18c9cbeb fix: properly alter renaming attributes in migration generator
fixes #207
2024-02-15 09:23:48 -05:00
Zach Daniel
8f10c9b824 chore: update credo 2024-02-14 12:12:54 -05:00
Zach Daniel
930d16a5e9 fix: handle original data not available in destroy_query 2024-02-12 10:08:48 -05:00
Barnabas Jovanovics
a9d38e91e1
Improvement: mark (i)like functions as predicates (#205) 2024-02-07 14:45:34 -05:00
Zach Daniel
1ea360d15c improvement: detect bigserial when altering attributes
closes #204
2024-02-07 14:39:38 -05:00
Zach Daniel
c72b57ece5 fix: use primary key of source as join key 2024-02-06 12:39:16 -05:00
Kilian Cirera Sant
b2b05618b5
improvement: Include modules in installed_extensions return type (#202)
As per the documentation (and indeed the actual behavior):

> Extensions can be a string, representing a standard postgres
extension, or a module that implements `AshPostgres.CustomExtension`.
2024-02-05 16:52:09 -05:00
Zach Daniel
809cd5582f improvement: don't drop primary key in case of removal 2024-02-04 10:12:39 -05:00
Eduardo B. A
a8b7f3b3e7
feat: Make MigrationGenerator accept atoms (#201)
Co-authored-by: Eduardo B. Alexandre <sezdocs@github.com>
2024-02-02 12:25:02 -05:00
Zach Daniel
43b576e09d fix: use pkey if error fields is empty 2024-02-01 15:48:23 -05:00
Zach Daniel
4494bf971f chore: changeset.resource -> resource 2024-02-01 15:21:50 -05:00
Zach Daniel
de7d6feaa3 fix: forgot to bind keys to a variable 🤦🏻 2024-02-01 15:12:17 -05:00
Zach Daniel
a940022eba fix: ensure identity keys is never missing 2024-02-01 14:59:49 -05:00
Zach Daniel
b018262637 test: add new test verifying batch destroy behavior
chore: add sobelow warning skip
2024-02-01 13:09:06 -05:00
Zach Daniel
d71cb81792 improvement: handle if select is present on query 2024-01-31 16:30:23 -05:00
Zach Daniel
8c43deea9b fix: properly build subqueries when required for relationship queries 2024-01-30 15:21:59 -05:00
Zach Daniel
ffafa6c9f5 improvement: support Ash.Changeset.OriginalDataNotAvailable 2024-01-30 12:49:52 -05:00
Zach Daniel
4930a69b95 improvement: support count_nils expression 2024-01-29 17:17:32 -05:00
Zach Daniel
b1d10c32cc chore: fix credo and update ash 2024-01-29 16:57:04 -05:00
Zach Daniel
a05783d422 fix: only migrate/rollback one repo at a time
fixes #197
2024-01-29 16:47:55 -05:00
Zach Daniel
647a268183 chore: skip sobelow warning 2024-01-29 15:52:08 -05:00
Zach Daniel
7b9929f07c chore: format 2024-01-29 10:36:20 -05:00
Zach Daniel
5952889ac7 chore: remove IO.inspect 2024-01-29 10:25:27 -05:00
Zach Daniel
2b813c8975 chore: consider ignore_fields when comparing custom indexes 2024-01-27 10:56:11 -05:00
Zach Daniel
98b1d2ad6c improvement: error_fields for custom_index
fix: proper return types for updates from queries
fix: allow atomics to return `nil`
2024-01-27 10:02:57 -05:00
Ryan
64e117603a
fix: Correct the matching used in building a distinct expression (#196) 2024-01-26 15:04:54 -05:00
Zach Daniel
29da61d661 chore: format 2024-01-24 12:49:38 -05:00
Zach Daniel
9926d5cb7c fix: only rollback to savepoint on specific errors 2024-01-24 11:37:24 -05:00
Dmitry Maganov
8f3100a381
fix: keep fields of custom_index in format that they were provided (#195) 2024-01-22 11:32:34 -05:00
Zach Daniel
445de282c0 fix: remap selected fields, don't subquery in aggregate joins 2024-01-19 20:13:42 -05:00
Zach Daniel
f20a07f54b improvement: support latest ash changes 2024-01-19 00:12:50 -05:00
Zach Daniel
97847da734 fix: include explicit schema in snapshot folder name
closes #193
2024-01-16 23:44:49 -05:00
Jechol Lee
62a640ecb7
fix: Support all_tenants? in custom index (#194) 2024-01-15 05:40:05 -05:00
Zach Daniel
b93b1d722b improvement: support all_tenants? option for identities
improvement: support `all_tenants?` option for custom indexes
2024-01-12 10:11:16 -05:00
Zach Daniel
40c1a13652 fix: unset sort/distinct on related queries 2024-01-11 23:17:05 -05:00
Zach Daniel
f3ccb78f86 improvement: support join_filters on aggregates
fix: subquery relationships that have filters
2024-01-11 22:30:35 -05:00
Zach Daniel
9b5acd98f7 chore: credo, dialyzer, format 2024-01-10 08:34:23 -05:00
Zach Daniel
8bfa3ffa08 fix: don't overwrite manually set schema on lateral join query 2024-01-10 08:19:21 -05:00
Zach Daniel
8976ab6722 improvement: use the target action when generating related queries 2024-01-09 08:31:06 -05:00
Zach Daniel
a60dbf1725 fix: properly configure polymorphic_name option 2024-01-08 08:39:13 -05:00
Zach Daniel
65180ec3ac fix: honor configured schema on bulk create 2024-01-05 10:01:40 -05:00
Zach Daniel
f1d5d483a6 fix: properly gather types for operator & function overloads 2024-01-04 14:08:05 -05:00
Zach Daniel
3cb33723fe improvement: support latest ash version & operator overrides 2024-01-04 01:09:16 -05:00
Zach Daniel
c0c9621534 improvement: support new bulk operations
fix: support encoding errors with expressions in them
2023-12-31 08:40:30 -05:00
Zach Daniel
2a2fd30e33 improvement: support new return_query/2 callback
improvement: support new `:no_rollback` error signal
2023-12-29 21:49:34 -05:00
Zach Daniel
9d6c17f2c2 chore: remove inspect 2023-12-27 10:21:57 -05:00
Zach Daniel
6ff25bf342 improvement: require name when generating migrations 2023-12-27 10:08:13 -05:00
Zach Daniel
89a4363c1f improvement: support directly referencing aggregates from aggregates 2023-12-23 10:39:54 -05:00
Zach Daniel
46118a77ca improvement: support aggregates as get_path subject 2023-12-22 22:23:49 -05:00
Zach Daniel
32ef8e6834 chore: remove commented out code 2023-12-22 21:16:13 -05:00
Zach Daniel
68e2f74fe0 improvement: support aggregates using other aggregates
fix: various fixes for unnecessary aggregate additions
test: added a test to confirm context based multitenancy behavior
2023-12-22 21:14:40 -05:00
Zach Daniel
5d246cc23b chore: take proper args from codegen args 2023-12-22 15:11:49 -05:00
Zach Daniel
9bc5b2af9f improvement: support string_length and string_trim 2023-12-21 19:52:29 -05:00
Zach Daniel
9ca9272426 improvement: only start savepoints when necessary 2023-12-21 16:56:57 -05:00
Zach Daniel
8192d1eb3b improvement: clean up nested if statements to single case statements 2023-12-19 22:00:40 -05:00
Zach Daniel
61d229c685 fix: use lateral joins when joining to subquery w/ parent reference 2023-12-19 18:15:00 -05:00
Barnabas Jovanovics
c916034931
fix: replace upsert field with source in EXCLUDED fragment (#187) 2023-12-19 15:05:05 +01:00
Zach Daniel
5e0f3c4657 fix: handle strings in get_path 2023-12-15 18:11:18 -05:00
Zach Daniel
ac980a2163 chore: fix error expression 2023-12-15 08:48:20 -05:00
Zach Daniel
407a7163ed improvement: support for error/2 expression 2023-12-14 17:10:11 -05:00
Zach Daniel
54908395eb fix: reenable mix tasks that need calling 2023-12-06 18:53:37 -05:00
Zach Daniel
51f51d92d2 fix: properly cast lazy update defaults to target type 2023-12-04 14:55:40 -05:00
Zach Daniel
07499b6ec0 fix: use maps for composite_type instead of tuples 2023-11-29 10:27:10 -05:00
Zach Daniel
74ef0aa6c3 improvement: support composite_type/2 expression 2023-11-29 09:57:10 -05:00
Zach Daniel
47e378e196 chore: fix dialyzer 2023-11-29 09:22:51 -05:00
Zach Daniel
592e79a2f9 improvement: support composite types 2023-11-27 17:47:54 -05:00
Zach Daniel
dc984e83c7 fix: avoid empty error on upserts with :nothing
docs: add some small docs for custom extensions
2023-11-27 11:12:22 -05:00
Barnabas Jovanovics
9c5dd0304e
chore: remove IO.inspect (#185) 2023-11-22 14:43:44 -05:00
Zach Daniel
5cf9affff4 fix: simplify aggregate bindings & calculation reference building 2023-11-22 14:07:18 -05:00
Zach Daniel
8e8da855b2 chore: fix dialyzer error 2023-11-21 09:44:10 -05:00
Zach Daniel
28f2861036 improvement: optimize relationships with identity on other end 2023-11-21 09:25:24 -05:00
Riccardo Binetti
021b7e4233
improvement: allow specifying multi-column foreign keys (#180)
* improvement: add match_with option on references
* improvement: add match_type option on references
2023-11-20 16:52:50 -05:00
Zach Daniel
fcda627050 fix: hydrate aggregate refs when adding for calculations 2023-11-20 07:05:47 -05:00
Zach Daniel
48e8a414da chore: add error context to hydrate references 2023-11-20 06:38:43 -05:00
Zach Daniel
944a4e128e chore: format and fix matrix 2023-11-17 09:17:11 -05:00
Zach Daniel
bdcbd647f3 fix: apply limit to from_many? relationship joins 2023-11-17 09:03:25 -05:00
Zach Daniel
33bd0a7061 fix: properly add filters for exists aggregates
closes: #173
2023-11-17 07:46:43 -05:00
Zach Daniel
c6e6633a9a fix: properly expand calculation values across aggregate invocations 2023-11-17 04:01:35 -05:00
Zach Daniel
abbbddf726 fix: don't add filter for no_attributes? relationships 2023-11-16 18:08:12 -05:00
Zach Daniel
ae90b66056 chore: credo/dialyzer 2023-11-16 17:55:27 -05:00
Zach Daniel
39754d1f38 fix: handle no_attributes? flag on aggregates better
fix: properly handle sorted relationships in aggregates
2023-11-16 17:48:39 -05:00
Zach Daniel
f62eef176a chore: remove testing variable 2023-11-16 11:15:11 -05:00
Zach Daniel
ef96cd541e fix: use synonymous_relationship_path when looking up ref bindings 2023-11-16 11:02:24 -05:00
Zach Daniel
4f5312a089 fix: add calculation context to calculation expressions 2023-11-16 08:31:50 -05:00
Zach Daniel
4d672ba088 fix: don't append update_defaults automatically if upsert_fields was set 2023-11-15 16:08:44 -05:00
Zach Daniel
ce628384d2 fix: don't ensure repo compiled at compile time 2023-11-14 13:59:30 -05:00
Zach Daniel
2b29f728e2 fix: handle additional case for new functional repo callback 2023-11-14 12:59:42 -05:00
Zach Daniel
db8255e5b1 improvement: support a 2 argument function for the repo option 2023-11-14 10:56:22 -05:00
Zach Daniel
cae89d856e fix: get resource from proper bindings on exists query 2023-11-13 17:42:37 -05:00