31 std::optional<int> sqlite_open_flags = std::nullopt);
40 size_t row_count(std::string_view table_name)
override;
42 void create_table(std::string_view table_schema)
override;
46 std::shared_ptr<Statement>
new_statement(std::string_view sql)
const override;
51 class Sqlite3_Statement final :
public Statement {
53 void bind(
int column, std::string_view val)
override;
54 void bind(
int column,
size_t val)
override;
55 void bind(
int column, std::chrono::system_clock::time_point time)
override;
56 void bind(
int column,
const std::vector<uint8_t>& val)
override;
57 void bind(
int column,
const uint8_t* data,
size_t len)
override;
59 std::pair<const uint8_t*, size_t> get_blob(
int column)
override;
60 std::string get_str(
int column)
override;
61 size_t get_size_t(
int column)
override;
63 size_t spin()
override;
66 Sqlite3_Statement(sqlite3* db, std::string_view base_sql);
67 ~Sqlite3_Statement()
override;
69 Sqlite3_Statement(
const Sqlite3_Statement& other) =
delete;
70 Sqlite3_Statement(Sqlite3_Statement&& other) =
delete;
71 Sqlite3_Statement&
operator=(
const Sqlite3_Statement& other) =
delete;
72 Sqlite3_Statement&
operator=(Sqlite3_Statement&& other) =
delete;