aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/jackc/pgx/messages.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/jackc/pgx/messages.go')
-rw-r--r--vendor/github.com/jackc/pgx/messages.go213
1 files changed, 0 insertions, 213 deletions
diff --git a/vendor/github.com/jackc/pgx/messages.go b/vendor/github.com/jackc/pgx/messages.go
deleted file mode 100644
index 97e8929..0000000
--- a/vendor/github.com/jackc/pgx/messages.go
+++ /dev/null
@@ -1,213 +0,0 @@
-package pgx
-
-import (
- "math"
- "reflect"
- "time"
-
- "github.com/jackc/pgx/pgio"
- "github.com/jackc/pgx/pgtype"
-)
-
-const (
- copyData = 'd'
- copyFail = 'f'
- copyDone = 'c'
- varHeaderSize = 4
-)
-
-type FieldDescription struct {
- Name string
- Table pgtype.OID
- AttributeNumber uint16
- DataType pgtype.OID
- DataTypeSize int16
- DataTypeName string
- Modifier uint32
- FormatCode int16
-}
-
-func (fd FieldDescription) Length() (int64, bool) {
- switch fd.DataType {
- case pgtype.TextOID, pgtype.ByteaOID:
- return math.MaxInt64, true
- case pgtype.VarcharOID, pgtype.BPCharArrayOID:
- return int64(fd.Modifier - varHeaderSize), true
- default:
- return 0, false
- }
-}
-
-func (fd FieldDescription) PrecisionScale() (precision, scale int64, ok bool) {
- switch fd.DataType {
- case pgtype.NumericOID:
- mod := fd.Modifier - varHeaderSize
- precision = int64((mod >> 16) & 0xffff)
- scale = int64(mod & 0xffff)
- return precision, scale, true
- default:
- return 0, 0, false
- }
-}
-
-func (fd FieldDescription) Type() reflect.Type {
- switch fd.DataType {
- case pgtype.Int8OID:
- return reflect.TypeOf(int64(0))
- case pgtype.Int4OID:
- return reflect.TypeOf(int32(0))
- case pgtype.Int2OID:
- return reflect.TypeOf(int16(0))
- case pgtype.VarcharOID, pgtype.BPCharArrayOID, pgtype.TextOID:
- return reflect.TypeOf("")
- case pgtype.BoolOID:
- return reflect.TypeOf(false)
- case pgtype.NumericOID:
- return reflect.TypeOf(float64(0))
- case pgtype.DateOID, pgtype.TimestampOID, pgtype.TimestamptzOID:
- return reflect.TypeOf(time.Time{})
- case pgtype.ByteaOID:
- return reflect.TypeOf([]byte(nil))
- default:
- return reflect.TypeOf(new(interface{})).Elem()
- }
-}
-
-// PgError represents an error reported by the PostgreSQL server. See
-// http://www.postgresql.org/docs/9.3/static/protocol-error-fields.html for
-// detailed field description.
-type PgError struct {
- Severity string
- Code string
- Message string
- Detail string
- Hint string
- Position int32
- InternalPosition int32
- InternalQuery string
- Where string
- SchemaName string
- TableName string
- ColumnName string
- DataTypeName string
- ConstraintName string
- File string
- Line int32
- Routine string
-}
-
-func (pe PgError) Error() string {
- return pe.Severity + ": " + pe.Message + " (SQLSTATE " + pe.Code + ")"
-}
-
-// Notice represents a notice response message reported by the PostgreSQL
-// server. Be aware that this is distinct from LISTEN/NOTIFY notification.
-type Notice PgError
-
-// appendParse appends a PostgreSQL wire protocol parse message to buf and returns it.
-func appendParse(buf []byte, name string, query string, parameterOIDs []pgtype.OID) []byte {
- buf = append(buf, 'P')
- sp := len(buf)
- buf = pgio.AppendInt32(buf, -1)
- buf = append(buf, name...)
- buf = append(buf, 0)
- buf = append(buf, query...)
- buf = append(buf, 0)
-
- buf = pgio.AppendInt16(buf, int16(len(parameterOIDs)))
- for _, oid := range parameterOIDs {
- buf = pgio.AppendUint32(buf, uint32(oid))
- }
- pgio.SetInt32(buf[sp:], int32(len(buf[sp:])))
-
- return buf
-}
-
-// appendDescribe appends a PostgreSQL wire protocol describe message to buf and returns it.
-func appendDescribe(buf []byte, objectType byte, name string) []byte {
- buf = append(buf, 'D')
- sp := len(buf)
- buf = pgio.AppendInt32(buf, -1)
- buf = append(buf, objectType)
- buf = append(buf, name...)
- buf = append(buf, 0)
- pgio.SetInt32(buf[sp:], int32(len(buf[sp:])))
-
- return buf
-}
-
-// appendSync appends a PostgreSQL wire protocol sync message to buf and returns it.
-func appendSync(buf []byte) []byte {
- buf = append(buf, 'S')
- buf = pgio.AppendInt32(buf, 4)
-
- return buf
-}
-
-// appendBind appends a PostgreSQL wire protocol bind message to buf and returns it.
-func appendBind(
- buf []byte,
- destinationPortal,
- preparedStatement string,
- connInfo *pgtype.ConnInfo,
- parameterOIDs []pgtype.OID,
- arguments []interface{},
- resultFormatCodes []int16,
-) ([]byte, error) {
- buf = append(buf, 'B')
- sp := len(buf)
- buf = pgio.AppendInt32(buf, -1)
- buf = append(buf, destinationPortal...)
- buf = append(buf, 0)
- buf = append(buf, preparedStatement...)
- buf = append(buf, 0)
-
- buf = pgio.AppendInt16(buf, int16(len(parameterOIDs)))
- for i, oid := range parameterOIDs {
- buf = pgio.AppendInt16(buf, chooseParameterFormatCode(connInfo, oid, arguments[i]))
- }
-
- buf = pgio.AppendInt16(buf, int16(len(arguments)))
- for i, oid := range parameterOIDs {
- var err error
- buf, err = encodePreparedStatementArgument(connInfo, buf, oid, arguments[i])
- if err != nil {
- return nil, err
- }
- }
-
- buf = pgio.AppendInt16(buf, int16(len(resultFormatCodes)))
- for _, fc := range resultFormatCodes {
- buf = pgio.AppendInt16(buf, fc)
- }
- pgio.SetInt32(buf[sp:], int32(len(buf[sp:])))
-
- return buf, nil
-}
-
-// appendExecute appends a PostgreSQL wire protocol execute message to buf and returns it.
-func appendExecute(buf []byte, portal string, maxRows uint32) []byte {
- buf = append(buf, 'E')
- sp := len(buf)
- buf = pgio.AppendInt32(buf, -1)
-
- buf = append(buf, portal...)
- buf = append(buf, 0)
- buf = pgio.AppendUint32(buf, maxRows)
-
- pgio.SetInt32(buf[sp:], int32(len(buf[sp:])))
-
- return buf
-}
-
-// appendQuery appends a PostgreSQL wire protocol query message to buf and returns it.
-func appendQuery(buf []byte, query string) []byte {
- buf = append(buf, 'Q')
- sp := len(buf)
- buf = pgio.AppendInt32(buf, -1)
- buf = append(buf, query...)
- buf = append(buf, 0)
- pgio.SetInt32(buf[sp:], int32(len(buf[sp:])))
-
- return buf
-}