MCPcopy Create free account
hub / github.com/cockroachdb/cockroachdb-parser / doc

Method doc

pkg/sql/sem/tree/pretty.go:970–1017  ·  view source on GitHub ↗
(p *PrettyCfg)

Source from the content-addressed store, hash-verified

968}
969
970func (node *Insert) doc(p *PrettyCfg) pretty.Doc {
971 items := make([]pretty.TableRow, 0, 9)
972 items = append(items, node.With.docRow(p))
973 kw := "INSERT"
974 if node.OnConflict.IsUpsertAlias() {
975 kw = "UPSERT"
976 }
977 items = append(items, p.row(kw, pretty.Nil))
978
979 into := p.Doc(node.Table)
980 if node.Columns != nil {
981 into = p.nestUnder(into, p.bracket("(", p.Doc(&node.Columns), ")"))
982 }
983 items = append(items, p.row("INTO", into))
984
985 if node.DefaultValues() {
986 items = append(items, p.row("", pretty.Keyword("DEFAULT VALUES")))
987 } else {
988 items = append(items, node.Rows.docTable(p)...)
989 }
990
991 if node.OnConflict != nil && !node.OnConflict.IsUpsertAlias() {
992 cond := pretty.Nil
993 if len(node.OnConflict.Constraint) > 0 {
994 cond = p.nestUnder(pretty.Text("ON CONSTRAINT"), p.Doc(&node.OnConflict.Constraint))
995 }
996 if len(node.OnConflict.Columns) > 0 {
997 cond = p.bracket("(", p.Doc(&node.OnConflict.Columns), ")")
998 }
999 items = append(items, p.row("ON CONFLICT", cond))
1000 if node.OnConflict.ArbiterPredicate != nil {
1001 items = append(items, p.row("WHERE", p.Doc(node.OnConflict.ArbiterPredicate)))
1002 }
1003
1004 if node.OnConflict.DoNothing {
1005 items = append(items, p.row("DO", pretty.Keyword("NOTHING")))
1006 } else {
1007 items = append(items, p.row("DO",
1008 p.nestUnder(pretty.Keyword("UPDATE SET"), p.Doc(&node.OnConflict.Exprs))))
1009 if node.OnConflict.Where != nil {
1010 items = append(items, node.OnConflict.Where.docRow(p))
1011 }
1012 }
1013 }
1014
1015 items = append(items, p.docReturning(node.Returning))
1016 return p.rlTable(items...)
1017}
1018
1019func (node *NameList) doc(p *PrettyCfg) pretty.Doc {
1020 d := make([]pretty.Doc, len(*node))

Callers

nothing calls this directly

Calls 12

DefaultValuesMethod · 0.95
KeywordFunction · 0.92
TextFunction · 0.92
IsUpsertAliasMethod · 0.80
rowMethod · 0.80
DocMethod · 0.80
nestUnderMethod · 0.80
bracketMethod · 0.80
docReturningMethod · 0.80
rlTableMethod · 0.80
docTableMethod · 0.65
docRowMethod · 0.45

Tested by

no test coverage detected