Robert Vollmert
f5afa419f1
cabal, tests: require wai-logger 2.4.0, adapt tests
...
wai-logger version 2.4.0 fixes log output to not say 'unknownSocket'
for unix sockets.
2022-06-13 13:25:54 +02:00
Robert Vollmert
7531c5490d
cabal: allow hasql-1.5, hasql-dynamic-statements-0.3.*
2022-06-13 13:25:54 +02:00
Robert Vollmert
bb62e559d6
cabal: require jose >= 0.8.5.1 (aeson-2 compat)
...
jose version before 0.8.5.1 lacked an upper bound on
aeson-2, causing build failures with aeson-2 present.
2022-06-13 13:25:54 +02:00
Robert Vollmert
e42bf30aeb
cabal: allow swagger 2.8
2022-06-13 13:25:54 +02:00
Robert Vollmert
2b8ffc8e61
src: update for changed map type in aeson-2
...
This means that we're now using Data.Map.Strict instead of
Data.HashMap.Strict for JSON objects in general, and specifically
for claims maps and CSV rows.
This addresses certain hash flooding vulnerabilities, but may
have performance downsides.
Compare e.g. https://frasertweedale.github.io/blog-fp/posts/2021-10-12-aeson-hash-flooding-protection.html
2022-06-13 13:25:54 +02:00
Robert Vollmert
48a3d1d516
cabal: update aeson to 2.0.3
2022-06-13 13:16:56 +02:00
Robert Vollmert
5e6987b1d8
src: consistently import HashMap as HM, Map as M
...
With both HashMap and Map imported as M in different modules,
linter rules prevented ever importing both modules in one place.
2022-06-13 13:16:50 +02:00
Robert Vollmert
4dfcb59f73
nix: more explicit logging in load test
...
* Write vegeta output to file explicitly.
The previous version using `tee` captured the standard
output of the `withPgrst` helper, too, causing weird
errors when those had unexpected output.
* Log and fail the postgrest build explicitly.
In situations such as changing nix dependencies, the
`cabal build` run could fail, but this wasn't visible
in CI.
With these changes, the load test now fails with a nice
error message when the build fails.
2022-06-09 14:56:50 +02:00
Laurence Isla and GitHub
620da2e776
Update CHANGELOG to include release v9.0.1 ( #2307 )
2022-06-08 23:00:19 -05:00
Laurence Isla and GitHub
f9688c3553
Upgrade protolude to 0.3.1
2022-06-08 11:41:39 -05:00
Robert Vollmert
4ff2469f57
nix: don't write to /nix/store from hsie build ( fixes #2304 )
...
This is a kind of hacky fix to the kind of hacky hsie derivation.
2022-06-07 21:36:38 +02:00
Robert Vollmert
e3252a6e9e
nix: test script without glibc locales
...
glibcLocales is not available e.g. on darwin. This change allows
running various dev tools on darwin, and other theoretical
non-glibc systems.
2022-06-07 21:36:38 +02:00
Robert Vollmert
a9035bba2f
nix: use the matching weeder
...
weeder needs to be compiled with the same GHC that we build postgrest
with.
Before this change, we were relying on the fact that we happened
to set ${compiler} to the same ghc8107 as used by nixpkgs for
haskellPackages, now we explicitly take it from the correct
haskell package set.
2022-06-07 21:36:38 +02:00
Robert Vollmert
4c8c3ccfb2
nix: pass through hspec arguments to postgrest-test-spec
...
This allows e.g. running
postgrest-test-spec --match "some failing test"
2022-06-07 21:36:38 +02:00
Robert Vollmert
09f3e09c96
tests: don't specify openapi root result
...
Whereas the test used to specify a body of
[{"qiName":"referrals","qiSchema":"test"},"private"]
we see both
[{"qiName":"authors_w_entities","qiSchema":"test"},"test"]
and
[{"qiName":"organizations","qiSchema":"test"},"test"]
on the GHC 9.2 upgrade PR.
This changes the test to no longer expect a particular body.
Compare:
- https://github.com/PostgREST/postgrest/pull/2292#issuecomment-1146160792
- https://github.com/PostgREST/postgrest/issues/1698
2022-06-07 16:56:22 +02:00
Franz-Josef Färber and Steve Chavez
807364bd7b
RPC POST for function w/single unnamed XML param
2022-06-03 11:52:57 -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
Laurence Isla and GitHub
e4cdb8c491
ci: run on branches starting with "rel-"
2022-05-30 22:38:05 -05:00
Laurence Isla and Steve Chavez
c812a3fe3e
ci: Run ARM builds on releases
2022-05-16 18:10: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
Laurence Isla and GitHub
867f2569a0
ci: Fix Windows build using Stack
...
Added PostgreSQL binaries to the PATH and removed the use of msys2-keyring
2022-05-05 00:06:00 -05:00
Franz-Josef Färber and Steve Chavez
5a3fbd7111
Allow returning XML from single-column queries
2022-05-04 10:27:28 -05:00
Laurence Isla and GitHub
a2349d90c0
Reorganize error groups
...
* Grouped Hasql errors into one error and renamed it to InternalError
* Move all the General errors to ApiRequest errors
2022-05-02 21:16:31 -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
Laurence Isla and GitHub
5ad8800773
feat: Allow limit=0 in query params to return an empty array
2022-04-28 17:14:29 -05:00
Franz-Josef Färber and Steve Chavez
d2aa50be52
Allow returning XML from RPCs
2022-04-26 17:37:59 -05:00
Laurence Isla and GitHub
a8477b7822
Add tests for the ~ ltree operator ( #2267 )
2022-04-26 22:48:15 +02: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
dependabot[bot] and Steve Chavez
b191431530
build(deps): bump codecov/codecov-action from 3.0.0 to 3.1.0
...
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action ) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/codecov/codecov-action/releases )
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md )
- [Commits](https://github.com/codecov/codecov-action/compare/v3.0.0...v3.1.0 )
---
updated-dependencies:
- dependency-name: codecov/codecov-action
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-04-25 12:24:38 -05:00
Laurence Isla and GitHub
9bdb4e5c4f
ci: remove armv7 architectures for ARM builds
...
Now only builds aarch64 on the remote server without Docker
2022-04-23 20:30:07 +02: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
steve-chavez
cdcc175abf
refactor: table list to table map
2022-04-18 15:48:03 -05:00
steve-chavez
f995799e8f
refactor: remove fkey from allPrimaryKeys query
...
The query had the unnecessary 'f' in `c.contype in ('p', 'u', 'f')`
Also comment and clarify the query by using explicit JOINs
2022-04-18 15:48:03 -05:00