Skip to content

Commit fb6d385

Browse files
committed
sql: clean up old version support and deprecated field in schemachanger
These versions are more than two versions back and don't need to be supported. The deprecated computed column field is also removed. Epic: none Release note: None
1 parent 1a4ff79 commit fb6d385

File tree

16 files changed

+28
-161
lines changed

16 files changed

+28
-161
lines changed

pkg/sql/catalog/redact/redact.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,10 +162,6 @@ func redactElement(element scpb.Element) error {
162162
return redactExpr(&e.Expression.Expr)
163163
case *scpb.ColumnOnUpdateExpression:
164164
return redactExpr(&e.Expression.Expr)
165-
case *scpb.ColumnType:
166-
if e.ComputeExpr != nil {
167-
return redactExpr(&e.ComputeExpr.Expr)
168-
}
169165
case *scpb.ColumnComputeExpression:
170166
return redactExpr(&e.Expression.Expr)
171167
case *scpb.FunctionBody:

pkg/sql/schemachanger/scbuild/internal/scbuildstmt/alter_table_add_column.go

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -169,14 +169,10 @@ func alterTableAddColumn(
169169
if desc.IsComputed() {
170170
validExpr, _ := b.ComputedColumnExpression(tbl, d, tree.ComputedColumnExprContext(d.IsVirtual()))
171171
expr := b.WrapExpression(tbl.TableID, validExpr)
172-
if spec.colType.ElementCreationMetadata.In_24_3OrLater {
173-
spec.compute = &scpb.ColumnComputeExpression{
174-
TableID: tbl.TableID,
175-
ColumnID: spec.col.ColumnID,
176-
Expression: *expr,
177-
}
178-
} else {
179-
spec.colType.ComputeExpr = expr
172+
spec.compute = &scpb.ColumnComputeExpression{
173+
TableID: tbl.TableID,
174+
ColumnID: spec.col.ColumnID,
175+
Expression: *expr,
180176
}
181177
if desc.Virtual {
182178
b.IncrementSchemaChangeAddColumnQualificationCounter("virtual")
@@ -483,7 +479,7 @@ func addColumn(b BuildCtx, spec addColumnSpec, n tree.NodeFormatter) (backing *s
483479
}
484480

485481
inflatedChain := getInflatedPrimaryIndexChain(b, spec.tbl.TableID)
486-
if spec.def == nil && spec.colType.ComputeExpr == nil && spec.compute == nil && spec.transientCompute == nil {
482+
if spec.def == nil && spec.compute == nil && spec.transientCompute == nil {
487483
// Optimization opportunity: if we were to add a new column without default
488484
// value nor computed expression, then we can just add the column to existing
489485
// non-nil primary indexes without actually backfilling any data. This is

pkg/sql/schemachanger/scbuild/internal/scbuildstmt/create_index.go

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -858,14 +858,10 @@ func maybeCreateAndAddShardCol(
858858
notNull: true,
859859
}
860860
wexpr := b.WrapExpression(tbl.TableID, parsedExpr)
861-
if spec.colType.ElementCreationMetadata.In_24_3OrLater {
862-
spec.compute = &scpb.ColumnComputeExpression{
863-
TableID: tbl.TableID,
864-
ColumnID: shardColID,
865-
Expression: *wexpr,
866-
}
867-
} else {
868-
spec.colType.ComputeExpr = wexpr
861+
spec.compute = &scpb.ColumnComputeExpression{
862+
TableID: tbl.TableID,
863+
ColumnID: shardColID,
864+
Expression: *wexpr,
869865
}
870866

871867
backing := addColumn(b, spec, n)

pkg/sql/schemachanger/scbuild/internal/scbuildstmt/helpers.go

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2006,23 +2006,17 @@ func retrieveColumnTypeElem(
20062006
}
20072007

20082008
// retrieveColumnComputeExpression returns the compute expression of the column.
2009-
// If no expression exists, then nil is returned. This will handle older
2010-
// versions that may store the expression as part of the ColumnType.
2009+
// If no expression exists, then nil is returned.
20112010
func retrieveColumnComputeExpression(
20122011
b BuildCtx, tableID catid.DescID, columnID catid.ColumnID,
20132012
) (expr *scpb.Expression) {
2014-
// First try to retrieve the expression from the ColumnComputeExpression. This
2015-
// may be unavailable because the column doesn't have a compute expression, or
2016-
// it's an older version that stores the expression as part of the ColumnType.
2017-
colComputeExpression := b.QueryByID(tableID).FilterColumnComputeExpression().Filter(func(_ scpb.Status, _ scpb.TargetStatus, e *scpb.ColumnComputeExpression) bool {
2013+
if colComputeExpression := b.QueryByID(tableID).FilterColumnComputeExpression().Filter(func(_ scpb.Status, _ scpb.TargetStatus, e *scpb.ColumnComputeExpression) bool {
20182014
return e.ColumnID == columnID
2019-
}).MustGetZeroOrOneElement()
2020-
if colComputeExpression != nil {
2015+
}).MustGetZeroOrOneElement(); colComputeExpression != nil {
20212016
return &colComputeExpression.Expression
20222017
}
2023-
// Check the ColumnType in case this is an older version.
2024-
columnType := mustRetrieveColumnTypeElem(b, tableID, columnID)
2025-
return columnType.ComputeExpr
2018+
2019+
return nil
20262020
}
20272021

20282022
// mustRetrieveColumnTypeElem retrieves the index column elements associated

pkg/sql/schemachanger/scdecomp/decomp.go

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -580,15 +580,11 @@ func (w *walkCtx) walkColumn(tbl catalog.TableDescriptor, col catalog.Column) {
580580
expr, err := w.newExpression(col.GetComputeExpr())
581581
onErrPanic(err)
582582

583-
if columnType.ElementCreationMetadata.In_24_3OrLater {
584-
w.ev(scpb.Status_PUBLIC, &scpb.ColumnComputeExpression{
585-
TableID: tbl.GetID(),
586-
ColumnID: col.GetID(),
587-
Expression: *expr,
588-
})
589-
} else {
590-
columnType.ComputeExpr = expr
591-
}
583+
w.ev(scpb.Status_PUBLIC, &scpb.ColumnComputeExpression{
584+
TableID: tbl.GetID(),
585+
ColumnID: col.GetID(),
586+
Expression: *expr,
587+
})
592588
}
593589
w.ev(scpb.Status_PUBLIC, columnType)
594590
}

pkg/sql/schemachanger/scdecomp/helpers.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -134,13 +134,10 @@ func newTypeT(t *types.T) *scpb.TypeT {
134134
}
135135
}
136136

137-
// NewElementCreationMetadata construct a `*scpb.ElementCreationMetadata`
138-
// based on `clusterVersion`.
137+
// NewElementCreationMetadata construct a `*scpb.ElementCreationMetadata` based
138+
// on `clusterVersion`.
139139
func NewElementCreationMetadata(
140140
clusterVersion clusterversion.ClusterVersion,
141141
) *scpb.ElementCreationMetadata {
142-
return &scpb.ElementCreationMetadata{
143-
In_23_1OrLater: true,
144-
In_24_3OrLater: true,
145-
}
142+
return &scpb.ElementCreationMetadata{}
146143
}

pkg/sql/schemachanger/scexec/scmutationexec/column.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -78,16 +78,6 @@ func (i *immediateVisitor) addNewColumnType(
7878
col.Type = op.ColumnType.Type
7979
col.Nullable = true
8080
col.Virtual = op.ColumnType.IsVirtual
81-
// ComputeExpr is deprecated in favor of a separate element
82-
// (ColumnComputeExpression). Any changes in this if block
83-
// should also be made in the AddColumnComputeExpression function.
84-
if !op.ColumnType.ElementCreationMetadata.In_24_3OrLater {
85-
if ce := op.ColumnType.ComputeExpr; ce != nil {
86-
expr := string(ce.Expr)
87-
col.ComputeExpr = &expr
88-
col.UsesSequenceIds = ce.UsesSequenceIDs
89-
}
90-
}
9181
if !col.Virtual {
9282
for i := range tbl.Families {
9383
fam := &tbl.Families[i]

pkg/sql/schemachanger/scpb/elements.proto

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -241,10 +241,7 @@ message ColumnType {
241241
uint32 family_id = 2 [(gogoproto.customname) = "FamilyID", (gogoproto.casttype) = "github.com/cockroachdb/cockroach/pkg/sql/sem/catid.FamilyID"];
242242
uint32 column_id = 3 [(gogoproto.customname) = "ColumnID", (gogoproto.casttype) = "github.com/cockroachdb/cockroach/pkg/sql/sem/catid.ColumnID"];
243243
TypeT embedded_type_t = 4 [(gogoproto.nullable) = false, (gogoproto.embed) = true];
244-
reserved 5;
245-
// Deprecated
246-
// compute expression is now handled as a separate element (see ColumnComputeExpression).
247-
Expression compute_expr = 6 [deprecated = true];
244+
reserved 5, 6;
248245
bool is_virtual = 7;
249246
reserved 8, 9, 10;
250247
// ElementCreationMetadata stores information about when this element is created.
@@ -1011,6 +1008,5 @@ message FunctionSecurity {
10111008
}
10121009

10131010
message ElementCreationMetadata {
1014-
bool in_23_1_or_later = 1;
1015-
bool in_24_3_or_later = 2;
1011+
reserved 1, 2;
10161012
}

pkg/sql/schemachanger/scpb/migration.go

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -58,23 +58,6 @@ func migrateDeprecatedFields(
5858
}
5959
}
6060

61-
// Migrate ComputeExpr field to separate ColumnComputeExpression target.
62-
if columnType := target.GetColumnType(); columnType != nil {
63-
if columnType.ComputeExpr != nil {
64-
newTarget := MakeTarget(
65-
AsTargetStatus(target.TargetStatus),
66-
&ColumnComputeExpression{
67-
TableID: columnType.TableID,
68-
ColumnID: columnType.ColumnID,
69-
Expression: *columnType.ComputeExpr,
70-
},
71-
&target.Metadata,
72-
)
73-
newTargets = append(newTargets, newTarget)
74-
columnType.ComputeExpr = nil
75-
migrated = true
76-
}
77-
}
7861
return
7962
}
8063

pkg/sql/schemachanger/scpb/migration_test.go

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -9,50 +9,11 @@ import (
99
"testing"
1010

1111
"github.com/cockroachdb/cockroach/pkg/clusterversion"
12-
"github.com/cockroachdb/cockroach/pkg/sql/catalog/catpb"
1312
"github.com/cockroachdb/cockroach/pkg/sql/sem/catid"
1413
"github.com/cockroachdb/cockroach/pkg/sql/sem/idxtype"
1514
"github.com/stretchr/testify/require"
1615
)
1716

18-
// TestDeprecatedColumnComputeFieldMigration will ensure that ComputeExpr in
19-
// ColumnType is nulled out and a new ColumnComputeExpression is added.
20-
func TestDeprecatedColumnComputeFieldMigration(t *testing.T) {
21-
state := DescriptorState{
22-
Targets: []Target{
23-
MakeTarget(ToPublic,
24-
&ColumnType{
25-
TableID: 100,
26-
ComputeExpr: &Expression{
27-
Expr: catpb.Expression("Hello"),
28-
},
29-
},
30-
nil,
31-
),
32-
},
33-
CurrentStatuses: []Status{Status_PUBLIC},
34-
TargetRanks: []uint32{1},
35-
}
36-
migrationOccurred := MigrateDescriptorState(
37-
clusterversion.ClusterVersion{Version: clusterversion.Latest.Version()},
38-
1,
39-
&state,
40-
)
41-
require.True(t, migrationOccurred)
42-
require.Len(t, state.CurrentStatuses, 2)
43-
require.Len(t, state.Targets, 2)
44-
require.NotNil(t, state.Targets[0].GetColumnType())
45-
ct := state.Targets[0].GetColumnType()
46-
require.Nil(t, ct.ComputeExpr)
47-
require.NotNil(t, state.Targets[1].GetColumnComputeExpression())
48-
cce := state.Targets[1].GetColumnComputeExpression()
49-
require.Equal(t, cce.TableID, ct.TableID)
50-
require.Equal(t, cce.ColumnID, ct.ColumnID)
51-
require.Equal(t, cce.Expr, catpb.Expression("Hello"))
52-
require.Equal(t, state.CurrentStatuses[1], Status_PUBLIC)
53-
require.Equal(t, state.TargetRanks[1], uint32(2))
54-
}
55-
5617
// TestDeprecatedIsInvertedMigration tests that the IsInverted field is migrated
5718
// to the new Type field.
5819
func TestDeprecatedIsInvertedMigration(t *testing.T) {

0 commit comments

Comments
 (0)