9#ifndef HEADER_SQLITEPP_CONTEXT_IFACE_INCLUDED
10#define HEADER_SQLITEPP_CONTEXT_IFACE_INCLUDED
13#include "value_iface.hpp"
65 #if __cpp_char8_t >= 201811
80 void error(
int error_code)
noexcept
141 if (
auto data =
value.data())
146 #if __cpp_char8_t >= 201811
151 if (
auto data =
value.data())
168 if (
auto data =
value.data())
173 #if __cpp_char8_t >= 201811
178 if (
auto data =
value.data())
198 if (
auto data =
value.data())
209 #if __cpp_char8_t >= 201811
214 if (
auto data =
value.data())
236 if (
auto data =
value.data())
253 if (
auto data =
value.data())
273 if (
auto data =
value.data())
303 void result(T * ptr,
const char * type,
void(*destroy)(T*))
noexcept
318 { this->
result(ptr.release(),
typeid(T).name(), [](T * p) { delete p;}); }
328#if SQLITE_VERSION_NUMBER >= SQLITEPP_SQLITE_VERSION(3, 9, 0)
359 void set_auxdata(
int arg, T * data,
void (*destroy)(T*)
noexcept)
noexcept
375#if SQLITE_VERSION_NUMBER >= SQLITEPP_SQLITE_VERSION(3, 22, 0)
sqlite3_aggregate_context
SQL Function Context Object.
Definition context_iface.hpp:37
void result(int value) noexcept
Return an int from the implemented SQL function.
Definition context_iface.hpp:112
void result_subtype(unsigned value) noexcept
Sets the subtype of the result of the implemented SQL function.
Definition context_iface.hpp:336
void result(double value) noexcept
Return a double from implemented SQL function.
Definition context_iface.hpp:128
~context() noexcept=delete
Contexts are never destroyed by user code.
void result_reference(const std::u8string_view &value, void(*unref)(const char8_t *)) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition context_iface.hpp:211
class database & database() const noexcept
Retrieve database connection for the context.
Definition context_iface.hpp:55
void result(int64_t value) noexcept
Return an int64_t from implemented SQL function.
Definition context_iface.hpp:120
void error(int error_code) noexcept
Changes the error code returned by function evaluation.
Definition context_iface.hpp:80
void result(std::unique_ptr< T > ptr) noexcept
Return a custom pointer from the implemented SQL function.
Definition context_iface.hpp:317
void result_reference(const std::string_view &value) noexcept
Return a string by reference from the implemented SQL function.
Definition context_iface.hpp:165
T * get_auxdata(int arg) const noexcept
Get auxiliary data associated with argument values.
Definition context_iface.hpp:348
void result(const blob_view &value) noexcept
Return a blob by value from the implemented SQL function.
Definition context_iface.hpp:233
void error_toobig() noexcept
Causes the implemented SQL function to throw an SQL exception indicating that a string or BLOB is too...
Definition context_iface.hpp:96
void result_reference(const std::string_view &value, void(*unref)(const char *)) noexcept
Return a string by reference from the implemented SQL function.
Definition context_iface.hpp:195
void result(const zero_blob &value) noexcept
Return a blob of zeroes from the implemented SQL function.
Definition context_iface.hpp:291
void result(const value &val) noexcept
Return a copy of the passed value from the implemented SQL function.
Definition context_iface.hpp:325
void result(const std::u8string_view &value) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition context_iface.hpp:148
T * user_data() noexcept
Return the function's user data.
Definition context_iface.hpp:372
bool vtab_nochange() const noexcept
Return if a value being fetched as part of an UPDATE operation during which the column value will not...
Definition context_iface.hpp:381
void result(std::nullptr_t) noexcept
Return NULL from the implemented SQL function.
Definition context_iface.hpp:104
void error_nomem() noexcept
Causes the implemented SQL function to throw an SQL exception indicating that a memory allocation fai...
Definition context_iface.hpp:88
void error(const std::string_view &value) noexcept
Cause the implemented SQL function to throw an SQL exception.
Definition context_iface.hpp:63
void result_reference(const std::u8string_view &value) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition context_iface.hpp:175
void result_reference(const blob_view &value, void(*unref)(const std::byte *) noexcept) noexcept
Return a blob by reference from the implemented SQL function.
Definition context_iface.hpp:270
void * aggregate_context(int size) noexcept
Allocate memory for aggregate function context.
Definition context_iface.hpp:47
void result(T *ptr, const char *type, void(*destroy)(T *)) noexcept
Definition context_iface.hpp:303
void result_reference(const blob_view &value) noexcept
Return a blob by reference from the implemented SQL function.
Definition context_iface.hpp:250
void set_auxdata(int arg, T *data, void(*destroy)(T *) noexcept) noexcept
Associate auxiliary data with argument values.
Definition context_iface.hpp:359
void result(const std::string_view &value) noexcept
Return a string by value from the implemented SQL function.
Definition context_iface.hpp:138
void error(const std::u8string_view &value) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition context_iface.hpp:67
Database Connection.
Definition database_iface.hpp:108
Base functionality for all fake wrapper classes
Definition handle.hpp:27
sqlite3_context * c_ptr() const noexcept
Definition handle.hpp:45
Dynamically Typed Value Object.
Definition value_iface.hpp:35
An efficient blob of zeroes of a given size.
Definition span.hpp:256
sqlite3_context_db_handle
ThinSQLite++ namespace.
Definition backup_iface.hpp:17