PGSQL

最近の知識がすっぽり無かったので有意義でした

PostgreSQLのカンファレンスに行ってみたりしました。 8.5 では、オーバラップをはじく制限がつけられるようになるそう。今のところ様子見しかないです。 8.5 で ストリームレプリケーション と hot(warmよりも熱い)スタンバイ が入るようなかんじらしい。 X…

Google Maps用投影で悩む

UMN MapServerで epsg:900913 を使えるようにしてみることにした。 まず、MapServerは no options found in 'init' file とか怒ってくる。 これはprojに900913が無いから。 ということで、(FreeBSDのportsからprojを入れた場合) /usr/local/share/proj/epsg …

クエリプランナが…

問題は解決していませんでしたので、クエリの挙動を確認することにしました。 まずは前提について。問題になっているクエリは、ある属性が特定の条件にある場合のみを抜き出すものです。もちろん空間での抜き出しもあります。 問題のHTTPリクエストをHTTPの…

 下手なチューンでコケていました(解決しませんでした)

某所で Web Map Service を出しているのですが、このサービスでは UMN MapServer から PostGIS にクエリを出してもらっています。 特定の縮尺では停止するという問題を把握。いやこれ一か月ぐらい動かしていたのですが、全く気付かなかった。脂汗が出そうで…

plpgsqlに挑戦してみた。

自分にかかわりのあるところだけ、メモ。 関数の作成は次の通り。本体をシングルクォートで括ります。 CREATE OR REPLACE FUNCTION <関数名> ( <型>, ... ) RETURNS <型> AS ' DECLARE <変数名> <型>; ... BEGIN ステートメント; END; ' LANGUAGE 'plpgsql';…

インデクスを貼らずに関数を書いた後インデクスを貼っても関数はインデクスを使わないのかも

plpgsqlに挑戦してみました、と。 PHPでやってた部分をplpgsqlにまかせてみようと、関数を書いて実行したところ、とてつもなく遅い。 理由は、インデクスを貼ってなかったから。 で、急いでインデクスを貼って、再度実行したところ、やはりとてつもなく遅い…

ダンプとリストアで別サーバのデータベースにデータを移動させる

複製元ホストで pg_dump -Fc <データベース名> > <ファイル名> を実行して、複製先ホストに複写して、複製先ホストで pg_restore -C -d postgres <ファイル名> を実行。これがたぶん最速。

PostGISポリゴンを強引に幾何データポリゴンにしてみて失敗

幾何データにPostGISのポリゴンを強引に幾何データポリゴンとして押し込もうと計画するも失敗。invalid input syntax for type polygon:と怒られました。問題点を探るため、ポイント列を二分割して、前半、後半それぞれでポリゴンの書式にして押し込んだとこ…

R-Treeを再実装したバージョンは8.2

id:yellow_73:20080507#p4 のつづき。 8.2(マイナーバージョンが上がった時)に従来のR-Treeを切ってGiSTで再実装したらしいです。 ちなみに、現時点でのPostgreSQLの最新バージョンは8.3.1のようです。リビジョンが0のときってなんとなく避けてしまうのです…

rtreeインデクスの再実装がされていた

ふと、幾何データに対して "CREATE INDEX ... USING RTREE ..." とかやりました。 NOTICE: substituting access method "gist" for obsolete method "rtree" なぬー。で、8.2.6のソースツリーに急いで(急がんでもいいが)移動して、HISTORYを見ると確かに「RT…

もうこうなりゃPostgresの幾何データもやってやれ

create table t_test( the_polygon POLYGON ); insert into t_test select '( (0,0), (100,0), (100,100), (0,100), (0,0), (10,10), (20,20), (20,10), (10,10) )'; select the_polygon @> '(30,30)'::point from t_test; ?column? - t (1 row) select the_…

「それは仕様です」?

id:yellow_73:20080214 の記事にトラックバックを頂いたので、ひとつ。 上記のページに記述されているように、接続文字列のEncodingの値をUNICODEにするとうまくいきました。 (その前にUTF8と指定していたのですが、うまくいかなかった・・・なぜ??) htt…

NpgsqlはデフォルトではShift-JISになる

UTF-8で作ったデータベースに対して、Npgsql(ADO.NETプロバイダ)からアクセスしたところ、文字化け。 困ったにゃあということで、実行をトレースしていくと、NpgsqlConnector::Open() において Encoding = Encoding.Default; となっているところにぶつかりま…

