@@ -748,7 +748,7 @@ func (q *SelectQuery) Rows(ctx context.Context) (*sql.Rows, error) {
748
748
query := internal .String (queryBytes )
749
749
750
750
ctx , event := q .db .beforeQuery (ctx , q , query , nil , query , q .model )
751
- rows , err := q .conn .QueryContext (ctx , query )
751
+ rows , err := q .resolveConn ( q ) .QueryContext (ctx , query )
752
752
q .db .afterQuery (ctx , event , nil , err )
753
753
return rows , err
754
754
}
@@ -876,7 +876,7 @@ func (q *SelectQuery) Count(ctx context.Context) (int, error) {
876
876
ctx , event := q .db .beforeQuery (ctx , qq , query , nil , query , q .model )
877
877
878
878
var num int
879
- err = q .conn .QueryRowContext (ctx , query ).Scan (& num )
879
+ err = q .resolveConn ( q ) .QueryRowContext (ctx , query ).Scan (& num )
880
880
881
881
q .db .afterQuery (ctx , event , nil , err )
882
882
@@ -894,13 +894,15 @@ func (q *SelectQuery) ScanAndCount(ctx context.Context, dest ...interface{}) (in
894
894
return int (n ), nil
895
895
}
896
896
}
897
- if _ , ok := q .conn .( * DB ); ok {
898
- return q .scanAndCountConc (ctx , dest ... )
897
+ if q .conn == nil {
898
+ return q .scanAndCountConcurrently (ctx , dest ... )
899
899
}
900
900
return q .scanAndCountSeq (ctx , dest ... )
901
901
}
902
902
903
- func (q * SelectQuery ) scanAndCountConc (ctx context.Context , dest ... interface {}) (int , error ) {
903
+ func (q * SelectQuery ) scanAndCountConcurrently (
904
+ ctx context.Context , dest ... interface {},
905
+ ) (int , error ) {
904
906
var count int
905
907
var wg sync.WaitGroup
906
908
var mu sync.Mutex
@@ -978,7 +980,7 @@ func (q *SelectQuery) selectExists(ctx context.Context) (bool, error) {
978
980
ctx , event := q .db .beforeQuery (ctx , qq , query , nil , query , q .model )
979
981
980
982
var exists bool
981
- err = q .conn .QueryRowContext (ctx , query ).Scan (& exists )
983
+ err = q .resolveConn ( q ) .QueryRowContext (ctx , query ).Scan (& exists )
982
984
983
985
q .db .afterQuery (ctx , event , nil , err )
984
986
0 commit comments