Documentation
¶
Overview ¶
Package tldb provides adapters to read and write GTFS data from PostgreSQL and SQLite databases.
Index ¶
- Variables
- func ReadEntities[T tt.EntityWithID](reader *Reader, table string) chan T
- type Adapter
- type Ext
- type NotNullFilter
- type PostgresAdapter
- func (adapter *PostgresAdapter) Close() error
- func (adapter *PostgresAdapter) Create() error
- func (adapter *PostgresAdapter) DBX() sqlx.Ext
- func (adapter *PostgresAdapter) Find(dest interface{}) error
- func (adapter *PostgresAdapter) Get(dest interface{}, qstr string, args ...interface{}) error
- func (adapter *PostgresAdapter) Insert(ent interface{}) (int, error)
- func (adapter *PostgresAdapter) MultiInsert(ents []interface{}) ([]int, error)
- func (adapter *PostgresAdapter) Open() error
- func (adapter *PostgresAdapter) Select(dest interface{}, qstr string, args ...interface{}) error
- func (adapter *PostgresAdapter) Sqrl() sq.StatementBuilderType
- func (adapter *PostgresAdapter) TableExists(t string) (bool, error)
- func (adapter *PostgresAdapter) Tx(cb func(Adapter) error) error
- func (adapter *PostgresAdapter) Update(ent interface{}, columns ...string) error
- type QueryLogger
- func (p *QueryLogger) Beginx() (*sqlx.Tx, error)
- func (p *QueryLogger) Exec(query string, args ...interface{}) (sql.Result, error)
- func (p *QueryLogger) Prepare(query string) (*sql.Stmt, error)
- func (p *QueryLogger) Query(query string, args ...interface{}) (*sql.Rows, error)
- func (p *QueryLogger) QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error)
- func (p *QueryLogger) QueryRow(query string, args ...interface{}) *sql.Row
- func (p *QueryLogger) QueryRowx(query string, args ...interface{}) *sqlx.Row
- func (p *QueryLogger) QueryRowxContext(ctx context.Context, query string, args ...interface{}) *sqlx.Row
- func (p *QueryLogger) Queryx(query string, args ...interface{}) (*sqlx.Rows, error)
- func (p *QueryLogger) QueryxContext(ctx context.Context, query string, args ...interface{}) (*sqlx.Rows, error)
- type Reader
- func (reader *Reader) Agencies() chan gtfs.Agency
- func (reader *Reader) Areas() (out chan gtfs.Area)
- func (reader *Reader) Attributions() chan gtfs.Attribution
- func (reader *Reader) CalendarDates() chan gtfs.CalendarDate
- func (reader *Reader) Calendars() chan gtfs.Calendar
- func (reader *Reader) Close() error
- func (reader *Reader) FareAttributes() chan gtfs.FareAttribute
- func (reader *Reader) FareLegRules() (out chan gtfs.FareLegRule)
- func (reader *Reader) FareMedia() (out chan gtfs.FareMedia)
- func (reader *Reader) FareProducts() (out chan gtfs.FareProduct)
- func (reader *Reader) FareRules() chan gtfs.FareRule
- func (reader *Reader) FareTransferRules() (out chan gtfs.FareTransferRule)
- func (reader *Reader) FeedInfos() chan gtfs.FeedInfo
- func (reader *Reader) Frequencies() chan gtfs.Frequency
- func (reader *Reader) Levels() chan gtfs.Level
- func (reader *Reader) Open() error
- func (reader *Reader) Pathways() chan gtfs.Pathway
- func (reader *Reader) ReadEntities(c interface{}) error
- func (reader *Reader) RiderCategories() (out chan gtfs.RiderCategory)
- func (reader *Reader) Routes() chan gtfs.Route
- func (reader *Reader) Shapes() chan gtfs.Shape
- func (reader *Reader) ShapesByShapeID(ids ...string) chan []gtfs.Shape
- func (reader *Reader) StopAreas() (out chan gtfs.StopArea)
- func (reader *Reader) StopTimes() chan gtfs.StopTime
- func (reader *Reader) StopTimesByTripID(tripIDs ...string) chan []gtfs.StopTime
- func (reader *Reader) Stops() chan gtfs.Stop
- func (reader *Reader) String() string
- func (reader *Reader) Transfers() chan gtfs.Transfer
- func (reader *Reader) Translations() chan gtfs.Translation
- func (reader *Reader) Trips() chan gtfs.Trip
- func (reader *Reader) ValidateStructure() []error
- func (reader *Reader) Where() sq.SelectBuilder
- type SQLiteAdapter
- func (adapter *SQLiteAdapter) Close() error
- func (adapter *SQLiteAdapter) Create() error
- func (adapter *SQLiteAdapter) DBX() sqlx.Ext
- func (adapter *SQLiteAdapter) Find(dest interface{}) error
- func (adapter *SQLiteAdapter) Get(dest interface{}, qstr string, args ...interface{}) error
- func (adapter *SQLiteAdapter) Insert(ent interface{}) (int, error)
- func (adapter *SQLiteAdapter) MultiInsert(ents []interface{}) ([]int, error)
- func (adapter *SQLiteAdapter) Open() error
- func (adapter *SQLiteAdapter) Select(dest interface{}, qstr string, args ...interface{}) error
- func (adapter *SQLiteAdapter) Sqrl() sq.StatementBuilderType
- func (adapter *SQLiteAdapter) TableExists(t string) (bool, error)
- func (adapter *SQLiteAdapter) Tx(cb func(Adapter) error) error
- func (adapter *SQLiteAdapter) Update(ent interface{}, columns ...string) error
- type Writer
- func (writer *Writer) AddEntities(ents []tt.Entity) ([]string, error)
- func (writer *Writer) AddEntity(ent tt.Entity) (string, error)
- func (writer *Writer) Close() error
- func (writer *Writer) Create() error
- func (writer *Writer) Delete() error
- func (writer *Writer) NewReader() (adapters.Reader, error)
- func (writer *Writer) Open() error
- func (writer *Writer) String() string
Constants ¶
This section is empty.
Variables ¶
var MapperCache = tags.NewCache(reflectx.NewMapperFunc("db", tags.ToSnakeCase))
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 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.
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) Create ¶
func (adapter *PostgresAdapter) Create() error
Create an initial database schema.
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) 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
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 (*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 ¶
Reader reads from a database.
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) 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) FareProducts ¶ added in v0.11.0
func (reader *Reader) FareProducts() (out chan gtfs.FareProduct)
func (*Reader) FareTransferRules ¶ added in v0.11.0
func (reader *Reader) FareTransferRules() (out chan gtfs.FareTransferRule)
func (*Reader) Frequencies ¶
Frequencies sends Frequencies.
func (*Reader) ReadEntities ¶
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) ShapesByShapeID ¶
Shapes sends Shapes grouped by ID.
func (*Reader) StopTimesByTripID ¶
StopTimesByTripID sends StopTimes grouped by TripID. Each group is sorted by stop_sequence.
func (*Reader) Translations ¶ added in v0.10.0
func (reader *Reader) Translations() chan gtfs.Translation
Translations sends Translations.
func (*Reader) ValidateStructure ¶
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) 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) 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 ¶
Writer takes a Reader and saves it to a database.
func OpenWriter ¶ added in v0.10.0
OpenWriter opens & creates a db writer
func (*Writer) AddEntities ¶
AddEntities writes entities to the database.