Documentation ¶
Overview ¶
This is the implementation of the store.URLDataStore interface for sqlite.
Use New() to make a new sqlite storage instance.
- You *must* call Open()
- The DB will be closed when the context passed to Open() is cancelled.
- Concurrent usage OK
- In-Memory DBs are supported
- The DB will be created if it doesn't exist
Index ¶
- Constants
- Variables
- func Defaults() option
- func Factory(options ...option) store.Factory
- func File(filename string) option
- func InMemoryDB() option
- func WithFileOrEnv(filename string) option
- func WithQueryTimeout(timeout time.Duration) option
- type AccessMode
- type FilesystemStats
- type JournalMode
- type Stats
- type Store
- type SyncMode
Constants ¶
View Source
const ( EnvDBPath = "SCRAPE_DB" DefaultBusyTimeout = 5 * time.Second DefaultQueryTimeout = 30 * time.Second JournalModeWAL JournalMode = "WAL" JournalModeMemory JournalMode = "MEMORY" JournalModeOff JournalMode = "OFF" BigCacheSize = 20000 NormalCacheSize = 2000 // This is actually the sqlite default SyncOff SyncMode = "OFF" SyncNormal SyncMode = "NORMAL" AccessModeRWC AccessMode = "rwc" AccessModeMemory AccessMode = "memory" )
View Source
const (
InMemoryDBName = ":memory:"
)
Variables ¶
View Source
var ( DefaultDatabase = "scrape_data/scrape.db" ErrDatabaseExists = errors.New("database already exists") ErrIsInMemory = errors.New("file path is in-memory DB (':memory:')") )
Functions ¶
func Factory ¶
Returns the factory function that can be used to instantiate a sqlite store in the cases where either creation should be delayed or where the caller may want to instantiate multiple stores with the same configuration.
func InMemoryDB ¶
func InMemoryDB() option
func WithFileOrEnv ¶
func WithFileOrEnv(filename string) option
func WithQueryTimeout ¶
Types ¶
type AccessMode ¶
type AccessMode string
type FilesystemStats ¶
type JournalMode ¶
type JournalMode string
type Stats ¶
type Stats struct { SqliteVersion string `json:"sqlite_version"` PageCount int `json:"page_count"` PageSize int `json:"page_size"` UnusedPages int `json:"unused_pages"` MaxPageCount int `json:"max_page_count"` Filesystem *FilesystemStats `json:"fs,omitempty"` // contains filtered or unexported fields }
func (*Stats) DatabaseSizeMB ¶
type Store ¶
type Store struct { *storage.SQLStorage // contains filtered or unexported fields }
Store is the sqlite implementation of the store.URLDataStore interface. It relies on storage.SQLStorage for most of the actual database operations, and mainly handles configuration and initialization.
Click to show internal directories.
Click to hide internal directories.