2016-08-05 50 views
0

我使用以下查詢創建了一個文本搜索字典。Postgres:兩個同名的字典

CREATE TEXT SEARCH DICTIONARY english_stem 
(TEMPLATE = snowball, Language = english, StopWords = english); 

但我意識到,有已使用相同的名稱「english_stem」字典是由超級用戶擁有和我結束了有兩個詞典與同名「english_stem」;一個由超級擁有,另一個由我擁有。

於是,我放棄,我使用此查詢創建的一個:

DROP TEXT SEARCH DICTIONARY english_stem; 

但我正在逐漸「[42501]錯誤:必須是文本檢索辭典english_stem的主人」的消息。我想丟棄查詢試圖刪除超級用戶擁有的,不屬於我的english_stem字典。我如何刪除我擁有的english_stem字典?

如果postgres允許同名的多個字典,我想在執行alter/drop命令時必須有一種方法來區分它們。順便說一下,可能是由於我創建的那個,tsquery很慢;甚至比查詢慢。

注意:我正在尋找一種方法來解決此問題,而無需聯繫超級用戶。

+1

您在不同的模式中創建了 - 只需指定完整路徑 –

回答

1

我相信你在你的模式或公共場合中創建了字典。退房:

SELECT * from pg_catalog.pg_ts_dict 
JOIN pg_catalog.pg_namespace n ON n.oid = pg_ts_dict.dictnamespace; 

如果是這樣,只需添加架構名稱,如:

DROP TEXT SEARCH DICTIONARY public.english_stem; 
+0

謝謝你這麼多維羅。有效! –