summaryrefslogtreecommitdiff
path: root/src/common/sql.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/sql.h')
-rw-r--r--src/common/sql.h139
1 files changed, 70 insertions, 69 deletions
diff --git a/src/common/sql.h b/src/common/sql.h
index 4534061e0..898e2c778 100644
--- a/src/common/sql.h
+++ b/src/common/sql.h
@@ -21,38 +21,39 @@
/// Data type identifier.
/// String, enum and blob data types need the buffer length specified.
-enum SqlDataType {
- SQLDT_NULL,
- // fixed size
- SQLDT_INT8,
- SQLDT_INT16,
- SQLDT_INT32,
- SQLDT_INT64,
- SQLDT_UINT8,
- SQLDT_UINT16,
- SQLDT_UINT32,
- SQLDT_UINT64,
- // platform dependent size
- SQLDT_CHAR,
- SQLDT_SHORT,
- SQLDT_INT,
- SQLDT_LONG,
- SQLDT_LONGLONG,
- SQLDT_UCHAR,
- SQLDT_USHORT,
- SQLDT_UINT,
- SQLDT_ULONG,
- SQLDT_ULONGLONG,
- // floating point
- SQLDT_FLOAT,
- SQLDT_DOUBLE,
- // other
- SQLDT_STRING,
- SQLDT_ENUM,
- // Note: An ENUM is a string with restricted values. When an invalid value
- // is inserted, it is saved as an empty string (numerical value 0).
- SQLDT_BLOB,
- SQLDT_LASTID
+enum SqlDataType
+{
+ SQLDT_NULL,
+ // fixed size
+ SQLDT_INT8,
+ SQLDT_INT16,
+ SQLDT_INT32,
+ SQLDT_INT64,
+ SQLDT_UINT8,
+ SQLDT_UINT16,
+ SQLDT_UINT32,
+ SQLDT_UINT64,
+ // platform dependent size
+ SQLDT_CHAR,
+ SQLDT_SHORT,
+ SQLDT_INT,
+ SQLDT_LONG,
+ SQLDT_LONGLONG,
+ SQLDT_UCHAR,
+ SQLDT_USHORT,
+ SQLDT_UINT,
+ SQLDT_ULONG,
+ SQLDT_ULONGLONG,
+ // floating point
+ SQLDT_FLOAT,
+ SQLDT_DOUBLE,
+ // other
+ SQLDT_STRING,
+ SQLDT_ENUM,
+ // Note: An ENUM is a string with restricted values. When an invalid value
+ // is inserted, it is saved as an empty string (numerical value 0).
+ SQLDT_BLOB,
+ SQLDT_LASTID
};
struct Sql;// Sql handle (private access)
@@ -64,14 +65,14 @@ typedef struct SqlStmt SqlStmt;
/// Allocates and initializes a new Sql handle.
-struct Sql *Sql_Malloc(void);
+struct Sql* Sql_Malloc(void);
/// Establishes a connection.
///
/// @return SQL_SUCCESS or SQL_ERROR
-int Sql_Connect(Sql *self, const char *user, const char *passwd, const char *host, uint16 port, const char *db);
+int Sql_Connect(Sql* self, const char* user, const char* passwd, const char* host, uint16 port, const char* db);
@@ -79,7 +80,7 @@ int Sql_Connect(Sql *self, const char *user, const char *passwd, const char *hos
/// Retrieves the timeout of the connection.
///
/// @return SQL_SUCCESS or SQL_ERROR
-int Sql_GetTimeout(Sql *self, uint32 *out_timeout);
+int Sql_GetTimeout(Sql* self, uint32* out_timeout);
@@ -87,7 +88,7 @@ int Sql_GetTimeout(Sql *self, uint32 *out_timeout);
/// Retrieves the name of the columns of a table into out_buf, with the separator after each name.
///
/// @return SQL_SUCCESS or SQL_ERROR
-int Sql_GetColumnNames(Sql *self, const char *table, char *out_buf, size_t buf_len, char sep);
+int Sql_GetColumnNames(Sql* self, const char* table, char* out_buf, size_t buf_len, char sep);
@@ -95,14 +96,14 @@ int Sql_GetColumnNames(Sql *self, const char *table, char *out_buf, size_t buf_l
/// Changes the encoding of the connection.
///
/// @return SQL_SUCCESS or SQL_ERROR
-int Sql_SetEncoding(Sql *self, const char *encoding);
+int Sql_SetEncoding(Sql* self, const char* encoding);
/// Pings the connection.
///
/// @return SQL_SUCCESS or SQL_ERROR
-int Sql_Ping(Sql *self);
+int Sql_Ping(Sql* self);
@@ -110,7 +111,7 @@ int Sql_Ping(Sql *self);
/// The output buffer must be at least strlen(from)*2+1 in size.
///
/// @return The size of the escaped string
-size_t Sql_EscapeString(Sql *self, char *out_to, const char *from);
+size_t Sql_EscapeString(Sql* self, char* out_to, const char* from);
@@ -118,7 +119,7 @@ size_t Sql_EscapeString(Sql *self, char *out_to, const char *from);
/// The output buffer must be at least from_len*2+1 in size.
///
/// @return The size of the escaped string
-size_t Sql_EscapeStringLen(Sql *self, char *out_to, const char *from, size_t from_len);
+size_t Sql_EscapeStringLen(Sql* self, char* out_to, const char* from, size_t from_len);
@@ -127,7 +128,7 @@ size_t Sql_EscapeStringLen(Sql *self, char *out_to, const char *from, size_t fro
/// The query is constructed as if it was sprintf.
///
/// @return SQL_SUCCESS or SQL_ERROR
-int Sql_Query(Sql *self, const char *query, ...);
+int Sql_Query(Sql* self, const char* query, ...);
@@ -136,7 +137,7 @@ int Sql_Query(Sql *self, const char *query, ...);
/// The query is constructed as if it was svprintf.
///
/// @return SQL_SUCCESS or SQL_ERROR
-int Sql_QueryV(Sql *self, const char *query, va_list args);
+int Sql_QueryV(Sql* self, const char* query, va_list args);
@@ -145,28 +146,28 @@ int Sql_QueryV(Sql *self, const char *query, va_list args);
/// The query is used directly.
///
/// @return SQL_SUCCESS or SQL_ERROR
-int Sql_QueryStr(Sql *self, const char *query);
+int Sql_QueryStr(Sql* self, const char* query);
/// Returns the number of the AUTO_INCREMENT column of the last INSERT/UPDATE query.
///
/// @return Value of the auto-increment column
-uint64 Sql_LastInsertId(Sql *self);
+uint64 Sql_LastInsertId(Sql* self);
/// Returns the number of columns in each row of the result.
///
/// @return Number of columns
-uint32 Sql_NumColumns(Sql *self);
+uint32 Sql_NumColumns(Sql* self);
/// Returns the number of rows in the result.
///
/// @return Number of rows
-uint64 Sql_NumRows(Sql *self);
+uint64 Sql_NumRows(Sql* self);
@@ -174,7 +175,7 @@ uint64 Sql_NumRows(Sql *self);
/// The data of the previous row is no longer valid.
///
/// @return SQL_SUCCESS, SQL_ERROR or SQL_NO_DATA
-int Sql_NextRow(Sql *self);
+int Sql_NextRow(Sql* self);
@@ -182,12 +183,12 @@ int Sql_NextRow(Sql *self);
/// The data remains valid until the next row is fetched or the result is freed.
///
/// @return SQL_SUCCESS or SQL_ERROR
-int Sql_GetData(Sql *self, size_t col, char **out_buf, size_t *out_len);
+int Sql_GetData(Sql* self, size_t col, char** out_buf, size_t* out_len);
/// Frees the result of the query.
-void Sql_FreeResult(Sql *self);
+void Sql_FreeResult(Sql* self);
@@ -197,22 +198,22 @@ void Sql_FreeResult(Sql *self);
#define Sql_ShowDebug(self) Sql_ShowDebug_(self, __FILE__, __LINE__)
#endif
/// Shows debug information (last query).
-void Sql_ShowDebug_(Sql *self, const char *debug_file, const unsigned long debug_line);
+void Sql_ShowDebug_(Sql* self, const char* debug_file, const unsigned long debug_line);
/// Frees a Sql handle returned by Sql_Malloc.
-void Sql_Free(Sql *self);
+void Sql_Free(Sql* self);
///////////////////////////////////////////////////////////////////////////////
// Prepared Statements
///////////////////////////////////////////////////////////////////////////////
-// Parameters are placed in the statement by embedding question mark ('?')
+// Parameters are placed in the statement by embedding question mark ('?')
// characters into the query at the appropriate positions.
// The markers are legal only in places where they represent data.
-// The markers cannot be inside quotes. Quotes will be added automatically
+// The markers cannot be inside quotes. Quotes will be added automatically
// when they are required.
//
// example queries with parameters:
@@ -226,7 +227,7 @@ void Sql_Free(Sql *self);
/// Queries in Sql and SqlStmt are independent and don't affect each other.
///
/// @return SqlStmt handle or NULL if an error occured
-struct SqlStmt *SqlStmt_Malloc(Sql *sql);
+struct SqlStmt* SqlStmt_Malloc(Sql* sql);
@@ -235,7 +236,7 @@ struct SqlStmt *SqlStmt_Malloc(Sql *sql);
/// The query is constructed as if it was sprintf.
///
/// @return SQL_SUCCESS or SQL_ERROR
-int SqlStmt_Prepare(SqlStmt *self, const char *query, ...);
+int SqlStmt_Prepare(SqlStmt* self, const char* query, ...);
@@ -244,7 +245,7 @@ int SqlStmt_Prepare(SqlStmt *self, const char *query, ...);
/// The query is constructed as if it was svprintf.
///
/// @return SQL_SUCCESS or SQL_ERROR
-int SqlStmt_PrepareV(SqlStmt *self, const char *query, va_list args);
+int SqlStmt_PrepareV(SqlStmt* self, const char* query, va_list args);
@@ -253,14 +254,14 @@ int SqlStmt_PrepareV(SqlStmt *self, const char *query, va_list args);
/// The query is used directly.
///
/// @return SQL_SUCCESS or SQL_ERROR
-int SqlStmt_PrepareStr(SqlStmt *self, const char *query);
+int SqlStmt_PrepareStr(SqlStmt* self, const char* query);
/// Returns the number of parameters in the prepared statement.
///
/// @return Number or paramenters
-size_t SqlStmt_NumParams(SqlStmt *self);
+size_t SqlStmt_NumParams(SqlStmt* self);
@@ -269,7 +270,7 @@ size_t SqlStmt_NumParams(SqlStmt *self);
/// All parameters should have bindings.
///
/// @return SQL_SUCCESS or SQL_ERROR
-int SqlStmt_BindParam(SqlStmt *self, size_t idx, SqlDataType buffer_type, void *buffer, size_t buffer_len);
+int SqlStmt_BindParam(SqlStmt* self, size_t idx, SqlDataType buffer_type, void* buffer, size_t buffer_len);
@@ -277,38 +278,38 @@ int SqlStmt_BindParam(SqlStmt *self, size_t idx, SqlDataType buffer_type, void *
/// Any previous result is freed and all column bindings are removed.
///
/// @return SQL_SUCCESS or SQL_ERROR
-int SqlStmt_Execute(SqlStmt *self);
+int SqlStmt_Execute(SqlStmt* self);
/// Returns the number of the AUTO_INCREMENT column of the last INSERT/UPDATE statement.
///
/// @return Value of the auto-increment column
-uint64 SqlStmt_LastInsertId(SqlStmt *self);
+uint64 SqlStmt_LastInsertId(SqlStmt* self);
/// Returns the number of columns in each row of the result.
///
/// @return Number of columns
-size_t SqlStmt_NumColumns(SqlStmt *self);
+size_t SqlStmt_NumColumns(SqlStmt* self);
/// Binds the result of a column to a buffer.
/// The buffer will be filled with data when the next row is fetched.
-/// For string/enum buffer types there has to be enough space for the data
+/// For string/enum buffer types there has to be enough space for the data
/// and the nul-terminator (an extra byte).
///
/// @return SQL_SUCCESS or SQL_ERROR
-int SqlStmt_BindColumn(SqlStmt *self, size_t idx, SqlDataType buffer_type, void *buffer, size_t buffer_len, uint32 *out_length, int8 *out_is_null);
+int SqlStmt_BindColumn(SqlStmt* self, size_t idx, SqlDataType buffer_type, void* buffer, size_t buffer_len, uint32* out_length, int8* out_is_null);
/// Returns the number of rows in the result.
///
/// @return Number of rows
-uint64 SqlStmt_NumRows(SqlStmt *self);
+uint64 SqlStmt_NumRows(SqlStmt* self);
@@ -316,12 +317,12 @@ uint64 SqlStmt_NumRows(SqlStmt *self);
/// All column bindings will be filled with data.
///
/// @return SQL_SUCCESS, SQL_ERROR or SQL_NO_DATA
-int SqlStmt_NextRow(SqlStmt *self);
+int SqlStmt_NextRow(SqlStmt* self);
/// Frees the result of the statement execution.
-void SqlStmt_FreeResult(SqlStmt *self);
+void SqlStmt_FreeResult(SqlStmt* self);
@@ -331,12 +332,12 @@ void SqlStmt_FreeResult(SqlStmt *self);
#define SqlStmt_ShowDebug(self) SqlStmt_ShowDebug_(self, __FILE__, __LINE__)
#endif
/// Shows debug information (with statement).
-void SqlStmt_ShowDebug_(SqlStmt *self, const char *debug_file, const unsigned long debug_line);
+void SqlStmt_ShowDebug_(SqlStmt* self, const char* debug_file, const unsigned long debug_line);
/// Frees a SqlStmt returned by SqlStmt_Malloc.
-void SqlStmt_Free(SqlStmt *self);
+void SqlStmt_Free(SqlStmt* self);