Documentation ¶
Index ¶
- type SQLite3Options
- type SQLite3Storage
- func (sqlite3Storage *SQLite3Storage) Close()
- func (sqlite3Storage *SQLite3Storage) Exec(sqlQuery string) (sql.Result, error)
- func (sqlite3Storage *SQLite3Storage) ExecuteSQLString(sqlQuery string) (*sql.Rows, error)
- func (sqlite3Storage *SQLite3Storage) LoadInput(input inputs.Input)
- func (sqlite3Storage *SQLite3Storage) SaveTo(path string) error
- type Storage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type SQLite3Options ¶
type SQLite3Options struct{}
SQLite3Options are options passed into SQLite3 connection as needed.
type SQLite3Storage ¶
type SQLite3Storage struct {
// contains filtered or unexported fields
}
SQLite3Storage represents a TextQL compatible SQL backend based on in-memory SQLite3
func NewSQLite3Storage ¶
func NewSQLite3Storage(opts *SQLite3Options) *SQLite3Storage
NewSQLite3Storage returns a SQLite3Storage with the SQLite3Options provided applied.
func NewSQLite3StorageWithDefaults ¶
func NewSQLite3StorageWithDefaults() *SQLite3Storage
NewSQLite3StorageWithDefaults returns a SQLite3Storage with the default options.
func (*SQLite3Storage) Close ¶
func (sqlite3Storage *SQLite3Storage) Close()
Close will close the current database
func (*SQLite3Storage) Exec ¶
func (sqlite3Storage *SQLite3Storage) Exec(sqlQuery string) (sql.Result, error)
Exec maps the sqlQuery provided from short hand TextQL to SQL, then applies the query to the sqlite3 in memory database, and lastly returns the sql.Result that resulted from the executing query.
func (*SQLite3Storage) ExecuteSQLString ¶
func (sqlite3Storage *SQLite3Storage) ExecuteSQLString(sqlQuery string) (*sql.Rows, error)
ExecuteSQLString maps the sqlQuery provided from short hand TextQL to SQL, then applies the query to the sqlite3 in memory database, and lastly returns the sql.Rows that resulted from the executing query.
func (*SQLite3Storage) LoadInput ¶
func (sqlite3Storage *SQLite3Storage) LoadInput(input inputs.Input)
LoadInput reads the entire Input provided into a table named after the Input name. The name is cooreced into a valid SQLite3 table name prior to use.
func (*SQLite3Storage) SaveTo ¶
func (sqlite3Storage *SQLite3Storage) SaveTo(path string) error
SaveTo saves the current in memory database to the path provided as a string.
type Storage ¶
type Storage interface { // LoadInput should make all the data in the input accessible to queries. LoadInput(*inputs.Input) // SaveTo should write the entire database of the SQL backend to the path given as a string. // Failure in any way should return an error, and nil if the operation was successful. SaveTo(string) error // ExecuteSQLString should first convert from TextQL shorthand SQL to normal SQL, // apply the query or transformation given to the SQL backend and return either nil // or the sql.Rows that were returned from the query. ExecuteSQLString(string) (*sql.Rows, error) // Close should cleanly close the database backend, cleaning up data on disk if required. Close() }
Storage implentors are expected to be SQL capable engines. A Storage should support loading data from a TextQL input, executing any number of SQL statements and returning their resultant sql.Rows, as well as supporting clean closing and "backing up" of data to a specific path