fix: fix incorrect 413 error on pg 54* errors
This commit is contained in:
committed by
Steve Chavez
parent
11c9e8dac9
commit
5cc32c7f87
@@ -40,6 +40,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
||||
- #3533, #3536, Fix listener silently failing on read replica - @steve-chavez
|
||||
+ If the LISTEN connection fails, it's retried with exponential backoff
|
||||
- #3414, Force listener to connect to read-write instances using `target_session_attrs` - @steve-chavez
|
||||
- #3255, Fix incorrect `413 Request Entity Too Large` on pg errors `54*` - @taimoorzaeem
|
||||
|
||||
### Deprecated
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ PostgREST translates `PostgreSQL error codes <https://www.postgresql.org/docs/cu
|
||||
+--------------------------+-------------------------+---------------------------------+
|
||||
| 53* | 503 | insufficient resources |
|
||||
+--------------------------+-------------------------+---------------------------------+
|
||||
| 54* | 413 | too complex |
|
||||
| 54* | 500 | too complex |
|
||||
+--------------------------+-------------------------+---------------------------------+
|
||||
| 55* | 500 | obj not in prerequisite state |
|
||||
+--------------------------+-------------------------+---------------------------------+
|
||||
|
||||
@@ -491,7 +491,7 @@ pgErrorStatus authed (SQL.SessionUsageError (SQL.QueryError _ _ (SQL.ResultError
|
||||
'4':'0':_ -> HTTP.status500 -- tx rollback
|
||||
"53400" -> HTTP.status500 -- config limit exceeded
|
||||
'5':'3':_ -> HTTP.status503 -- insufficient resources
|
||||
'5':'4':_ -> HTTP.status413 -- too complex
|
||||
'5':'4':_ -> HTTP.status500 -- too complex
|
||||
'5':'5':_ -> HTTP.status500 -- obj not on prereq state
|
||||
"57P01" -> HTTP.status503 -- terminating connection due to administrator command
|
||||
'5':'7':_ -> HTTP.status500 -- operator intervention
|
||||
|
||||
@@ -67,3 +67,15 @@ pgErrorCodeMapping = do
|
||||
describe "PostreSQL error code mappings" $ do
|
||||
it "should return 500 for cardinality_violation" $
|
||||
get "/bad_subquery" `shouldRespondWith` 500
|
||||
|
||||
it "should return 500 for statement too complex" $
|
||||
request methodPost "/infinite_inserts"
|
||||
[]
|
||||
[json|{"id": 3, "name": "qwer"}|]
|
||||
`shouldRespondWith`
|
||||
[json|
|
||||
{"code": "54001",
|
||||
"details": null,
|
||||
"hint": "Increase the configuration parameter \"max_stack_depth\" (currently 2048kB), after ensuring the platform's stack depth limit is adequate.",
|
||||
"message": "stack depth limit exceeded"}|]
|
||||
{ matchStatus = 500 }
|
||||
|
||||
Vendored
+17
@@ -3777,3 +3777,20 @@ create or replace function temp_file_limit()
|
||||
returns bigint as $$
|
||||
select COUNT(*) FROM generate_series('-infinity'::TIMESTAMP, 'epoch'::TIMESTAMP, INTERVAL '1 DAY');
|
||||
$$ language sql security definer set temp_file_limit to '1kB';
|
||||
|
||||
-- https://github.com/PostgREST/postgrest/issues/3255
|
||||
create table test.infinite_inserts(
|
||||
id int
|
||||
, name text
|
||||
);
|
||||
|
||||
create or replace function infinite_inserts()
|
||||
returns trigger as $$ begin
|
||||
insert into infinite_inserts values (NEW.id, NEW.name);
|
||||
end $$ language plpgsql;
|
||||
|
||||
create trigger do_infinite_inserts
|
||||
after insert
|
||||
on infinite_inserts
|
||||
for each row
|
||||
execute procedure infinite_inserts();
|
||||
|
||||
Reference in New Issue
Block a user