File tree Expand file tree Collapse file tree 8 files changed +64
-0
lines changed Expand file tree Collapse file tree 8 files changed +64
-0
lines changed Original file line number Diff line number Diff line change @@ -466,6 +466,15 @@ func (desc *immutable) HasConcurrentSchemaChanges() bool {
466466 desc .DeclarativeSchemaChangerState .JobID != catpb .InvalidJobID
467467}
468468
469+ // ConcurrentSchemaChangeJobIDs implements catalog.Descriptor.
470+ func (desc * immutable ) ConcurrentSchemaChangeJobIDs () (ret []catpb.JobID ) {
471+ if desc .DeclarativeSchemaChangerState != nil &&
472+ desc .DeclarativeSchemaChangerState .JobID != catpb .InvalidJobID {
473+ ret = append (ret , desc .DeclarativeSchemaChangerState .JobID )
474+ }
475+ return ret
476+ }
477+
469478// GetDefaultPrivilegeDescriptor returns a DefaultPrivilegeDescriptor.
470479func (desc * immutable ) GetDefaultPrivilegeDescriptor () catalog.DefaultPrivilegeDescriptor {
471480 defaultPrivilegeDescriptor := desc .GetDefaultPrivileges ()
Original file line number Diff line number Diff line change @@ -246,6 +246,10 @@ type Descriptor interface {
246246 // in progress, either legacy or declarative.
247247 HasConcurrentSchemaChanges () bool
248248
249+ // ConcurrentSchemaChangeJobIDs returns all in-progress schema change
250+ // jobs, either legacy or declarative.
251+ ConcurrentSchemaChangeJobIDs () []catpb.JobID
252+
249253 // SkipNamespace is true when a descriptor should not have a namespace record.
250254 SkipNamespace () bool
251255
Original file line number Diff line number Diff line change @@ -394,6 +394,15 @@ func (desc *immutable) HasConcurrentSchemaChanges() bool {
394394 desc .DeclarativeSchemaChangerState .JobID != catpb .InvalidJobID
395395}
396396
397+ // ConcurrentSchemaChangeJobIDs implements the catalog.Descriptor interface.
398+ func (desc * immutable ) ConcurrentSchemaChangeJobIDs () (ret []catpb.JobID ) {
399+ if desc .DeclarativeSchemaChangerState != nil &&
400+ desc .DeclarativeSchemaChangerState .JobID != catpb .InvalidJobID {
401+ ret = append (ret , desc .DeclarativeSchemaChangerState .JobID )
402+ }
403+ return ret
404+ }
405+
397406// SkipNamespace implements the catalog.Descriptor interface.
398407func (desc * immutable ) SkipNamespace () bool {
399408 return true
Original file line number Diff line number Diff line change @@ -336,6 +336,15 @@ func (desc *immutable) HasConcurrentSchemaChanges() bool {
336336 desc .DeclarativeSchemaChangerState .JobID != catpb .InvalidJobID
337337}
338338
339+ // ConcurrentSchemaChangeJobIDs implements catalog.Descriptor.
340+ func (desc * immutable ) ConcurrentSchemaChangeJobIDs () (ret []catpb.JobID ) {
341+ if desc .DeclarativeSchemaChangerState != nil &&
342+ desc .DeclarativeSchemaChangerState .JobID != catpb .InvalidJobID {
343+ ret = append (ret , desc .DeclarativeSchemaChangerState .JobID )
344+ }
345+ return ret
346+ }
347+
339348// MaybeIncrementVersion implements the MutableDescriptor interface.
340349func (desc * Mutable ) MaybeIncrementVersion () {
341350 // Already incremented, no-op.
Original file line number Diff line number Diff line change @@ -111,6 +111,11 @@ func (p synthetic) HasConcurrentSchemaChanges() bool {
111111 return false
112112}
113113
114+ // ConcurrentSchemaChangeJobIDs implements catalog.Descriptor.
115+ func (p synthetic ) ConcurrentSchemaChangeJobIDs () []catpb.JobID {
116+ return nil
117+ }
118+
114119// SkipNamespace implements the descriptor interface.
115120// We never store synthetic descriptors.
116121func (p synthetic ) SkipNamespace () bool {
Original file line number Diff line number Diff line change @@ -73,6 +73,20 @@ func (desc *wrapper) HasConcurrentSchemaChanges() bool {
7373 len (desc .MutationJobs ) > 0
7474}
7575
76+ // ConcurrentSchemaChangeJobIDs implements catalog.Descriptor.
77+ func (desc * wrapper ) ConcurrentSchemaChangeJobIDs () (ret []catpb.JobID ) {
78+ if desc .DeclarativeSchemaChangerState != nil &&
79+ desc .DeclarativeSchemaChangerState .JobID != catpb .InvalidJobID {
80+ ret = append (ret , desc .DeclarativeSchemaChangerState .JobID )
81+ }
82+ if len (desc .MutationJobs ) > 0 {
83+ for _ , mutationJob := range desc .MutationJobs {
84+ ret = append (ret , mutationJob .JobID )
85+ }
86+ }
87+ return ret
88+ }
89+
7690// SkipNamespace implements the descriptor interface.
7791func (desc * wrapper ) SkipNamespace () bool {
7892 // Virtual tables are hard-coded and don't have entries in the
Original file line number Diff line number Diff line change @@ -281,6 +281,11 @@ func (v *tableImplicitRecordType) HasConcurrentSchemaChanges() bool {
281281 return false
282282}
283283
284+ // ConcurrentSchemaChangeJobIDs implements catalog.Descriptor.
285+ func (v * tableImplicitRecordType ) ConcurrentSchemaChangeJobIDs () []catpb.JobID {
286+ return nil
287+ }
288+
284289// SkipNamespace implements catalog.Descriptor. We never store table implicit
285290// record type which is always constructed in memory.
286291func (v * tableImplicitRecordType ) SkipNamespace () bool {
Original file line number Diff line number Diff line change @@ -872,6 +872,15 @@ func (desc *immutable) HasConcurrentSchemaChanges() bool {
872872 return false
873873}
874874
875+ // ConcurrentSchemaChangeJobIDs implements catalog.Descriptor.
876+ func (desc * immutable ) ConcurrentSchemaChangeJobIDs () (ret []catpb.JobID ) {
877+ if desc .DeclarativeSchemaChangerState != nil &&
878+ desc .DeclarativeSchemaChangerState .JobID != catpb .InvalidJobID {
879+ ret = append (ret , desc .DeclarativeSchemaChangerState .JobID )
880+ }
881+ return ret
882+ }
883+
875884// SkipNamespace implements the descriptor interface.
876885func (desc * immutable ) SkipNamespace () bool {
877886 return false
You can’t perform that action at this time.
0 commit comments