• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

shamcode / simd / 11548165371

28 Oct 2024 05:50AM UTC coverage: 87.467% (+2.2%) from 85.281%
11548165371

push

github

shamcode
Change go version

1996 of 2282 relevant lines covered (87.47%)

39.93 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

74.19
/debug/executor.go
1
package debug
2

3
import (
4
        "context"
5
        "strings"
6

7
        "github.com/shamcode/simd/record"
8

9
        "github.com/shamcode/simd/executor"
10
        "github.com/shamcode/simd/query"
11
)
12

13
type QueryExecutorWithDump[R record.Record] interface {
14
        executor.QueryExecutor[R]
15
        DumpQuery(query query.Query[R], onlyTotal bool)
16
}
17

18
type debugExecutor[R record.Record] struct {
19
        executor executor.QueryExecutor[R]
20
        dump     func(string)
21
}
22

23
func (e *debugExecutor[R]) FetchTotal(
24
        ctx context.Context,
25
        query query.Query[R],
26
) (int, error) {
×
27
        e.DumpQuery(query, true)
×
28
        return e.executor.FetchTotal(ctx, query)
×
29
}
×
30

31
func (e *debugExecutor[R]) FetchAll(
32
        ctx context.Context,
33
        query query.Query[R],
34
) (executor.Iterator[R], error) {
25✔
35
        e.DumpQuery(query, false)
25✔
36
        return e.executor.FetchAll(ctx, query)
25✔
37
}
25✔
38

39
func (e *debugExecutor[R]) FetchAllAndTotal(
40
        ctx context.Context,
41
        query query.Query[R],
42
) (executor.Iterator[R], int, error) {
×
43
        e.DumpQuery(query, false)
×
44
        return e.executor.FetchAllAndTotal(ctx, query)
×
45
}
×
46

47
func (e *debugExecutor[R]) DumpQuery(query query.Query[R], onlyTotal bool) {
25✔
48
        var result strings.Builder
25✔
49
        result.WriteString("SELECT ")
25✔
50
        if !onlyTotal {
50✔
51
                result.WriteString("*, ")
25✔
52
        }
25✔
53
        result.WriteString("COUNT(*)")
25✔
54
        if dq, ok := any(query).(QueryWithDumper[R]); ok {
49✔
55
                result.WriteString(dq.String())
24✔
56
        } else {
25✔
57
                result.WriteString(" <Query dont implement QueryWithDumper interface, check QueryBuilder>")
1✔
58
        }
1✔
59
        e.dump(result.String())
25✔
60
}
61

62
func WrapQueryExecutor[R record.Record](
63
        executor executor.QueryExecutor[R],
64
        dump func(string),
65
) executor.QueryExecutor[R] {
25✔
66
        return &debugExecutor[R]{
25✔
67
                executor: executor,
25✔
68
                dump:     dump,
25✔
69
        }
25✔
70
}
25✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc