func newPool(conf ini.File, logger log.Logger) (*pgx.ConnPool, error) { logger = logger.New("module", "pgx") if level, ok := conf.Get("log", "pgx_level"); ok { setFilterHandler(level, logger, log.StdoutHandler) } connConfig := pgx.ConnConfig{Logger: logger} connConfig.Host, _ = conf.Get("database", "host") if connConfig.Host == "" { return nil, errors.New("Config must contain database.host but it does not") } if p, ok := conf.Get("database", "port"); ok { n, err := strconv.ParseUint(p, 10, 16) connConfig.Port = uint16(n) if err != nil { return nil, err } } var ok bool if connConfig.Database, ok = conf.Get("database", "database"); !ok { return nil, errors.New("Config must contain database.database but it does not") } connConfig.User, _ = conf.Get("database", "user") connConfig.Password, _ = conf.Get("database", "password") poolConfig := pgx.ConnPoolConfig{ ConnConfig: connConfig, MaxConnections: 10, } return pgx.NewConnPool(poolConfig) }