From 41333bf25ee1235739ca8187de69078cc6c6eb8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Mon, 17 Oct 2016 15:39:01 +0200 Subject: [PATCH] sql: add user name to fulltext index (#13524) --- tests/test_sql.py | 10 ++++++++++ wcs/sql.py | 8 ++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/tests/test_sql.py b/tests/test_sql.py index d2fe601..61ba006 100644 --- a/tests/test_sql.py +++ b/tests/test_sql.py @@ -33,6 +33,7 @@ def setup_module(module): cleanup() pub = create_temporary_pub() + pub.user_class = sql.SqlUser pub.is_using_postgresql = lambda: True conn = psycopg2.connect(user=os.environ['USER']) @@ -858,6 +859,15 @@ def test_sql_criteria_fts(): assert [x.id for x in data_class.select([st.FtsMatch('BAR')], order_by='id')] == range(21, 51) + assert data_class.count([st.FtsMatch('Pierre')]) == 0 + sql.SqlUser.wipe() + user = sql.SqlUser() + user.name = 'Pierre' + user.store() + t.user_id = user.id + t.store() + assert data_class.count([st.FtsMatch('Pierre')]) == 1 + def table_exists(cur, table_name): cur.execute('''SELECT COUNT(*) FROM information_schema.tables WHERE table_name = %s''', (table_name,)) diff --git a/wcs/sql.py b/wcs/sql.py index 1065afc..bd36e7a 100644 --- a/wcs/sql.py +++ b/wcs/sql.py @@ -1246,6 +1246,9 @@ class SqlFormData(SqlMixin, wcs.formdata.FormData): for evo in self._evolution: if evo.comment: fts_strings.append(evo.comment) + user = self.get_user() + if user: + fts_strings.append(user.get_display_name()) sql_statement = '''UPDATE %s SET fts = to_tsvector( %%(fts)s) WHERE id = %%(id)s''' % self._table_name @@ -1824,7 +1827,7 @@ def get_yearly_totals(period_start=None, period_end=None, criterias=None): return result -SQL_LEVEL = 17 +SQL_LEVEL = 18 def migrate_global_views(conn, cur): cur.execute('''SELECT COUNT(*) FROM information_schema.tables @@ -1886,8 +1889,9 @@ def migrate(): # 12: (second part), store fts in existing rows for user_id in SqlUser.keys(): SqlUser.get(user_id).store() - if sql_level < 17: + if sql_level < 18: # 17: store last_update_time in tables + # 18: add user name to full-text search index # load and store all formdatas from wcs.formdef import FormDef for formdef in FormDef.select(): -- 2.9.3