Skip to content

Commit 47d86f6

Browse files
committed
feat(session): expose Adapter and Scan for low-level db ops
1 parent ed603b3 commit 47d86f6

File tree

7 files changed

+46
-16
lines changed

7 files changed

+46
-16
lines changed

internal/sql/adapter/sql.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,3 @@ func SqlDoFromContext(ctx context.Context) SqlDo {
2525
}
2626
return nil
2727
}
28-
29-
func InTx(ctx context.Context) bool {
30-
sqlDo, ok := ctx.Value(sqlDoContext{}).(SqlDo)
31-
if ok {
32-
if _, ok := sqlDo.(*sql.Tx); ok {
33-
return true
34-
}
35-
}
36-
return false
37-
}

pkg/session/adapter.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package session
2+
3+
import (
4+
"context"
5+
6+
"github.com/octohelm/storage/internal/sql/adapter"
7+
)
8+
9+
type Adapter = adapter.Adapter
10+
11+
func Open(ctx context.Context, endpoint string) (Adapter, error) {
12+
return adapter.Open(ctx, endpoint)
13+
}

pkg/session/db/database.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ type Database struct {
3535
name string
3636
tables *sqlbuilder.Tables
3737

38-
db adapter.Adapter
39-
dbRo adapter.Adapter
38+
db session.Adapter
39+
dbRo session.Adapter
4040
}
4141

4242
func (d *Database) SetDefaults() {
@@ -70,7 +70,7 @@ func (d *Database) Init(ctx context.Context) error {
7070
return err
7171
}
7272

73-
db, err := adapter.Open(ctx, endpoint.String())
73+
db, err := session.Open(ctx, endpoint.String())
7474
if err != nil {
7575
return err
7676
}

pkg/session/scanner.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package session
2+
3+
import "github.com/octohelm/storage/internal/sql/scanner"
4+
5+
var Scan = scanner.Scan
6+
7+
type ScanIterator = scanner.ScanIterator
8+
9+
func Recv[T any](next func(v *T) error) ScanIterator {
10+
return scanner.Recv(next)
11+
}

pkg/session/session.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ type Session interface {
2828

2929
Tx(ctx context.Context, fn func(ctx context.Context) error) error
3030

31-
Adapter(options ...OptionFunc) adapter.Adapter
31+
Adapter(options ...OptionFunc) Adapter
3232
}
3333

34-
func New(a adapter.Adapter, name string) Session {
34+
func New(a Adapter, name string) Session {
3535
return &session{
3636
name: name,
3737
adapter: a,

pkg/session/util.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package session
2+
3+
import (
4+
"context"
5+
"database/sql"
6+
7+
"github.com/octohelm/storage/internal/sql/adapter"
8+
)
9+
10+
func InTx(ctx context.Context) bool {
11+
sqlDo := adapter.SqlDoFromContext(ctx)
12+
if _, ok := sqlDo.(*sql.Tx); ok {
13+
return true
14+
}
15+
return false
16+
}

pkg/sqlpipe/ex/source.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ func (e *Executor[M]) adapterOf(ctx context.Context, s session.Session) adapter.
6464
if e.forCommit {
6565
return s.Adapter()
6666
}
67-
if adapter.InTx(ctx) {
67+
if session.InTx(ctx) {
6868
return s.Adapter()
6969
}
7070
return s.Adapter(session.ReadOnly())

0 commit comments

Comments
 (0)