dodo icon indicating copy to clipboard operation
dodo copied to clipboard

Searching with "@" crashes sqlite FTS

Open burntcookie90 opened this issue 4 years ago • 1 comments

dodo                      | org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (fts5: syntax error near "@")
dodo                      |     at org.sqlite.core.DB.newSQLException(DB.java:1012)
dodo                      |     at org.sqlite.core.DB.newSQLException(DB.java:1024)
dodo                      |     at org.sqlite.core.DB.execute(DB.java:866)
dodo                      |     at org.sqlite.jdbc3.JDBC3PreparedStatement.executeQuery(JDBC3PreparedStatement.java:77)
dodo                      |     at com.squareup.sqldelight.sqlite.driver.SqliteJdbcPreparedStatement.executeQuery$sqldelight_jdbc_driver(JdbcDriver.kt:144)
dodo                      |     at com.squareup.sqldelight.sqlite.driver.JdbcDriver.executeQuery(JdbcDriver.kt:71)
dodo                      |     at com.jakewharton.dodo.db.dodo.TweetIndexQueriesImpl$SearchQuery.execute(DatabaseImpl.kt:424)
dodo                      |     at com.squareup.sqldelight.Query.executeAsList(Query.kt:134)
dodo                      |     at com.jakewharton.dodo.Dodo$search$2.invokeSuspend(app.kt:71)
dodo                      |     at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
dodo                      |     at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
dodo                      |     at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
dodo                      |     at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:738)
dodo                      |     at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
dodo                      |     at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
dodo                      | 2021-03-02 22:47:03.886 [nioEventLoopGroup-4-1] ERROR ktor.application - Unhandled: GET - /
dodo                      | org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (fts5: syntax error near "@")
dodo                      |     at org.sqlite.core.DB.newSQLException(DB.java:1012)
dodo                      |     at org.sqlite.core.DB.newSQLException(DB.java:1024)
dodo                      |     at org.sqlite.core.DB.execute(DB.java:866)
dodo                      |     at org.sqlite.jdbc3.JDBC3PreparedStatement.executeQuery(JDBC3PreparedStatement.java:77)
dodo                      |     at com.squareup.sqldelight.sqlite.driver.SqliteJdbcPreparedStatement.executeQuery$sqldelight_jdbc_driver(JdbcDriver.kt:144)
dodo                      |     at com.squareup.sqldelight.sqlite.driver.JdbcDriver.executeQuery(JdbcDriver.kt:71)
dodo                      |     at com.jakewharton.dodo.db.dodo.TweetIndexQueriesImpl$SearchQuery.execute(DatabaseImpl.kt:424)
dodo                      |     at com.squareup.sqldelight.Query.executeAsList(Query.kt:134)
dodo                      |     at com.jakewharton.dodo.Dodo$search$2.invokeSuspend(app.kt:71)
dodo                      |     at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
dodo                      |     at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
dodo                      |     at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
dodo                      |     at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:738)
dodo                      |     at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
dodo                      |     at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)

search for anything with "@" in it.

burntcookie90 avatar Mar 03 '21 13:03 burntcookie90

https://sqlite.org/fts5.html#fts5_strings

We need to automatically quote input

JakeWharton avatar Mar 04 '21 03:03 JakeWharton