Steve Chavez and GitHub
291da1a41f
Clarify pool connection features
2023-04-21 19:20:46 -05:00
Steve Chavez and Laurence Isla
0a3a20347b
snippet for computed rel overload
2023-04-21 18:52:56 -05:00
Steve Chavez and Laurence Isla
49cd1f3447
Remove public from schema cache event trigger
2023-04-21 18:52:56 -05:00
Steve Chavez and Laurence Isla
593b8bf385
remove wrong claim about CSV being faster ( #595 )
2023-04-21 18:52:56 -05:00
Steve Chavez and Laurence Isla
1139031858
fix: PGRST003 status code to 504 ( #594 )
2023-04-21 18:52:56 -05:00
steve-chavez
bd50b1e4d3
ci: pin Nix version to avoid error
...
To 2.13.3
2023-04-12 12:49:39 -05:00
Steve Chavez
b869dd7be9
fix: log to stderr on AcquisitionTimeoutUsageError ( #2667 )
...
* refactor: remove uneeded type on checkIsFatal
* dry with a logPgrstError function
2023-04-12 12:49:04 -05:00
steve-chavez and Laurence Isla
519dbc75f3
refactor: delete QueryCost, instead use PlanSpec
2023-04-12 09:52:08 -05:00
steve-chavez and Laurence Isla
ae3c784921
refactor: add planCost and planHdr for tests
2023-04-12 09:52:08 -05:00
steve-chavez
f56bed2a75
bump version to 10.1.2
2023-02-02 03:30:15 -05:00
steve-chavez
98a29bee04
fix: NOTIFY pgrst not reoading the catalog cache
2023-02-02 03:30:15 -05:00
steve-chavez
a525790c4c
fix: bad M2M embed on RPC
2023-02-02 03:30:15 -05:00
Steve Chavez
df2cde81ca
Add db-plan-enabled recommendation ( #588 )
...
* fix broken links
2023-01-28 20:37:16 -05:00
steve-chavez
aaa4fbc370
bump version to 10.1.1
2022-11-08 12:51:16 -05:00
steve-chavez
3408998629
bump version to 10.1.0.20221104
2022-11-04 18:47:48 -05:00
steve-chavez
b2935ef799
bump version to 10.1.0
2022-10-28 18:09:19 -05:00
steve-chavez
0b1f8358c6
nix: postgrest-release modifies CHANGELOG
2022-10-28 17:52:58 -05:00
steve-chavez
45e7aac218
fix: embedding computed with normal relationship
2022-10-27 13:49:53 -05:00
steve-chavez
5d126bf0a3
refactor: all aliasing in addRels
2022-10-27 13:49:53 -05:00
steve-chavez
7ace8ace49
fix: aliasing on computed rels
2022-10-19 19:49:43 -05:00
steve-chavez
c8b39c6cde
refactor: aliasing logic to addRels
...
* also shorten query builder alias logic
2022-10-19 19:49:43 -05:00
steve-chavez
5f5a0c7764
refactor: simplify join conditions logic
2022-10-19 19:49:43 -05:00
steve-chavez
922da4520f
refactor: clarify ReadPlan fields
2022-10-19 19:49:43 -05:00
steve-chavez
efecf007e8
bump version to 10.0.0.20221011
2022-10-11 11:42:40 -05:00
Steve Chavez and GitHub
0fbb116dd2
add basic ARCHITECTURE.md ( #2503 )
...
* refactor: move ApiRequest a top-level module
* refactor: rename DbStructure to SchemaCache
* refactor: GucHeader inside Response
* refactor: admin app to Workers
2022-10-10 11:24:45 -05:00
steve-chavez
e4b98d51be
fix: resource embedding opens empty transaction
...
This required untangling logic from App.hs.
Building/rejecting a plan no longer consumes a pool connection.
* Added io test for failed resource embedding not consuming connection
* optionalrollback to Query.hs and Response.hs
* delete Middleware module
* remove plan logic from App.hs
* remove RequestContext
* remove pkCols logic from App.hs
* remove proc logic from App.hs
* remove config logic from handleRequest
2022-10-07 18:52:57 -05:00
steve-chavez
d37e14c4db
refactor: readTotal into ResultSet
2022-10-07 18:52:57 -05:00
steve-chavez
6398dd2b32
refactor: add plan module
...
* rename/add plan dirs
* add read plan func/data
* add call plan func/data
* add mutate plan func/data
2022-10-04 16:13:34 -05:00
steve-chavez
11385bbd9f
refactor: move binaryField to ApiRequest
2022-10-01 11:05:49 -05:00
steve-chavez
858e4405ec
refactor: getSchema in ApiRequest
2022-10-01 11:05:49 -05:00
steve-chavez
46307ca64a
refactor: getMediaType in ApiRequest
2022-10-01 11:05:49 -05:00
steve-chavez
fd67c8480c
refactor: OpenAPI as Response submodule
...
* body after dbstructure
* rename runPgLocals to setPgLocals
2022-10-01 11:05:49 -05:00
steve-chavez
f54dc2e20e
refactor: runPgLocals to Query.hs
...
* unmmiddleware runPgLocals
2022-09-26 17:28:08 -05:00
steve-chavez
e356783cc9
refactor: add Query.hs module
...
* add readQuery
* add createQuery
* update query
* single upsert query
* delete query
* invoke query
* open api query
2022-09-26 17:28:08 -05:00
steve-chavez
b5080fa2d7
refactor: untangle query logic from request logic
2022-09-26 17:28:08 -05:00
steve-chavez
8d369a2195
refactor: add Response.hs module
...
* add response updateResponse
* add singleUpsertResponse
* add delete/invoke response
* add open api response
* add info response
* remove ApiRequest from profileHeader
* contentTypeHeaders only needs ApiRequest
2022-09-25 13:53:11 -05:00
steve-chavez
92e28bd902
refactor: untangle query logic from response logic
...
* untangle failNotSingular
* untangle failsChangesOffLimits
* untangle readTotal
2022-09-25 13:53:11 -05:00
steve-chavez
c27e7be028
refactor: move guc headers/status decoding to App
2022-09-25 13:53:11 -05:00
Steve Chavez and GitHub
9128c8602a
Refine docs for v10
...
* shorten release page
* shorten explain docs
* add limited update/delete to release page
* refine relationships
* refine disambiguation
* refine release page
* remove migration guide
* add author to WWT how-to
2022-08-26 16:08:08 -05:00
steve-chavez
a41380b965
bump version to 10.0.0
2022-08-18 23:35:41 -05:00
steve-chavez
b2a2504201
changelog: clarify and stamp date for v10
2022-08-18 23:07:24 -05:00
steve-chavez
c45e85c5a6
feat: add one to one relationship for embedding
...
BREAKING CHANGE: For the cases where one to one relationships are
detected, json objects will be returned instead of json arrays of length
1.
If you wish to override this behavior, you can use computed
relationships to return arrays again.
2022-08-18 22:36:47 -05:00
steve-chavez
36c24d9cbe
refactor: clean allM2ORels query
...
* remove unnecessary lateral usage
* use alias for pg_constraint
2022-08-18 15:08:14 -05:00
steve-chavez
d6ec171bcb
feat: add computed relationships
...
* work for select, mutations, rpc
* overrides detected relationships
2022-08-17 22:50:06 -05:00
steve-chavez
06c9e246f4
refactor: simplify addJoinConditions
...
* remove unnecessary Either
* remove implicitJoins from ReadQuery
* remove unnecessary foldr in addJoinConditions
* move aliasing to addRels
2022-08-17 22:50:06 -05:00
steve-chavez
3648986aa8
refactor: correlated subquery for o2m query
...
Improves the query costs a bit as shown in the tests and reduces code.
2022-08-06 21:42:53 -05:00
steve-chavez
c050b61db8
tests: add basic resource embedding costs
...
Adds costs thresholds on the PlanSpec for the o2m,m2o and m2m queries.
2022-08-06 21:42:53 -05:00
steve-chavez
eb100cc746
clarify * as an alias of % for LIKE
2022-08-05 18:36:25 -05:00
steve-chavez
d24f0c8216
bump version to 9.0.1.20220802
2022-08-02 21:13:35 -05:00
steve-chavez
fd7c23f7a1
Add "for" param for the vnd.pgrst.plan media type
2022-08-01 17:41:23 -05:00
steve-chavez
84e03a16dd
fix: columns w/ dollar sign($) don't need quoting
2022-07-30 19:50:09 -05:00
Steve Chavez and GitHub
8911afd079
feat: Allow getting the EXPLAIN plan of a request
2022-07-27 19:33:34 -05:00
steve-chavez
d2df289696
bump version to 9.0.1.20220717
2022-07-17 18:44:13 -05:00
steve-chavez
2eb7c803e3
feat: support OPTIONS on RPC and root path
2022-07-17 18:40:14 -05:00
steve-chavez
71a5748718
refactor: DRY pytest no pool connection logic
2022-07-17 14:41:51 -05:00
steve-chavez
4ab5e63e58
fix: no empty transaction on OPTIONS request
2022-07-17 14:41:51 -05:00
steve-chavez
c445105d55
correct query on rpc count=exact
...
corrects bad logic on e4006da(perf: remove toSourceRel)
2022-07-16 17:18:25 -05:00
steve-chavez
2905753194
test: no empty tx for invalid JWT
2022-07-15 22:23:33 -05:00
steve-chavez
df49f482dc
test: no empty tx started for invalid path/method
2022-07-15 22:23:33 -05:00
steve-chavez
bba960d4c6
new m2m relationship detection
2022-07-12 00:02:09 -05:00
steve-chavez
8230128ff6
fix: no empty tx on bad HTTP method
2022-07-11 18:21:36 -05:00
steve-chavez
6d7bf9faa9
fix: no empty tx on Not Found error
2022-07-11 18:21:36 -05:00
steve-chavez
28183a667c
refactor: rm raw media types unnecessary decoding
...
Just convert them to MTOther instead
2022-07-11 18:21:36 -05:00
Steve Chavez and GitHub
3cdc6d15d7
test: add bulk insert to loadtest ( #2358 )
2022-07-06 13:50:58 -05:00
steve-chavez
0708f46df3
refactor: pass media type to Statements module
2022-07-06 13:47:59 -05:00
steve-chavez
7a7ceaf39a
refactor: rename ContentType to MediaType
...
The core type was wrongly named as the header
2022-07-06 13:47:59 -05:00
steve-chavez
3e83bef9c4
bump version to 9.0.1.20220630
2022-06-30 13:53:33 -05:00
steve-chavez
870f7a39b0
Add PostGIS GeoJSON support
...
Works for GET, POST, PATCH, PUT, DELETE, RPC.
2022-06-22 22:16:44 -05:00
steve-chavez
86c40e8df9
test: don't run spec tests with stack
...
We cannot handle postgis and other postgresql dependencies with
stack.
Also delete test/with_tmp_db since it's no longer used.
2022-06-22 22:16:44 -05:00
steve-chavez
d87b622d64
nix: update tests README
2022-06-20 15:55:22 -05:00
Steve Chavez and GitHub
360cfa3fbd
clarify errors ( #550 )
2022-06-20 13:50:47 -05:00
steve-chavez
13ce0f3354
add bulk update
2022-06-16 11:11:37 -05:00
steve-chavez
5305998a95
disallowed full table update
2022-06-16 11:11:37 -05:00
steve-chavez
a9baa5bc9f
lowercase upsert
2022-06-16 11:11:37 -05:00
Steve Chavez and GitHub
86574c89a8
Bulk update ( #2311 )
...
* refactor: remove EmbedPath type from qsFiltersRoot
* Rename reset items function for reusability
2022-06-15 20:30:31 -05:00
steve-chavez
df7d71db32
fix: Increase the db-pool-timeout to 1 hour
2022-06-15 13:19:44 -05:00
steve-chavez
d14f745406
bump version to 9.0.0.20220531
2022-05-31 18:19:02 -05:00
steve-chavez
1cdc9169c7
fix: using CPU while idle
2022-05-31 12:17:36 -05:00
steve-chavez
9aa400c8f3
fix: disable parallel GC for perf on high-core CPU
2022-05-31 12:17:36 -05:00
steve-chavez
1ab11de96c
bump version to 9.0.0.20220516
2022-05-16 14:36:04 -05:00
steve-chavez
f7b173163c
fix: ignore views on col/fk as target
...
Also refactor self relationship findRel logic
2022-05-16 12:22:24 -05:00
steve-chavez
2be63b36d6
refactor: self relationship
...
* Add test for self relationship in view
2022-05-09 21:31:19 -05:00
steve-chavez
c60380b5fc
perf: RelationshipsMap with foreign schema as key
2022-05-09 21:31:19 -05:00
steve-chavez
d88b16e5ab
fix: allow cast on types with underscores/numbers
...
e.g. select=oid_array::_int4
2022-05-09 13:02:33 -05:00
steve-chavez
5f3284eed0
fix broken links
2022-05-02 19:42:02 -05:00
steve-chavez
72bffddbf1
Add limited updates/deletions
...
Also move updates to its own section
2022-05-02 19:42:02 -05:00
steve-chavez
980f27a6d1
bump version to 9.0.0.20220502
2022-05-02 16:06:51 -05:00
steve-chavez
ce96c88ba0
test: increase memory tests memory by 1M
2022-05-02 11:12:02 -05:00
steve-chavez
50b275d3e2
refactor: move PUT checks to ApiRequest
2022-05-02 11:12:02 -05:00
steve-chavez
e90391b7ac
limited update/delete requires explicit order
...
* limited update/delete now works on views with explicit order
* no default order, enforce order presence
* apply row count to ensure limited mutations
* move requiring order to ApiRequest
2022-05-02 11:12:02 -05:00
steve-chavez
115dae7484
perf: Relationship list to a hash map
2022-04-25 21:41:51 -05:00
steve-chavez
e4006da9bc
perf: remove toSourceRel
...
toSourceRel is an expensive operation since it iterates over all the
relationships detected. We now use an alias on the CTE so embedding can
work without toSourceRel.
2022-04-25 21:41:51 -05:00
steve-chavez
a47c59baca
fix: restrict generated m2m relationships
...
Only add m2m relationship based on real junctions:
a table has FKs to two other tables and the FK columns
are part of the PK columns.
Also add some stats to big_schema.sql
2022-04-25 12:35:16 -05:00
steve-chavez
07d619981e
perf: don't lookup Table pkCols unnecessarily
...
handleCreate only needs it on some headers, udpate and delete don't need
pkcols.
2022-04-22 19:04:16 -05:00
steve-chavez
778b8d074d
refactor: merge Column list into Table
...
* Remove Table from Column
* Correct OpenAPI test where the schema was appearing for the enum unnecessarily
* Increase memory-tests consumption by 2M
Seems the Hasql decoder consumes more memory now that the allTables
results also have [Column] inside.
2022-04-22 19:04:16 -05:00
steve-chavez
902e4e8921
refactor: clean allColumns query
...
* Add OpenAPI test to ensure enum labels are present
* Remove unnecessary fk/pk columns cte
* Remove unnecessary step for parsing enum labels
2022-04-22 11:46:45 -05:00
steve-chavez
d2719420f4
refactor: PKcols in table, ViewKeyDependency type
...
* Get PKcols inside tables - done with SQL for tables and
with an additional step in Haskell for views.
This fixes an fk column being considered as a pk column on views
and corrects the test added on
https://github.com/PostgREST/postgrest/pull/1875/files/1d549768580310e18aac4ffa6dbd01c5b77934a7#r853674126
* classify view key dependencies in SQL
* remove Column from Relationship
* Merge cols/fcols in Relationship and
ensure allM2ORels and allViewsKeyDependencies fk columns
are ordered - done by attnum in SQL
* Cardinality now contains relColumns instead of Relationship -
this simplifies getJoinConditions.
2022-04-21 14:44:45 -05:00
steve-chavez
057e8d63bf
test: add big schema openapi test
...
The io test is marked as pending for now, because the stack size it
requires is too big.
2022-04-20 20:05:11 -05:00
steve-chavez
f4e171aa2b
refactor: ignore partitions in allM2ORels
...
Also clarify foreign key filter
2022-04-19 17:23:12 -05:00
steve-chavez
7f1507b9fb
refactor: remove Table from Relationship
...
Just having the QualifiedIdentifier gets us closer to having
Relationship as a Table attribute since it avoids a cyclic dependency
* remove unnecessary findTable
* modify RootSpec test
2022-04-18 15:48:03 -05:00