特定のテーブルのフィールド名とフィールドタイプを得る

SELECT pg_attribute.attname, pg_type.typname, pg_attribute.attnum FROM pg_class LEFT JOIN pg_attribute ON pg_class.oid=pg_attribute.attrelid LEFT JOIN pg_type ON pg_attribute.atttypid=pg_type.oid WHERE pg_attribute.attnum > 0 AND pg_class.…

OpenPNEを入れてみました

PostgreSQL対応になるということで、ベータ版を入れてみました。 まず、インストールガイドを見ながらやってましたが、いちおう動作したけどプロフィール変更から失敗。2.10用にアップグレードしていないのが原因でした。 次に、他の人(といっても自分の持っ…

id:yellow_73:20070817 のつづき。 データをモルモット機に叩き込んだのですが、同じジョブを個人サーバ機にさせる。 モルモット機でやったときは、いろいろあって何度か中断したため通しの正確な時間は分かりませんが、おおむね24時間と見積もっています。 …

まてるわけがない

ジョブを強制終了、いくつかのファイルに分けて順次実行させていたので、その続きからやることに。トランザクションを使っていないので、途中終了したファイルから差し込んだレコードは残っているので、それを削除、途中終了したファイルからジョブを動かし…

まつしかないのか

7分で100M分書き込まれてる…。

ディスク領域を食いまくってたもの

いろんなファイルを消してまわって、/usr 使用領域を90%程度にしたうえで再開したところ、しばらくすると、二、三十分ごとに1%ずつあがってくる。 さらにいろんなファイルを消してまわって、10%程度削除。それでもずんずん増えてくる。 データベースのデータ…

PostgreSQLデータプロバイダ

http://pgfoundry.org/projects/npgsql/ とりあえず使ってみて、トランザクションができるのを確認しました( なぜか OleDbプロバイダじゃうまくいかなかった ) 。 でも、Provider Factory に対応していないです。

テーブル一覧

select * from pg_tables; で見ることができます。

PerlのPgを入れてみる

CPANから落として、コンパイル。うまくいくはずだったのに、なぜかテストでエラー。 Can't call method "errorMessage" なんて出てます。調べたところ、http://sfjt.bufsiz.jp/ によると、パッチが出ています。 で、テスト成功。 今度は、スクリプトを作って…

PostGIS のポリゴンを MapServer で表示してみる

MapServerサイドでは mapファイルと、テンプレートHTMLファイルが必要です。 mapファイルの作成は http://www.ne.jp/asahi/free/hiroro/postgis/manual/x549.html を参考にしました。ただし、shp2pgsql が吐くスクリプトでは、ジオメトリデータの入っている…

シェープファイルをPostGISに食わせる。

http://www.officeyano.net/LoadShape.htm を参考にやってみました。PostGIS付属の shp2pgsql が非常によく助けてくれます。 データは http://www.esrij.com/gis_data/japanshp/japanshp.html から拝借。 createdb -E utf-8 japan createlang plpgsql japan …

PostGIS を入れてみる

PostgreSQLの空間情報拡張と言えばいいでしょうか。 とりあえずダウンロードして configure, make とすると、すんなりインストール完了。 使うには、データベースごとに createlang plpgsql psql -f /share/lwpostgis.sql とする必要があります。

なんか変なのが出てる

PostgreSQL ODBC を ADO.NET から使っているのですが、Update() を実効するときに飛ばすクエリーに BEGIN ステートメントがつきます。そのため、先にトランザクションをかけていると、トランザクションのネストになって不都合が起きます。 具体的には、ネス…

.NetクライアントからPostgreSQLを操作してみる

ODBC接続でやってみました。OLEDBもあるらしいんですが、先に見つけたのがODBCドライバだったもので…。 T-SQLでやっていたのとほぼ同じ内容なので、あっという間にできるはずだったのですが、てこずりました。まず、「なんか Syntax Error が出てるー」程度…

ストアドプロシージャを書こうとして

「SQL関数」はうまくいくけど「SQL手続き言語」の作成に失敗し続けていました。 解決策は createlang plpgsql それだけかよorz

Ver.8 のコンパイルオプション

--enable-multibyteが消えました JDBCが外れました。

データベースのエンコーディング

EUC_JPのデータベースを作りたい場合には次のようにします。 createdb -E EUC_JP 確認は次のようにします。 psql -l