Pattern matching against a Postgrex.Error Struct

Trying to pattern match against:


{TheDB.SomeTablwe, %Postgrex.Error{connection_id: 4067919, message: nil, postgres: %{code: :serialization_failure, file: "nodeModifyTable.c", line: "224", message: "could not serialize access due to concurrent update", pg_code: "40001", routine: "ExecCheckTupleVisible", severity: "ERROR", unknown: "ERROR"}, query: nil}}

My attempt {table_name, %Postgrex.Error{:postgres => %{code: :serialization_failure}, query: _}} doesn’t fit. What’s missing?

It seems to fit perfectly well when I tested it?

iex> {table_name, %Postgrex.Error{:postgres => %{code: :serialization_failure}, query: _}} = {TheDB.SomeTablwe, %Postgrex.Error{connection_id: 4067919, message: nil, postgres: %{code: :serialization_failure, file: "nodeModifyTable.c", line: "224", message: "could not serialize access due to concurrent update", pg_code: "40001", routine: "ExecCheckTupleVisible", severity: "ERROR", unknown: "ERROR"}, query: nil}}
{TheDB.SomeTablwe,
 %Postgrex.Error{
   connection_id: 4067919,
   message: nil,
   postgres: %{
     code: :serialization_failure,
     file: "nodeModifyTable.c",
     line: "224",
     message: "could not serialize access due to concurrent update",
     pg_code: "40001",
     routine: "ExecCheckTupleVisible",
     severity: "ERROR",
     unknown: "ERROR"
   },
   query: nil
 }}
iex> table_name
TheDB.SomeTablwe
1 Like