summaryrefslogtreecommitdiffstats
path: root/store/sql_store.go
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2016-10-20 11:30:44 -0400
committerenahum <nahumhbl@gmail.com>2016-10-20 12:30:44 -0300
commit0a75b277dc7ebc293c3a47939bdb0e8f77e6c24f (patch)
tree4bc1dca940d4b751a10c663170520577b46742bb /store/sql_store.go
parent162282d42c1be601c30a5bd8f89cca548a1bf9ba (diff)
downloadchat-0a75b277dc7ebc293c3a47939bdb0e8f77e6c24f.tar.gz
chat-0a75b277dc7ebc293c3a47939bdb0e8f77e6c24f.tar.bz2
chat-0a75b277dc7ebc293c3a47939bdb0e8f77e6c24f.zip
Fix the multiple column full text search index for Postgres (#4282)
Diffstat (limited to 'store/sql_store.go')
-rw-r--r--store/sql_store.go16
1 files changed, 15 insertions, 1 deletions
diff --git a/store/sql_store.go b/store/sql_store.go
index 1c0de5932..532ba1fc6 100644
--- a/store/sql_store.go
+++ b/store/sql_store.go
@@ -483,7 +483,8 @@ func (ss SqlStore) createIndexIfNotExists(indexName string, tableName string, co
query := ""
if indexType == INDEX_TYPE_FULL_TEXT {
- query = "CREATE INDEX " + indexName + " ON " + tableName + " USING gin(to_tsvector('english', " + columnName + "))"
+ postgresColumnNames := convertMySQLFullTextColumnsToPostgres(columnName)
+ query = "CREATE INDEX " + indexName + " ON " + tableName + " USING gin(to_tsvector('english', " + postgresColumnNames + "))"
} else {
query = "CREATE " + uniqueStr + "INDEX " + indexName + " ON " + tableName + " (" + columnName + ")"
}
@@ -745,6 +746,19 @@ func (me mattermConverter) FromDb(target interface{}) (gorp.CustomScanner, bool)
return gorp.CustomScanner{}, false
}
+func convertMySQLFullTextColumnsToPostgres(columnNames string) string {
+ columns := strings.Split(columnNames, ", ")
+ concatenatedColumnNames := ""
+ for i, c := range columns {
+ concatenatedColumnNames += c
+ if i < len(columns)-1 {
+ concatenatedColumnNames += " || ' ' || "
+ }
+ }
+
+ return concatenatedColumnNames
+}
+
func encrypt(key []byte, text string) (string, error) {
if text == "" || text == "{}" {