Commit graph

305 commits

Author SHA1 Message Date
Zach Daniel
99e8029499 improvement: fix upsert_fields behavior for upserts 2023-09-25 15:32:20 -04:00
Zach Daniel
b00dcf20c9 chore: format & fix docs 2023-09-22 17:16:47 -04:00
Zach Daniel
cca5f0244b chore: fix type names I just broke 2023-09-22 17:04:39 -04:00
Zach Daniel
a56f4ef52f docs: overhaul hexdocs 2023-09-22 16:14:25 -04:00
Zach Daniel
49490e6fb4 improvement: support data_layer_context option on transactions
chore: refactor create/upsert to use bulk create
2023-09-22 15:43:17 -04:00
Dmitry Maganov
b03fb51c36
fix: use :wrap_list type instead of custom validaitons (#167) 2023-09-21 15:44:02 -04:00
Zach Daniel
e8a4b41758 improvement: support vector types and vector_cosine_distance 2023-09-11 22:34:51 -04:00
James Harton
6cc88c82b4
improvement: Allow resources to opt out of the primary key requirement. (#166) 2023-09-06 01:18:57 -04:00
Zach Daniel
5182a1c6d0 improvement: implement ash lifecycle tasks 2023-09-04 13:08:14 -04:00
Zach Daniel
3f4f8c1d32 fix: ensure we always select at least one field, and change one field 2023-08-31 16:11:29 -04:00
Zach Daniel
1359068a69 fix: use provided values for updates 2023-08-31 16:03:23 -04:00
Zach Daniel
9f77304b22 fix: don't clobber loaded data on update 2023-08-31 13:04:08 -04:00
Zach Daniel
5a4a52854b
improvement: support atomics (#165) 2023-08-28 16:18:56 -04:00
Zach Daniel
99b2a5631c improvement: support in-line aggregates
fix: support non-atom named aggregates
2023-08-22 14:51:31 -04:00
Zach Daniel
7ce33cac2c fix: handle interaction between distinct, join filters and sort 2023-08-04 22:52:56 -04:00
Zach Daniel
d568ac18a8 improvement: support new from_many? option
improvement: subquery after distinct to handle distinct
2023-08-04 18:53:23 -04:00
Zach Daniel
83e78ad786 fix: properly alter deferrability on attribute alter 2023-07-27 13:57:42 -04:00
Zach Daniel
4146e6c25a improvement: apply sort in subqueries properly 2023-07-26 19:20:19 -04:00
Zach Daniel
b4ec957651 improvement: handle no_attributes? better in more places 2023-07-26 18:50:58 -04:00
Zach Daniel
d2e309c126 improvement: support the new parent/1 expr in relationships 2023-07-26 17:32:09 -04:00
Zach Daniel
9396a9dd2d improvement: explicitly lock the source row 2023-07-25 23:08:56 -04:00
Zach Daniel
c7866c6c16 improvement: support new distinct_sort option 2023-07-19 12:50:05 -04:00
Zach Daniel
442191799e fix: type casting improvements, handle manual relationships in exists 2023-07-19 10:20:37 -04:00
Michael St Clair
33c1fd4cd9
fix: protected names in conflict_target (#158) 2023-07-18 19:21:45 -04:00
Zach Daniel
c920b09277 improvement: support new distinct features from ash core 2023-07-18 14:48:35 -04:00
Zach Daniel
d2e071773e improvement: support exists aggregates 2023-07-13 00:13:50 -04:00
Zach Daniel
a09dae4d26 fix: raise better error on invalid filter values
closes #154

We still want to build something better directly into `Ash.Filter`
that determines field types and casts them up front
2023-06-28 11:29:54 -04:00
Zach Daniel
0e6bcd047e improvement: add simple_join_first_aggregates option 2023-06-11 20:33:20 -04:00
Zach Daniel
d8e4801c8d chore: remove bad typespec 2023-06-05 18:43:03 -04:00
Zach Daniel
6712943e74 fix: properly handle nested aggregate references 2023-06-05 18:35:22 -04:00
Zach Daniel
4a57a300da fix: handle raised errors in bulk actions 2023-05-22 21:17:30 -04:00
Zach Daniel
f59bbee443 improvement: raise better errors on conflicting locks 2023-05-17 13:17:37 -04:00
Zach Daniel
ec61c3f000 fix: use proper lock list again 2023-05-16 15:20:27 -04:00
Zach Daniel
7fc590d632 fix: use proper list of row level locks 2023-05-16 15:19:47 -04:00
Zach Daniel
0db9d0d03f improvement: support more lock types 2023-05-16 15:14:45 -04:00
Zach Daniel
41a2e4f1d1 fix: check changeset.action_type not changeset.action.type 2023-05-15 15:59:21 -04:00
Zach Daniel
333c3ad95d improvement: support changeset.filters (for optimistic locking) 2023-05-08 15:54:43 -04:00
Zach Daniel
2bf6725fcb chore: fix bulk upserts 2023-05-02 22:19:01 -04:00
Zach Daniel
08a0a926e5 improvement: support bulk upserts 2023-05-02 22:16:21 -04:00
Zach Daniel
805de0f2f1 improvement: support locking 2023-04-27 21:49:13 -04:00
Zach Daniel
d417361012 fix: subquery aggregates when a distinct is being added 2023-04-22 01:17:38 -06:00
Zach Daniel
d954825b7e chore: update ecto in lock & fix warnings
fixes: #138
2023-04-12 10:44:43 -04:00
Zach Daniel
9faf783c54 chore: unlock spark dependency 2023-03-23 17:19:45 -04:00
Zach Daniel
54150b20ca chore: small improvement inspect/errors on ecto changeset 2023-03-20 16:11:05 -04:00
Zach Daniel
5046273ed0 fix: properly map parent bindings in exists 2023-03-17 17:06:06 -04:00
Zach Daniel
03f8fee3d1 fix: exclude order_by when building aggregates 2023-02-16 16:12:28 -05:00
Zach Daniel
128d8a2be8 improvement: significantly optimize aggregate queries 2023-02-12 23:18:08 -05:00
Zach Daniel
80cd06818d improvement: optimized first aggregates where possible 2023-02-08 14:46:29 -05:00
Zach Daniel
8d45e92fc2 fix: do limit/offset outside of query if distinct is required 2023-02-07 19:15:44 -05:00
Zach Daniel
b41d383b47 fix: load by __order__ ascending 2023-02-07 17:43:53 -05:00
Zach Daniel
cc643393d9 improvement: add migration_ignore_attributes
chore: update ash, fix ci
2023-02-01 02:05:04 -05:00
Zach Daniel
42ec9cf46a fix: override insert function for proper ecto interop 2023-01-29 20:27:43 -05:00
Zach Daniel
b52da94b32 fix: properly convert to/from ecto, only when necessary 2023-01-29 18:20:59 -05:00
Zach Daniel
ce3cb0f2df fix: support latest ecto interop changes in ash core 2023-01-27 20:54:40 -05:00
Zach Daniel
a9d46e0163 improvement: support for dynamically set repo 2023-01-19 09:33:19 -05:00
Zach Daniel
3c496512e2 fix: use parent_expr instead of this
fix: various expression & type building fixes
2023-01-06 17:05:23 -05:00
Zach Daniel
475ec0f1ca feat: support latest ash 2023-01-04 12:36:18 -05:00
Zach Daniel
eac649e5fb fix: don't subquery unless we have to 2022-12-21 23:59:27 -05:00
Zach Daniel
09b19c8bfd improvement: add like and ilike 2022-12-21 16:12:49 -05:00
Zach Daniel
5987515b8d fix: properly combine sort + to many join filter 2022-12-14 22:37:10 -05:00
Zach Daniel
10fe4541d5 fix: pattern match error in lazy_non_matching_defaults/1 2022-12-13 17:17:57 -05:00
Zach Daniel
87bada531f fix: use attribute name not attribute for default funs 2022-12-13 17:14:12 -05:00
Zach Daniel
891974caf3 fix: *actually* fix default_fun upserts 2022-12-13 17:12:06 -05:00
Zach Daniel
cdca33a5ff fix: fix upserting update_defaults 2022-12-13 17:06:39 -05:00
Zach Daniel
68c6d7aaf8 improvement: better error messages from mix tasks
fix: various broken behavior from new aggregate work
improvement: validate that references refer to relationships

closes #99
2022-12-10 15:59:50 -05:00
Zach Daniel
e271a27d3c improvement: avg/min/max/custom aggregate support
fix: fix various problems with the model behind aggregates
2022-12-07 20:32:38 -05:00
Zach Daniel
3e3740c6f9 improvement: fix lateral many to many joins 2022-12-04 13:16:45 -05:00
Zach Daniel
52fcba79ac improvement: inform users about postgres incompatibility with multidimensional arrays 2022-12-01 20:24:49 -05:00
Zach Daniel
c035eed21a fix: properly turn custom index keys into atoms
improvement: support new transaction info with hooks
2022-11-30 19:06:51 -05:00
Zach Daniel
059837651d improvement: add unique constraints to changeset for custom unique indexes
improvement: separate out concurrent index creations and do them in a separate transaction
2022-11-25 14:06:22 -05:00
Zach Daniel
26668df73d improvement: add migration_defaults for customizing default values 2022-11-21 02:38:00 -05:00
Zach Daniel
fb8a13f33d improvement: set lateral join source for latest ash
improvement: use `prepend?: true` option when applying relationship sorts
2022-10-15 00:03:16 -05:00
Zach Daniel
7fd1e73baa fix: don't apply filter to array_agg 2022-10-10 12:06:54 -04:00
Zach Daniel
fd5ac60072 improvement: exists filters necessitate multiple aggregate joins (for now) 2022-09-28 18:01:20 -04:00
Zach Daniel
7fc6c91cac improvement: support manual relationships with joins 2022-09-13 16:40:12 -04:00
Zach Daniel
170b9fc9e7 improvement: support latest ash exists/2 expr 2022-09-06 18:33:17 -04:00
Zach Daniel
385214694d docs: total docs reorg 2022-08-24 12:07:38 -04:00
Zach Daniel
4a69edce2d important: update to ash 2.0 branch 2022-08-24 12:07:38 -04:00
Zach Daniel
e20e68e73a improvement: add custom_statements to migration generator 2022-07-21 13:34:38 -04:00
Zach Daniel
0f9a433c95 improvement: support || and && 2022-07-20 14:19:06 -04:00
Zach Daniel
c52917bca1 improvement: set update_defaults on upsert results 2022-07-06 14:44:18 -04:00
Zach Daniel
c352a1f1fa fix: support upsert_identity with base_filter 2022-07-01 19:12:14 -04:00
Zach Daniel
10c7e75f4a chore: small cleanups 2022-06-04 16:58:03 -04:00
Zach Daniel
d04fd201f2 fix: test and confirm behavior of schemas 2022-05-22 18:30:20 -04:00
Zach Daniel
ff05084b8f improvement: add explicit timeout capability declaration 2022-05-14 02:58:04 -04:00
Zach Daniel
6c5ee9aae5 improvement: add static schema specification in DSL
improvement: support static schema specification in migration generator
2022-05-13 17:41:30 -04:00
Zach Daniel
4e85466724 fix: handle combinations of distinct & sort
closes #93
2022-05-10 22:48:04 -04:00
Zach Daniel
662bf421c4 improvement: support new timeouts 2022-04-18 00:23:09 -04:00
Zach Daniel
b77ad2c808 improvement: make select unique before running query 2022-04-07 19:59:43 -04:00
Zach Daniel
48c6142040 chore: clean up docs for new docs site 2022-03-28 22:30:27 -04:00
kernel-io
ed8d4f29f2
improvement: add exclusion_constraint_names (#83) 2022-03-20 20:35:30 -04:00
Zach Daniel
2258e6f749 all green on dynamic refactor 2022-02-07 15:35:18 -05:00
Zach Daniel
fcee70b2f7 WIP 2022-02-07 15:35:18 -05:00
Zach Daniel
e19a44d7d9 WIP on dynamic refactor 2022-02-07 15:35:16 -05:00
Zach Daniel
1dcef728fe fix: don't sort when joining 2022-01-18 18:50:14 -05:00
Zach Daniel
d7874c5ecd fix: properly construct nested join relationships 2021-12-20 23:12:28 -05:00
Zach Daniel
912fab9a96 fix: use CiStringWrapper type in ash_postgres 2021-12-17 13:25:14 -05:00
kernel-io
2790a725cc
fix: ensure we are returning * on upserts (#79)
Co-authored-by: kernel-io <kernel>
2021-11-25 21:35:26 -05:00
kernel-io
df62c35801
improvement: don't upsert defaults on conflict (#77)
Co-authored-by: kernel-io <kernel>
2021-11-24 19:31:59 -05:00
Zach Daniel
98004f3251 fix: handle new if types
improvement: relax ash version requirement
2021-11-13 14:48:14 -05:00
Zach Daniel
af97c549c5 improvement: add custom migration types, and repo level override 2021-11-10 04:18:36 -05:00
kernel-io
5a0d145249
fix: copy query prefix to newly created query (#74) 2021-11-02 17:00:13 -04:00
Zach Daniel
4c4af7ebfa fix: use proper ecto types everywhere 2021-11-01 04:41:41 -04:00
Zach Daniel
ff261d75bb fix: try to fix missing paren issue in array_agg 2021-10-26 17:01:57 -04:00
Zach Daniel
2fdcea7ef8 improvement: support default on aggregates
chore: update to latest ash patterns for testing
2021-10-25 18:53:34 -04:00
kernel-io
e4de6f59f6
bugfix: fix can? for :joins (#73) 2021-10-07 04:16:33 -04:00
Zach Daniel
be1fbd6137 improvement: support custom_indexes 2021-09-20 16:38:36 -04:00
Zach Daniel
981f6c8ccd improvement!: update to latest ash/ecto versions w/ parameterized types 2021-09-13 12:58:23 -04:00
Zach Daniel
54765f300a fix: set subquery prefix properly 2021-07-27 23:03:39 -04:00
Zach Daniel
dc054e09fb chore: undo unnecessary expr casting 2021-07-27 19:15:28 -04:00
Zach Daniel
c6841c9e72 fix: set subquery source correctly
fix: create parameter for ci strings
2021-07-27 18:35:14 -04:00
Zach Daniel
7d9d7611cb fix: explicitly set prefix at each level 2021-07-24 16:59:23 -04:00
Zach Daniel
5e5b5f3fc0 fix: interaction w/ attribute and context tenancy 2021-07-24 11:28:58 -04:00
Zach Daniel
85f27337d6 improvement: upgrade ash dep
chore: remove comment
test: add a sort test
2021-07-22 15:23:38 -04:00
Zach Daniel
17efc83eaa fix: don't add a non-list to a list 2021-07-19 17:12:01 -04:00
Zach Daniel
487c9f32d6 improvement: fix significant performance issue in lateral joins
fix: ensure source table is sorted in lateral join
2021-07-19 13:56:36 -04:00
Zach Daniel
aa334eb152 improvement: support default_prefix configuration 2021-07-12 02:43:39 -04:00
Zach Daniel
be7e2a89bc fix: left_lateral_join for many_to_many aggregates
fix: properly reference nested aggregate fields for join
fix: properly determine fallback table for polymorphic resources
2021-07-05 14:12:21 -04:00
Zach Daniel
a67c8b4e11 fix: ensure non-tenant resources can be aggregates 2021-07-02 23:43:30 -04:00
Zach Daniel
f13f31330f fix: properly set aggregate query sources 2021-07-02 12:41:44 -04:00
Zach Daniel
2b2f5f1646 fix: retain parent as bindings 2021-07-02 11:08:31 -04:00
Zach Daniel
a82325e28d fix: don't add rel_source at all 2021-07-02 01:50:41 -04:00
Zach Daniel
ba0c66e395 fix: properly build atoms list 2021-07-02 01:08:53 -04:00
Zach Daniel
ad497f0182 fix: horribly hack ecto for dynamic bindings 2021-07-02 01:01:56 -04:00
Zach Daniel
46744c5d4a fix: properly coalesce aggregate values 2021-07-01 15:28:27 -04:00
Zach Daniel
576c317b68 improvement: leverage new private_vars for errs 2021-06-23 17:21:09 -04:00
Zach Daniel
5583270426 improvement: support calculation sorts 2021-06-05 18:13:20 -04:00
Zach Daniel
dae39f5fda feat: support expression based calculations
feat: support concat + if expressions
improvement: various other improvements
2021-06-04 01:48:35 -04:00
Zach Daniel
84fe7a4822 fix: set prefix to "public" for fkeys to public schema
improvement: set explicit prefix on join filters
2021-05-22 23:56:52 -04:00
Zach Daniel
c2fca09e2d improvement: support new ash upsert specifying targets 2021-05-18 23:04:37 -04:00
Zach Daniel
f0b901173c fix: properly group many_to_many aggregates 2021-05-12 13:17:26 -04:00
Zach Daniel
7911de61a5 improvement: support latest ash/filtering on related aggregates 2021-05-08 23:25:28 -04:00
Zach Daniel
e6e5ca8165 fix: properly construct sources for lateral joins 2021-05-07 12:09:09 -04:00
Zach Daniel
8f80c89db9 improvement: update to latest ash 2021-05-07 12:00:52 -04:00
Zach Daniel
ea26d3f432 fix: copy the correct data for lateral join queries 2021-05-07 11:04:09 -04:00
Zach Daniel
f82e2d44c8 fix: better errors in error cases 2021-05-07 03:09:49 -04:00
Zach Daniel
48c3830209 fix: don't cast booleans to string in last_ditch_cast 2021-05-07 01:49:04 -04:00
Zach Daniel
f28ee00d68 improvement: support latest ash version resource sorts 2021-05-07 01:12:13 -04:00
Zach Daniel
7b37042817 test: more lateral join testing
fix: join to join table in lateral join query
2021-05-04 02:14:24 -04:00
Zach Daniel
ebde2b620e fix: multitenancy + lateral join sources
fix: don't distinct in lateral joins
2021-05-04 01:36:25 -04:00
Zach Daniel
7115bec586 feat: support new side load improvements 2021-04-29 17:31:34 -04:00
Zach Daniel
b7efe6e078 improvement: custom index names
fix: simpler index names
2021-04-27 17:16:56 -04:00
Zach Daniel
07244d66a8 fix: remove inspects that were left in by accident 2021-04-27 13:16:44 -04:00
Zach Daniel
79cba4553b fix: type cast atoms to strings in last ditch cast 2021-04-27 13:03:02 -04:00
Zach Daniel
0e235a6ded fix: properly type cast 2021-04-27 12:09:21 -04:00
Zach Daniel
1cce277e7d improvement: support list aggregate 2021-04-26 16:45:47 -04:00
Zach Daniel
1f6621b852 feat: add check_constraints, both for validation and migrations 2021-04-19 14:26:41 -04:00
Zach Daniel
737a6a5442 improvement: support new ash select feature 2021-04-09 00:53:50 -04:00
Michael St Clair
cf92fe14a5
improvement: add sum aggregate (#53) 2021-04-04 16:05:41 -04:00
Zach Daniel
4d2d29d976 feat: support configuring references
feat: support configuring polymorphic references
feat: support `distinct` Ash queries
2021-04-01 02:19:30 -04:00