summaryrefslogtreecommitdiff
path: root/vendor/github.com/go-pg/pg/v10/orm/composite_parser.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2021-08-25 15:34:33 +0200
committerLibravatar GitHub <noreply@github.com>2021-08-25 15:34:33 +0200
commit2dc9fc1626507bb54417fc4a1920b847cafb27a2 (patch)
tree4ddeac479b923db38090aac8bd9209f3646851c1 /vendor/github.com/go-pg/pg/v10/orm/composite_parser.go
parentManually approves followers (#146) (diff)
downloadgotosocial-2dc9fc1626507bb54417fc4a1920b847cafb27a2.tar.xz
Pg to bun (#148)
* start moving to bun * changing more stuff * more * and yet more * tests passing * seems stable now * more big changes * small fix * little fixes
Diffstat (limited to 'vendor/github.com/go-pg/pg/v10/orm/composite_parser.go')
-rw-r--r--vendor/github.com/go-pg/pg/v10/orm/composite_parser.go140
1 files changed, 0 insertions, 140 deletions
diff --git a/vendor/github.com/go-pg/pg/v10/orm/composite_parser.go b/vendor/github.com/go-pg/pg/v10/orm/composite_parser.go
deleted file mode 100644
index 29e500444..000000000
--- a/vendor/github.com/go-pg/pg/v10/orm/composite_parser.go
+++ /dev/null
@@ -1,140 +0,0 @@
-package orm
-
-import (
- "bufio"
- "errors"
- "fmt"
- "io"
-
- "github.com/go-pg/pg/v10/internal/parser"
- "github.com/go-pg/pg/v10/types"
-)
-
-var errEndOfComposite = errors.New("pg: end of composite")
-
-type compositeParser struct {
- p parser.StreamingParser
-
- stickyErr error
-}
-
-func newCompositeParserErr(err error) *compositeParser {
- return &compositeParser{
- stickyErr: err,
- }
-}
-
-func newCompositeParser(rd types.Reader) *compositeParser {
- p := parser.NewStreamingParser(rd)
- err := p.SkipByte('(')
- if err != nil {
- return newCompositeParserErr(err)
- }
- return &compositeParser{
- p: p,
- }
-}
-
-func (p *compositeParser) NextElem() ([]byte, error) {
- if p.stickyErr != nil {
- return nil, p.stickyErr
- }
-
- c, err := p.p.ReadByte()
- if err != nil {
- if err == io.EOF {
- return nil, errEndOfComposite
- }
- return nil, err
- }
-
- switch c {
- case '"':
- return p.readQuoted()
- case ',':
- return nil, nil
- case ')':
- return nil, errEndOfComposite
- default:
- _ = p.p.UnreadByte()
- }
-
- var b []byte
- for {
- tmp, err := p.p.ReadSlice(',')
- if err == nil {
- if b == nil {
- b = tmp
- } else {
- b = append(b, tmp...)
- }
- b = b[:len(b)-1]
- break
- }
- b = append(b, tmp...)
- if err == bufio.ErrBufferFull {
- continue
- }
- if err == io.EOF {
- if b[len(b)-1] == ')' {
- b = b[:len(b)-1]
- break
- }
- }
- return nil, err
- }
-
- if len(b) == 0 { // NULL
- return nil, nil
- }
- return b, nil
-}
-
-func (p *compositeParser) readQuoted() ([]byte, error) {
- var b []byte
-
- c, err := p.p.ReadByte()
- if err != nil {
- return nil, err
- }
-
- for {
- next, err := p.p.ReadByte()
- if err != nil {
- return nil, err
- }
-
- if c == '\\' || c == '\'' {
- if next == c {
- b = append(b, c)
- c, err = p.p.ReadByte()
- if err != nil {
- return nil, err
- }
- } else {
- b = append(b, c)
- c = next
- }
- continue
- }
-
- if c == '"' {
- switch next {
- case '"':
- b = append(b, '"')
- c, err = p.p.ReadByte()
- if err != nil {
- return nil, err
- }
- case ',', ')':
- return b, nil
- default:
- return nil, fmt.Errorf("pg: got %q, wanted ',' or ')'", c)
- }
- continue
- }
-
- b = append(b, c)
- c = next
- }
-}