Skip to content

Commit 1194029

Browse files
committed
catalog/schemaexpr: break dependency on sql/parser
Release note: None
1 parent 63895bc commit 1194029

21 files changed

+92
-38
lines changed

pkg/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,7 @@ ALL_TESTS = [
421421
"//pkg/sql/catalog/replication:replication_test",
422422
"//pkg/sql/catalog/resolver:resolver_test",
423423
"//pkg/sql/catalog/schemadesc:schemadesc_test",
424+
"//pkg/sql/catalog/schemaexpr:schemaexpr_disallowed_imports_test",
424425
"//pkg/sql/catalog/schemaexpr:schemaexpr_test",
425426
"//pkg/sql/catalog/schematelemetry:schematelemetry_test",
426427
"//pkg/sql/catalog/seqexpr:seqexpr_disallowed_imports_test",

pkg/sql/catalog/catformat/BUILD.bazel

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,13 @@ go_library(
2424
go_test(
2525
name = "catformat_test",
2626
size = "small",
27-
srcs = ["index_test.go"],
27+
srcs = [
28+
"index_test.go",
29+
"inject_parser_test.go",
30+
],
2831
embed = [":catformat"],
2932
deps = [
33+
"//pkg/sql",
3034
"//pkg/sql/catalog/catenumpb",
3135
"//pkg/sql/catalog/catpb",
3236
"//pkg/sql/catalog/descpb",
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// Copyright 2025 The Cockroach Authors.
2+
//
3+
// Use of this software is governed by the CockroachDB Software License
4+
// included in the /LICENSE file.
5+
6+
package catformat_test
7+
8+
import "github.com/cockroachdb/cockroach/pkg/sql"
9+
10+
func init() {
11+
sql.DoParserInjection()
12+
}

pkg/sql/catalog/funcdesc/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ go_test(
4545
"//pkg/clusterversion",
4646
"//pkg/jobs/jobspb",
4747
"//pkg/security/username",
48+
"//pkg/sql",
4849
"//pkg/sql/catalog",
4950
"//pkg/sql/catalog/bootstrap",
5051
"//pkg/sql/catalog/catpb",

pkg/sql/catalog/funcdesc/func_desc_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/cockroachdb/cockroach/pkg/clusterversion"
1515
"github.com/cockroachdb/cockroach/pkg/jobs/jobspb"
1616
"github.com/cockroachdb/cockroach/pkg/security/username"
17+
"github.com/cockroachdb/cockroach/pkg/sql"
1718
"github.com/cockroachdb/cockroach/pkg/sql/catalog"
1819
"github.com/cockroachdb/cockroach/pkg/sql/catalog/bootstrap"
1920
"github.com/cockroachdb/cockroach/pkg/sql/catalog/catpb"
@@ -34,6 +35,10 @@ import (
3435
"github.com/stretchr/testify/require"
3536
)
3637

38+
func init() {
39+
sql.DoParserInjection()
40+
}
41+
3742
func TestValidateFuncDesc(t *testing.T) {
3843
defer leaktest.AfterTest(t)()
3944
ctx := context.Background()

pkg/sql/catalog/schemaexpr/BUILD.bazel

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
2+
load("//pkg/testutils:buildutil/buildutil.bzl", "disallowed_imports_test")
23

34
go_library(
45
name = "schemaexpr",
@@ -26,7 +27,7 @@ go_library(
2627
"//pkg/sql/catalog/colinfo",
2728
"//pkg/sql/catalog/descpb",
2829
"//pkg/sql/catalog/funcdesc",
29-
"//pkg/sql/parser",
30+
"//pkg/sql/parserutils",
3031
"//pkg/sql/pgwire/pgcode",
3132
"//pkg/sql/pgwire/pgerror",
3233
"//pkg/sql/sem/builtins/builtinsregistry",
@@ -53,13 +54,15 @@ go_test(
5354
"column_test.go",
5455
"computed_column_rewrites_test.go",
5556
"expr_test.go",
57+
"inject_parser_test.go",
5658
"partial_index_test.go",
5759
"testutils_test.go",
5860
],
5961
data = glob(["testdata/**"]),
6062
embed = [":schemaexpr"],
6163
deps = [
6264
"//pkg/clusterversion",
65+
"//pkg/sql",
6366
"//pkg/sql/catalog",
6467
"//pkg/sql/catalog/colinfo",
6568
"//pkg/sql/catalog/descpb",
@@ -76,3 +79,8 @@ go_test(
7679
"@com_github_cockroachdb_datadriven//:datadriven",
7780
],
7881
)
82+
83+
disallowed_imports_test(
84+
src = "schemaexpr",
85+
disallowed_list = ["//pkg/sql/parser"],
86+
)

pkg/sql/catalog/schemaexpr/column.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111

1212
"github.com/cockroachdb/cockroach/pkg/sql/catalog"
1313
"github.com/cockroachdb/cockroach/pkg/sql/catalog/colinfo"
14-
"github.com/cockroachdb/cockroach/pkg/sql/parser"
14+
"github.com/cockroachdb/cockroach/pkg/sql/parserutils"
1515
"github.com/cockroachdb/cockroach/pkg/sql/pgwire/pgcode"
1616
"github.com/cockroachdb/cockroach/pkg/sql/pgwire/pgerror"
1717
"github.com/cockroachdb/cockroach/pkg/sql/sem/builtins/builtinsregistry"
@@ -152,7 +152,7 @@ func FormatColumnForDisplay(
152152
// RenameColumn replaces any occurrence of the column from in expr with to, and
153153
// returns a string representation of the new expression.
154154
func RenameColumn(expr string, from tree.Name, to tree.Name) (string, error) {
155-
parsed, err := parser.ParseExpr(expr)
155+
parsed, err := parserutils.ParseExpr(expr)
156156
if err != nil {
157157
return "", err
158158
}

pkg/sql/catalog/schemaexpr/computed_column.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313
"github.com/cockroachdb/cockroach/pkg/clusterversion"
1414
"github.com/cockroachdb/cockroach/pkg/sql/catalog"
1515
"github.com/cockroachdb/cockroach/pkg/sql/catalog/descpb"
16-
"github.com/cockroachdb/cockroach/pkg/sql/parser"
16+
"github.com/cockroachdb/cockroach/pkg/sql/parserutils"
1717
"github.com/cockroachdb/cockroach/pkg/sql/pgwire/pgcode"
1818
"github.com/cockroachdb/cockroach/pkg/sql/pgwire/pgerror"
1919
"github.com/cockroachdb/cockroach/pkg/sql/sem/eval"
@@ -176,7 +176,7 @@ func ValidateColumnHasNoDependents(desc catalog.TableDescriptor, col catalog.Col
176176
continue
177177
}
178178

179-
expr, err := parser.ParseExpr(c.GetComputeExpr())
179+
expr, err := parserutils.ParseExpr(c.GetComputeExpr())
180180
if err != nil {
181181
// At this point, we should be able to parse the computed expression.
182182
return errors.WithAssertionFailure(err)
@@ -237,7 +237,7 @@ func MakeComputedExprs(
237237
}
238238
}
239239

240-
exprs, err := parser.ParseExprs(exprStrings)
240+
exprs, err := parserutils.ParseExprs(exprStrings)
241241
if err != nil {
242242
return nil, catalog.TableColSet{}, err
243243
}

pkg/sql/catalog/schemaexpr/computed_column_rewrites.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ package schemaexpr
88
import (
99
"fmt"
1010

11-
"github.com/cockroachdb/cockroach/pkg/sql/parser"
11+
"github.com/cockroachdb/cockroach/pkg/sql/parserutils"
1212
"github.com/cockroachdb/cockroach/pkg/sql/sem/tree"
1313
"github.com/cockroachdb/cockroach/pkg/sql/sem/tree/treebin"
1414
"github.com/cockroachdb/cockroach/pkg/sql/sessiondata"
@@ -30,7 +30,7 @@ func ParseComputedColumnRewrites(val string) (ComputedColumnRewritesMap, error)
3030
if val == "" {
3131
return nil, nil
3232
}
33-
stmt, err := parser.ParseOne(fmt.Sprintf("SET ROW (%s)", val))
33+
stmt, err := parserutils.ParseOne(fmt.Sprintf("SET ROW (%s)", val))
3434
if err != nil {
3535
return nil, errors.Wrapf(err, "failed to parse column rewrites")
3636
}

pkg/sql/catalog/schemaexpr/default_exprs.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
"context"
1010

1111
"github.com/cockroachdb/cockroach/pkg/sql/catalog"
12-
"github.com/cockroachdb/cockroach/pkg/sql/parser"
12+
"github.com/cockroachdb/cockroach/pkg/sql/parserutils"
1313
"github.com/cockroachdb/cockroach/pkg/sql/sem/eval"
1414
"github.com/cockroachdb/cockroach/pkg/sql/sem/transform"
1515
"github.com/cockroachdb/cockroach/pkg/sql/sem/tree"
@@ -50,7 +50,7 @@ func MakeDefaultExprs(
5050
exprStrings = append(exprStrings, col.GetDefaultExpr())
5151
}
5252
}
53-
exprs, err := parser.ParseExprs(exprStrings)
53+
exprs, err := parserutils.ParseExprs(exprStrings)
5454
if err != nil {
5555
return nil, err
5656
}

0 commit comments

Comments
 (0)