mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 04:32:25 -05:00 
			
		
		
		
	[chore] update go-sqlite3 to v0.19.0 (#3406)
This commit is contained in:
		
					parent
					
						
							
								1e421cb912
							
						
					
				
			
			
				commit
				
					
						2c3f1f4ddb
					
				
			
		
					 31 changed files with 274 additions and 171 deletions
				
			
		
							
								
								
									
										50
									
								
								vendor/github.com/ncruces/go-sqlite3/quote.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										50
									
								
								vendor/github.com/ncruces/go-sqlite3/quote.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -3,6 +3,7 @@ package sqlite3 | |||
| import ( | ||||
| 	"bytes" | ||||
| 	"math" | ||||
| 	"reflect" | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
| 	"time" | ||||
|  | @ -13,6 +14,9 @@ import ( | |||
| 
 | ||||
| // Quote escapes and quotes a value | ||||
| // making it safe to embed in SQL text. | ||||
| // Strings with embedded NUL characters are truncated. | ||||
| // | ||||
| // https://sqlite.org/lang_corefunc.html#quote | ||||
| func Quote(value any) string { | ||||
| 	switch v := value.(type) { | ||||
| 	case nil: | ||||
|  | @ -42,8 +46,8 @@ func Quote(value any) string { | |||
| 		return "'" + v.Format(time.RFC3339Nano) + "'" | ||||
| 
 | ||||
| 	case string: | ||||
| 		if strings.IndexByte(v, 0) >= 0 { | ||||
| 			break | ||||
| 		if i := strings.IndexByte(v, 0); i >= 0 { | ||||
| 			v = v[:i] | ||||
| 		} | ||||
| 
 | ||||
| 		buf := make([]byte, 2+len(v)+strings.Count(v, "'")) | ||||
|  | @ -57,13 +61,13 @@ func Quote(value any) string { | |||
| 			buf[i] = b | ||||
| 			i += 1 | ||||
| 		} | ||||
| 		buf[i] = '\'' | ||||
| 		buf[len(buf)-1] = '\'' | ||||
| 		return unsafe.String(&buf[0], len(buf)) | ||||
| 
 | ||||
| 	case []byte: | ||||
| 		buf := make([]byte, 3+2*len(v)) | ||||
| 		buf[0] = 'x' | ||||
| 		buf[1] = '\'' | ||||
| 		buf[0] = 'x' | ||||
| 		i := 2 | ||||
| 		for _, b := range v { | ||||
| 			const hex = "0123456789ABCDEF" | ||||
|  | @ -71,26 +75,50 @@ func Quote(value any) string { | |||
| 			buf[i+1] = hex[b%16] | ||||
| 			i += 2 | ||||
| 		} | ||||
| 		buf[i] = '\'' | ||||
| 		buf[len(buf)-1] = '\'' | ||||
| 		return unsafe.String(&buf[0], len(buf)) | ||||
| 
 | ||||
| 	case ZeroBlob: | ||||
| 		if v > ZeroBlob(1e9-3)/2 { | ||||
| 			break | ||||
| 		} | ||||
| 
 | ||||
| 		buf := bytes.Repeat([]byte("0"), int(3+2*int64(v))) | ||||
| 		buf[0] = 'x' | ||||
| 		buf[1] = '\'' | ||||
| 		buf[0] = 'x' | ||||
| 		buf[len(buf)-1] = '\'' | ||||
| 		return unsafe.String(&buf[0], len(buf)) | ||||
| 	} | ||||
| 
 | ||||
| 	v := reflect.ValueOf(value) | ||||
| 	k := v.Kind() | ||||
| 
 | ||||
| 	if k == reflect.Interface || k == reflect.Pointer { | ||||
| 		if v.IsNil() { | ||||
| 			return "NULL" | ||||
| 		} | ||||
| 		v = v.Elem() | ||||
| 		k = v.Kind() | ||||
| 	} | ||||
| 
 | ||||
| 	switch { | ||||
| 	case v.CanInt(): | ||||
| 		return strconv.FormatInt(v.Int(), 10) | ||||
| 	case v.CanUint(): | ||||
| 		return strconv.FormatUint(v.Uint(), 10) | ||||
| 	case v.CanFloat(): | ||||
| 		return Quote(v.Float()) | ||||
| 	case k == reflect.Bool: | ||||
| 		return Quote(v.Bool()) | ||||
| 	case k == reflect.String: | ||||
| 		return Quote(v.String()) | ||||
| 	case (k == reflect.Slice || k == reflect.Array && v.CanAddr()) && | ||||
| 		v.Type().Elem().Kind() == reflect.Uint8: | ||||
| 		return Quote(v.Bytes()) | ||||
| 	} | ||||
| 
 | ||||
| 	panic(util.ValueErr) | ||||
| } | ||||
| 
 | ||||
| // QuoteIdentifier escapes and quotes an identifier | ||||
| // making it safe to embed in SQL text. | ||||
| // Strings with embedded NUL characters panic. | ||||
| func QuoteIdentifier(id string) string { | ||||
| 	if strings.IndexByte(id, 0) >= 0 { | ||||
| 		panic(util.ValueErr) | ||||
|  | @ -107,6 +135,6 @@ func QuoteIdentifier(id string) string { | |||
| 		buf[i] = b | ||||
| 		i += 1 | ||||
| 	} | ||||
| 	buf[i] = '"' | ||||
| 	buf[len(buf)-1] = '"' | ||||
| 	return unsafe.String(&buf[0], len(buf)) | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue