func (stmt *Insert) walkStmt(v Visitor) Statement {
	ret := stmt
	if stmt.Rows != nil {
		rows, changed := walkStmt(v, stmt.Rows)
		if changed {
			ret = stmt.copyNode()
			ret.Rows = rows.(*Select)
		}
	}
	returning, changed := walkReturningClause(v, stmt.Returning)
	if changed {
		if ret == stmt {
			ret = stmt.copyNode()
		}
		ret.Returning = returning
	}
	// TODO(dan): Walk OnConflict once the ON CONFLICT DO UPDATE form of upsert is
	// implemented.
	return ret
}
// walkStmt is part of the walkableStmt interface.
walkStmt is part of the walkableStmt interface.
// walkStmt is part of the walkableStmt interface .
func (stmt *Insert) walkStmt(v Visitor) Statement {
	ret := stmt
	if stmt.Rows != nil {
		rows, changed := walkStmt(v, stmt.Rows)
		if changed {
			ret = stmt.copyNode()
			ret.Rows = rows.(*Select)
		}
	}
	returning, changed := walkReturningClause(v, stmt.Returning)
	if changed {
		if ret == stmt {
			ret = stmt.copyNode()
		}
		ret.Returning = returning
	}
	return ret
}
func ( stmt * Insert ) walkStmt ( v Visitor ) Statement { ret := stmt if stmt . Rows != nil { rows , changed := walkStmt ( v , stmt . Rows ) if changed { ret = stmt . copyNode ( ) ret . Rows = rows . ( * Select ) } } returning , changed := walkReturningClause ( v , stmt . Returning ) if changed { if ret == stmt { ret = stmt . copyNode ( ) } ret . Returning = returning } return ret }
walkStmt is part of the walkableStmt interface.
walkStmt is part of the walkableStmt interface .
// TODO(dan): Walk OnConflict once the ON CONFLICT DO UPDATE form of upsert is // implemented.