MCPcopy Index your code
hub / github.com/bytebase/bytebase / comparePartitions

Function comparePartitions

backend/plugin/schema/differ.go:1322–1367  ·  view source on GitHub ↗

comparePartitions compares two lists of partitions.

(engine storepb.Engine, oldPartitions, newPartitions []*storepb.TablePartitionMetadata)

Source from the content-addressed store, hash-verified

1320
1321// comparePartitions compares two lists of partitions.
1322func comparePartitions(engine storepb.Engine, oldPartitions, newPartitions []*storepb.TablePartitionMetadata) []*PartitionDiff {
1323 var changes []*PartitionDiff
1324
1325 oldPartMap := make(map[string]*storepb.TablePartitionMetadata)
1326 for _, part := range oldPartitions {
1327 oldPartMap[part.Name] = part
1328 }
1329
1330 newPartMap := make(map[string]*storepb.TablePartitionMetadata)
1331 for _, part := range newPartitions {
1332 newPartMap[part.Name] = part
1333 }
1334
1335 // Check for dropped partitions
1336 for partName, oldPart := range oldPartMap {
1337 if _, exists := newPartMap[partName]; !exists {
1338 changes = append(changes, &PartitionDiff{
1339 Action: MetadataDiffActionDrop,
1340 OldPartition: oldPart,
1341 })
1342 }
1343 }
1344
1345 // Check for new and modified partitions
1346 for partName, newPart := range newPartMap {
1347 oldPart, exists := oldPartMap[partName]
1348 if !exists {
1349 changes = append(changes, &PartitionDiff{
1350 Action: MetadataDiffActionCreate,
1351 NewPartition: newPart,
1352 })
1353 } else if !partitionsEqual(engine, oldPart, newPart) {
1354 // Drop the old partition and recreate the new one instead of altering
1355 changes = append(changes, &PartitionDiff{
1356 Action: MetadataDiffActionDrop,
1357 OldPartition: oldPart,
1358 })
1359 changes = append(changes, &PartitionDiff{
1360 Action: MetadataDiffActionCreate,
1361 NewPartition: newPart,
1362 })
1363 }
1364 }
1365
1366 return changes
1367}
1368
1369// compareTriggers compares two lists of triggers.
1370func compareTriggers(oldTriggers, newTriggers []*storepb.TriggerMetadata) []*TriggerDiff {

Callers 1

compareTableDetailsFunction · 0.70

Calls 1

partitionsEqualFunction · 0.85

Tested by

no test coverage detected