/ config_test_native_sql.go
config_test_native_sql.go
 1  //go:build test_native_sql
 2  
 3  package lnd
 4  
 5  import (
 6  	"context"
 7  	"database/sql"
 8  
 9  	"github.com/lightningnetwork/lnd/kvdb"
10  	"github.com/lightningnetwork/lnd/lncfg"
11  	paymentsdb "github.com/lightningnetwork/lnd/payments/db"
12  	"github.com/lightningnetwork/lnd/sqldb"
13  	"github.com/lightningnetwork/lnd/sqldb/sqlc"
14  )
15  
16  // RunTestSQLMigration is a build tag that indicates whether the test_native_sql
17  // build tag is set.
18  var RunTestSQLMigration = true
19  
20  // getSQLMigration returns a migration function for the given version.
21  func (d *DefaultDatabaseBuilder) getSQLMigration(_ context.Context,
22  	version int, _ kvdb.Backend) (func(tx *sqlc.Queries) error,
23  	bool) {
24  
25  	switch version {
26  	default:
27  		// No version was matched, so we return false to indicate that
28  		// no migration is known for the given version.
29  		return nil, false
30  	}
31  }
32  
33  // getPaymentsStore returns a paymentsdb.DB backed by a paymentsdb.SQLStore
34  // implementation.
35  func (d *DefaultDatabaseBuilder) getPaymentsStore(baseDB *sqldb.BaseDB,
36  	kvBackend kvdb.Backend,
37  	opts ...paymentsdb.OptionModifier) (paymentsdb.DB, error) {
38  
39  	paymentsExecutor := sqldb.NewTransactionExecutor(
40  		baseDB, func(tx *sql.Tx) paymentsdb.SQLQueries {
41  			return baseDB.WithTx(tx)
42  		},
43  	)
44  
45  	queryConfig := d.cfg.DB.Sqlite.QueryConfig
46  	if d.cfg.DB.Backend == lncfg.PostgresBackend {
47  		queryConfig = d.cfg.DB.Postgres.QueryConfig
48  	}
49  
50  	return paymentsdb.NewSQLStore(
51  		&paymentsdb.SQLStoreConfig{
52  			QueryCfg: &queryConfig,
53  		},
54  		paymentsExecutor, opts...,
55  	)
56  }