Commit graph

486 commits

Author SHA1 Message Date
Zach Daniel
8e8a308cd2 improvement: support new uniq? option on count/list aggregates 2023-02-09 16:09:44 -05:00
Zach Daniel
b76289f39f docs: add AshPostgres module to the documentation 2023-02-08 22:56:00 -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
zimt28
d0bc394e36
fix: Actually use AshPostgres.Repo behaviour (#129) 2023-02-05 12:46:44 -05:00
Zach Daniel
93e2a786f4 improvement: authorization filters are now attached by ash core 2023-02-04 01:56:06 -05:00
Zach Daniel
dc74dd534c fix: properly set next migration name 2023-02-03 11:44:34 -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
49c55eaac4 improvement: properly cast division to floats for elixir-y behavior 2023-01-26 23:48:19 -05:00
Zach Daniel
a9d46e0163 improvement: support for dynamically set repo 2023-01-19 09:33:19 -05:00
Zach Daniel
c9abef6e2c chore: remove doc index 2023-01-18 01:00:23 -05:00
Zach Daniel
ee97fde9dc fix: nest subqueries when required for distinct
fix: replace `{:in, ...}` type with `{:array, ...}`
2023-01-17 09:57:05 -05:00
Zach Daniel
91f9d9b9b2 fix: allow for non attribute aggregate references for first/list 2023-01-11 07:51:12 -05:00
Zach Daniel
79f84041ae fix: properly join to all required relationships 2023-01-09 13:56:05 -05:00
Zach Daniel
1aab3dd7e3 fix: properly type cast in fragments (and elsewhere) 2023-01-09 09:48:25 -05:00
Zach Daniel
c15a6e4613 fix: undo changes that caused type casting bugs 2023-01-06 17:45:10 -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
7f3f02fc44 chore: optimize binding calculation 2022-12-31 09:22:12 -05:00
Zach Daniel
5a7f42fac1 improvement: support calc constraints 2022-12-28 23:11:55 -05:00
Zach Daniel
301962cbb1 fix: honor calculation constraints 2022-12-28 23:01:19 -05:00
Zach Daniel
87617f8d97 improvement: support new cast_in_query?/2 2022-12-28 22:41:32 -05:00
Zach Daniel
301466e1b5 improvement: support calculations as aggregate targets
fix: handle lists with expressions inside
2022-12-28 22:08:07 -05:00
Zach Daniel
4f91e65d51 fix: properly set migrations_path default in umbrellas 2022-12-27 18:19:18 -05:00
Zach Daniel
eac649e5fb fix: don't subquery unless we have to 2022-12-21 23:59:27 -05:00
Zach Daniel
e81e77840a fix: don't group aggregates that reference relationships in their filters 2022-12-21 16:58:12 -05:00
Zach Daniel
09b19c8bfd improvement: add like and ilike 2022-12-21 16:12:49 -05:00
Zach Daniel
5a9abdc69c fix: properly skip unique indexes when configured 2022-12-21 02:16:30 -05:00
Zach Daniel
a5b1bc8a3f fix: properly add aggregates to query when referenced from calculations
fixes: #127
2022-12-18 02:23:39 -05:00
Zach Daniel
bfefef7fd5 improvement: distinct on source of query, not relationship destination 2022-12-15 17:16:53 -05:00
Zach Daniel
5987515b8d fix: properly combine sort + to many join filter 2022-12-14 22:37:10 -05:00
Zach Daniel
46f3676e9a improvement: udpate to latest ash, fix array issues 2022-12-14 21:47:50 -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
98418599f9 chore: release version v1.2.0 2022-12-13 14:55:26 -05:00
Zach Daniel
9d6996be25 fix: make migration generator work better for umbrellas 2022-12-13 13:31:57 -05:00
Zach Daniel
70645af88f fix: don't make migration generation recursive 2022-12-10 18:54:09 -05:00
Zach Daniel
48cfadc1fc fix: nevermind, can't make migrate recursive 2022-12-10 16:20:41 -05:00
Zach Daniel
eebd40459a improvement: make migrate task recursive as well 2022-12-10 16:17:10 -05:00
Zach Daniel
9a7626ab46 improvement: mark generate_migrations as recursive for umbrellas 2022-12-10 16:13:25 -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
d832e9a4ef fix: forgot a 2022-12-07 21:44:19 -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
ee8e77dca4 fix: properly set binding names for many to many join filters 2022-12-04 15:01:24 -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
2b986863ff docs: document on_transaction_begin 2022-11-30 20:52:36 -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
061a1993e3 chore: format/lint 2022-11-21 03:08:04 -05:00
Zach Daniel
db3166ff88 Revert "improvement: use uuid_generate_v4() to eliminate need for uuid-ossp just for uuid defaults"
This reverts commit e0d7f0d0c0.
2022-11-21 02:42:26 -05:00
Zach Daniel
8f064db2f0 chore: work on tests for migration_defaults 2022-11-21 02:39:57 -05:00
Zach Daniel
26668df73d improvement: add migration_defaults for customizing default values 2022-11-21 02:38:00 -05:00
Zach Daniel
e0d7f0d0c0 improvement: use uuid_generate_v4() to eliminate need for uuid-ossp just for uuid defaults
Thanks to @sevenseacat for pointing this out!
2022-11-21 02:14:47 -05:00
Zach Daniel
9b97556335 wip 2022-11-21 02:14:47 -05:00
Zach Daniel
45356d6cce WIP 2022-11-21 02:14:47 -05:00
Zach Daniel
63d007131f
fix: don't use hard-coded join assoc name (#118) 2022-11-13 11:38:00 -05:00
Kyle Grinstead
a88687c1d5
fix: && operator in expressions to point to ash_elixir_and (#115) 2022-10-24 22:13:12 -06:00
Zach Daniel
e3db7d2fa9 improvement: add check for unsupported expression 2022-10-20 01:20:09 -04:00
Zach Daniel
13413d3cc7 feat: support now() in latest Ash 2022-10-20 01:08:35 -04:00
Zach Daniel
5222e1e755 improvement: handle UUID types better 2022-10-17 08:40:32 -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
a8b44fef0f fix: no unnecessary type cast on count/sum aggregates 2022-10-10 12:12:17 -04:00
Zach Daniel
7fd1e73baa fix: don't apply filter to array_agg 2022-10-10 12:06:54 -04:00
Zach Daniel
b7b5758134 improvement: update to the latest ash
improvement: remove the need to dynamically expand fragments
2022-10-07 15:50:20 -04:00
Zach Daniel
435d5216b8 fix: handle custom calculation selects properly
improvement: when casting string to uuid, dump to binary
2022-10-05 15:06:09 -04:00
Zach Daniel
94edf64322 fix: use attribute source for identity fields 2022-10-04 16:13:52 -04:00
Zach Daniel
3b1b90d7ab chore: add mix tasks to doc index 2022-09-28 23:27:46 -04:00
Zach Daniel
12cf97d89e fix: never attempt to group custom operations 2022-09-28 22:21:37 -04:00
Zach Daniel
fd5ac60072 improvement: exists filters necessitate multiple aggregate joins (for now) 2022-09-28 18:01:20 -04:00
Zach Daniel
49732b42e2 fix: wrap case statement in parens 2022-09-28 16:47:07 -04:00
Zach Daniel
6ad57501ff improvement: upgrade to new exists usage 2022-09-25 14:41:29 -04:00
Zach Daniel
e8643d4aa0 fix: properly type cast top level fragments
chore: update tests not to use deprecated helper
2022-09-21 13:36:18 -04:00
Zach Daniel
31d0ec20ac improvement: support latest ash 2022-09-20 23:00:29 -04:00
Darren Black
b0292d66f8
improvement: implement Length function (#111) 2022-09-15 16:51:49 -04:00
Zach Daniel
7fc6c91cac improvement: support manual relationships with joins 2022-09-13 16:40:12 -04:00
Zach Daniel
79879e0bd6 fix: keep unique index keys in order in migrations
closes #109
2022-09-10 01:41:25 -04:00
Zach Daniel
170b9fc9e7 improvement: support latest ash exists/2 expr 2022-09-06 18:33:17 -04:00
Zach Daniel
30dd7ca2de fix: make fragment private 2022-08-30 16:50:48 -06:00
Zach Daniel
85bef20c50 chore: fix typo 2022-08-24 12:07:38 -04:00
Zach Daniel
385214694d docs: total docs reorg 2022-08-24 12:07:38 -04:00
Zach Daniel
7d7d95db13 chore: update docs & spark 2022-08-24 12:07:38 -04:00
Zach Daniel
552dbf9c0d fix: do float division when appropriate 2022-08-24 12:07:38 -04:00
Zach Daniel
3c8ce4c5ba fix: properly rewrite keys 2022-08-24 12:07:38 -04:00
Zach Daniel
a563786218 chore: rewrite keys properly 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
0772c6ea2d fix: always install intended extensions in migration generator 2022-08-24 12:07:00 -04:00
James Harton
b561c4f8d4
fix: Squash dashes in migration names. (#105) 2022-08-15 12:29:01 -04:00
Zach Daniel
1cf6e0dcb1 fix: check for join bindings before aggregate bindings 2022-08-14 11:56:36 -04:00
Zach Daniel
0fe770b9ea fix: include prefix in the proper place when renaming attributes
closes: #104
2022-08-09 16:37:20 -04:00
Zach Daniel
eb2bd267cb improvement: fix typecasting for calculations & embed access
chore: rebuild test migrations
2022-08-05 15:27:22 -04:00
Zach Daniel
778641fb28 fix: properly order check constraints 2022-07-22 00:50:19 -04:00
Zach Daniel
968fb45b4e fix: remove check constraints before adding them 2022-07-22 00:45:49 -04:00
Zach Daniel
e20e68e73a improvement: add custom_statements to migration generator 2022-07-21 13:34:38 -04:00
Zach Daniel
16c0497916 chore: update docs 2022-07-20 14:25:47 -04:00
Zach Daniel
98c521eff3 chore: update docs 2022-07-20 14:20:05 -04:00
Zach Daniel
0f9a433c95 improvement: support || and && 2022-07-20 14:19:06 -04:00
Zach Daniel
559f60c339 improvement: add default guide, and empty ash postgres guide 2022-07-14 12:13:54 -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
da07ed7b6c fix: handle various join bugs 2022-06-29 15:08:49 -04:00
Zach Daniel
71ddb28332 fix: use attribute.name if attribute.source is nil 2022-06-28 15:57:30 -04:00
Zach Daniel
d023949667 fix: set attribute source properly 2022-06-28 15:10:26 -04:00
Zach Daniel
abf5fdf346 fix: ensure source is always set on attributes in snapshots 2022-06-21 22:33:24 -04:00
Zach Daniel
5d435d92b6 fix: handle paths for aggregates w/ > 2 relationships 2022-06-16 00:00:45 -04:00
Rebecca Le
d30dce6e91
docs: Fix docs for name option to generate_migrations (#100) 2022-06-15 10:29:49 -04:00
Zach Daniel
10c7e75f4a chore: small cleanups 2022-06-04 16:58:03 -04:00
Rebecca Le
c54c67af9d
fix: rename attributes correctly in down migration (#98) 2022-05-31 12:14:05 -04:00
Josh Price
ff3039ee32
improvement: handle fallback ecto migration default elegantly (#94) 2022-05-24 12:11:32 -04:00
Zach Daniel
fbb7477f13 chore: fix build, remove IO.inspect 2022-05-24 02:14:58 -04:00
Zach Daniel
10038dd8dd improvement: add ignore? option to references 2022-05-24 02:11:54 -04:00
Zach Daniel
eb61c2562a fix: don't generate modify commands for attributes due to schema changes 2022-05-24 00:38:13 -04:00
Zach Daniel
7798721858 fix: default schema to primary schema 2022-05-24 00:03:16 -04:00
Zach Daniel
d04fd201f2 fix: test and confirm behavior of schemas 2022-05-22 18:30:20 -04:00
Zach Daniel
be15257531 fix: use correct bindings for filtered relationships 2022-05-22 02:12:07 -04:00
Zach Daniel
d2e5c71a6b fix: cast calcs in query expressions 2022-05-20 13:42:20 -04:00
Zach Daniel
4ec454d4f1 fix: explicitly type cast aggregate/calc selects 2022-05-20 13:22:32 -04:00
Zach Daniel
5a61409e56 fix: don't try and match reference schema to table schema 2022-05-18 13:47:08 -04:00
Zach Daniel
2a5c7ac4a2 improvement: check_migrations, rename to --check
fix: don't use `table` where we should use `schema` in migration generator
2022-05-18 13:21:58 -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
5f5eabce27 fix: only rename schema when necessary 2022-05-02 19:30:01 -04:00
Zach Daniel
a916e2c470 fix: inspect un-defaultable value in error message 2022-05-02 18:02:19 -04:00
Josh Price
09475e408e
improvement: implement decimal ecto migration default (#91) 2022-04-28 10:48:44 -04:00
Josh Price
157a5b33e3
improvement: support float as Ecto migration default (#89) 2022-04-27 17:10:51 -04:00
Zach Daniel
575d838d72 improvement: add atom impl for EctoMigrationDefault 2022-04-21 10:36:34 -04:00
Zach Daniel
0c757d5049 chore: update for latest ash changes 2022-04-19 11:08:44 -04:00
Josh Price
a9b2fc83df
improvement: Add EctoMigrationDefault protocol and implement defaults (#87) 2022-04-19 00:06:02 -04:00
Zach Daniel
973ec590f9 improvement: update ecto, fix dialyzer 2022-04-18 11:39:30 -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
Zach Daniel
b75532f64e chore: there is no use DocIndex 2022-03-26 14:58:14 -04:00
Zach Daniel
de2502c208 improvement: add doc_index 2022-03-26 14:28:12 -04:00
kernel-io
ed8d4f29f2
improvement: add exclusion_constraint_names (#83) 2022-03-20 20:35:30 -04:00
Zach Daniel
28cab457fe fix: select custom aggregates properly 2022-03-09 20:53:59 -05:00
Zach Daniel
f57a77f912 fix: don't add reference when renaming column if unnecessary
fix: don't cast `nil` to `""`
2022-02-18 22:30:12 -05:00
Zach Daniel
f801fd8598 fix: !is_atom/1 -> !is_boolean/1 2022-02-16 22:35:05 -05:00
Zach Daniel
b99da803bc fix: sanitize lists to stringify atoms 2022-02-16 22:30:19 -05:00
Zach Daniel
957c99414d fix: cast embedded atoms to strings first 2022-02-16 22:20:32 -05:00
Zach Daniel
375f00de85 fix: don't cast {:in, :any} types 2022-02-16 22:17:39 -05:00
Zach Daniel
fedd35fa32 fix: more don't cast any types 2022-02-16 22:14:17 -05:00
Zach Daniel
de8aa43ad6 fix: don't cast if there is no type 2022-02-16 22:04:54 -05:00