Project

General

Profile

Feature #1805 ยป 0047-luasql-Clear-trailing-spaces.patch

Marko Lindqvist, 12/09/2025 11:03 PM

View differences:

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)
    (1-1/1)