tldb

package
v1.2.4 Latest Latest
Warning

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

Go to latest
Published: Jun 26, 2025 License: GPL-3.0 Imports: 15 Imported by: 5

Documentation

Index

Constants

This section is empty.

Variables

Functions

func Contains added in v1.0.0

func Contains(a string, b []string) bool

func Find added in v1.0.0

func Find(ctx context.Context, adapter Adapter, dest interface{}) error

Find a single record.

func GetTableName added in v1.0.0

func GetTableName(ent interface{}) string

func ReadEntities added in v0.11.0

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

func RegisterAdapter added in v1.0.0

func RegisterAdapter(name string, fn func(string) Adapter)

func Update added in v1.0.0

func Update(ctx context.Context, adapter Adapter, ent interface{}, columns ...string) error

update a single record.

Types

type Adapter

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

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

type CanBeginx added in v1.0.0

type CanBeginx interface {
	Beginx() (*sqlx.Tx, error)
}

type CanClose added in v1.0.0

type CanClose interface {
	Close() error
}

type CanGetID added in v1.0.0

type CanGetID interface {
	GetID() int
}

type CanSetFeedVersion added in v1.0.0

type CanSetFeedVersion interface {
	SetFeedVersionID(int)
}

type CanSetID added in v1.0.0

type CanSetID interface {
	SetID(int)
}

type CanUpdateTimestamps added in v1.0.0

type CanUpdateTimestamps interface {
	UpdateTimestamps()
}

type Ext added in v0.11.0

type Ext interface {
	sqlx.Ext
	sqlx.QueryerContext
	sqlx.ExecerContext
	// QueryRowContext is missing from sqlx.QueryerContext, despite having QueryRowContext
	QueryRowContext(context.Context, string, ...interface{}) *sql.Row
}

type HasTableName added in v1.0.0

type HasTableName interface {
	TableName() string
}

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 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

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

func (*Reader) CalendarDates

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

func (*Reader) Calendars

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

func (*Reader) Close

func (reader *Reader) Close() error

Close the database.

func (*Reader) FareAttributes

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

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

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

func (*Reader) Frequencies

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

func (*Reader) Levels

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

func (*Reader) Networks added in v1.0.0

func (reader *Reader) Networks() (out chan gtfs.Network)

func (*Reader) Open

func (reader *Reader) Open() error

Open the database.

func (*Reader) Pathways

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

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) RouteNetworks added in v1.0.0

func (reader *Reader) RouteNetworks() (out chan gtfs.RouteNetwork)

func (*Reader) Routes

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

func (*Reader) Shapes

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

func (*Reader) ShapesByShapeID added in v1.0.0

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

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

func (*Reader) String added in v0.10.1

func (reader *Reader) String() string

func (*Reader) Timeframes added in v1.0.0

func (reader *Reader) Timeframes() (out chan gtfs.Timeframe)

func (*Reader) Transfers

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

func (*Reader) Translations added in v0.10.0

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

func (*Reader) Trips

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

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 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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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