Commit graph

631 commits

Author SHA1 Message Date
Zach Daniel
11c1762f82 fix: fix complex attribute check 2021-07-22 13:20:42 -04:00
Zach Daniel
579c83e20c fix: disallow aggregate/calculation sorting w/ keyset pagination
This can be fixed by configuring pagination to fetch the resource by keyset
(so keyset is only ever primary key), but will perform worse because
we have to fetch the record. If someone would like to implement this,
let me know.
2021-07-22 12:47:43 -04:00
Zach Daniel
64568e5526 imrovement: handle sorts w/o an order in keyset pagination 2021-07-22 11:24:42 -04:00
Zach Daniel
0b8b704e2c fix: ensure calculation compiled 2021-07-21 00:07:35 -04:00
Zach Daniel
247abbb833 fix: don't limit/offset aggregate queries 2021-07-19 22:07:00 -04:00
Zach Daniel
857b0d0a12 fix: call get_type in cast_stored again 2021-07-19 20:58:18 -04:00
Zach Daniel
42aa56237b improvement: speed up type loading
improvement: add `__order__` field to be used by data layers
chore: fix typespec for aggregates
2021-07-19 13:52:49 -04:00
Zach Daniel
1df33b7efd improvement: add force? option to apply_attributes/2 2021-07-18 19:25:54 -04:00
Zach Daniel
e306e1d7fc fix: missing apply_attributes clause 2021-07-18 18:22:59 -04:00
Zach Daniel
2d9d96e699 fix: demonitor engine pid after run 2021-07-18 03:26:57 -04:00
Zach Daniel
0427a7a7c4 fix: on_lookup read is always on destination 2021-07-18 02:30:04 -04:00
Zach Daniel
e6010816c3 chore: fix dialyzer 2021-07-16 20:09:40 -04:00
Zach Daniel
03e5ae4a7a fix: set item constraints properly
improvement: add on_lookup_read_action
2021-07-16 20:01:36 -04:00
Zach Daniel
19199f5b00 improvement: add in error paths for managed relationships 2021-07-14 20:14:40 -04:00
Zach Daniel
38a08bf2a6 improvement: set error paths on managed rels 2021-07-14 01:47:45 -04:00
Zach Daniel
409e47e02c fix: fix simple data layer filtering 2021-07-11 19:18:43 -04:00
Zach Daniel
50b23a1656 improvement: always replace error message vars
improvement: minimize relationship source changeset context inspect size
2021-07-09 13:07:49 -04:00
Darren Black
6b6062ace6
Fix atom casting more (#253) 2021-07-08 00:39:01 -04:00
Darren Black
57da53a7bc
Fix atom casting when empty string (#252) 2021-07-08 00:24:05 -04:00
Zach Daniel
678533a8cb chore: remove unused variable 2021-07-07 23:52:33 -04:00
Zach Daniel
c9a19a7c2c fix: cast empty string to nil in atom 2021-07-07 23:51:54 -04:00
Zach Daniel
e2cd33fac3 fix: accept strings for atom types again 2021-07-07 22:25:41 -04:00
Zach Daniel
a8b137c1bb fix: don't turn strings to atoms in :atom type 2021-07-07 16:31:52 -04:00
Darren Black
1d2befc6c9
docs: Fix atom constraint documentation (#251) 2021-07-07 00:29:35 -04:00
Zach Daniel
cc9efeee14 fix: don't do unnecessary validation in type 2021-07-06 19:57:58 -04:00
Zach Daniel
65113a075f fix: build aggregate paths properly 2021-07-05 14:25:04 -04:00
Zach Daniel
da77b2e824 improvement: info only required? flag for has_one 2021-07-04 16:42:47 -04:00
Zach Daniel
5f05f683c2 fix: properly determine reverse aggregate relationship
fix: ensure calculation modules are compiled
2021-07-02 12:37:58 -04:00
Zach Daniel
382d39175b fix: attempt to fix calculation compile time issues 2021-07-02 01:13:07 -04:00
Zach Daniel
6c285c05f8 chore: fix calculate example 2021-07-01 22:11:31 -04:00
Zach Daniel
3aa6b6f49f docs: document expressions 2021-07-01 22:07:31 -04:00
Zach Daniel
4b23dd179f fix: allow sorting on aggs, w/o loading 2021-07-01 15:22:48 -04:00
Zach Daniel
1f53644070 fix: ensure query in ensure_selected 2021-06-29 12:16:11 -04:00
Zach Daniel
414119116a chore: fix warnings/compiler errors 2021-06-28 13:27:31 -04:00
Zach Daniel
602ba78e9c fix: handle sorting empty data properly
fix: manage ets tables properly

for context, we had a problem where `RequestHandlers`
would live forever, but were tiny. A change to the internal
engine caused request handlers to be less tiny, which exposed
the process leak. When we fixed the process leak, it became apparent
that the ets table creation was incorrect, as the owning process for
a non-private table could be the request handler, meaning it was
transient. We solve this by having a `TableManager` for each resource/
tenant combo, which owns the ets table in question
2021-06-28 13:20:37 -04:00
Zach Daniel
294480ee34 fix: link request handler to engine and runner, solve mem leak 2021-06-28 12:05:03 -04:00
Zach Daniel
ad0af9831c improvement: if "" fails to cast, cast it as nil instead
improvement: ReadActionRequiresActor error
improvement: `ensure_selected` change
2021-06-28 01:33:31 -04:00
Zach Daniel
ff0de75138 improvement: don't perform match on nil 2021-06-27 13:29:36 -04:00
Zach Daniel
9477f0e82a improvement: add {:arg, :name} input for set_attribute 2021-06-25 13:51:17 -04:00
Zach Daniel
69967099e3 fix: ensure ci_strings casted after constraints 2021-06-25 13:41:05 -04:00
Zach Daniel
01abe80a04 improvement: revamp ci_string
previously, ci_string would downcase all input/output automatically,
throwing away the "representation" of the original input. Now, that
is an option provided as a constraint, for example:

`attribute :email, :ci_string, constraints: [casing: :lower]`
or
`attribute :serial, :ci_string, constraints: [casing: :upper]`

All comparison logic remains the same, so the only thing that is affected
is the `to_string(value)` logic, which now returns based on the configured casing.
By default its just the value, but with `lower`/`upper` it will downcase/upcase the
value accordingly.
2021-06-25 13:19:14 -04:00
Zach Daniel
cb315db44d fix: Revert "more optimized types"
This reverts commit 3d7f3db85d.
2021-06-24 18:25:24 -04:00
Zach Daniel
21e52bebbd Revert "chore: fix compiling embedded types (why??)"
This reverts commit d7ef5efbb2.
2021-06-24 18:19:46 -04:00
Zach Daniel
28a4429b9e Revert "fix: don't call type() on :string"
This reverts commit 27c8bcb5bc.
2021-06-24 18:19:45 -04:00
Zach Daniel
e64d0a9791 Revert "improvement: add Ash.Type.type/1"
This reverts commit a0f6cd9219.
2021-06-24 18:19:43 -04:00
Zach Daniel
a0f6cd9219 improvement: add Ash.Type.type/1 2021-06-24 17:51:56 -04:00
Zach Daniel
27c8bcb5bc fix: don't call type() on :string 2021-06-24 16:42:03 -04:00
Zach Daniel
d7ef5efbb2 chore: fix compiling embedded types (why??) 2021-06-24 16:33:38 -04:00
Zach Daniel
3d7f3db85d improvement: more optimized types 2021-06-24 16:05:50 -04:00
Zach Daniel
114de0af4e fix: optimize ash type loading 2021-06-24 01:11:54 -04:00