mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-30 22:32:25 -05:00 
			
		
		
		
	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
This commit is contained in:
		
					parent
					
						
							
								071eca20ce
							
						
					
				
			
			
				commit
				
					
						2dc9fc1626
					
				
			
		
					 713 changed files with 98694 additions and 22704 deletions
				
			
		
							
								
								
									
										178
									
								
								vendor/github.com/uptrace/bun/dialect/append.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										178
									
								
								vendor/github.com/uptrace/bun/dialect/append.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,178 @@ | |||
| package dialect | ||||
| 
 | ||||
| import ( | ||||
| 	"encoding/hex" | ||||
| 	"math" | ||||
| 	"strconv" | ||||
| 	"time" | ||||
| 	"unicode/utf8" | ||||
| 
 | ||||
| 	"github.com/uptrace/bun/internal" | ||||
| 	"github.com/uptrace/bun/internal/parser" | ||||
| ) | ||||
| 
 | ||||
| func AppendError(b []byte, err error) []byte { | ||||
| 	b = append(b, "?!("...) | ||||
| 	b = append(b, err.Error()...) | ||||
| 	b = append(b, ')') | ||||
| 	return b | ||||
| } | ||||
| 
 | ||||
| func AppendNull(b []byte) []byte { | ||||
| 	return append(b, "NULL"...) | ||||
| } | ||||
| 
 | ||||
| func AppendBool(b []byte, v bool) []byte { | ||||
| 	if v { | ||||
| 		return append(b, "TRUE"...) | ||||
| 	} | ||||
| 	return append(b, "FALSE"...) | ||||
| } | ||||
| 
 | ||||
| func AppendFloat32(b []byte, v float32) []byte { | ||||
| 	return appendFloat(b, float64(v), 32) | ||||
| } | ||||
| 
 | ||||
| func AppendFloat64(b []byte, v float64) []byte { | ||||
| 	return appendFloat(b, v, 64) | ||||
| } | ||||
| 
 | ||||
| func appendFloat(b []byte, v float64, bitSize int) []byte { | ||||
| 	switch { | ||||
| 	case math.IsNaN(v): | ||||
| 		return append(b, "'NaN'"...) | ||||
| 	case math.IsInf(v, 1): | ||||
| 		return append(b, "'Infinity'"...) | ||||
| 	case math.IsInf(v, -1): | ||||
| 		return append(b, "'-Infinity'"...) | ||||
| 	default: | ||||
| 		return strconv.AppendFloat(b, v, 'f', -1, bitSize) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func AppendString(b []byte, s string) []byte { | ||||
| 	b = append(b, '\'') | ||||
| 	for _, r := range s { | ||||
| 		if r == '\000' { | ||||
| 			continue | ||||
| 		} | ||||
| 
 | ||||
| 		if r == '\'' { | ||||
| 			b = append(b, '\'', '\'') | ||||
| 			continue | ||||
| 		} | ||||
| 
 | ||||
| 		if r < utf8.RuneSelf { | ||||
| 			b = append(b, byte(r)) | ||||
| 			continue | ||||
| 		} | ||||
| 
 | ||||
| 		l := len(b) | ||||
| 		if cap(b)-l < utf8.UTFMax { | ||||
| 			b = append(b, make([]byte, utf8.UTFMax)...) | ||||
| 		} | ||||
| 		n := utf8.EncodeRune(b[l:l+utf8.UTFMax], r) | ||||
| 		b = b[:l+n] | ||||
| 	} | ||||
| 	b = append(b, '\'') | ||||
| 	return b | ||||
| } | ||||
| 
 | ||||
| func AppendBytes(b []byte, bytes []byte) []byte { | ||||
| 	if bytes == nil { | ||||
| 		return AppendNull(b) | ||||
| 	} | ||||
| 
 | ||||
| 	b = append(b, `'\x`...) | ||||
| 
 | ||||
| 	s := len(b) | ||||
| 	b = append(b, make([]byte, hex.EncodedLen(len(bytes)))...) | ||||
| 	hex.Encode(b[s:], bytes) | ||||
| 
 | ||||
| 	b = append(b, '\'') | ||||
| 
 | ||||
| 	return b | ||||
| } | ||||
| 
 | ||||
| func AppendTime(b []byte, tm time.Time) []byte { | ||||
| 	if tm.IsZero() { | ||||
| 		return AppendNull(b) | ||||
| 	} | ||||
| 	b = append(b, '\'') | ||||
| 	b = tm.UTC().AppendFormat(b, "2006-01-02 15:04:05.999999-07:00") | ||||
| 	b = append(b, '\'') | ||||
| 	return b | ||||
| } | ||||
| 
 | ||||
| func AppendJSON(b, jsonb []byte) []byte { | ||||
| 	b = append(b, '\'') | ||||
| 
 | ||||
| 	p := parser.New(jsonb) | ||||
| 	for p.Valid() { | ||||
| 		c := p.Read() | ||||
| 		switch c { | ||||
| 		case '"': | ||||
| 			b = append(b, '"') | ||||
| 		case '\'': | ||||
| 			b = append(b, "''"...) | ||||
| 		case '\000': | ||||
| 			continue | ||||
| 		case '\\': | ||||
| 			if p.SkipBytes([]byte("u0000")) { | ||||
| 				b = append(b, `\\u0000`...) | ||||
| 			} else { | ||||
| 				b = append(b, '\\') | ||||
| 				if p.Valid() { | ||||
| 					b = append(b, p.Read()) | ||||
| 				} | ||||
| 			} | ||||
| 		default: | ||||
| 			b = append(b, c) | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	b = append(b, '\'') | ||||
| 
 | ||||
| 	return b | ||||
| } | ||||
| 
 | ||||
| //------------------------------------------------------------------------------ | ||||
| 
 | ||||
| func AppendIdent(b []byte, field string, quote byte) []byte { | ||||
| 	return appendIdent(b, internal.Bytes(field), quote) | ||||
| } | ||||
| 
 | ||||
| func appendIdent(b, src []byte, quote byte) []byte { | ||||
| 	var quoted bool | ||||
| loop: | ||||
| 	for _, c := range src { | ||||
| 		switch c { | ||||
| 		case '*': | ||||
| 			if !quoted { | ||||
| 				b = append(b, '*') | ||||
| 				continue loop | ||||
| 			} | ||||
| 		case '.': | ||||
| 			if quoted { | ||||
| 				b = append(b, quote) | ||||
| 				quoted = false | ||||
| 			} | ||||
| 			b = append(b, '.') | ||||
| 			continue loop | ||||
| 		} | ||||
| 
 | ||||
| 		if !quoted { | ||||
| 			b = append(b, quote) | ||||
| 			quoted = true | ||||
| 		} | ||||
| 		if c == quote { | ||||
| 			b = append(b, quote, quote) | ||||
| 		} else { | ||||
| 			b = append(b, c) | ||||
| 		} | ||||
| 	} | ||||
| 	if quoted { | ||||
| 		b = append(b, quote) | ||||
| 	} | ||||
| 	return b | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue