Add SQLite support

This commit is contained in:
Erik Johnston 2015-10-13 13:47:50 +01:00
parent f9340ea0d5
commit cfd39d6b55
1 changed files with 12 additions and 5 deletions

View File

@ -17,6 +17,7 @@ from twisted.internet import defer
from _base import SQLBaseStore from _base import SQLBaseStore
from synapse.api.constants import KnownRoomEventKeys, SearchConstraintTypes from synapse.api.constants import KnownRoomEventKeys, SearchConstraintTypes
from synapse.storage.engines import PostgresEngine
class SearchStore(SQLBaseStore): class SearchStore(SQLBaseStore):
@ -48,11 +49,17 @@ class SearchStore(SQLBaseStore):
"(%s)" % (" OR ".join(local_clauses),) "(%s)" % (" OR ".join(local_clauses),)
) )
if isinstance(self.database_engine, PostgresEngine):
sql = ( sql = (
"SELECT ts_rank_cd(vector, query) AS rank, event_id" "SELECT ts_rank_cd(vector, query) AS rank, event_id"
" FROM plainto_tsquery('english', ?) as query, event_search" " FROM plainto_tsquery('english', ?) as query, event_search"
" WHERE vector @@ query" " WHERE vector @@ query"
) )
else:
sql = (
"SELECT 0 as rank, event_id FROM event_search"
" WHERE value MATCH ?"
)
for clause in clauses: for clause in clauses:
sql += " AND " + clause sql += " AND " + clause