1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package pq
- import (
- "context"
- "database/sql/driver"
- )
- func NoticeHandler(c driver.Conn) func(*Error) {
- return c.(*conn).noticeHandler
- }
- func SetNoticeHandler(c driver.Conn, handler func(*Error)) {
- c.(*conn).noticeHandler = handler
- }
- type NoticeHandlerConnector struct {
- driver.Connector
- noticeHandler func(*Error)
- }
- func (n *NoticeHandlerConnector) Connect(ctx context.Context) (driver.Conn, error) {
- c, err := n.Connector.Connect(ctx)
- if err == nil {
- SetNoticeHandler(c, n.noticeHandler)
- }
- return c, err
- }
- func ConnectorNoticeHandler(c driver.Connector) func(*Error) {
- if c, ok := c.(*NoticeHandlerConnector); ok {
- return c.noticeHandler
- }
- return nil
- }
- func ConnectorWithNoticeHandler(c driver.Connector, handler func(*Error)) *NoticeHandlerConnector {
- if c, ok := c.(*NoticeHandlerConnector); ok {
- c.noticeHandler = handler
- return c
- }
- return &NoticeHandlerConnector{Connector: c, noticeHandler: handler}
- }
|