@@ -2326,16 +2326,10 @@ defmodule Ecto.Schema do
2326
2326
2327
2327
struct_fields = Module . get_attribute ( module , :ecto_struct_fields ) |> Enum . reverse ( )
2328
2328
derive = Module . get_attribute ( module , :derive )
2329
- redact = Module . get_attribute ( module , :redact )
2329
+ already_derives_inspect? = List . keymember? ( derive , Inspect , 0 )
2330
2330
2331
- cond do
2332
- redact == :all_except_primary_keys ->
2333
- Module . put_attribute ( module , :derive , { Inspect , only: primary_key_fields } )
2334
-
2335
- redacted_fields != [ ] and not List . keymember? ( derive , Inspect , 0 ) and derive_inspect? ( module ) ->
2336
- Module . put_attribute ( module , :derive , { Inspect , except: redacted_fields } )
2337
-
2338
- true -> :ok
2331
+ if redacted_fields != [ ] and not already_derives_inspect? and derive_inspect_redacted? ( module ) do
2332
+ Module . put_attribute ( module , :derive , { Inspect , except: redacted_fields } )
2339
2333
end
2340
2334
2341
2335
loaded =
@@ -2412,7 +2406,6 @@ defmodule Ecto.Schema do
2412
2406
{ [ :embeds ] , embed_names } ,
2413
2407
{ [ :updatable_fields ] , updatable } ,
2414
2408
{ [ :insertable_fields ] , insertable } ,
2415
- { [ :redact_schema ] , redact } ,
2416
2409
{ [ :redact_fields ] , redacted_fields } ,
2417
2410
{ [ :autogenerate_fields ] , Enum . flat_map ( autogenerate , & elem ( & 1 , 0 ) ) } ,
2418
2411
{ [ :virtual_fields ] , Enum . map ( virtual_fields , & elem ( & 1 , 0 ) ) } ,
@@ -2449,7 +2442,7 @@ defmodule Ecto.Schema do
2449
2442
{ struct_fields , bags_of_clauses }
2450
2443
end
2451
2444
2452
- defp derive_inspect ?( module ) do
2445
+ defp derive_inspect_redacted ?( module ) do
2453
2446
case Module . get_attribute ( module , :ecto_derive_inspect_for_redacted_fields ) do
2454
2447
false ->
2455
2448
IO . warn (
0 commit comments