tldb

package
v1.0.0-rc1 Latest Latest
Warning

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

Go to latest
Published: Oct 22, 2024 License: GPL-3.0 Imports: 27 Imported by: 5

Documentation

Overview

Package tldb provides adapters to read and write GTFS data from PostgreSQL and SQLite databases.

Index

Constants

This section is empty.

Variables

Functions

func ReadEntities added in v0.11.0

func ReadEntities[T tt.EntityWithID](reader *Reader, table string) chan T

Types

type Adapter

type Adapter interface {
	Open() error
	Close() error
	Create() error
	DBX() sqlx.Ext
	Tx(func(Adapter) error) error
	Sqrl() sq.StatementBuilderType
	TableExists(string) (bool, error)
	Insert(interface{}) (int, error)
	Update(interface{}, ...string) error
	Find(interface{}) error
	Get(interface{}, string, ...interface{}) error
	Select(interface{}, string, ...interface{}) error
	MultiInsert([]interface{}) ([]int, error)
}

Adapter provides an interface for connecting to various kinds of database backends.

type Ext added in v0.11.0

type Ext interface {
	sqlx.Ext
	sqlx.QueryerContext
}

type NotNullFilter added in v0.18.0

type NotNullFilter struct{}

NotNullFilter sets some int fields to default zero values where there is a 'not null' database constraint that can't be removed but the spec allows empty values.

func (*NotNullFilter) Filter added in v0.18.0

func (e *NotNullFilter) Filter(ent tt.Entity, emap *tt.EntityMap) error

Validate .

type PostgresAdapter

type PostgresAdapter struct {
	DBURL string
	// contains filtered or unexported fields
}

PostgresAdapter connects to a Postgres/PostGIS database.

func NewPostgresAdapterFromDBX added in v0.8.3

func NewPostgresAdapterFromDBX(db sqlx.Ext) *PostgresAdapter

func (*PostgresAdapter) Close

func (adapter *PostgresAdapter) Close() error

Close the adapter.

func (*PostgresAdapter) Create

func (adapter *PostgresAdapter) Create() error

Create an initial database schema.

func (*PostgresAdapter) DBX

func (adapter *PostgresAdapter) DBX() sqlx.Ext

DBX returns sqlx.Ext

func (*PostgresAdapter) Find

func (adapter *PostgresAdapter) Find(dest interface{}) error

Find finds a single entity based on the EntityID()

func (*PostgresAdapter) Get

func (adapter *PostgresAdapter) Get(dest interface{}, qstr string, args ...interface{}) error

Get wraps sqlx.Get

func (*PostgresAdapter) Insert

func (adapter *PostgresAdapter) Insert(ent interface{}) (int, error)

Insert builds and executes an insert statement for the given entity.

func (*PostgresAdapter) MultiInsert

func (adapter *PostgresAdapter) MultiInsert(ents []interface{}) ([]int, error)

MultiInsert builds and executes a multi-insert statement for the given entities.

func (*PostgresAdapter) Open

func (adapter *PostgresAdapter) Open() error

Open the adapter.

func (*PostgresAdapter) Select

func (adapter *PostgresAdapter) Select(dest interface{}, qstr string, args ...interface{}) error

Select wraps sqlx.Select

func (*PostgresAdapter) Sqrl

func (adapter *PostgresAdapter) Sqrl() sq.StatementBuilderType

Sqrl returns a properly configured Squirrel StatementBuilder.

func (*PostgresAdapter) TableExists added in v0.10.1

func (adapter *PostgresAdapter) TableExists(t string) (bool, error)

TableExists returns true if the requested table exists

func (*PostgresAdapter) Tx

func (adapter *PostgresAdapter) Tx(cb func(Adapter) error) error

Tx runs a callback inside a transaction.

func (*PostgresAdapter) Update

func (adapter *PostgresAdapter) Update(ent interface{}, columns ...string) error

Update a single entity.

type QueryLogger added in v0.7.2

type QueryLogger struct {
	Ext
	Trace bool
}

QueryLogger wraps sql/sqlx methods with loggers.

func (*QueryLogger) Beginx added in v0.7.2

func (p *QueryLogger) Beginx() (*sqlx.Tx, error)

Beginx .

func (*QueryLogger) Exec added in v0.7.2

func (p *QueryLogger) Exec(query string, args ...interface{}) (sql.Result, error)

Exec .

func (*QueryLogger) Prepare added in v0.10.0

func (p *QueryLogger) Prepare(query string) (*sql.Stmt, error)

Prepare

func (*QueryLogger) Query added in v0.7.2

