diff --git a/query.go b/query.go index 0c50659..6b7d626 100644 --- a/query.go +++ b/query.go @@ -217,6 +217,8 @@ func (r *Rows) scanArgument(i int, arg any) error { *asString = r.query.stmt.ColumnText(i) } else if asInt, ok := arg.(*int); ok { *asInt = r.query.stmt.ColumnInt(i) + } else if asInt, ok := arg.(*int64); ok { + *asInt = r.query.stmt.ColumnInt64(i) } else if asBool, ok := arg.(*bool); ok { *asBool = r.query.stmt.ColumnBool(i) } else if reflect.TypeOf(arg).Kind() == reflect.Ptr && reflect.TypeOf(arg).Elem().Kind() == reflect.Ptr { diff --git a/query_test.go b/query_test.go index 24fbd6f..66397fa 100644 --- a/query_test.go +++ b/query_test.go @@ -167,6 +167,15 @@ func TestQueryWithPointerStringArguments(t *testing.T) { require.Equal(t, "bar", *result) } +func TestQueryWithInt64Scan(t *testing.T) { + db := openTestDb(t) + var result int64 + err := db.Query("select 2").ScanSingle(&result) + require.NoError(t, err) + require.NotNil(t, result) + require.Equal(t, int64(2), result) +} + func TestQueryWithPointerStringArgumentsCanSetToNull(t *testing.T) { db := openTestDb(t) db.Query("update mytable set value=null where key = 'foo'").MustExec()