2
0

Merge branch 'nvorobev-rows-affected-for-copyto-copyfrom' into v4-experimental

This commit is contained in:
Jack Christensen
2018-12-15 17:26:03 -06:00
6 changed files with 90 additions and 41 deletions
+10 -11
View File
@@ -284,13 +284,13 @@ func (c *Conn) CopyFrom(tableName Identifier, columnNames []string, rowSrc CopyF
}
// CopyFromReader uses the PostgreSQL textual format of the copy protocol
func (c *Conn) CopyFromReader(r io.Reader, sql string) error {
func (c *Conn) CopyFromReader(r io.Reader, sql string) (CommandTag, error) {
if err := c.sendSimpleQuery(sql); err != nil {
return err
return "", err
}
if err := c.readUntilCopyInResponse(); err != nil {
return err
return "", err
}
buf := c.wbuf
@@ -305,7 +305,7 @@ func (c *Conn) CopyFromReader(r io.Reader, sql string) error {
pgio.SetInt32(buf[sp:], int32(n+4))
if _, err := c.BaseConn.NetConn.Write(buf); err != nil {
return err
return "", err
}
}
@@ -314,26 +314,25 @@ func (c *Conn) CopyFromReader(r io.Reader, sql string) error {
buf = pgio.AppendInt32(buf, 4)
if _, err := c.BaseConn.NetConn.Write(buf); err != nil {
return err
return "", err
}
for {
msg, err := c.rxMsg()
if err != nil {
return err
return "", err
}
switch msg := msg.(type) {
case *pgproto3.ReadyForQuery:
c.rxReadyForQuery(msg)
return nil
return "", err
case *pgproto3.CommandComplete:
return CommandTag(msg.CommandTag), nil
case *pgproto3.ErrorResponse:
return c.rxErrorResponse(msg)
return "", c.rxErrorResponse(msg)
default:
return c.processContextFreeMsg(msg)
return "", c.processContextFreeMsg(msg)
}
}
return nil
}