{"@context":"https://w3id.org/codemeta/3.0","@type":"SoftwareSourceCode","identifier":"pkg:golang/github.com/prep/sqlite","name":"github.com/prep/sqlite","description":"Package sqlite provides a Go interface to SQLite 3.\n\nThe semantics of this package are deliberately close to the\nSQLite3 C API, so it is helpful to be familiar with\nhttp://www.sqlite.org/c3ref/intro.html.\n\nAn SQLite connection is represented by a *sqlite.Conn.\nConnections cannot be used concurrently.\nA typical Go program will create a pool of connections\n(using Open to create a *sqlitex.Pool) so goroutines can\nborrow a connection while they need to talk to the database.\n\nThis package assumes SQLite will be used concurrently by the\nprocess through several connections, so the build options for\nSQLite enable multi-threading and the shared cache:\nhttps://www.sqlite.org/sharedcache.html\n\nThe implementation automatically handles shared cache locking,\nsee the documentation on Stmt.Step for details.\n\nThe optional SQLite3 compiled in are: FTS5, RTree, JSON1, Session, GeoPoly\n\nThis is not a database/sql driver.\n\nStatements are prepared with the Prepare and PrepareTransient methods.\nWhen using Prepare, statements are keyed inside a connection by the\noriginal query string used to create them. This means long-running\nhigh-performance code paths can write:\n\nAfter all the connections in a pool have been warmed up by passing\nthrough one of these Prepare calls, subsequent calls are simply a\nmap lookup that returns an existing statement.\n\nThe sqlite package supports the SQLite incremental I/O interface for\nstreaming blob data into and out of the the database without loading\nthe entire blob into a single []byte.\n(This is important when working either with very large blobs, or\nmore commonly, a large number of moderate-sized blobs concurrently.)\n\nTo write a blob, first use an INSERT statement to set the size of the\nblob and assign a rowid:\n\nUse BindZeroBlob or SetZeroBlob to set the size of myblob.\nThen you can open the blob with:\n\nEvery connection can have a done channel associated with it using\nthe SetInterrupt method. This is typically the channel returned by\na context.Context Done method.\n\nFor example, a timeout can be associated with a connection session:\n\nAs database connections are long-lived, the SetInterrupt method can\nbe called multiple times to reset the associated lifetime.\n\nWhen using pools, the shorthand for associating a context with a\nconnection is:\n\nSQLite transactions have to be managed manually with this package\nby directly calling BEGIN / COMMIT / ROLLBACK or\nSAVEPOINT / RELEASE/ ROLLBACK. The sqlitex has a Savepoint\nfunction that helps automate this.\n\nUsing a Pool to execute SQL in a concurrent HTTP handler.\n\nFor helper functions that make some kinds of statements easier to\nwrite see the sqlitex package.","version":"v0.0.0-20240112164838-73eb356b0bf1","softwareVersion":"v0.0.0-20240112164838-73eb356b0bf1","license":"https://spdx.org/licenses/ISC","codeRepository":"https://github.com/prep/sqlite","url":"https://github.com/prep/sqlite","dateCreated":"2024-01-12","dateModified":"2024-01-12","datePublished":"2024-01-12","copyrightYear":2024,"downloadUrl":"https://proxy.golang.org/github.com/prep/sqlite/@v/v0.0.0-20240112164838-73eb356b0bf1.zip","softwareHelp":{"@type":"WebSite","url":"https://pkg.go.dev/github.com/prep/sqlite#section-documentation"},"applicationCategory":"go","runtimePlatform":"go","sameAs":["https://pkg.go.dev/github.com/prep/sqlite"]}