compareProcedures compares procedures between two schemas.
(diff *MetadataDiff, schemaName string, oldSchema, newSchema *model.SchemaMetadata)
| 1802 | |
| 1803 | // compareProcedures compares procedures between two schemas. |
| 1804 | func compareProcedures(diff *MetadataDiff, schemaName string, oldSchema, newSchema *model.SchemaMetadata) { |
| 1805 | // Check for dropped procedures |
| 1806 | for _, procName := range oldSchema.ListProcedureNames() { |
| 1807 | if newSchema.GetProcedure(procName) == nil { |
| 1808 | oldProc := oldSchema.GetProcedure(procName) |
| 1809 | if oldProc != nil && !oldProc.SkipDump { |
| 1810 | diff.ProcedureChanges = append(diff.ProcedureChanges, &ProcedureDiff{ |
| 1811 | Action: MetadataDiffActionDrop, |
| 1812 | SchemaName: schemaName, |
| 1813 | ProcedureName: procName, |
| 1814 | OldProcedure: oldProc, |
| 1815 | }) |
| 1816 | } |
| 1817 | } |
| 1818 | } |
| 1819 | |
| 1820 | // Check for new and modified procedures |
| 1821 | for _, procName := range newSchema.ListProcedureNames() { |
| 1822 | newProc := newSchema.GetProcedure(procName) |
| 1823 | if newProc == nil || newProc.SkipDump { |
| 1824 | continue |
| 1825 | } |
| 1826 | |
| 1827 | oldProc := oldSchema.GetProcedure(procName) |
| 1828 | if oldProc == nil { |
| 1829 | diff.ProcedureChanges = append(diff.ProcedureChanges, &ProcedureDiff{ |
| 1830 | Action: MetadataDiffActionCreate, |
| 1831 | SchemaName: schemaName, |
| 1832 | ProcedureName: procName, |
| 1833 | NewProcedure: newProc, |
| 1834 | }) |
| 1835 | } else if !oldProc.SkipDump && !procedureDefinitionsEqual(oldProc.Definition, newProc.Definition, procName) { |
| 1836 | diff.ProcedureChanges = append(diff.ProcedureChanges, &ProcedureDiff{ |
| 1837 | Action: MetadataDiffActionAlter, |
| 1838 | SchemaName: schemaName, |
| 1839 | ProcedureName: procName, |
| 1840 | OldProcedure: oldProc, |
| 1841 | NewProcedure: newProc, |
| 1842 | }) |
| 1843 | } |
| 1844 | } |
| 1845 | } |
| 1846 | |
| 1847 | // compareSequences compares sequences between two schemas. |
| 1848 | func compareSequences(diff *MetadataDiff, schemaName string, oldSchema, newSchema *model.SchemaMetadata) { |
no test coverage detected