Compare commits
	
		
			1 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 2eacf6fbc4 | 
| @@ -74,6 +74,9 @@ func performSingleMigration(d *Db, migrationScript []byte, targetVersion int) er | ||||
|  | ||||
| 	for _, statement := range statements { | ||||
| 		statement = strings.TrimSpace(statement) | ||||
| 		if statement == "" { | ||||
| 			continue | ||||
| 		} | ||||
| 		err = tx.Query(statement).Exec() | ||||
| 		if err != nil { | ||||
| 			return fmt.Errorf("error performing migration: %v", err) | ||||
|   | ||||
							
								
								
									
										4
									
								
								query.go
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								query.go
									
									
									
									
									
								
							| @@ -58,7 +58,7 @@ func (q *Query) Exec() (rerr error) { | ||||
| 	defer q.unlock() | ||||
|  | ||||
| 	if q.stmt != nil { | ||||
| 		defer func() { rerr = q.stmt.Finalize() }() | ||||
| 		defer func() { forwardError(q.stmt.Finalize(), &rerr) }() | ||||
| 	} | ||||
| 	if q.err != nil { | ||||
| 		return q.err | ||||
| @@ -84,7 +84,7 @@ func (q *Query) ScanSingle(results ...any) (rerr error) { | ||||
| 	defer q.unlock() | ||||
| 	// Scan rows | ||||
| 	if q.stmt != nil { | ||||
| 		defer func() { rerr = q.stmt.Finalize() }() | ||||
| 		defer func() { forwardError(q.stmt.Finalize(), &rerr) }() | ||||
| 	} | ||||
| 	if q.err != nil { | ||||
| 		return q.err | ||||
|   | ||||
| @@ -73,11 +73,20 @@ func TestUpdateQuery(t *testing.T) { | ||||
| 		tx := db.MustBegin() | ||||
| 		defer tx.MustRollback() | ||||
| 		tx.Query("insert into mytable(key, value) values ('lorem', 'bar')").MustExec() | ||||
| 		tx.Query("update mytable set value = 'ipsum' where key = 'lorem'").MustExec() | ||||
| 		value := "ipsum" | ||||
| 		key := "lorem" | ||||
| 		tx.Query("update mytable set value = ? where key = ?").Bind(value, key).MustExec() | ||||
| 		tx.MustCommit() | ||||
| 	}() | ||||
|  | ||||
| 	var value string | ||||
| 	db.Query("select value from mytable where value = 'ipsum'").MustScanSingle(&value) | ||||
| 	db.Query("select value from mytable where key = 'lorem'").MustScanSingle(&value) | ||||
| 	require.Equal(t, "ipsum", value) | ||||
| } | ||||
|  | ||||
| func TestUpdateQueryWithWrongArguments(t *testing.T) { | ||||
| 	db := openTestDb(t) | ||||
| 	value := "ipsum" | ||||
| 	err := db.Query("insert into mytable(key, value) values ('lorem', ?)").Bind(&value).Exec() | ||||
| 	require.Error(t, err) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user