func (p *QueryLogger) Query(query string, args ...interface{}) (*sql.Rows, error)

Query .

func (*QueryLogger) QueryContext added in v0.11.0

func (p *QueryLogger) QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error)

func (*QueryLogger) QueryRow added in v0.7.2

func (p *QueryLogger) QueryRow(query string, args ...interface{}) *sql.Row

QueryRow .

func (*QueryLogger) QueryRowx added in v0.7.2

func (p *QueryLogger) QueryRowx(query string, args ...interface{}) *sqlx.Row

func (*QueryLogger) QueryRowxContext added in v0.11.0

func (p *QueryLogger) QueryRowxContext(ctx context.Context, query string, args ...interface{}) *sqlx.Row

QueryRowx .

func (*QueryLogger) Queryx added in v0.7.2

func (p *QueryLogger) Queryx(query string, args ...interface{}) (*sqlx.Rows, error)

func (*QueryLogger) QueryxContext added in v0.11.0

func (p *QueryLogger) QueryxContext(ctx context.Context, query string, args ...interface{}) (*sqlx.Rows, error)

Queryx .

type Reader

type Reader struct {
	Adapter        Adapter
	PageSize       int
	FeedVersionIDs []int
}

Reader reads from a database.

func NewReader

func NewReader(dburl string) (*Reader, error)

NewReader returns an initialized Reader based on the provided url string.

func (*Reader) Agencies

func (reader *Reader) Agencies() chan gtfs.Agency

Agencies sends Agencies.

func (*Reader) Areas added in v0.11.0

func (reader *Reader) Areas() (out chan gtfs.Area)

func (*Reader) Attributions added in v0.10.0

func (reader *Reader) Attributions() chan gtfs.Attribution

Attributions sends Attributions.

func (*Reader) CalendarDates

func (reader *Reader) CalendarDates() chan gtfs.CalendarDate

CalendarDates sends CalendarDates.

func (*Reader) Calendars

func (reader *Reader) Calendars() chan gtfs.Calendar

Calendars sends Calendars.

func (*Reader) Close

func (reader *Reader) Close() error

Close the database.

func (*Reader) FareAttributes

func (reader *Reader) FareAttributes() chan gtfs.FareAttribute

FareAttributes sends FareAttributes.

func (*Reader) FareLegRules added in v0.11.0

func (reader *Reader) FareLegRules() (out chan gtfs.FareLegRule)

func (*Reader) FareMedia added in v0.13.0

func (reader *Reader) FareMedia() (out chan gtfs.FareMedia)

func (*Reader) FareProducts added in v0.11.0

func (reader *Reader) FareProducts() (out chan gtfs.FareProduct)

func (*Reader) FareRules

func (reader *Reader) FareRules() chan gtfs.FareRule

FareRules sends FareRules.

func (*Reader) FareTransferRules added in v0.11.0

func (reader *Reader) FareTransferRules() (out chan gtfs.FareTransferRule)

func (*Reader) FeedInfos

func (reader *Reader) FeedInfos() chan gtfs.FeedInfo

FeedInfos sends FeedInfos.

func (*Reader) Frequencies

func (reader *Reader) Frequencies() chan gtfs.Frequency

Frequencies sends Frequencies.

func (*Reader) Levels

func (reader *Reader) Levels() chan gtfs.Level

Levels sends Levels.

func (*Reader) Open

func (reader *Reader) Open() error

Open the database.

func (*Reader) Pathways

func (reader *Reader) Pathways() chan gtfs.Pathway

Pathways sends Pathways.

func (*Reader) ReadEntities

func (reader *Reader) ReadEntities(c interface{}) error

ReadEntities provides a generic interface for reading entities.

func (*Reader) RiderCategories added in v0.11.0

func (reader *Reader) RiderCategories() (out chan gtfs.RiderCategory)

func (*Reader) Routes

func (reader *Reader) Routes() chan gtfs.Route

Routes sends Routes.

func (*Reader) Shapes

func (reader *Reader) Shapes() chan gtfs.Shape

Shapes sends Shapes.

func (*Reader) ShapesByShapeID

func (reader *Reader) ShapesByShapeID(ids ...string) chan []gtfs.Shape

Shapes sends Shapes grouped by ID.

func (*Reader) StopAreas added in v0.11.0

func (reader *Reader) StopAreas() (out chan gtfs.StopArea)

func (*Reader) StopTimes

func (reader *Reader) StopTimes() chan gtfs.StopTime

StopTimes sends StopTimes.

func (*Reader) StopTimesByTripID

func (reader *Reader) StopTimesByTripID(tripIDs ...string) chan []gtfs.StopTime

