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()
|
||||
{
|
||||
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 (?, ?)");
|
||||
#endif
|
||||
PREPARE_STATEMENT(delete, "DELETE FROM `blocks` WHERE `pos` = ?");
|
||||
PREPARE_STATEMENT(list, "SELECT `pos` FROM `blocks`");
|
||||
|
||||
@ -265,19 +261,6 @@ bool MapDatabaseSQLite3::saveBlock(const v3s16 &pos, const std::string &data)
|
||||
{
|
||||
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);
|
||||
SQLOK(sqlite3_bind_blob(m_stmt_write, 2, data.data(), data.size(), NULL),
|
||||
"Internal error: failed to bind query at " __FILE__ ":" TOSTRING(__LINE__));
|
||||
|
Loading…
Reference in New Issue
Block a user