Help us shape the future of Go! Take the 2026 Go Developer Survey

sqlite

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Aug 28, 2026 License: Apache-2.0 Imports: 2 Imported by: 1

README

LLGo wrapper of sqlite

How to install

on macOS (Homebrew)
brew install sqlite3
on Linux (Debian/Ubuntu)
apt-get install -y libsqlite3-dev

Demos

The _demo directory contains our demos (it start with _ to prevent the go command from compiling it):

How to run demos

To run the demos in directory _demo:

cd <demo-directory>  # eg. cd _demo/sqlitedemo
llgo run .

Documentation

Index

Constants

View Source
const (
	LLGoPackage = "link: $(pkg-config --libs sqlite3); -lsqlite3"
)

Variables

This section is empty.

Functions

func Open

func Open(filename *c.Char) (db *Sqlite3, err Errno)

Opening A New Database Connection filename: Database filename (UTF-8)

func OpenV2

func OpenV2(filename *c.Char, flags OpenFlags, zVfs *c.Char) (db *Sqlite3, err Errno)

Opening A New Database Connection filename: Database filename (UTF-8) zVfs: Name of VFS module to use

Types

type Errno

type Errno c.Int
const (
	OK Errno = 0 // Successful result

	Error        Errno = 1  // Generic error
	ErrInternal  Errno = 2  // Internal logic error in SQLite
	ErrPerm      Errno = 3  // Access permission denied
	ErrAbort     Errno = 4  // Callback routine requested an abort
	ErrBusy      Errno = 5  // The database file is locked
	ErrLocked    Errno = 6  // A table in the database is locked
	ErrNomem     Errno = 7  // A malloc() failed
	ErrReadOnly  Errno = 8  // Attempt to write a readonly database
	ErrInterrupt Errno = 9  // Operation terminated by sqlite3_interrupt()
	ErrIo        Errno = 10 // Some kind of disk I/O error occurred
	ErrCorrupt   Errno = 11 // The database disk image is malformed
	ErrNotfound  Errno = 12 // Unknown opcode in sqlite3_file_control()
	ErrFull      Errno = 13 // Insertion failed because database is full
	ErrCantopen  Errno = 14 // Unable to open the database file
	ErrProtocol  Errno = 15 // Database lock protocol error

	ErrSchema     Errno = 17 // The database schema changed
	ErrToobig     Errno = 18 // String or BLOB exceeds size limit
	ErrConstraint Errno = 19 // Abort due to constraint violation
	ErrMismatch   Errno = 20 // Data type mismatch
	ErrMisuse     Errno = 21 // Library used incorrectly
	ErrNolfs      Errno = 22 // Uses OS features not supported on host
	ErrAuth       Errno = 23 // Authorization denied

	ErrRange   Errno = 25 // 2nd parameter to sqlite3_bind out of range
	ErrNotadb  Errno = 26 // File opened that is not a database file
	ErrNotice  Errno = 27 // Notifications from sqlite3_log()
	ErrWarning Errno = 28 // Warnings from sqlite3_log()

	HasRow Errno = 100 // sqlite3_step() has another row ready
	Done   Errno = 101 // sqlite3_step() has finished executing
)

func (Errno) Errstr

func (err Errno) Errstr() *c.Char

llgo:link Errno.Errstr C.sqlite3_errstr

type OpenFlags

type OpenFlags c.Int

OpenFlags represents SQLite open flags.

const (
	OpenReadOnly      OpenFlags = 0x00000001
	OpenReadWrite     OpenFlags = 0x00000002
	OpenCreate        OpenFlags = 0x00000004
	OpenDeleteOnClose OpenFlags = 0x00000008 // VFS only
	OpenExclusive     OpenFlags = 0x00000010 // VFS only
	OpenAutoProxy     OpenFlags = 0x00000020 // VFS only
	OpenUri           OpenFlags = 0x00000040
	OpenMemory        OpenFlags = 0x00000080
	OpenMainDb        OpenFlags = 0x00000100 // VFS only
	OpenTempDb        OpenFlags = 0x00000200 // VFS only
	OpenTransientDb   OpenFlags = 0x00000400 // VFS only
	OpenMainJournal   OpenFlags = 0x00000800 // VFS only
	OpenTempJournal   OpenFlags = 0x00001000 // VFS only
	OpenSubJournal    OpenFlags = 0x00002000 // VFS only
	OpenSuperJournal  OpenFlags = 0x00004000 // VFS only
	OpenNoMutex       OpenFlags = 0x00008000
	OpenFullMutex     OpenFlags = 0x00010000
	OpenSharedCache   OpenFlags = 0x00020000
	OpenPrivateCache  OpenFlags = 0x00040000
	OpenWal           OpenFlags = 0x00080000 // VFS only
	OpenNoFollow      OpenFlags = 0x01000000
	OpenExResCode     OpenFlags = 0x02000000 // Extended result codes
)

type PrepareFlags

type PrepareFlags c.Int

PrepareFlags represents SQLite prepare flags.

const (
	PreparePersistent PrepareFlags = 0x01
	PrepareNormalize  PrepareFlags = 0x02
	PrepareNoVtab     PrepareFlags = 0x04
)

type Sqlite3

type Sqlite3 struct {
	Unused [8]byte
}

llgo:type C

func (*Sqlite3) Close

func (db *Sqlite3) Close() Errno

Closing A Database Connection

llgo:link (*Sqlite3).Close C.sqlite3_close

func (*Sqlite3) CloseV2

func (db *Sqlite3) CloseV2() Errno

Closing A Database Connection

llgo:link (*Sqlite3).CloseV2 C.sqlite3_close_v2

func (*Sqlite3) Errcode

func (db *Sqlite3) Errcode() Errno

llgo:link (*Sqlite3).Errcode C.sqlite3_errcode

func (*Sqlite3) Errmsg

func (db *Sqlite3) Errmsg() *c.Char

llgo:link (*Sqlite3).Errmsg C.sqlite3_errmsg

func (*Sqlite3) Exec

func (*Sqlite3) Exec(
	sql *c.Char, callback func(arg c.Pointer, resultCols c.Int, colVals, colNames **c.Char) c.Int,
	arg c.Pointer, errmsg **c.Char) Errno

One-Step Query Execution Interface

llgo:link (*Sqlite3).Exec C.sqlite3_exec

func (*Sqlite3) ExtendedErrcode

func (db *Sqlite3) ExtendedErrcode() Errno

llgo:link (*Sqlite3).ExtendedErrcode C.sqlite3_extended_errcode

func (*Sqlite3) Prepare

func (db *Sqlite3) Prepare(sql string, tail **c.Char) (stmt *Stmt, err Errno)

Compiling An SQL Statement tail: Pointer to unused portion of sql

func (*Sqlite3) PrepareV2

func (db *Sqlite3) PrepareV2(sql string, tail **c.Char) (stmt *Stmt, err Errno)

func (*Sqlite3) PrepareV3

func (db *Sqlite3) PrepareV3(sql string, flags PrepareFlags, tail **c.Char) (stmt *Stmt, err Errno)

type Stmt

type Stmt struct {
	Unused [8]byte
}

llgo:type C

func (*Stmt) BindInt

func (*Stmt) BindInt(idx c.Int, val c.Int) Errno

llgo:link (*Stmt).BindInt C.sqlite3_bind_int

func (*Stmt) BindInt64

func (*Stmt) BindInt64(idx c.Int, val int64) Errno

llgo:link (*Stmt).BindInt64 C.sqlite3_bind_int64

func (*Stmt) BindText

func (*Stmt) BindText(idx c.Int, val *c.Char, nByte c.Int, destructor func(c.Pointer)) Errno

llgo:link (*Stmt).BindText C.sqlite3_bind_text

func (*Stmt) Close

func (stmt *Stmt) Close() Errno

Destroy A Prepared Statement Object

llgo:link (*Stmt).Close C.sqlite3_finalize

func (*Stmt) ColumnCount

func (stmt *Stmt) ColumnCount() c.Int

llgo:link (*Stmt).ColumnCount C.sqlite3_column_count

func (*Stmt) ColumnInt

func (stmt *Stmt) ColumnInt(idx c.Int) c.Int

llgo:link (*Stmt).ColumnInt C.sqlite3_column_int

func (*Stmt) ColumnInt64

func (stmt *Stmt) ColumnInt64(idx c.Int) int64

llgo:link (*Stmt).ColumnInt64 C.sqlite3_column_int64

func (*Stmt) ColumnName

func (stmt *Stmt) ColumnName(idx c.Int) *c.Char

llgo:link (*Stmt).ColumnName C.sqlite3_column_name

func (*Stmt) ColumnText

func (stmt *Stmt) ColumnText(idx c.Int) *c.Char

llgo:link (*Stmt).ColumnText C.sqlite3_column_text

func (*Stmt) Reset

func (stmt *Stmt) Reset() Errno

Reset A Prepared Statement Object

llgo:link (*Stmt).Reset C.sqlite3_reset

func (*Stmt) Step

func (*Stmt) Step() Errno

Evaluate An SQL Statement

llgo:link (*Stmt).Step C.sqlite3_step

Directories

Path Synopsis
_demo
sqlitedemo command

Jump to

Keyboard shortcuts

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