Packages

ash_postgres

2.4.0
2.10.0 2.9.1 2.9.0 2.8.0 2.7.0 2.6.32 2.6.31 2.6.30 2.6.29 2.6.28 2.6.27 2.6.26 2.6.25 2.6.24 2.6.23 2.6.22 2.6.21 2.6.20 2.6.19 2.6.18 2.6.17 2.6.16 2.6.15 2.6.14 2.6.13 2.6.12 2.6.11 2.6.10 2.6.9 2.6.8 2.6.7 2.6.6 2.6.5 2.6.4 2.6.3 2.6.2 2.6.1 2.6.0 2.5.22 2.5.21 2.5.20 2.5.19 2.5.18 2.5.17 2.5.16 2.5.15 2.5.14 2.5.13 2.5.12 2.5.11 2.5.10 2.5.9 2.5.8 2.5.7 2.5.6 2.5.5 2.5.4 2.5.3 2.5.2 2.5.1 2.5.0 2.4.21 2.4.20 2.4.19 2.4.18 2.4.17 2.4.16 2.4.15 2.4.14 2.4.13 2.4.12 2.4.11 2.4.10 2.4.9 2.4.8 2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.1 2.4.0 2.3.1 2.3.0 2.2.5 2.2.4 2.2.3 2.2.2 2.2.1 2.2.0 2.1.19 2.1.18 2.1.17 2.1.15 2.1.14 2.1.13 2.1.12 2.1.11 2.1.10 2.1.9 2.1.8 2.1.6 2.1.5 2.1.4 2.1.3 2.1.2 2.1.1 2.1.0 2.0.12 2.0.11 2.0.10 2.0.9 2.0.8 2.0.7 2.0.6 2.0.5 2.0.4 2.0.3 2.0.2 2.0.1 2.0.0 2.0.0-rc.15 2.0.0-rc.14 2.0.0-rc.13 2.0.0-rc.12 2.0.0-rc.11 2.0.0-rc.10 2.0.0-rc.9 2.0.0-rc.8 2.0.0-rc.7 2.0.0-rc.6 2.0.0-rc.5 2.0.0-rc.4 2.0.0-rc.3 2.0.0-rc.2 2.0.0-rc.1 2.0.0-rc.0 1.5.30 1.5.29 1.5.28 1.5.27 1.5.26 1.5.25 1.5.24 1.5.23 1.5.22 1.5.21 1.5.20 1.5.19 1.5.18 1.5.17 1.5.16 1.5.15 1.5.14 1.5.13 1.5.12 1.5.11 1.5.10 1.5.9 1.5.8 1.5.7 1.5.6 1.5.5 1.5.4 1.5.3 1.5.2 1.5.1 1.5.0 1.4.0 1.3.68 1.3.67 1.3.66 1.3.65 1.3.64 1.3.63 1.3.62 1.3.61 1.3.60 1.3.59 1.3.58 1.3.56 1.3.55 1.3.54 1.3.53 1.3.52 1.3.51 1.3.50 1.3.49 1.3.48 1.3.47 1.3.46 1.3.45 1.3.44 1.3.43 1.3.42 1.3.41 1.3.40 1.3.39 1.3.38 1.3.37 1.3.36 1.3.35 1.3.34 1.3.33 1.3.32 1.3.31 1.3.30 1.3.29 1.3.28 1.3.26 1.3.25 1.3.24 1.3.23 1.3.22 1.3.21 1.3.20 1.3.19 1.3.18 1.3.17 1.3.16 1.3.15 1.3.14 1.3.12 1.3.11 1.3.10 1.3.9 1.3.8 1.3.6 1.3.5 1.3.4 1.3.3 1.3.2 1.3.1 1.3.0 1.3.0-rc.4 1.3.0-rc.3 1.3.0-rc.2 1.3.0-rc.0 1.2.6 1.2.5 1.2.4 1.2.3 1.2.2 1.2.1 1.2.0 1.2.0-rc.1 1.2.0-rc.0 1.1.3 1.1.2 1.1.1 1.1.0 1.0.0 1.0.0-rc.9 1.0.0-rc.8 1.0.0-rc.7 1.0.0-rc.6 1.0.0-rc.5 1.0.0-rc.4 1.0.0-rc.3 1.0.0-rc.2 1.0.0-rc.1 1.0.0-rc.0 1.0.0-pre.3 1.0.0-pre.2 1.0.0-pre.1 1.0.0-pre.0 0.43.0 0.42.0-rc.7 0.42.0-rc.6 0.42.0-rc.5 0.42.0-rc.4 0.42.0-rc.3 0.42.0-rc.1 0.42.0-rc.0 0.41.7 0.41.6 0.41.5 0.41.4 0.41.3 0.41.2 0.41.1 0.41.0-rc0 retired 0.41.0-rc.9 0.41.0-rc.8 0.41.0-rc.7 0.41.0-rc.6 0.41.0-rc.5 0.41.0-rc.4 0.41.0-rc.3 0.41.0-rc.2 0.41.0-rc.1 0.41.0-rc.0 0.40.11 0.40.10 0.40.9 0.40.8 0.40.7 0.40.6 0.40.5 0.40.4 0.40.3 0.40.2 0.40.1 0.40.0-rc5 0.40.0-rc4 0.40.0-rc3 0.40.0-rc2 0.40.0-rc1 0.39.0-rc0 0.38.11 0.38.10 0.38.9 0.38.8 0.38.7 0.38.6 0.38.5 0.38.4 0.38.3 0.38.2 0.38.1 0.38.0 0.37.8 0.37.7 0.37.6 0.37.5 0.37.4 0.37.3 0.37.2 0.37.1 0.37.0 0.36.5 0.36.4 0.36.3 0.36.2 0.36.1 0.36.0 0.35.5 0.35.4 0.35.3 0.35.1 0.34.5 0.34.4 0.34.3 0.34.2 0.34.1 0.34.0 0.33.1 0.33.0 0.32.2 0.32.1 0.32.0 0.31.1 0.30.1 0.29.6 0.29.5 0.29.4 0.29.3 0.29.2 0.29.1 0.28.1 0.28.0 0.27.0 0.26.2 0.26.1 0.26.0 0.25.5 0.25.4 0.25.3 0.25.2 0.25.1 0.25.0 0.24.0 0.23.2 0.23.1 0.23.0 0.22.1 0.22.0 0.21.0 0.20.1 0.20.0 0.19.0 0.18.0 0.17.0 0.16.1 0.15.0 0.14.0 0.13.0 0.12.1 0.12.0 0.11.2 0.10.0 0.9.0 0.8.0 0.7.0 0.6.0 0.5.0 0.4.0 0.3.0 0.2.1 0.2.0 0.1.4 0.1.3 0.1.2 0.1.1 0.1.1-rc.2 0.1.1-rc.1 0.1.1-rc.0 0.1.0

