// Writes BIND, EXECUTE and SYNC messages. func writeBindExecuteMsg(buf *pool.Buffer, name string, params ...interface{}) error { const paramLenWidth = 4 buf.StartMessage(bindMsg) buf.WriteString("") buf.WriteString(name) buf.WriteInt16(0) buf.WriteInt16(int16(len(params))) for _, param := range params { buf.StartParam() bytes := types.Append(buf.Bytes, param, false) if bytes != nil { buf.Bytes = bytes buf.FinishParam() } else { buf.FinishNullParam() } } buf.WriteInt16(0) buf.FinishMessage() buf.StartMessage(executeMsg) buf.WriteString("") buf.WriteInt32(0) buf.FinishMessage() buf.StartMessage(syncMsg) buf.FinishMessage() return nil }
func writeCancelRequestMsg(buf *pool.Buffer, processId, secretKey int32) { buf.StartMessage(0) buf.WriteInt32(80877102) buf.WriteInt32(processId) buf.WriteInt32(secretKey) buf.FinishMessage() }
func writeStartupMsg(buf *pool.Buffer, user, database string) { buf.StartMessage(0) buf.WriteInt32(196608) buf.WriteString("user") buf.WriteString(user) buf.WriteString("database") buf.WriteString(database) buf.WriteString("") buf.FinishMessage() }
func writeSSLMsg(buf *pool.Buffer) { buf.StartMessage(0) buf.WriteInt32(80877103) buf.FinishMessage() }