[pgsql-jp: 29750] Re: MSProject2000とPostgreSQL7.2.1
Takao Kato
sirius @ jp.fujitsu.com
2003年 4月 30日 (水) 18:50:02 JST
加藤@川崎です。
..snip..
> という事は...これについては、修正の必要がないという認識で良いのですか?
> 私の調査では、そのまま修正せず実行したところ
> 以下のSQL文によりエラーが発生しております。
エラー自体はnameとunknown(なんで??)との比較演算子が定義されていないか
ら起こったエラーですね。msproject2000.sqlでは定義されているのに?と、
気になったんで以下を試しました。結論だけ書けば問題ありませんでした。
-- ここから --
% vi msproject.sql ⇒編集内容は後述
% createdb mstest
% psql mstest
mstest=# select version();
version
------------------------------------------------------------------
PostgreSQL 7.1.2 on sparc-sun-solaris2.8, compiled by GCC 2.95.3
(1 row)
mstest=# \i msproject2000.sql
psql:msproject2000.sql:1: ERROR: table "msp_assignments" does not exist
:
psql:msproject2000.sql:26: ERROR: Language plpgsql doesn't exist
CREATE
:
DROP
CREATE
:
INSERT x 1
:
mstest=# select * from pg_tables where tablename like 'msp%';
:
(21 rows)
mstest=# select * from pg_tables where tablename ~~ 'msp%';
:
(21 rows)
mstest=#
-- ここまで --
先頭に psql: が付いている箇所が「存在しないテーブルなどを削除してる」
のエラー(26件)です。CREATEが4つ程続いた後、「~~」のDROPが登場して、あ
とはスムーズに処理されます。結果的、問題のクエリで21件ヒットしました。
こちらで行った msproject2000.sql の編集内容は以下の通りです。
(1)/* 〜 */を削除(1行・複数行に関わらずとにかく削除)
(2)(1)で削除したうち、先頭のDROPクエリのみ書き戻す。
これでなんの問題もない状態になりました。
# あと、plpgsql.soの置き位置だけ気をつけてやる必要がありますね。
上記のような状況からなんとなく、
コメントのつもりで変なものを余計に消した
利用者権限的にオペレータを消せない(==上書きできない)
が原因のような気がします。その辺り確認できませんか?例えば、
drop operator ~~ (name,text);
を実行できるか。ちなみに権限が無い場合のエラーは、
ERROR: RemoveOperator: operator '~~': permission denied
です。この場合、権限有りのユーザ(ex. postgres)でmsproject2000.sqlを実
行し直して下さい。
その他の問題は.....有識者の皆様お願い ^^;
----
加藤@川崎
お便りは kato @ lantc.cs.fujitsu.co.jp まで
pgsql-jp メーリングリストの案内