From 876d459bfcf5d4e53c7c107f6b5d4850c9820c48 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 14 Jun 2026 01:40:27 +0000 Subject: [PATCH 1/2] fix(deps): update 3d-parties --- go.mod | 6 +++--- go.sum | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7ee9322..30c0606 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.26.0 require ( charm.land/bubbletea/v2 v2.0.7 charm.land/fang/v2 v2.0.1 - charm.land/lipgloss/v2 v2.0.3 + charm.land/lipgloss/v2 v2.0.4 github.com/charmbracelet/x/term v0.2.2 github.com/gofrs/flock v0.13.0 github.com/google/go-github/v88 v88.0.0 @@ -14,7 +14,7 @@ require ( github.com/rivo/uniseg v0.4.7 github.com/spf13/cobra v1.10.2 github.com/stretchr/testify v1.11.1 - go.starlark.net v0.0.0-20260522144826-ec58d4b459e2 + go.starlark.net v0.0.0-20260613233743-8ba36ccb83fb go.uber.org/mock v0.6.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -52,7 +52,7 @@ require ( require ( github.com/RoaringBitmap/roaring/v2 v2.18.2 // indirect github.com/bits-and-blooms/bitset v1.24.4 // indirect - github.com/dal-go/dalgo v0.46.1 + github.com/dal-go/dalgo v0.62.2 github.com/mschoch/smat v0.2.0 // indirect github.com/strongo/random v0.0.1 // indirect ) diff --git a/go.sum b/go.sum index f77d4f2..75c1cf7 100644 --- a/go.sum +++ b/go.sum @@ -6,6 +6,8 @@ charm.land/fang/v2 v2.0.1 h1:zQCM8JQJ1JnQX/66B5jlCYBUxL2as5JXQZ2KJ6EL0mY= charm.land/fang/v2 v2.0.1/go.mod h1:S1GmkpcvK+OB5w9caywUnJcsMew45Ot8FXqoz8ALrII= charm.land/lipgloss/v2 v2.0.3 h1:yM2zJ4Cf5Y51b7RHIwioil4ApI/aypFXXVHSwlM6RzU= charm.land/lipgloss/v2 v2.0.3/go.mod h1:7myLU9iG/3xluAWzpY/fSxYYHCgoKTie7laxk6ATwXA= +charm.land/lipgloss/v2 v2.0.4 h1:lcPeVtcp23SNra7lHy8iYE4UC2aIipVQ47sbGyyxR5Q= +charm.land/lipgloss/v2 v2.0.4/go.mod h1:0653x8epbZSzdDfO/XPS1a/uYPOBeSsCssOpJOqDzik= github.com/RoaringBitmap/roaring/v2 v2.18.2 h1:oPq3Cgx//iDuJQVp6xSInAKW34J9CEwE5GmLI2z+Eic= github.com/RoaringBitmap/roaring/v2 v2.18.2/go.mod h1:eq4wdNXxtJIS/oikeCzdX1rBzek7ANzbth041hrU8Q4= github.com/aymanbagabas/go-udiff v0.4.1 h1:OEIrQ8maEeDBXQDoGCbbTTXYJMYRCRO1fnodZ12Gv5o= @@ -40,6 +42,8 @@ github.com/dal-go/dalgo v0.46.0 h1:j/FWUr6Gawm59pxi6cgFoGKeg+D7iy1FPww0LgbzliA= github.com/dal-go/dalgo v0.46.0/go.mod h1:HHMUuCMutAlYEblDTVws7jeZs56jvOCbOuxVs6I01tE= github.com/dal-go/dalgo v0.46.1 h1:evVl54N6bU2L4bHhNlnAzoBFgugZSqoPcLB6LiflcjM= github.com/dal-go/dalgo v0.46.1/go.mod h1:HHMUuCMutAlYEblDTVws7jeZs56jvOCbOuxVs6I01tE= +github.com/dal-go/dalgo v0.62.2 h1:rA+k9QCgS0UnZV0oonvDtA+QoM3Wj1doVBWo1higBTw= +github.com/dal-go/dalgo v0.62.2/go.mod h1:wwaibB/UlzwAY1r9KZw5JCis+aroIwAu5WQJ/aoWZiU= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw= @@ -99,6 +103,8 @@ github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavM github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= go.starlark.net v0.0.0-20260522144826-ec58d4b459e2 h1:3cIeOhZXLdLHnBoLyKdJu4SEAEuM/av/VFzB5twLo8k= go.starlark.net v0.0.0-20260522144826-ec58d4b459e2/go.mod h1:Iue6g6iirlfLoVi/DYCi5/x0h/bAOuWF3dULTKpt2Vo= +go.starlark.net v0.0.0-20260613233743-8ba36ccb83fb h1:NGUBN0jbH0IR3msRslALnoxlySm+6YvVKvVDjdDJrlA= +go.starlark.net v0.0.0-20260613233743-8ba36ccb83fb/go.mod h1:Iue6g6iirlfLoVi/DYCi5/x0h/bAOuWF3dULTKpt2Vo= go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= From 8aa1376479229c8101dba353a724419dc75816aa Mon Sep 17 00:00:00 2001 From: inGitDB Dev Date: Mon, 15 Jun 2026 09:56:03 +0100 Subject: [PATCH 2/2] fix: adapt to dalgo v0.62.2 breaking query API changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The dalgo v0.46.1 → v0.62.2 bump introduced breaking changes: - dal.NewFieldRef now takes (source, name) instead of (name); pass an empty source to denote the single From base recordset. - dal.StructuredQuery gained a Having() method; test mock query types now implement it. - The dalgo end2end conformance suite added GROUP BY aggregation, HAVING, and column-projection query tests. This driver does not implement those shapes (and the CLI never builds them — it projects at the command layer). Report dal.ErrNotSupported for column projection, GROUP BY, and HAVING so the suite skips them instead of silently returning unfiltered rows. Co-Authored-By: Claude Opus 4.8 --- pkg/dalgo2fsingitdb/coverage_gaps_test.go | 6 ++++-- pkg/dalgo2ingitdb/coverage_gaps_test.go | 6 +++--- pkg/dalgo2ingitdb/missing_coverage_test.go | 2 +- pkg/dalgo2ingitdb/query.go | 21 +++++++++++++++++++++ pkg/dalgo2ingitdb/tx_readonly.go | 5 +++++ 5 files changed, 34 insertions(+), 6 deletions(-) diff --git a/pkg/dalgo2fsingitdb/coverage_gaps_test.go b/pkg/dalgo2fsingitdb/coverage_gaps_test.go index 1dafc6b..d614a6b 100644 --- a/pkg/dalgo2fsingitdb/coverage_gaps_test.go +++ b/pkg/dalgo2fsingitdb/coverage_gaps_test.go @@ -363,7 +363,7 @@ func TestEvaluateComparison_Operators(t *testing.T) { func TestEvaluateComparison_UnsupportedOperator(t *testing.T) { t.Parallel() c := dal.NewComparison( - dal.NewFieldRef("name"), + dal.NewFieldRef("", "name"), "INVALID_OP", dal.NewConstant("x"), ) @@ -391,7 +391,7 @@ func TestEvaluateComparison_LeftExprError(t *testing.T) { func TestEvaluateComparison_RightExprError(t *testing.T) { t.Parallel() c := dal.NewComparison( - dal.NewFieldRef("name"), + dal.NewFieldRef("", "name"), dal.Equal, unsupportedExpr{}, ) @@ -1330,6 +1330,7 @@ type nilFromQuery struct { func (nilFromQuery) From() dal.FromSource { return nil } func (nilFromQuery) Where() dal.Condition { return nil } +func (nilFromQuery) Having() dal.Condition { return nil } func (nilFromQuery) GroupBy() []dal.Expression { return nil } func (nilFromQuery) OrderBy() []dal.OrderExpression { return nil } func (nilFromQuery) Columns() []dal.Column { return nil } @@ -1487,6 +1488,7 @@ type nonCollectionRefFromQuery struct { func (nonCollectionRefFromQuery) From() dal.FromSource { return wrappedFromSource{} } func (nonCollectionRefFromQuery) Where() dal.Condition { return nil } +func (nonCollectionRefFromQuery) Having() dal.Condition { return nil } func (nonCollectionRefFromQuery) GroupBy() []dal.Expression { return nil } func (nonCollectionRefFromQuery) OrderBy() []dal.OrderExpression { return nil } func (nonCollectionRefFromQuery) Columns() []dal.Column { return nil } diff --git a/pkg/dalgo2ingitdb/coverage_gaps_test.go b/pkg/dalgo2ingitdb/coverage_gaps_test.go index 5726155..553e325 100644 --- a/pkg/dalgo2ingitdb/coverage_gaps_test.go +++ b/pkg/dalgo2ingitdb/coverage_gaps_test.go @@ -1320,7 +1320,7 @@ func TestEvaluateComparison_AllOperators(t *testing.T) { } for _, tc := range tests { cmp := dal.Comparison{ - Left: dal.NewFieldRef("v"), + Left: dal.NewFieldRef("", "v"), Operator: tc.op, Right: dal.Constant{Value: tc.rhs}, } @@ -1339,7 +1339,7 @@ func TestEvaluateComparison_UnsupportedOperator(t *testing.T) { t.Parallel() data := map[string]any{"v": 1} cmp := dal.Comparison{ - Left: dal.NewFieldRef("v"), + Left: dal.NewFieldRef("", "v"), Operator: dal.Operator("UNKNOWN"), Right: dal.Constant{Value: 1}, } @@ -1351,7 +1351,7 @@ func TestEvaluateComparison_UnsupportedOperator(t *testing.T) { func TestResolveExpression_ID(t *testing.T) { t.Parallel() - ref := dal.NewFieldRef("$id") + ref := dal.NewFieldRef("", "$id") got, err := resolveExpression(ref, map[string]any{}, "my-key") if err != nil { t.Fatalf("resolveExpression $id: %v", err) diff --git a/pkg/dalgo2ingitdb/missing_coverage_test.go b/pkg/dalgo2ingitdb/missing_coverage_test.go index 38df643..7350fe2 100644 --- a/pkg/dalgo2ingitdb/missing_coverage_test.go +++ b/pkg/dalgo2ingitdb/missing_coverage_test.go @@ -504,7 +504,7 @@ func TestEvaluateComparison_LeftResolveError(t *testing.T) { func TestEvaluateComparison_RightResolveError(t *testing.T) { t.Parallel() cmp := dal.Comparison{ - Left: dal.NewFieldRef("v"), + Left: dal.NewFieldRef("", "v"), Operator: dal.Equal, Right: unsupportedExpr{}, } diff --git a/pkg/dalgo2ingitdb/query.go b/pkg/dalgo2ingitdb/query.go index 4b0891e..a48697b 100644 --- a/pkg/dalgo2ingitdb/query.go +++ b/pkg/dalgo2ingitdb/query.go @@ -25,6 +25,10 @@ func executeQueryToRecordsReader(_ context.Context, r readonlyTx, query dal.Quer // collectionFromQuery already validated that query is a StructuredQuery. sq, _ := query.(dal.StructuredQuery) + if err = checkSupportedQueryShape(sq); err != nil { + return nil, err + } + records, err := readAllRecordsFromDisk(colDef) if err != nil { return nil, err @@ -45,6 +49,23 @@ func executeQueryToRecordsReader(_ context.Context, r readonlyTx, query dal.Quer return newSliceRecordsReader(records), nil } +// checkSupportedQueryShape reports dal.ErrNotSupported for query shapes this +// driver does not implement: column projection (SelectColumns), GROUP BY +// aggregation, and HAVING. The driver supports SELECT * / SELECT keys-only with +// WHERE / ORDER BY / LIMIT; callers that need projection or aggregation are +// expected to handle dal.ErrNotSupported (the dalgo end2end suite skips on it). +func checkSupportedQueryShape(sq dal.StructuredQuery) error { + switch { + case len(sq.Columns()) > 0: + return fmt.Errorf("dalgo2ingitdb: column projection: %w", dal.ErrNotSupported) + case len(sq.GroupBy()) > 0: + return fmt.Errorf("dalgo2ingitdb: GROUP BY: %w", dal.ErrNotSupported) + case sq.Having() != nil: + return fmt.Errorf("dalgo2ingitdb: HAVING: %w", dal.ErrNotSupported) + } + return nil +} + // collectionFromQuery resolves the single collection a structured query reads // from, validating the FROM clause and that the collection exists with a record // file. Shared by the records-reader and recordset-reader query paths. diff --git a/pkg/dalgo2ingitdb/tx_readonly.go b/pkg/dalgo2ingitdb/tx_readonly.go index 3750ec6..e3f581c 100644 --- a/pkg/dalgo2ingitdb/tx_readonly.go +++ b/pkg/dalgo2ingitdb/tx_readonly.go @@ -160,6 +160,11 @@ func (r readonlyTx) ExecuteQueryToRecordsetReader(_ context.Context, query dal.Q if err != nil { return nil, err } + // collectionFromQuery already validated that query is a StructuredQuery. + sq, _ := query.(dal.StructuredQuery) + if err = checkSupportedQueryShape(sq); err != nil { + return nil, err + } stored, err := readAllStoredRecords(colDef) if err != nil { return nil, err