Feature #1805 ยป 0047-luasql-Clear-trailing-spaces.patch
| dependencies/luasql/Version.txt | ||
|---|---|---|
|
- Commit 10ed75b36bf909f57b3c1a070dd87669c323cff0 backported
|
||
|
- Fixed compile error on ls_sqlite3.c raw_readparams_table()
|
||
|
Fix has been submitted to upstream.
|
||
|
- Cleared trailing spaces
|
||
|
Equivalent patch submitted to upstream.
|
||
|
Only the files needed by freeciv are included here, not entire luasql
|
||
|
source directory hierarchy.
|
||
| dependencies/luasql/src/ls_mysql.c | ||
|---|---|---|
|
#define LUASQL_CURSOR_MYSQL "MySQL cursor"
|
||
|
/* For compat with old version 4.0 */
|
||
|
#if (MYSQL_VERSION_ID < 40100)
|
||
|
#define MYSQL_TYPE_VAR_STRING FIELD_TYPE_VAR_STRING
|
||
|
#define MYSQL_TYPE_STRING FIELD_TYPE_STRING
|
||
|
#define MYSQL_TYPE_DECIMAL FIELD_TYPE_DECIMAL
|
||
|
#define MYSQL_TYPE_SHORT FIELD_TYPE_SHORT
|
||
|
#define MYSQL_TYPE_LONG FIELD_TYPE_LONG
|
||
|
#define MYSQL_TYPE_FLOAT FIELD_TYPE_FLOAT
|
||
|
#define MYSQL_TYPE_DOUBLE FIELD_TYPE_DOUBLE
|
||
|
#define MYSQL_TYPE_LONGLONG FIELD_TYPE_LONGLONG
|
||
|
#define MYSQL_TYPE_INT24 FIELD_TYPE_INT24
|
||
|
#define MYSQL_TYPE_YEAR FIELD_TYPE_YEAR
|
||
|
#define MYSQL_TYPE_TINY FIELD_TYPE_TINY
|
||
|
#define MYSQL_TYPE_TINY_BLOB FIELD_TYPE_TINY_BLOB
|
||
|
#define MYSQL_TYPE_MEDIUM_BLOB FIELD_TYPE_MEDIUM_BLOB
|
||
|
#define MYSQL_TYPE_LONG_BLOB FIELD_TYPE_LONG_BLOB
|
||
|
#define MYSQL_TYPE_BLOB FIELD_TYPE_BLOB
|
||
|
#define MYSQL_TYPE_DATE FIELD_TYPE_DATE
|
||
|
#define MYSQL_TYPE_NEWDATE FIELD_TYPE_NEWDATE
|
||
|
#define MYSQL_TYPE_DATETIME FIELD_TYPE_DATETIME
|
||
|
#define MYSQL_TYPE_TIME FIELD_TYPE_TIME
|
||
|
#define MYSQL_TYPE_TIMESTAMP FIELD_TYPE_TIMESTAMP
|
||
|
#define MYSQL_TYPE_ENUM FIELD_TYPE_ENUM
|
||
|
#if (MYSQL_VERSION_ID < 40100)
|
||
|
#define MYSQL_TYPE_VAR_STRING FIELD_TYPE_VAR_STRING
|
||
|
#define MYSQL_TYPE_STRING FIELD_TYPE_STRING
|
||
|
#define MYSQL_TYPE_DECIMAL FIELD_TYPE_DECIMAL
|
||
|
#define MYSQL_TYPE_SHORT FIELD_TYPE_SHORT
|
||
|
#define MYSQL_TYPE_LONG FIELD_TYPE_LONG
|
||
|
#define MYSQL_TYPE_FLOAT FIELD_TYPE_FLOAT
|
||
|
#define MYSQL_TYPE_DOUBLE FIELD_TYPE_DOUBLE
|
||
|
#define MYSQL_TYPE_LONGLONG FIELD_TYPE_LONGLONG
|
||
|
#define MYSQL_TYPE_INT24 FIELD_TYPE_INT24
|
||
|
#define MYSQL_TYPE_YEAR FIELD_TYPE_YEAR
|
||
|
#define MYSQL_TYPE_TINY FIELD_TYPE_TINY
|
||
|
#define MYSQL_TYPE_TINY_BLOB FIELD_TYPE_TINY_BLOB
|
||
|
#define MYSQL_TYPE_MEDIUM_BLOB FIELD_TYPE_MEDIUM_BLOB
|
||
|
#define MYSQL_TYPE_LONG_BLOB FIELD_TYPE_LONG_BLOB
|
||
|
#define MYSQL_TYPE_BLOB FIELD_TYPE_BLOB
|
||
|
#define MYSQL_TYPE_DATE FIELD_TYPE_DATE
|
||
|
#define MYSQL_TYPE_NEWDATE FIELD_TYPE_NEWDATE
|
||
|
#define MYSQL_TYPE_DATETIME FIELD_TYPE_DATETIME
|
||
|
#define MYSQL_TYPE_TIME FIELD_TYPE_TIME
|
||
|
#define MYSQL_TYPE_TIMESTAMP FIELD_TYPE_TIMESTAMP
|
||
|
#define MYSQL_TYPE_ENUM FIELD_TYPE_ENUM
|
||
|
#define MYSQL_TYPE_SET FIELD_TYPE_SET
|
||
|
#define MYSQL_TYPE_NULL FIELD_TYPE_NULL
|
||
| ... | ... | |
|
return "string";
|
||
|
case MYSQL_TYPE_DECIMAL: case MYSQL_TYPE_SHORT: case MYSQL_TYPE_LONG:
|
||
|
case MYSQL_TYPE_FLOAT: case MYSQL_TYPE_DOUBLE: case MYSQL_TYPE_LONGLONG:
|
||
|
case MYSQL_TYPE_INT24: case MYSQL_TYPE_YEAR: case MYSQL_TYPE_TINY:
|
||
|
case MYSQL_TYPE_INT24: case MYSQL_TYPE_YEAR: case MYSQL_TYPE_TINY:
|
||
|
return "number";
|
||
|
case MYSQL_TYPE_TINY_BLOB: case MYSQL_TYPE_MEDIUM_BLOB:
|
||
|
case MYSQL_TYPE_LONG_BLOB: case MYSQL_TYPE_BLOB:
|
||
| ... | ... | |
|
conn_data *conn = getconnection (L);
|
||
|
size_t st_len;
|
||
|
const char *statement = luaL_checklstring (L, 2, &st_len);
|
||
|
if (mysql_real_query(conn->my_conn, statement, st_len))
|
||
|
if (mysql_real_query(conn->my_conn, statement, st_len))
|
||
|
/* error executing query */
|
||
|
return luasql_failmsg(L, "error executing query. MySQL: ", mysql_error(conn->my_conn));
|
||
|
else
|
||
| ... | ... | |
|
if (conn == NULL)
|
||
|
return luasql_faildirect(L, "error connecting: Out of memory.");
|
||
|
if (!mysql_real_connect(conn, host, username, password,
|
||
|
if (!mysql_real_connect(conn, host, username, password,
|
||
|
sourcename, port, unix_socket, client_flag))
|
||
|
{
|
||
|
char error_msg[100];
|
||
| ... | ... | |
|
** Creates the metatables for the objects and registers the
|
||
|
** driver open method.
|
||
|
*/
|
||
|
LUASQL_API int luaopen_luasql_mysql (lua_State *L) {
|
||
|
LUASQL_API int luaopen_luasql_mysql (lua_State *L) {
|
||
|
struct luaL_Reg driver[] = {
|
||
|
{"mysql", create_environment},
|
||
|
{NULL, NULL},
|
||
| dependencies/luasql/src/ls_odbc.c | ||
|---|---|---|
|
/*
|
||
|
** Fails with error message from ODBC
|
||
|
** Inputs:
|
||
|
** Inputs:
|
||
|
** type: type of handle used in operation
|
||
|
** handle: handle used in operation
|
||
|
*/
|
||
| ... | ... | |
|
luaL_buffinit(L, &b);
|
||
|
i = 1;
|
||
|
while (1) {
|
||
|
ret = SQLGetDiagRec(type, handle, i, State, &NativeError, Msg,
|
||
|
ret = SQLGetDiagRec(type, handle, i, State, &NativeError, Msg,
|
||
|
sizeof(Msg), &MsgSize);
|
||
|
if (ret == SQL_NO_DATA) break;
|
||
|
luaL_addlstring(&b, (char*)Msg, MsgSize);
|
||
|
luaL_addchar(&b, '\n');
|
||
|
i++;
|
||
|
}
|
||
|
}
|
||
|
luaL_pushresult(&b);
|
||
|
return 2;
|
||
|
}
|
||
| ... | ... | |
|
*/
|
||
|
static const char *sqltypetolua (const SQLSMALLINT type) {
|
||
|
switch (type) {
|
||
|
case SQL_UNKNOWN_TYPE: case SQL_CHAR: case SQL_VARCHAR:
|
||
|
case SQL_TYPE_DATE: case SQL_TYPE_TIME: case SQL_TYPE_TIMESTAMP:
|
||
|
case SQL_DATE: case SQL_INTERVAL: case SQL_TIMESTAMP:
|
||
|
case SQL_UNKNOWN_TYPE: case SQL_CHAR: case SQL_VARCHAR:
|
||
|
case SQL_TYPE_DATE: case SQL_TYPE_TIME: case SQL_TYPE_TIMESTAMP:
|
||
|
case SQL_DATE: case SQL_INTERVAL: case SQL_TIMESTAMP:
|
||
|
case SQL_LONGVARCHAR:
|
||
|
case SQL_WCHAR: case SQL_WVARCHAR: case SQL_WLONGVARCHAR:
|
||
|
#if (ODBCVER >= 0x0350)
|
||
|
case SQL_GUID:
|
||
|
#endif
|
||
|
return "string";
|
||
|
case SQL_BIGINT: case SQL_TINYINT:
|
||
|
case SQL_INTEGER: case SQL_SMALLINT:
|
||
|
case SQL_BIGINT: case SQL_TINYINT:
|
||
|
case SQL_INTEGER: case SQL_SMALLINT:
|
||
|
#if LUA_VERSION_NUM>=503
|
||
|
return "integer";
|
||
|
#endif
|
||
|
case SQL_NUMERIC: case SQL_DECIMAL:
|
||
|
case SQL_NUMERIC: case SQL_DECIMAL:
|
||
|
case SQL_FLOAT: case SQL_REAL: case SQL_DOUBLE:
|
||
|
return "number";
|
||
|
case SQL_BINARY: case SQL_VARBINARY: case SQL_LONGVARBINARY:
|
||
| ... | ... | |
|
** Returns:
|
||
|
** 0 if successful, non-zero otherwise;
|
||
|
*/
|
||
|
static int push_column(lua_State *L, int coltypes, const SQLHSTMT hstmt,
|
||
|
static int push_column(lua_State *L, int coltypes, const SQLHSTMT hstmt,
|
||
|
SQLUSMALLINT i) {
|
||
|
const char *tname;
|
||
|
char type;
|
||
| ... | ... | |
|
/* deal with data according to type */
|
||
|
switch (type) {
|
||
|
/* nUmber */
|
||
|
case 'u': {
|
||
|
case 'u': {
|
||
|
SQLDOUBLE num;
|
||
|
SQLLEN got;
|
||
|
SQLRETURN rc = SQLGetData(hstmt, i, SQL_C_DOUBLE, &num, 0, &got);
|
||
| ... | ... | |
|
}
|
||
|
#endif
|
||
|
/* bOol */
|
||
|
case 'o': {
|
||
|
case 'o': {
|
||
|
SQLCHAR b;
|
||
|
SQLLEN got;
|
||
|
SQLRETURN rc = SQLGetData(hstmt, i, SQL_C_BIT, &b, 0, &got);
|
||
| ... | ... | |
|
return 0;
|
||
|
}
|
||
|
/* sTring */
|
||
|
case 't':
|
||
|
case 't':
|
||
|
/* bInary */
|
||
|
case 'i': {
|
||
|
case 'i': {
|
||
|
SQLSMALLINT stype = (type == 't') ? SQL_C_CHAR : SQL_C_BINARY;
|
||
|
SQLLEN got;
|
||
|
char *buffer;
|
||
| ... | ... | |
|
}
|
||
|
luaL_addsize(&b, got);
|
||
|
buffer = luaL_prepbuffer(&b);
|
||
|
rc = SQLGetData(hstmt, i, stype, buffer,
|
||
|
rc = SQLGetData(hstmt, i, stype, buffer,
|
||
|
LUAL_BUFFERSIZE, &got);
|
||
|
}
|
||
|
/* concat last chunk */
|
||
| ... | ... | |
|
}
|
||
|
/*
|
||
|
** Rolls back a transaction.
|
||
|
** Rolls back a transaction.
|
||
|
*/
|
||
|
static int conn_commit (lua_State *L) {
|
||
|
conn_data *conn = (conn_data *) getconnection (L, 1);
|
||
| ... | ... | |
|
}
|
||
|
/*
|
||
|
** Rollback the current transaction.
|
||
|
** Rollback the current transaction.
|
||
|
*/
|
||
|
static int conn_rollback (lua_State *L) {
|
||
|
conn_data *conn = (conn_data *) getconnection (L, 1);
|
||
| ... | ... | |
|
return luasql_faildirect (L, "connection allocation error.");
|
||
|
/* tries to connect handle */
|
||
|
ret = SQLConnect (hdbc, sourcename, SQL_NTS,
|
||
|
ret = SQLConnect (hdbc, sourcename, SQL_NTS,
|
||
|
username, SQL_NTS, password, SQL_NTS);
|
||
|
if (error(ret)) {
|
||
|
ret = fail(L, hDBC, hdbc);
|
||
| ... | ... | |
|
luaL_setfuncs (L, driver, 0);
|
||
|
luasql_set_info (L);
|
||
|
return 1;
|
||
|
}
|
||
|
}
|
||
| dependencies/luasql/src/ls_sqlite3.c | ||
|---|---|---|
|
lua_pushstring(L, "Connection is already closed");
|
||
|
return 2;
|
||
|
}
|
||
|
|
||
|
if (conn->cur_counter > 0)
|
||
|
{
|
||
|
lua_pushboolean(L, 0);
|
||
|
lua_pushstring(L, "There are open cursors");
|
||
|
return 2;
|
||
|
}
|
||
|
|
||
|
conn->closed = 1;
|
||
|
|
||
|
lua_pushboolean(L, 1);
|
||
|
return 1;
|
||
|
}
|
||
| ... | ... | |
|
lua_pushstring(L, "env is already closed");
|
||
|
return 2;
|
||
|
}
|
||
|
|
||
|
env->closed = 1;
|
||
|
lua_pushboolean(L, 1);
|
||
| dependencies/luasql/src/luasql.h | ||
|---|---|---|
|
#define LUASQL_CURSOR "Each driver must have a cursor metatable"
|
||
|
// Macro to handle userdata creation across Lua versions
|
||
|
#if LUA_VERSION_NUM >= 504
|
||
|
#if LUA_VERSION_NUM >= 504
|
||
|
#define LUASQL_NEWUD(L, size) lua_newuserdatauv(L, size, 0)
|
||
|
#else
|
||
|
#define LUASQL_NEWUD(L, size) lua_newuserdata(L, size)
|
||