The PostgreSQL data layer for Ash Framework

Security advisory: This version has known vulnerabilities. View advisories

Current section

409 Versions

Jump to

Compare versions

10 files changed
+305 additions
-30 deletions
  @@ -5,6 +5,24 @@ See [Conventional Commits](Https://conventionalcommits.org) for commit guideline
5 5
6 6 <!-- changelog -->
7 7
8 + ## [v2.4.0](https://github.com/ash-project/ash_postgres/compare/v2.3.1...v2.4.0) (2024-09-13)
9 +
10 + ### Features:
11 +
12 + - Implement Ltree Type (#385)
13 +
14 + ### Improvements:
15 +
16 + - update ash to latest version
17 +
18 + - remove LEAKPROOF from function to prevent migration issues
19 +
20 + - support upcoming `action_select` options
21 +
22 + - ensure `Repo` is started after telemetry in igniter installer
23 +
24 + - update to latest igniter functions
25 +
8 26 ## [v2.3.1](https://github.com/ash-project/ash_postgres/compare/v2.3.0...v2.3.1) (2024-09-05)
9 27
10 28 ### Improvements:
  @@ -1,18 +1,18 @@
1 1 {<<"links">>,
2 2 [{<<"GitHub">>,<<"https://github.com/ash-project/ash_postgres">>}]}.
3 3 {<<"name">>,<<"ash_postgres">>}.
4 - {<<"version">>,<<"2.3.1">>}.
4 + {<<"version">>,<<"2.4.0">>}.
5 5 {<<"description">>,<<"The PostgreSQL data layer for Ash Framework">>}.
6 6 {<<"elixir">>,<<"~> 1.13">>}.
7 7 {<<"app">>,<<"ash_postgres">>}.
8 8 {<<"licenses">>,[<<"MIT">>]}.
9 9 {<<"files">>,
10 10 [<<"lib">>,<<"lib/statement.ex">>,<<"lib/types">>,
11 - <<"lib/types/ci_string_wrapper.ex">>,<<"lib/types/timestamptz.ex">>,
12 - <<"lib/types/tsvector.ex">>,<<"lib/types/timestamptz_usec.ex">>,
13 - <<"lib/types/tsquery.ex">>,<<"lib/types/string_wrapper.ex">>,
14 - <<"lib/custom_aggregate.ex">>,<<"lib/migration_generator">>,
15 - <<"lib/migration_generator/operation.ex">>,
11 + <<"lib/types/ci_string_wrapper.ex">>,<<"lib/types/ltree.ex">>,
12 + <<"lib/types/timestamptz.ex">>,<<"lib/types/tsvector.ex">>,
13 + <<"lib/types/timestamptz_usec.ex">>,<<"lib/types/tsquery.ex">>,
14 + <<"lib/types/string_wrapper.ex">>,<<"lib/custom_aggregate.ex">>,
15 + <<"lib/migration_generator">>,<<"lib/migration_generator/operation.ex">>,
16 16 <<"lib/migration_generator/phase.ex">>,
17 17 <<"lib/migration_generator/ash_functions.ex">>,
18 18 <<"lib/migration_generator/migration_generator.ex">>,
  @@ -68,7 +68,7 @@
68 68 [[{<<"name">>,<<"ash">>},
69 69 {<<"app">>,<<"ash">>},
70 70 {<<"optional">>,false},
71 - {<<"requirement">>,<<"~> 3.4 and >= 3.4.2">>},
71 + {<<"requirement">>,<<"~> 3.4 and >= 3.4.9">>},
72 72 {<<"repository">>,<<"hexpm">>}],
73 73 [{<<"name">>,<<"ash_sql">>},
74 74 {<<"app">>,<<"ash_sql">>},
  @@ -1368,10 +1368,17 @@ defmodule AshPostgres.DataLayer do
1368 1368 query =
1369 1369 if options[:return_records?] do
1370 1370 {:ok, query} =
1371 - query
1372 - |> Ecto.Query.exclude(:select)
1373 - |> Ecto.Query.select([row], row)
1374 - |> add_calculations(options[:calculations] || [], resource)
1371 + if options[:action_select] do
1372 + query
1373 + |> Ecto.Query.exclude(:select)
1374 + |> Ecto.Query.select([row], struct(row, ^options[:action_select]))
1375 + |> add_calculations(options[:calculations] || [], resource)
1376 + else
1377 + query
1378 + |> Ecto.Query.exclude(:select)
1379 + |> Ecto.Query.select([row], row)
1380 + |> add_calculations(options[:calculations] || [], resource)
1381 + end
1375 1382
1376 1383 query
1377 1384 else
  @@ -1626,10 +1633,19 @@ defmodule AshPostgres.DataLayer do
1626 1633 query =
1627 1634 if options[:return_records?] do
1628 1635 {:ok, query} =
1629 - query
1630 - |> Ecto.Query.exclude(:select)
1631 - |> Ecto.Query.select([row], row)
1632 - |> add_calculations(options[:calculations] || [], resource)
1636 + case options[:action_select] do
1637 + nil ->
1638 + query
1639 + |> Ecto.Query.exclude(:select)
1640 + |> Ecto.Query.select([row], row)
1641 + |> add_calculations(options[:calculations] || [], resource)
1642 +
1643 + action_select ->
1644 + query
1645 + |> Ecto.Query.exclude(:select)
1646 + |> Ecto.Query.select([row], struct(row, ^action_select))
1647 + |> add_calculations(options[:calculations] || [], resource)
1648 + end
1633 1649
1634 1650 query
1635 1651 else
  @@ -1717,7 +1733,13 @@ defmodule AshPostgres.DataLayer do
1717 1733
1718 1734 opts =
1719 1735 if options.return_records? do
1720 - Keyword.put(opts, :returning, true)
1736 + returning =
1737 + case options[:action_select] do
1738 + nil -> true
1739 + fields -> fields
1740 + end
1741 +
1742 + Keyword.put(opts, :returning, returning)
1721 1743 else
1722 1744 opts
1723 1745 end
  @@ -1956,6 +1978,7 @@ defmodule AshPostgres.DataLayer do
1956 1978 case bulk_create(resource, [changeset], %{
1957 1979 single?: true,
1958 1980 tenant: Map.get(changeset, :to_tenant, changeset.tenant),
1981 + action_select: changeset.action_select,
1959 1982 return_records?: true
1960 1983 }) do
1961 1984 {:ok, [result]} ->
  @@ -2539,6 +2562,7 @@ defmodule AshPostgres.DataLayer do
2539 2562 tenant: changeset.tenant,
2540 2563 identity: identity,
2541 2564 upsert_keys: keys,
2565 + action_select: changeset.action_select,
2542 2566 upsert_fields: upsert_fields,
2543 2567 return_records?: true
2544 2568 }) do
  @@ -2733,6 +2757,7 @@ defmodule AshPostgres.DataLayer do
2733 2757
2734 2758 case update_query(query, changeset, resource, %{
2735 2759 return_records?: true,
2760 + action_select: changeset.action_select,
2736 2761 calculations: []
2737 2762 }) do
2738 2763 {:ok, []} ->
  @@ -2984,7 +3009,7 @@ defmodule AshPostgres.DataLayer do
2984 3009 repo =
2985 3010 case options[:repo] do
2986 3011 nil ->
2987 - Igniter.Code.Module.module_name("Repo")
3012 + Igniter.Code.Module.module_name(igniter, "Repo")
2988 3013
2989 3014 repo ->
2990 3015 Igniter.Code.Module.parse(repo)
  @@ -76,8 +76,8 @@ defmodule AshPostgres.Igniter do
76 76 case list_repos(igniter) do
77 77 {igniter, []} ->
78 78 if generate do
79 - repo = Igniter.Code.Module.module_name("Repo")
80 - otp_app = Igniter.Project.Application.app_name()
79 + repo = Igniter.Code.Module.module_name(igniter, "Repo")
80 + otp_app = Igniter.Project.Application.app_name(igniter)
81 81
82 82 igniter =
83 83 Igniter.Code.Module.create_module(igniter, repo, default_repo_contents(otp_app))
  @@ -230,7 +230,7 @@ defmodule AshPostgres.MigrationGenerator.AshFunctions do
230 230 SELECT to_timestamp(('x0000' || substr(_uuid::TEXT, 1, 8) || substr(_uuid::TEXT, 10, 4))::BIT(64)::BIGINT::NUMERIC / 1000);
231 231 $$
232 232 LANGUAGE SQL
233 - IMMUTABLE PARALLEL SAFE STRICT LEAKPROOF;
233 + IMMUTABLE PARALLEL SAFE STRICT;
234 234 \"\"\")
235 235 """
236 236 end
Loading more files…