postgres: databroker storage backend (#3370)

* wip

* storage: add filtering to SyncLatest

* don't increment the record version, so intermediate changes are requested

* databroker: add support for query filtering

* fill server and record version

* postgres: databroker storage backend

* wip

* serialize puts

* add test

* skip tests for macos

* add test

* return error from protojson

* set data

* exclude postgres from cover tests
This commit is contained in:
Caleb Doxsey 2022-05-25 10:23:58 -06:00 committed by GitHub
parent 550698b1ca
commit 1c2aad2de6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
21 changed files with 1573 additions and 17 deletions

View file

@ -0,0 +1,30 @@
package postgres
import (
"time"
)
const defaultExpiry = time.Hour * 24
type config struct {
expiry time.Duration
}
// Option customizes a Backend.
type Option func(*config)
// WithExpiry sets the expiry for changes.
func WithExpiry(expiry time.Duration) Option {
return func(cfg *config) {
cfg.expiry = expiry
}
}
func getConfig(options ...Option) *config {
cfg := new(config)
WithExpiry(defaultExpiry)(cfg)
for _, o := range options {
o(cfg)
}
return cfg
}