forked from Mirrorlandia_minetest/minetest
Get rid of legacy workaround in SQLite backend
tested on Android 11, fixes #11937
This commit is contained in:
parent
91c6728eb8
commit
66e8aae9f2
@ -228,11 +228,7 @@ void MapDatabaseSQLite3::createDatabase()
|
|||||||
void MapDatabaseSQLite3::initStatements()
|
void MapDatabaseSQLite3::initStatements()
|
||||||
{
|
{
|
||||||
PREPARE_STATEMENT(read, "SELECT `data` FROM `blocks` WHERE `pos` = ? LIMIT 1");
|
PREPARE_STATEMENT(read, "SELECT `data` FROM `blocks` WHERE `pos` = ? LIMIT 1");
|
||||||
#ifdef __ANDROID__
|
|
||||||
PREPARE_STATEMENT(write, "INSERT INTO `blocks` (`pos`, `data`) VALUES (?, ?)");
|
|
||||||
#else
|
|
||||||
PREPARE_STATEMENT(write, "REPLACE INTO `blocks` (`pos`, `data`) VALUES (?, ?)");
|
PREPARE_STATEMENT(write, "REPLACE INTO `blocks` (`pos`, `data`) VALUES (?, ?)");
|
||||||
#endif
|
|
||||||
PREPARE_STATEMENT(delete, "DELETE FROM `blocks` WHERE `pos` = ?");
|
PREPARE_STATEMENT(delete, "DELETE FROM `blocks` WHERE `pos` = ?");
|
||||||
PREPARE_STATEMENT(list, "SELECT `pos` FROM `blocks`");
|
PREPARE_STATEMENT(list, "SELECT `pos` FROM `blocks`");
|
||||||
|
|
||||||
@ -265,19 +261,6 @@ bool MapDatabaseSQLite3::saveBlock(const v3s16 &pos, const std::string &data)
|
|||||||
{
|
{
|
||||||
verifyDatabase();
|
verifyDatabase();
|
||||||
|
|
||||||
#ifdef __ANDROID__
|
|
||||||
/**
|
|
||||||
* Note: For some unknown reason SQLite3 fails to REPLACE blocks on Android,
|
|
||||||
* deleting them and then inserting works.
|
|
||||||
*/
|
|
||||||
bindPos(m_stmt_read, pos);
|
|
||||||
|
|
||||||
if (sqlite3_step(m_stmt_read) == SQLITE_ROW) {
|
|
||||||
deleteBlock(pos);
|
|
||||||
}
|
|
||||||
sqlite3_reset(m_stmt_read);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
bindPos(m_stmt_write, pos);
|
bindPos(m_stmt_write, pos);
|
||||||
SQLOK(sqlite3_bind_blob(m_stmt_write, 2, data.data(), data.size(), NULL),
|
SQLOK(sqlite3_bind_blob(m_stmt_write, 2, data.data(), data.size(), NULL),
|
||||||
"Internal error: failed to bind query at " __FILE__ ":" TOSTRING(__LINE__));
|
"Internal error: failed to bind query at " __FILE__ ":" TOSTRING(__LINE__));
|
||||||
|
Loading…
Reference in New Issue
Block a user