MCPcopy
hub / github.com/XiaoMi/Gaea / Restore

Method Restore

parser/ast/ddl.go:197–227  ·  view source on GitHub ↗

Restore implements Node interface.

(ctx *format.RestoreCtx)

Source from the content-addressed store, hash-verified

195
196// Restore implements Node interface.
197func (n *ReferenceDef) Restore(ctx *format.RestoreCtx) error {
198 if n.Table != nil {
199 ctx.WriteKeyWord("REFERENCES ")
200 if err := n.Table.Restore(ctx); err != nil {
201 return errors.Annotate(err, "An error occurred while splicing ReferenceDef")
202 }
203 }
204 ctx.WritePlain("(")
205 for i, indexColNames := range n.IndexColNames {
206 if i > 0 {
207 ctx.WritePlain(", ")
208 }
209 if err := indexColNames.Restore(ctx); err != nil {
210 return errors.Annotatef(err, "An error occurred while splicing IndexColNames: [%v]", i)
211 }
212 }
213 ctx.WritePlain(")")
214 if n.OnDelete.ReferOpt != ReferOptionNoOption {
215 ctx.WritePlain(" ")
216 if err := n.OnDelete.Restore(ctx); err != nil {
217 return errors.Annotate(err, "An error occurred while splicing OnDelete")
218 }
219 }
220 if n.OnUpdate.ReferOpt != ReferOptionNoOption {
221 ctx.WritePlain(" ")
222 if err := n.OnUpdate.Restore(ctx); err != nil {
223 return errors.Annotate(err, "An error occurred while splicing OnUpdate")
224 }
225 }
226 return nil
227}
228
229// Accept implements Node Accept interface.
230func (n *ReferenceDef) Accept(v Visitor) (Node, bool) {

Callers

nothing calls this directly

Calls 3

WriteKeyWordMethod · 0.80
WritePlainMethod · 0.80
RestoreMethod · 0.65

Tested by

no test coverage detected