package db import ( "database/sql" "flag" "fmt" _ "github.com/lib/pq" ) var ( user = flag.String("dbuser", "gomail", "PostgreSQL user name") name = flag.String("dbname", "gomail", "PostgreSQL DB name") sslmode = flag.String("dbsslmode", "disable", "PostgreSQL sslmode setting") ) type Conn struct { *sql.DB } // NewDB creates connection to PostgreSQL DB. If dsn is empty, the flags // -dbuser, -dbname, -dbsslmode are used. func NewConn(dsn string) (*Conn, error) { if dsn == "" { dsn = fmt.Sprintf("user=%s dbname=%s sslmode=%s", *user, *name, *sslmode) } db, err := sql.Open("postgres", dsn) return &Conn{DB: db}, err } func (c *Conn) OriginalBlobByHash(hash string, blob *[]byte) error { row := c.QueryRow(` SELECT blob FROM original WHERE hash = $1 `, hash) return row.Scan(blob) }