11package database
22
3+ //go:generate mockgen -destination ../mocks/mock_SchemeCommenter.go -package mocks github.com/dipdup-net/go-lib/database SchemeCommenter
4+
35import (
46 "context"
57 "fmt"
@@ -8,68 +10,9 @@ import (
810 "github.com/pkg/errors"
911)
1012
11- type PgGoConnection interface {
12- DB () PgDB
13- }
14-
15- type PgDB interface {
16- /*
17- Begin() (*pg.Tx, error)
18- BeginContext(ctx context.Context) (*pg.Tx, error)
19- RunInTransaction(ctx context.Context, fn func(*pg.Tx) error) error
20- AddQueryHook(hook pg.QueryHook)
21- beforeQuery(ctx context.Context, ormDB orm.DB, model interface{}, query interface{}, params []interface{}, fmtedQuery []byte) (context.Context, *QueryEvent, error)
22- afterQuery(ctx context.Context, event *pg.QueryEvent, res pg.Result, err error) error
23- afterQueryFromIndex(ctx context.Context, event *pg.QueryEvent, hookIndex int) error
24- //startup(c context.Context, cn *pool.Conn, user string, password string, database string, appName string) error
25- //enableSSL(c context.Context, cn *pool.Conn, tlsConf *tls.Config) error
26- //auth(c context.Context, cn *pool.Conn, rd *pool.ReaderContext, user string, password string) error
27- //logStartupNotice(rd *pool.ReaderContext) error
28- //authCleartext(c context.Context, cn *pool.Conn, rd *pool.ReaderContext, password string) error
29- //authMD5(c context.Context, cn *pool.Conn, rd *pool.ReaderContext, user string, password string) error
30- //authSASL(c context.Context, cn *pool.Conn, rd *pool.ReaderContext, user string, password string) error
31- PoolStats() *pg.PoolStats
32- //clone() *baseDB
33- //withPool(p pool.Pooler) *baseDB
34- //WithTimeout(d time.Duration) *baseDB
35- //WithParam(param string, value interface{}) *baseDB
36- Param(param string) interface{}
37- retryBackoff(retry int) time.Duration
38- //getConn(ctx context.Context) (*pool.Conn, error)
39- //initConn(ctx context.Context, cn *pool.Conn) error
40- //releaseConn(ctx context.Context, cn *pool.Conn, err error)
41- //withConn(ctx context.Context, fn func(context.Context, *pool.Conn) error) error
42- shouldRetry(err error) bool
43- Close() error
44- Exec(query interface{}, params ...interface{}) (res pg.Result, err error)
45- */
46- ExecContext (c context.Context , query interface {}, params ... interface {}) (pg.Result , error )
47- /*
48- //exec(ctx context.Context, query interface{}, params ...interface{}) (pg.Result, error)
49- ExecOne(query interface{}, params ...interface{}) (pg.Result, error)
50- ExecOneContext(ctx context.Context, query interface{}, params ...interface{}) (pg.Result, error)
51- execOne(c context.Context, query interface{}, params ...interface{}) (pg.Result, error)
52- Query(model interface{}, query interface{}, params ...interface{}) (res pg.Result, err error)
53- QueryContext(c context.Context, model interface{}, query interface{}, params ...interface{}) (pg.Result, error)
54- query(ctx context.Context, model interface{}, query interface{}, params ...interface{}) (pg.Result, error)
55- QueryOne(model interface{}, query interface{}, params ...interface{}) (pg.Result, error)
56- QueryOneContext(ctx context.Context, model interface{}, query interface{}, params ...interface{}) (pg.Result, error)
57- queryOne(ctx context.Context, model interface{}, query interface{}, params ...interface{}) (pg.Result, error)
58- CopyFrom(r io.Reader, query interface{}, params ...interface{}) (res pg.Result, err error)
59- //copyFrom(ctx context.Context, cn *pool.Conn, r io.Reader, query interface{}, params ...interface{}) (res Result, err error)
60- CopyTo(w io.Writer, query interface{}, params ...interface{}) (res pg.Result, err error)
61- //copyTo(ctx context.Context, cn *pool.Conn, w io.Writer, query interface{}, params ...interface{}) (res Result, err error)
62- Ping(ctx context.Context) error
63- Model(model ...interface{}) *pg.Query
64- ModelContext(c context.Context, model ...interface{}) *pg.Query
65- Formatter() orm.QueryFormatter
66- //cancelRequest(processID int32, secretKey int32) error
67- //simpleQuery(c context.Context, cn *pool.Conn, wb *pool.WriteBuffer) (*result, error)
68- //simpleQueryData(c context.Context, cn *pool.Conn, model interface{}, wb *pool.WriteBuffer) (*result, error)
69- Prepare(q string) (*pg.Stmt, error)
70- //prepare(c context.Context, cn *pool.Conn, q string) (string, []types.ColumnInfo, error)
71- //closeStmt(c context.Context, cn *pool.Conn, name string) error
72- */
13+ type SchemeCommenter interface {
14+ MakeTableComment (ctx context.Context , name string , comment string ) error
15+ MakeColumnComment (ctx context.Context , tableName string , columnName string , comment string ) error
7316}
7417
7518// PgGo -
@@ -83,7 +26,7 @@ func NewPgGo() *PgGo {
8326}
8427
8528// DB -
86- func (db * PgGo ) DB () PgDB {
29+ func (db * PgGo ) DB () * pg. DB {
8730 return db .conn
8831}
8932
@@ -148,3 +91,22 @@ func (db *PgGo) DeleteState(s *State) error {
14891 _ , err := db .conn .Model (s ).Where ("index_name = ?" , s .IndexName ).Delete ()
14992 return err
15093}
94+
95+ func (db * PgGo ) MakeTableComment (ctx context.Context , name string , comment string ) error {
96+ _ , err := db .conn .ExecContext (ctx ,
97+ `COMMENT ON TABLE ? IS ?` ,
98+ pg .Safe (name ),
99+ pg .Safe (comment ))
100+
101+ return err
102+ }
103+
104+ func (db * PgGo ) MakeColumnComment (ctx context.Context , tableName string , columnName string , comment string ) error {
105+ _ , err := db .conn .ExecContext (ctx ,
106+ `COMMENT ON COLUMN ?.? IS ?` ,
107+ pg .Safe (tableName ),
108+ pg .Safe (columnName ),
109+ pg .Safe (comment ))
110+
111+ return err
112+ }
0 commit comments