MCPcopy Create free account
hub / github.com/bytebase/bytebase / writeForeignKey

Function writeForeignKey

backend/plugin/schema/pg/get_database_definition.go:1847–1942  ·  view source on GitHub ↗
(out io.Writer, schema string, table string, fk *storepb.ForeignKeyMetadata)

Source from the content-addressed store, hash-verified

1845}
1846
1847func writeForeignKey(out io.Writer, schema string, table string, fk *storepb.ForeignKeyMetadata) error {
1848 if _, err := io.WriteString(out, `ALTER TABLE "`); err != nil {
1849 return err
1850 }
1851 if _, err := io.WriteString(out, schema); err != nil {
1852 return err
1853 }
1854 if _, err := io.WriteString(out, `"."`); err != nil {
1855 return err
1856 }
1857 if _, err := io.WriteString(out, table); err != nil {
1858 return err
1859 }
1860 if _, err := io.WriteString(out, "\"\n ADD CONSTRAINT \""); err != nil {
1861 return err
1862 }
1863 if _, err := io.WriteString(out, fk.Name); err != nil {
1864 return err
1865 }
1866 if _, err := io.WriteString(out, "\" FOREIGN KEY ("); err != nil {
1867 return err
1868 }
1869 for i, column := range fk.Columns {
1870 if i > 0 {
1871 if _, err := io.WriteString(out, ", "); err != nil {
1872 return err
1873 }
1874 }
1875 if _, err := io.WriteString(out, `"`); err != nil {
1876 return err
1877 }
1878 if _, err := io.WriteString(out, column); err != nil {
1879 return err
1880 }
1881 if _, err := io.WriteString(out, `"`); err != nil {
1882 return err
1883 }
1884 }
1885 if _, err := io.WriteString(out, ")\n REFERENCES \""); err != nil {
1886 return err
1887 }
1888 if _, err := io.WriteString(out, fk.ReferencedSchema); err != nil {
1889 return err
1890 }
1891 if _, err := io.WriteString(out, `"."`); err != nil {
1892 return err
1893 }
1894 if _, err := io.WriteString(out, fk.ReferencedTable); err != nil {
1895 return err
1896 }
1897 if _, err := io.WriteString(out, "\" ("); err != nil {
1898 return err
1899 }
1900 for i, column := range fk.ReferencedColumns {
1901 if i > 0 {
1902 if _, err := io.WriteString(out, ", "); err != nil {
1903 return err
1904 }

Callers 3

GetTableDefinitionFunction · 0.70
writeSchemaForeignKeysFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected