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

Function compareSequences

backend/plugin/schema/differ.go:1848–1895  ·  view source on GitHub ↗

compareSequences compares sequences between two schemas.

(diff *MetadataDiff, schemaName string, oldSchema, newSchema *model.SchemaMetadata)

Source from the content-addressed store, hash-verified

1846
1847// compareSequences compares sequences between two schemas.
1848func compareSequences(diff *MetadataDiff, schemaName string, oldSchema, newSchema *model.SchemaMetadata) {
1849 // Get sequences from proto since there's no ListSequenceNames method
1850 oldSeqMap := make(map[string]*storepb.SequenceMetadata)
1851 for _, seq := range oldSchema.GetProto().Sequences {
1852 if !seq.GetSkipDump() {
1853 oldSeqMap[seq.Name] = seq
1854 }
1855 }
1856
1857 newSeqMap := make(map[string]*storepb.SequenceMetadata)
1858 for _, seq := range newSchema.GetProto().Sequences {
1859 if !seq.GetSkipDump() {
1860 newSeqMap[seq.Name] = seq
1861 }
1862 }
1863
1864 // Check for dropped sequences
1865 for seqName, oldSeq := range oldSeqMap {
1866 if _, exists := newSeqMap[seqName]; !exists {
1867 diff.SequenceChanges = append(diff.SequenceChanges, &SequenceDiff{
1868 Action: MetadataDiffActionDrop,
1869 SchemaName: schemaName,
1870 SequenceName: seqName,
1871 OldSequence: oldSeq,
1872 })
1873 }
1874 }
1875
1876 // Check for new and modified sequences
1877 for seqName, newSeq := range newSeqMap {
1878 if oldSeq, exists := oldSeqMap[seqName]; !exists {
1879 diff.SequenceChanges = append(diff.SequenceChanges, &SequenceDiff{
1880 Action: MetadataDiffActionCreate,
1881 SchemaName: schemaName,
1882 SequenceName: seqName,
1883 NewSequence: newSeq,
1884 })
1885 } else if !sequencesEqual(oldSeq, newSeq) {
1886 diff.SequenceChanges = append(diff.SequenceChanges, &SequenceDiff{
1887 Action: MetadataDiffActionAlter,
1888 SchemaName: schemaName,
1889 SequenceName: seqName,
1890 OldSequence: oldSeq,
1891 NewSequence: newSeq,
1892 })
1893 }
1894 }
1895}
1896
1897func sequencesEqual(oldSeq, newSeq *storepb.SequenceMetadata) bool {
1898 return oldSeq.DataType == newSeq.DataType &&

Callers 1

compareSchemaObjectsFunction · 0.70

Calls 3

sequencesEqualFunction · 0.85
GetProtoMethod · 0.45
GetSkipDumpMethod · 0.45

Tested by

no test coverage detected