StopTimesByTripID sends StopTimes grouped by TripID. Each group is sorted by stop_sequence.

func (*Reader) Stops

func (reader *Reader) Stops() chan gtfs.Stop

Stops sends Stops.

func (*Reader) String added in v0.10.1

func (reader *Reader) String() string

func (*Reader) Transfers

func (reader *Reader) Transfers() chan gtfs.Transfer

Transfers sends Transfers.

func (*Reader) Translations added in v0.10.0

func (reader *Reader) Translations() chan gtfs.Translation

Translations sends Translations.

func (*Reader) Trips

func (reader *Reader) Trips() chan gtfs.Trip

Trips sends Trips.

func (*Reader) ValidateStructure

func (reader *Reader) ValidateStructure() []error

ValidateStructure returns if all the necessary tables are present. Not implemented.

func (*Reader) Where

func (reader *Reader) Where() sq.SelectBuilder

Where returns a select builder with feed_version_id set

type SQLiteAdapter

type SQLiteAdapter struct {
	DBURL string
	// contains filtered or unexported fields
}

SQLiteAdapter provides support for SQLite.

func (*SQLiteAdapter) Close

func (adapter *SQLiteAdapter) Close() error

Close the database.

func (*SQLiteAdapter) Create

func (adapter *SQLiteAdapter) Create() error

Create the database if necessary.

func (*SQLiteAdapter) DBX

func (adapter *SQLiteAdapter) DBX() sqlx.Ext

DBX returns the underlying Sqlx DB or Tx.

func (*SQLiteAdapter) Find

func (adapter *SQLiteAdapter) Find(dest interface{}) error

Find finds a single entity based on the EntityID()

func (*SQLiteAdapter) Get

func (adapter *SQLiteAdapter) Get(dest interface{}, qstr string, args ...interface{}) error

Get wraps sqlx.Get

func (*SQLiteAdapter) Insert

func (adapter *SQLiteAdapter) Insert(ent interface{}) (int, error)

Insert builds and executes an insert statement for the given entity.

func (*SQLiteAdapter) MultiInsert added in v0.7.1

func (adapter *SQLiteAdapter) MultiInsert(ents []interface{}) ([]int, error)

MultiInsert inserts multiple entities.

func (*SQLiteAdapter) Open

func (adapter *SQLiteAdapter) Open() error

Open the database.

func (*SQLiteAdapter) Select

func (adapter *SQLiteAdapter) Select(dest interface{}, qstr string, args ...interface{}) error

Select wraps sqlx.Select

func (*SQLiteAdapter) Sqrl

func (adapter *SQLiteAdapter) Sqrl() sq.StatementBuilderType

Sqrl returns a properly configured Squirrel StatementBuilder.

func (*SQLiteAdapter) TableExists added in v0.10.1

func (adapter *SQLiteAdapter) TableExists(t string) (bool, error)

TableExists returns true if the requested table exists

func (*SQLiteAdapter) Tx

func (adapter *SQLiteAdapter) Tx(cb func(Adapter) error) error

Tx runs a callback inside a transaction.

func (*SQLiteAdapter) Update

func (adapter *SQLiteAdapter) Update(ent interface{}, columns ...string) error

Update a single record.

type Writer

type Writer struct {
	FeedVersionID int
	Adapter       Adapter
	// contains filtered or unexported fields
}

Writer takes a Reader and saves it to a database.

func NewWriter

func NewWriter(dburl string) (*Writer, error)

NewWriter returns a Writer appropriate for the given connection url.

func OpenWriter added in v0.10.0

func OpenWriter(dburl string, create bool) (*Writer, error)

OpenWriter opens & creates a db writer

func (*Writer) AddEntities

func (writer *Writer) AddEntities(ents []tt.Entity) ([]string, error)

AddEntities writes entities to the database.

func (*Writer) AddEntity

func (writer *Writer) AddEntity(ent tt.Entity) (string, error)

AddEntity writes an entity to the database.

func (*Writer) Close

func (writer *Writer) Close() error

Close the database.

func (*Writer) Create

func (writer *Writer) Create() error

Create the database.

func (*Writer) Delete

func (writer *Writer) Delete() error

Delete any entities associated with the FeedVersion.

func (*Writer) NewReader

func (writer *Writer) NewReader() (adapters.Reader, error)

NewReader returns a new Reader with the same adapter.

func (*Writer) Open

func (writer *Writer) Open() error

Open the database.

func (*Writer) String added in v0.10.1

func (writer *Writer) String() string

Jump to

Keyboard shortcuts

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