libdballe  9.11
Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
dballe::sql::SQLiteConnection Class Reference

Database connection. More...

#include <sqlite.h>

Inheritance diagram for dballe::sql::SQLiteConnection:
dballe::sql::Connection

Public Member Functions

 SQLiteConnection (const SQLiteConnection &)=delete
 
 SQLiteConnection (const SQLiteConnection &&)=delete
 
SQLiteConnectionoperator= (const SQLiteConnection &)=delete
 
 operator sqlite3 * ()
 
void open_file (const std::string &pathname, int flags=SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE)
 
void open_memory (int flags=SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE)
 
void open_private_file (int flags=SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE)
 
std::unique_ptr< Transactiontransaction (bool readonly=false) override
 Begin a transaction. More...
 
std::unique_ptr< SQLiteStatementsqlitestatement (const std::string &query)
 
bool has_table (const std::string &name) override
 Check if the database contains a table.
 
std::string get_setting (const std::string &key) override
 Get a value from the settings table. More...
 
void set_setting (const std::string &key, const std::string &value) override
 Set a value in the settings table. More...
 
void drop_settings () override
 Drop the settings table.
 
void execute (const std::string &query) override
 Execute a query without reading its results.
 
void explain (const std::string &query, FILE *out) override
 Format and print the EXPLAIN output for the query to the given file.
 
void drop_table_if_exists (const char *name)
 Delete a table in the database if it exists, otherwise do nothing.
 
int get_last_insert_id ()
 Return LAST_INSERT_ID or LAST_INSER_ROWID or whatever is appropriate for the current database, if supported. More...
 
int changes ()
 Count the number of rows modified by the last query that was run.
 
void exec (const std::string &query)
 Wrap sqlite3_exec, without a callback.
 
void exec_nothrow (const std::string &query) noexcept
 
- Public Member Functions inherited from dballe::sql::Connection
const std::string & get_url () const
 
virtual void add_datetime (Querybuf &qb, const Datetime &dt) const
 Format a datetime and add it to the querybuf.
 

Static Public Member Functions

static std::shared_ptr< SQLiteConnectioncreate ()
 
- Static Public Member Functions inherited from dballe::sql::Connection
static std::shared_ptr< Connectioncreate (const DBConnectOptions &options)
 Create a new connection from a URL.
 

Protected Member Functions

void init_after_connect ()
 
void fork_prepare () override
 
void fork_parent () override
 
void fork_child () override
 
void check_connection ()
 
void reopen ()
 
- Protected Member Functions inherited from dballe::sql::Connection
void register_atfork ()
 Register this connection to be notified in case of fork()-ing.
 

Static Protected Member Functions

static void on_sqlite3_profile (void *arg, const char *query, sqlite3_uint64 usecs)
 

Protected Attributes

std::string pathname
 Connection pathname.
 
int flags = 0
 Connection flags.
 
sqlite3 * db = nullptr
 Database connection.
 
bool forked = false
 Marker to catch attempts to reuse connections in forked processes.
 
- Protected Attributes inherited from dballe::sql::Connection
std::string url
 

Additional Inherited Members

- Public Attributes inherited from dballe::sql::Connection
ServerType server_type
 Type of SQL server we are connected to. More...
 

Detailed Description

Database connection.

Member Function Documentation

◆ get_last_insert_id()

int dballe::sql::SQLiteConnection::get_last_insert_id ( )

Return LAST_INSERT_ID or LAST_INSER_ROWID or whatever is appropriate for the current database, if supported.

If not supported, an exception is thrown.

◆ get_setting()

std::string dballe::sql::SQLiteConnection::get_setting ( const std::string &  key)
overridevirtual

Get a value from the settings table.

Returns the empty string if the table does not exist.

Implements dballe::sql::Connection.

◆ set_setting()

void dballe::sql::SQLiteConnection::set_setting ( const std::string &  key,
const std::string &  value 
)
overridevirtual

Set a value in the settings table.

The table is created if it does not exist.

Implements dballe::sql::Connection.

◆ transaction()

std::unique_ptr<Transaction> dballe::sql::SQLiteConnection::transaction ( bool  readonly = false)
overridevirtual

Begin a transaction.

The transaction will be controller by the returned Transaction object, and will end when its destuctor is called.

Implements dballe::sql::Connection.


The documentation for this class was generated from the following file: