mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-11 21:07:31 +00:00
fix(eventstore): use decimal, correct mirror (#9914)
# Eventstore fixes - `event.Position` used float64 before which can lead to [precision loss](https://github.com/golang/go/issues/47300). The type got replaced by [a type without precision loss](https://github.com/jackc/pgx-shopspring-decimal) - the handler reported the wrong error if the current state was updated and therefore took longer to retry failed events. # Mirror fixes - max age of auth requests can be configured to speed up copying data from `auth.auth_requests` table. Auth requests last updated before the set age will be ignored. Default is 1 month - notification projections are skipped because notifications should be sent by the source system. The projections are set to the latest position - ensure that mirror can be executed multiple times --------- Co-authored-by: Livio Spring <livio.a@gmail.com>
This commit is contained in:
@@ -6,6 +6,8 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/shopspring/decimal"
|
||||
|
||||
"github.com/zitadel/zitadel/internal/v2/database"
|
||||
)
|
||||
|
||||
@@ -74,13 +76,13 @@ func TestPaginationOpt(t *testing.T) {
|
||||
name: "global position greater",
|
||||
args: args{
|
||||
opts: []paginationOpt{
|
||||
GlobalPositionGreater(&GlobalPosition{Position: 10}),
|
||||
GlobalPositionGreater(&GlobalPosition{Position: decimal.NewFromInt(10)}),
|
||||
},
|
||||
},
|
||||
want: &Pagination{
|
||||
position: &PositionCondition{
|
||||
min: &GlobalPosition{
|
||||
Position: 10,
|
||||
Position: decimal.NewFromInt(10),
|
||||
InPositionOrder: 0,
|
||||
},
|
||||
},
|
||||
@@ -90,13 +92,13 @@ func TestPaginationOpt(t *testing.T) {
|
||||
name: "position greater",
|
||||
args: args{
|
||||
opts: []paginationOpt{
|
||||
PositionGreater(10, 0),
|
||||
PositionGreater(decimal.NewFromInt(10), 0),
|
||||
},
|
||||
},
|
||||
want: &Pagination{
|
||||
position: &PositionCondition{
|
||||
min: &GlobalPosition{
|
||||
Position: 10,
|
||||
Position: decimal.NewFromInt(10),
|
||||
InPositionOrder: 0,
|
||||
},
|
||||
},
|
||||
@@ -107,13 +109,13 @@ func TestPaginationOpt(t *testing.T) {
|
||||
name: "position less",
|
||||
args: args{
|
||||
opts: []paginationOpt{
|
||||
PositionLess(10, 12),
|
||||
PositionLess(decimal.NewFromInt(10), 12),
|
||||
},
|
||||
},
|
||||
want: &Pagination{
|
||||
position: &PositionCondition{
|
||||
max: &GlobalPosition{
|
||||
Position: 10,
|
||||
Position: decimal.NewFromInt(10),
|
||||
InPositionOrder: 12,
|
||||
},
|
||||
},
|
||||
@@ -123,13 +125,13 @@ func TestPaginationOpt(t *testing.T) {
|
||||
name: "global position less",
|
||||
args: args{
|
||||
opts: []paginationOpt{
|
||||
GlobalPositionLess(&GlobalPosition{Position: 12, InPositionOrder: 24}),
|
||||
GlobalPositionLess(&GlobalPosition{Position: decimal.NewFromInt(12), InPositionOrder: 24}),
|
||||
},
|
||||
},
|
||||
want: &Pagination{
|
||||
position: &PositionCondition{
|
||||
max: &GlobalPosition{
|
||||
Position: 12,
|
||||
Position: decimal.NewFromInt(12),
|
||||
InPositionOrder: 24,
|
||||
},
|
||||
},
|
||||
@@ -140,19 +142,19 @@ func TestPaginationOpt(t *testing.T) {
|
||||
args: args{
|
||||
opts: []paginationOpt{
|
||||
PositionBetween(
|
||||
&GlobalPosition{10, 12},
|
||||
&GlobalPosition{20, 0},
|
||||
&GlobalPosition{decimal.NewFromInt(10), 12},
|
||||
&GlobalPosition{decimal.NewFromInt(20), 0},
|
||||
),
|
||||
},
|
||||
},
|
||||
want: &Pagination{
|
||||
position: &PositionCondition{
|
||||
min: &GlobalPosition{
|
||||
Position: 10,
|
||||
Position: decimal.NewFromInt(10),
|
||||
InPositionOrder: 12,
|
||||
},
|
||||
max: &GlobalPosition{
|
||||
Position: 20,
|
||||
Position: decimal.NewFromInt(20),
|
||||
InPositionOrder: 0,
|
||||
},
|
||||
},
|
||||
|
Reference in New Issue
Block a user