pgx

package
v3.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 13, 2022 License: Apache-2.0 Imports: 15 Imported by: 0

README

Postgres pgx plugin

This module implements a Postgres implementation of the micro store interface. It uses modern https://github.com/jackc/pgx driver to access Postgres.

Implementation notes

Concepts

Every database has they own connection pool. Due to the way connections are handled this means that all micro "databases" and "tables" can be stored under a single or several Postgres database as specified in the connection string (https://www.postgresql.org/docs/8.1/ddl-schemas.html). The mapping of micro to Postgres concepts is:

  • micro database => Postgres schema
  • micro table => Postgres table
Expiry

Expiry is managed by an expiry column in the table. A record's expiry is specified in the column and when a record is read the expiry field is first checked, only returning the record if it's still valid otherwise it's deleted. A maintenance loop also periodically runs to delete any rows that have expired.

Documentation

Overview

Package pgx implements the postgres store with pgx driver

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewStore

func NewStore(opts ...store.Option) store.Store

NewStore returns a new micro Store backed by sql

Types

type DB

type DB struct {
	// contains filtered or unexported fields
}

type Metadata

type Metadata map[string]interface{}

func (*Metadata) Scan

func (m *Metadata) Scan(src interface{}) error

Scan satisfies the sql.Scanner interface.

func (*Metadata) Value

func (m *Metadata) Value() (driver.Value, error)

Value satisfies the driver.Valuer interface.

type Queries

type Queries struct {
	// read
	ListAsc           string
	ListAscLimit      string
	ListDesc          string
	ListDescLimit     string
	ReadOne           string
	ReadManyAsc       string
	ReadManyAscLimit  string
	ReadManyDesc      string
	ReadManyDescLimit string

	// change
	Write         string
	Delete        string
	DeleteExpired string
}

func NewQueries

func NewQueries(database, table string) Queries

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL