Compare commits
	
		
			3 Commits
		
	
	
		
			93844c04b2
			...
			v0.14.0
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 33f1a94fb2 | |||
| 6880fb5af4 | |||
| e9b12dc3f6 | 
| @@ -4,3 +4,4 @@ import "errors" | ||||
|  | ||||
| var ErrNoRows = errors.New("mysqlite: no rows returned") | ||||
| var ErrMissingBind = errors.New("mysqlite: missing bind value") | ||||
| var ErrMissingScan = errors.New("mysqlite: missing scan value") | ||||
|   | ||||
							
								
								
									
										6
									
								
								query.go
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								query.go
									
									
									
									
									
								
							| @@ -66,6 +66,9 @@ func (q *Query) bindInto(into *int, args ...any) *Query { | ||||
| 		} else if asInt, ok := arg.(int); ok { | ||||
| 			q.stmt.BindInt64(*into, int64(asInt)) | ||||
| 			q.binds++ | ||||
| 		} else if asInt64, ok := arg.(int64); ok { | ||||
| 			q.stmt.BindInt64(*into, asInt64) | ||||
| 			q.binds++ | ||||
| 		} else if asFloat, ok := arg.(float64); ok { | ||||
| 			q.stmt.BindFloat(*into, asFloat) | ||||
| 			q.binds++ | ||||
| @@ -215,6 +218,9 @@ func (r *Rows) MustNext() bool { | ||||
| } | ||||
|  | ||||
| func (r *Rows) Scan(results ...any) error { | ||||
| 	if r.query.stmt.ColumnCount() != len(results) { | ||||
| 		return ErrMissingScan | ||||
| 	} | ||||
| 	for i, arg := range results { | ||||
| 		err := r.scanArgument(i, arg) | ||||
| 		if err != nil { | ||||
|   | ||||
| @@ -28,6 +28,23 @@ func TestSimpleQueryWithNoResults(t *testing.T) { | ||||
| 	require.True(t, errors.Is(err, ErrNoRows)) | ||||
| } | ||||
|  | ||||
| func TestScanWithMissingValues(t *testing.T) { | ||||
| 	db := openTestDb(t) | ||||
| 	var count int | ||||
| 	err := db.Query("select 1, 2").ScanSingle(&count) | ||||
| 	require.Equal(t, ErrMissingScan, err) | ||||
| } | ||||
|  | ||||
| func TestBindInt64(t *testing.T) { | ||||
| 	db := openTestDb(t) | ||||
| 	var value int64 | ||||
| 	var result int64 | ||||
| 	value = 5 | ||||
| 	err := db.Query("select ?").Bind(&value).ScanSingle(&result) | ||||
| 	require.NoError(t, err) | ||||
| 	require.Equal(t, int64(5), result) | ||||
| } | ||||
|  | ||||
| func TestSimpleQueryWithArgs(t *testing.T) { | ||||
| 	db := openTestDb(t) | ||||
| 	var value string | ||||
|   | ||||
		Reference in New Issue
	
	Block a user