■   PostgreSQLのことならここで聞け   ■

このエントリーをはてなブックマークに追加
1NAME IS NULL
SRA認定ネタは別スレでおながいします。
2NAME IS NULL:04/08/03 19:29 ID:???
(・3・)ゑ〜
3NAME IS NULL:04/08/03 20:01 ID:???
イチ=オツは新スレ立てを終えた1を総合的に
ねぎらう格闘技である
     (゚д゚ )
     (| y |)

この格闘技を極めることにより…
     ( ゚д゚) 1サン オツデス
     (\/\/

大仕事を終えた1の安心感は120%上昇
     ( ゚д゚) >1乙
     (\/\
          \ 華麗

スレ住民との一体感は63%上昇
     モツ  ―
         |
       (゚д゚ )
 カレー>1_/| y |

イチ=オツを極めたスレはマターリな滑り出しになる!
 >1サン  ( ゚д゚)   オツカレ
    \/| y |\/
4NAME IS NULL:04/08/03 21:13 ID:6OzOk0oN
5NAME IS NULL:04/08/04 02:36 ID:???
>>1
スレが立ったら、そっち行ってもいいが、当分ここでやるかと。
6NAME IS NULL:04/08/04 04:28 ID:???
前スレ

■   PostgreSQLのことならここで聞け   ■@データベース
http://pc5.2ch.net/test/read.cgi/db/1056960249/l50
7NAME IS NULL:04/08/04 15:55 ID:???
ていうか、別スレでやってほしいなら、なんで>1にそういうこと書くかと。
8NAME IS NULL:04/08/04 21:33 ID:???
cygwin上のpostgresqlの設定がやっとうまくいったと思ったら
createdbコマンドを使うとdataディレクトリ下のどっかが削除できなかった
とかいうエラーがでて、dbが作れません。助けてください。
9NAME IS NULL:04/08/04 21:54 ID:???
>>8
SRAに問い合わせしてください。
10NAME IS NULL:04/08/04 21:54 ID:???
一度postmaster落として、そのdateフォルダをエクスプローラ上で削除してから
やりなおしてみれば?
11NAME IS NULL:04/08/04 21:55 ID:???
あ、間違えた・・・dataな
12NAME IS NULL:04/08/04 23:25 ID:33aw590+
LinuxサーバーのPostgreSQLにODBC経由でMS Accessを使ってテーブルを見たり
編集したいのですが、そのやり方について詳しく書いてあるサイトや本などはあるでしょうか?

くだらない質問で本当にすみません。
13NAME IS NULL:04/08/04 23:34 ID:???
>>12
「PostgreSQL ODBC」で検索したら一発ででましたよ。
http://www.interwiz.koganei.tokyo.jp/software/PsqlODBC/

内容は古いですがこれで自分のところは問題なく動いています。
14NAME IS NULL:04/08/04 23:44 ID:33aw590+
>>13
ありがとうございます。
さっそく実験してみます。

バージョンは最新版で動いているのでしょうか?
もしよければ、動いているバージョンを教えてください。
15NAME IS NULL:04/08/04 23:48 ID:???
>>14
PostgreSQLは7.4.3、Accessは2000です。
Accessからアクセスする際、環境にもよりますがpg_hba.conf等の設定が必要になります。

頑張ってください。
16NAME IS NULL:04/08/05 02:14 ID:???

Cygwin + PostgreSQL 7.4.3 + JDBCドライバ(pg74.214.jdbc3.jar) を使っています。

以下のようにフィールド数が31個の場合は問題なく検索できるのですが

rs = stmt.executeQuery("SELECT f1,f2,...,f31 FROM tbl");

以下のようにフィールド数が32個になると

rs = stmt.executeQuery("SELECT f1,f2,...,f31,f32 FROM tbl");

org.postgresql.util.PSQLException: ERROR: syntax error at or near "FROM"

という例外が出てしまいます。

psql ではどちらも問題なく検索できるので、
JDBCドライバがあやしいとは思っているのですが、
この制約をはずすことはできないのでしょうか?

PostgreSQL 7.4.1 + pg74.1jdbc3.jar でこの現象がおきて、
ためしに 7.4.3 + pg74.214.jdbc3.jar に置き換えてみたけど、
状況変わりませんでした。
17NAME IS NULL:04/08/05 19:07 ID:???
みなさんPostgreSQLのデータモデリングは
どういうソフトでおこなっているのでしょうか?
モデル図からSQL文を作ってくれるような
ソフトってあるんでしょうか?
Visioは持ってるのですがPostgreSQLには
対応してない(?)ようで何かいいものがあったら教えてください。
188:04/08/05 20:18 ID:???
ごめんなさい
愚愚ッたら1件だけ同じ状況のがあって
binにパスが通ってなかっただけだった。
いやーっ、なんか他のパスが邪魔してたんだな。
しょぼくてごめん。
19NAME IS NULL:04/08/05 22:21 ID:???
>>17
UMLツールのEAは出来たと思う。
20NAME IS NULL:04/08/06 05:00 ID:pjbXiDed
CreateDBしようとしたら以下のようなエラーがでて困ってます。
何が原因なんでしょうか?
Redhat9のPostgres7.4.2
です。

$ createdb -E EUC_JP -U hogeUser hogeDB
WARNING: could not write block 279 of 17142/103742
DETAIL: Multiple failures --- write error may be permanent.
createdb: database creation failed: ERROR: could not write block 279 of 17142/103742 blind: Input/output error
CONTEXT: writing block 279 of relation 17142/103742
21NAME IS NULL:04/08/06 05:14 ID:???
>警告:17142/103742のブロック279を書くことができませんでした。
>詳細:多数の失敗---書き込みエラーは永久かもしれません。
>createdb:データ・ベース生成は失敗しました:エラー:17142/103742のブラインドのブロック279を書くことができませんでした:入力/出力エラー
>情況:関係17142/103742のブロック279を書くこと

んー、機械翻訳だけどどういう意味だろう(w
22NAME IS NULL:04/08/06 05:17 ID:pjbXiDed
>>21
こんな時間にレスありがと。
メッセージでぐぐっても海外でもろくに情報が無いので困ってます。
ディスク不良かなぁとちょっと思ったけど、
共用鯖なのでe2fsckとかunmountせずにかけるのも
危険かとおもってやってないです
23NAME IS NULL:04/08/06 05:20 ID:???
>>22
早めにチェックした方がよさげ。
そのまま使う方が危険かもね。
エラー無しなら無しで安心して次の原因を探せるし。
24NAME IS NULL:04/08/06 08:12 ID:zxP0ELEk
今はMySQLを使っていますが、
これは一方向レプリケーションしかできません。
Postgreならば、双方向レプリケーションも可能でしょうか?
25NAME IS NULL:04/08/06 08:51 ID:CVVwPym3
ソースも読まないのにオープンソースDBだって。バカじゃねえの?
26NAME IS NULL:04/08/06 10:05 ID:???
>>25
24じゃないけど、オープンソースなのがいいんじゃなくて
無料なのがいいって人は多いでしょ?
わからないなら無駄にレスしなくていいと思う
27NAME IS NULL:04/08/06 10:09 ID:???
>25
で、おまいはソース読んで何をしたのか、と。
28NAME IS NULL:04/08/06 10:50 ID:oSvD/uKA
DBサーバとWEBサーバが別々のWebアプリケーションを作るときに
最も安全な方法ってのはどんなんなんでしょうかね。

シーラカンス本を読む限りでは、
DB,WEBが同一の場合だとident認証が、パスワードをファイル内に書かなくてよいので
安全って書いてありますけど。。。

DB,WEBが別々の場合だとやぱしcgiやphpに生パスワードを書いて、
chown www passwd.php; chmod 600 passwd.phpとかやるしかないんですかね。
もちろんWEB<>DB間はSSLで。
29NAME IS NULL:04/08/06 11:04 ID:???
>>28
生パスワード書くぐらいなら
IPaddressを指定してその鯖からのアクセスなら
認証ナシでOKとかにしてもいいのでは?
エロイ人の回答を末
30NAME IS NULL:04/08/07 05:21 ID:???
>19
EAかなりよさそうですね。
これを機にUMLを覚えたいと思います。
ありがとうございました。
31NAME IS NULL:04/08/09 11:15 ID:???
>>29
そうするとローカルアカウントを取られたときに
DBにアクセスされちゃうことになってしまいます。

生パスワードを書いて、オーナーwww, パーミッション600にしておけば
少なくともwwwユーザを取られないとDBにアクセスされないので多少はマシかと。

でも、もうちょっとセキュアな方法が欲しいっすよね。
32NAME IS NULL:04/08/09 18:24 ID:???
>>31
ローカルアカウントとられる場合まで想定してるのか・・・
とられないようにするのを想定した方がいいと思うけど
33NAME IS NULL:04/08/09 20:08 ID:???
>>32
雑居なレンタル鯖を想定してのことじゃねぇの。
34NAME IS NULL:04/08/10 06:33 ID:???
それ言ったら、httpd経由でソース表示されたらセキュアもクソもないぞ。
エンコーダーとか使うしかなかろう。
http://www.zend.co.jp/products/encoder/

まぁバイナリにしたら安全なのか?という話は残るが。
35NAME IS NULL:04/08/10 11:29 ID:8JhYir3p
>>34
あー、結構これが現実的な解かもしれないですね
36NAME IS NULL:04/08/10 20:11 ID:???
PostgreSQL 8.0.0 Officially Goes Beta
http://www.postgresql.org/news/216.html

ますます、SRAのパワグレとかいうブツの「意味」が無くなりますな(w
37NAME IS NULL:04/08/10 21:05 ID:???
>>36
8.xが枯れるのは2年後ってとこか・・・。いいね、業務に充分耐えられそうだ。
38NAME IS NULL:04/08/10 22:34 ID:???
7.5じゃなくて8.0なのか。
PITRとかWin対応も期待しているけど、
トランザクションのネスティングだけ先に対応してくれんかな?
39NAME IS NULL:04/08/11 22:27 ID:???
もうWindows版の8ベータもあるの?
40NAME IS NULL:04/08/11 22:39 ID:???
41NAME IS NULL:04/08/12 15:34 ID:???
>>40
Windowsじゃないほう必死で見てた(爆)
スマソ
42NAME IS NULL:04/08/12 17:11 ID:???
PostgreSQL 8.0 のベータテスト開始
http://slashdot.jp/article.pl?sid=04/08/11/0820245
43NAME IS NULL:04/08/12 18:18 ID:???
>>42
これってマジでパワグレいらなくなっちゃうね。
44NAME IS NULL:04/08/12 18:50 ID:???
今Windows版試しているけど、ユーザのパスワード設定は必須みたい。
45NAME IS NULL:04/08/12 19:44 ID:???
>>43
まぁ、元々PowerGresなんて要らないから。
買うやつの気がしれん。
46NAME IS NULL:04/08/12 21:58 ID:???
Windows2000ProとApache1.3.31とPHP4.3.8と組み合わせて動かしているけど
とりあえず動いています。

PHP4.3.8の日本語の設定の部分が悪くて、エンコーディングの部分が変だったけど
設定をきちんとしたら、大丈夫だった。
47NAME IS NULL:04/08/12 23:33 ID:???
ALTER でカラムの type が変更できるようになったのが嬉しい。
4846:04/08/13 14:16 ID:???
PHPのpg_lo_import()で、ファイルパスが相対パスだと駄目だった。

getcwd()でディレクトリを得て、フルパスにして事なきを得た。
PHPとPostgreSQLとどっちの問題か分からない・・・。
49前スレ795:04/08/14 17:33 ID:1Bv4OOJE
結局答えもらえなかったのでもう一度御願いします
---------------------

795 名前:NAME IS NULL 投稿日:04/07/26 20:30 ???
timestamp型の列に対して

select * from hoge where YMD > '2004/07/27' - timestamp '7days';

と書くと

ERROR: invalid input syntax for type timestamp: "7days"

と怒られます。何がだめなんでしょうか?
最新1週間のデータが取りたいんですけど・・・。


796 名前:675-676 投稿日:04/07/26 22:23 ???
>>795
select * from hoge where YMD > '2004/07/27' - interval '7days';


797 名前:795 投稿日:04/07/26 22:35 ???
>>796
レスどうもです。

今度は
ERROR: invalid input syntax for type interval: "2004/07/27"
って怒られます。
---------------------
50NAME IS NULL:04/08/14 18:48 ID:???
>>49
何がしたいの?
51NAME IS NULL:04/08/14 19:21 ID:???
>>49
select * from hoge where YMD > timestamp '2004/07/27' - interval '7days';
52NAME IS NULL:04/08/14 19:25 ID:???
pg_hba.confに下記を追加して、認証式にしました。

local all all md5
host all all 127.0.0.1 255.255.255.255 md5
local all all reject
host all all 127.0.0.1 255.255.255.255 reject

alter user ユーザ名 with password 'パスワード';
でパスワードを設定したユーザは認証できるのですが、
今までパスワードを設定してなかったユーザ(postgres等)
もなぜかパスワードを要求され、DBにアクセスできません。
alter userでパスワードを無しにしても、要求されてしまいます。

こうなると、プログラム等の改変が必要になってしまうので、
もしも改変無しでいける方法があればご教授ください。

宜しくお願いします。
53NAME IS NULL:04/08/15 12:38 ID:???
プログラムを改変してください(w
もしかして、接続文字列がそこらじゅうにあるの?(プ
54NAME IS NULL:04/08/15 15:07 ID:???
>>52
だったらそのようにpg_hba.confに書けばいいんじゃない?
例えば最初の行に、
local all user1 trust
と追加するとか。
55NAME IS NULL:04/08/15 16:19 ID:???
vacuum full を毎日1回おこなうのは問題ないですか?
一応、バージョン7.3なので起動させたままやってるんですが。
56NAME IS NULL:04/08/15 17:01 ID:???
>>55
別に何回やっても問題でしょ。
DBがロックさせることが問題にならないのなら。
57NAME IS NULL:04/08/16 02:54 ID:???
>>56
>別に何回やっても問題でしょ。
「問題ない」の間違いね。
vacuumはこまめにかけた方がいいよ。
もちろんfullが可能ならそちらの方が良い。
あと、アナライズオプションもつけた方が良いね。
58NAME IS NULL:04/08/16 17:27 ID:???
user1というユーザのみdb1というデータベースにアクセス
できるようにする設定は、どのように行えよいのでしょうか。

無知ですみません。
59NAME IS NULL:04/08/16 19:36 ID:???
>>58
pg_hba.confで設定する。

ex)
local db1 user1 trust
local db1 all reject
60NAME IS NULL:04/08/16 21:26 ID:???
>>59
ご丁寧に有難うございます。
htaccessの制限とは逆で、denyを一番下に置くんですね。
勉強になりました。
61NAME IS NULL:04/08/16 23:06 ID:???
>>60
余談だが、処理の順番はOrder指示子で指定している場合が多いので、
htaccessのdenyとallowは順番関係ない。
62NAME IS NULL:04/08/16 23:08 ID:???
>>61
おっしゃるとおりです(汗
なんとも、頭が下がります。
pg_hba.confの場合はそれがなかってので、頭に入って無かったですね。
全てにおきましてご丁寧にしていただき、感謝しております。
63NAME IS NULL:04/08/17 13:58 ID:oj1fjngK
8.0使ってる人、今のところ目立ったバグは無いですか?
64NAME IS NULL:04/08/17 14:44 ID:???
>>63
7.4(Linux)で動いているものを8.0(WinXP)で動かしてみたが、今のところ問題ない。
PgAdminVが突然落ちることはあるけど。
まだ入れているデータも少ないし、それほど負荷を掛けたわけじゃないのだが...
また、Win対応以外に目新しい機能もまだ使ってないけど。

Win版のpsqlってCtrl+I(TAB)による補完が利かないのが辛いなぁ。
これまで、PgAdminやCSEを全く使わず、psqlだけでSQL文の試行や
TABLEなどを作成していたんだが、みなさん開発段階でのツールって
何か使ってますか?
6546:04/08/17 17:36 ID:???
>>64
ファイルにSQL文書いて、psqlで実行させるのはダメ?
6646:04/08/17 18:26 ID:???
むぅ、PHPからpg_dumpを用いてのDBのバックアップが行えないかも。
6764:04/08/17 21:53 ID:???
>>65
最終的にはそうしてますけどね。
アプリ一式分のテーブルやビュー、インデックス、関数、
そして必要な初期データ(INSERT文)はテキストファイルに書いて
psql -f で実行してます。

試行用のテーブル作成等も含めたSQL文の実行は皆さんどうしているのかなと。
過去CSEやPgAdminも使ったことあるんですけど、補完機能が無いので
結局補完機能のあるエディタが、短文ならpsqlで直接叩いてましたが、
Win版psqlに補完機能が無いので、ちょっと使いづらい。
ま、SQL程度で補完機能に頼るなといわれりゃそれまでなのだが。
68NAME IS NULL:04/08/17 22:46 ID:???
8.0で試しに、make、make checkしたら結構な数のエラーが出たので
インストール止めたけど。on RHEL。
6964:04/08/18 05:25 ID:???
RHL7.3でmake ,make check してみました。結果
All 96 tests passed.

たしか今の7.4.3でもmake checkは乱数のところでエラーが出てたんだけど、
すんなりと全てとおちゃった。configureオプションは--prefixのみ。
インストールはしてないけどな。

これまでbeta1が出てから正式リリースまでどのくらい期間があったか
知らないけど、年内は楽勝?
70NAME IS NULL:04/08/18 22:13 ID:???
>>68
RHEL AS3で問題なくレグレションテストALL OKで、
テーブル作ってデータ突っ込んで検索はできたよ。

71NAME IS NULL:04/08/19 11:32 ID:FTpD4aMN
質問させてください。
Fedora Core2でPHPとpostgreSQLをインストールしています。
それぞれ単体では動作するのですが、PHP->SQLへの連携ができずに
困っています。
この二つ以外に、なにか特別なことをやる必要はあるのでしょうか?

バージョンはこんな感じです。
php : 4.3.8-2.1
postgreSQL : 7.4.3-1PGDG

よろしくお願いします。m(_ _)m
72NAME IS NULL:04/08/19 12:11 ID:???
さぁ、エスパーさん募集中だ。
どうできないか、わからん。
そこらじゅうにある解説サイトをもう10回読み直しておいで。
73NAME IS NULL:04/08/19 12:18 ID:???
>71
php-pgsql とかいうようなパッケージをインストールしてないとか。
74NAME IS NULL:04/08/19 20:16 ID:Pa2FjmTI

CREATE TABLE 時にNOT NULLで定義したカラムがあるのですが、
客の依頼によりNOT NULL制約をどうしても外す必要が出ました。

ポスグレの場合、ALTER TABLEでNOT NULL制約を外すことって出来るのでしょうか。


↓これやってもだめだったし。。。
ALTER TABLE テーブル名 ALTER カラム名 DROP DEFAULT;


ちなみにPostgreSQL7.3です。誰か親切な方、ご教授ください。
75NAME IS NULL:04/08/19 20:51 ID:???
>>74
DROP NOT NULL
http://www.postgresql.jp/document/pg732doc/reference/sql-altertable.html
ドキュメントぐらい嫁。
7674:04/08/19 21:09 ID:yiIgPnC3
>75
あーーー、思いっきり見落としていました。w(笑って誤魔化す)

でも、ご親切に教えていただいてホント感謝です。
ありがとうございました!
77NAME IS NULL:04/08/20 12:02 ID:+q7I71HJ
マルチですみません。PostgreSQL 7.2.1 から 7.3.4 に移行しようとしています。
7.2.1 で使っているラージオブジェクトを含むデータを
 % pg_dump -b -F c DB_NAME > foo.out
などとしてバックアップを取り、7.3.4 の方で
 % pg_restore -d DB_NAME foo.out
として戻そうとすると、
 pg_restore: [archiver (db)] could not execute query: ERROR: Column "COLUMN" is of type timestamp without time zone but default expression is of type text
     You will need to rewrite or cast the expression
と言われてしまいます。

ラージオブジェクトを含まないデータなら、timestamp 型の記述を書き換えて
restore すれば良いみたいなのですが、ラージオブジェクトを含むデータの場合は
どう対処すれば良いでしょうか。お知恵をお貸し下さい。
78NAME IS NULL:04/08/20 12:37 ID:???
www.postgresql.jp って落ちてないですか?
ドキュメント調べてる途中でスゲー困った。
7978:04/08/20 12:39 ID:???
ああスンマセン…メンテで18:00(予定)まで停止だそうです。
8077:04/08/20 14:46 ID:+q7I71HJ
すみません。自己解決しますた。
問題のカラムが

COLUMN | timestamp without time zone | default 'now'::text

とあり、text型にキャストしてたのが原因でした。
81NAME IS NULL:04/08/23 15:30 ID:???
SQL のエラーは何文字目は出るから自分で数えないといけなかったけど、8.0 は
ttp://itpro.nikkeibp.co.jp/members/ITPro/oss/20040817/148690/index4.shtml
| LINE... で始まる行では^を使ってエラーの個所を分かりやすく表示しているが,これも8.0で追加された機能である。
らしいので、ささやかだけど便利だ。
82NAME IS NULL:04/08/23 16:28 ID:???
>>71
php.iniのextension_dirは設定してある?
そこにPostgreSQLとの連携に必要なファイルはある?
extension=pgsql.soも記述されてる?

ちなみにPHP4.3.8をインストールした時の設定です↓
./configure --with-apxs=/usr/sbin/apxs --with-gd --with-jpeg-dir=/usr/lib
--with-xpm-dir=/usr/X11/lib --enable-bz2 --enable-bcmath --enable-mbstring
--enable-mbstr-enc-trans --enable-mbregex --enable-sigchild --libdir=/usr/lib/php
--includedir=/usr/include --enable-inline-optimization --with-pgsql=shared
--with-imap=yes --with-ldap=shared --with-mysql=shared --prefix=/usr --exec-prefix=/usr
--with-config-file-path=/etc/httpd --enable-safe-mode --disable-debug --with-zlib
--enable-debugger --enable-magic-quotes --enable-track-vars
83NAME IS NULL:04/08/24 13:31 ID:UZpf6U5w
Win2K(MDAC2.8)にPostgreSQLのODBCドライバをインストールした。
レジにも書き込まれてるしsystem32にもdllあるのに、
ODBCドライバマネージャーの一覧に出てこない。
同じOSでMDACのバージョンの違うマシンには入った。
なんでだろ。。。
84NAME IS NULL:04/08/24 17:51 ID:VHi/nTiZ
実行したSQLのログを出力する方法があったような気が
したのですが、どうやってするのか忘れてしまいました。
知ってる方がいれば教えてください。

Redhat9
Postgresql7.4.2です
85NAME IS NULL:04/08/24 18:11 ID:???
86NAME IS NULL:04/08/24 19:00 ID:???
>>85
ありがとー
87NAME IS NULL:04/08/25 17:04 ID:???
ftp.jp.postgresql.org がDNS引けない・・・
88NAME IS NULL:04/08/25 17:11 ID:???
>>87
確かjp.postgresql.orgは、本家から何の通知も無く(?) 突然廃止になったんですよね。
今は、ftp.postgresql.jpです。
89NAME IS NULL:04/08/25 17:38 ID:???
>>88
あ、そうなの?了解す。
本家サイトのmirrorには未だftp.jp.postgresql.orgでリンクされてんだけど。
90NAME IS NULL:04/08/26 11:04 ID:???
新バージョンでたね。
ttp://www.st.ryukoku.ac.jp/%7Ekjm/security/memo/2004/08.html#20040825_postgresql

>今回は通常のバグフィックスだけでなく、昔から既知の問題である、
>「クラッシュからのリカバリ時にcommitしたはずのデータが消失する致命的な問題」

この問題について日本語で説明しているページってないのかな?
91NAME IS NULL:04/08/26 22:46 ID:???
クラッシュしなければ問題ないのでいいかな、なんて思ってる。
92NAME IS NULL:04/08/26 23:44 ID:???
「クラッシュしても問題ないですよ」って客に言えるようになったのは嬉しい。
93NAME IS NULL:04/08/27 10:25 ID:???
>>92
まじでそんなこと言うつもり?(ポカーン
94NAME IS NULL:04/08/27 11:07 ID:???
>>93
ポカーンとしてないで頭使えよ。
95NAME IS NULL:04/08/27 11:31 ID:???
PITR もサポートされたらさらに堂々と言えるようになるね。
96NAME IS NULL:04/08/27 17:18 ID:???
>>94
オマエのほうが頭使ったほうがいいんでないかと。
まぁ、痛い思いをするのはオマエだろうから気にしませんが。
97NAME IS NULL:04/08/27 22:09 ID:???
PITRサポート後って、日次バックアップはアーカイブログのバックアップ、月次メンテでフルバックアップって感じの運用になるんかね。

Powergres Plusは既にPITRサポート済みらしいけど、使ってる人いない?
98NAME IS NULL:04/08/27 22:38 ID:???
いない。
99NAME IS NULL:04/08/28 11:52 ID:???
Powergres買うやつなんているの?
100NAME IS NULL:04/08/28 12:22 ID:???
>>99
知らずに買わされてる会社ならいくつか知っている。
101NAME IS NULL:04/08/28 13:42 ID:???
>>99
Windowsネイティブ用ならね。
8.0が正式リリースされたら、そちらに乗り換えるけど。
102NAME IS NULL:04/08/29 13:53 ID:ye7ZIKf/
select moe_title from anime_table;

ってするとアニメの一覧が出てくるんですが、

ココロ図書館
ななか6/17
ガンダム
ぽぽたん
 ・
 ・

って出てくるんですが、ガンダム要りません
こいつだけ表示させないであと一覧出すってことは、where 条件で可能なんでしょうか?
103102:04/08/29 13:58 ID:ye7ZIKf/
すみません、普通に != でいけました;;
もともと適当に作って見ただけなんで、勉強してきれいにテーブルを作り直して見ます;
104NAME IS NULL:04/08/29 14:40 ID:???
>>102
満月をさがして も入れといてください。
最終回はフランダースの犬の1000倍泣けます。
105NAME IS NULL:04/08/29 14:43 ID:???
ガンダムにもいろいろあるんだし not like の方がいいんじゃないの。
106NAME IS NULL:04/08/29 15:30 ID:???
いやむしろmoe_titleということならdelete from anime_table where like '%ガンダム%'すべきだと思う
107NAME IS NULL:04/08/29 15:34 ID:???
「萌え」と「燃え」をきちんと分けてないのがいけないな。
テーブルを作り直すべきだ。
108NAME IS NULL:04/08/29 16:22 ID:???
いやいや。燃える萌えアニメなるものが有るかも知れぬ。
スレの本分から逸脱する恐れがあるので、ここでは
萌えの定量化は敢えて触れない。
∴列名を変更してから萌えのブーリアン列を追加すべきだ。

# ALTER TABLE anime_table RENAME COLUMN moe_title TO title;
# ALTER TABLE anime_table ADD COLUMN moemoe boolean;
109NAME IS NULL:04/08/29 23:56 ID:???
RDBMSとしての品位が下がるので別スレでよろしく。
110NAME IS NULL:04/08/30 00:24 ID:???
>>109
ソフトウェア産業より外貨獲得に貢献しているジャパニメーションをなんと心得る。
111NAME IS NULL:04/08/30 03:13 ID:???
>>110
そういうのも含めて、別スレでやれっつってんだよ、アニヲタ。
キモイからシッシッ!
112NAME IS NULL:04/08/30 03:42 ID:???
自分がパソコンオタ扱いされているからって、他のオタを見下す発言イクナイ
113NAME IS NULL:04/08/30 08:42 ID:???
>>112
問題すり替えないように。
一年前から粘着してるドラゴンボール厨かな?
114NAME IS NULL:04/08/30 10:01 ID:???
>>113
違います。
しかし、SRA認定ネタで荒れたスレでRDBMSとしての品位とはねえ。
115NAME IS NULL:04/08/30 10:11 ID:???
>>114
それは前スレでしょ。
116NAME IS NULL:04/08/30 10:25 ID:???
SRA=アニヲタの巣窟ということでFA?
117NAME IS NULL:04/08/30 10:37 ID:???
>>116
いいんじゃない?
しかし、品位のあるレスだ。こういうSRAネタならいいんだよね?109、111。
118NAME IS NULL:04/08/30 10:38 ID:???
>>110,>>112,>>114の粘着オタクっぷりに辟易です。
119NAME IS NULL:04/08/30 10:50 ID:yrxhZjat
アニヲタって怒るとこわいんだなw
120NAME IS NULL:04/08/30 10:50 ID:???
>>117
振ってるのはおまいだろ。いい加減にしろ。
121NAME IS NULL:04/08/30 10:53 ID:???
>>120
ふむ、116はいいのか、なるほど。
122NAME IS NULL:04/08/30 12:17 ID:???
>>121
少なくともこの板はアニメオタクの板ではないからね。
123NAME IS NULL:04/08/30 12:43 ID:uRCySAyP
ここはPostgreSQLの話題を話し合うスレです。
124NAME IS NULL:04/08/30 12:52 ID:???
>>122-123
なるほど、SRAの悪口や誹謗中傷はPostgreSQLの話題だからOKと。
納得しますた。
125NAME IS NULL:04/08/30 21:14 ID:???
Part2 と Part3 が自分にとって勉強になった。
ttp://www.seshop.com/detail.asp?pid=5323
126NAME IS NULL:04/08/31 11:54 ID:1x66pMyY
SunのマシンにSolaris9、PostgreSQL7.4.5(ソースからビルド)の環境です。

他のクライアントから
$ psql -h 10.0.2.34 -l

とすると、
psql: FATAL: missing or erroneous pg_hba.conf file
HINT: See server log for details.
と出てしまって、困っています。JDBCドライバで接続しようとしても同様のエラーが出ます。

/usr/local/pgsql/data/pg_hba.conf は、
-rwx------ 1 postgres postgres 3429 Aug 30 23:15 pg_hba.conf
となっていて、
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
local all all trust
# IPv4-style local connections:
host all all 127.0.0.1 255.255.255.255 trust
host all all 10.0.2.0 255.255.255.0 trust
# IPv6-style local connections:
host all all ::1 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff trust

と記述されてます。

PostgreSQLがインストールされているマシン上では、psqlをはじめとする各コマンドは正常に動きます。外部からの接続で失敗しています。

postgresql.conf のtcp_socket はtrue、sslはfalse、portは5432です。ちなみに、XServeで
同条件で稼働させたPostgreSQL7.4.5へは全く問題なく接続できてます。

他に何か見落としているところはないでしょうか。
127NAME IS NULL:04/08/31 12:06 ID:???
>>126
IPv6の最後の行をコメントアウトするとどうかな。
128126:04/08/31 13:48 ID:???
ダメでした(;´д`)

pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/log/postgresql.log
としてログの記録を指定したんですが、エラーが出た状態でもログが記録されることはありませんでした。

んー、なんなんでしょう…
129126:04/08/31 19:31 ID:1x66pMyY
まだ解決に至っていないのですけど、Solarisで54321ポートがあいていないが故に
起きていると考えてます…。が、Solarisでこのポートをあける方法が分かりません(汗
ただ、telnet 10.0.2.34 5432とすると、
Trying 10.0.2.34...
Connected to 10.0.2.34.
Escape character is '^]'.

って出ますので、Solaris側はあいているような気が…。
何かご存じの方アドバイスいただけるとありがたいです。
130NAME IS NULL:04/09/01 00:44 ID:BBAHVEG1
モテない男板の「これって犯罪じゃね?」スレにて業者を攻撃しております。
鯖がベルギーにあるためなかなか落ちません。援軍よろしくおねがいします。
131NAME IS NULL:04/09/01 01:38 ID:???
>>130
協力して欲しいなら正当性を示せ。
132NAME IS NULL:04/09/01 03:45 ID:???
133NAME IS NULL:04/09/01 05:04 ID:???
>>129
よくわからんが、アクセス元のIPっていくつよ?
134NAME IS NULL:04/09/01 05:20 ID:9f0hWjDt
unique制約 解除したいんですけど
ALTER の書式でどうやって書けばいいですか?
135NAME IS NULL:04/09/01 07:09 ID:???
>>134
UNIQUE制約を解除する場合は、ユニークインデックス名でDROPする。
ALTER TABLE table DROP CONSTRAINT unique_key_index;
インデックスが必要な場合は、ユニークでないインデックスを作り直す必要あり。
136NAME IS NULL:04/09/01 07:23 ID:gRxrGgi6
>>133 ローカルにある、10.0.2.25 でっす。いまだ解決せず、とほほな状態です(;´д`)
137NAME IS NULL:04/09/01 08:37 ID:???
やっぱpg_hba.confの書式エラーっぽいね。
変な文字が入ってるとか。関係ない行があるとか。
1行ずつコメントアウトしながらやってみたら?
138だいちゃん:04/09/01 11:24 ID:ob6m2bZ4
現在Cygwin 1.5.5 PostgreSQL 7.4.1 を使っています。
psql でselectした時、日本語の表示が出来ず文字コードが出力されてしまいます。
データ的にはあっているようで、PHPやODBC経由で表示させる分には正常に表示できます。
psql でselectした時だけうまくいきません。 日本語がこんな感じで表示されます。(<82>P<82>S<82>X)
データはあらかじめCSV形式で作成したデータをテーブルにロードして作成しています。
回避する方法があれば教えて下さい。
139NAME IS NULL:04/09/01 13:08 ID:???
>>138
SET client_encoding=SJIS;
ってしてみたらどうかな?
140126:04/09/01 13:09 ID:n/ozNoX0
>>137 うう、だめですた(;´д`)  もう一回、いれなおしてみよっか…
なんだろなー?スペースやタブで問題ないですよね?全角になってることは無いはずなんですが…
141NAME IS NULL:04/09/01 16:40 ID:EzTpTHma
次のような 2つのテーブルがあります。

 採点テーブル(採点者ID、店ID、項目ID、点数)
 集計テーブル(店ID、項目ID、点数合計、採点数)

店ID は 店マスタのID、項目ID は 項目マスタの ID で、採点テーブルはある店のある項目についての点数を記録します。
同じ店同じ項目でも、採点者が何人もいるので、レコードは複数になります。
集計テーブルは、ある店のある項目についての点数とその数を集計したものを記録します。

ここで集計テーブルの内容を更新するために、次のようなSQL文を書きましたが、期待する結果が得られません。

UPDATE 採点テーブル SET 点数合計=SUM(T1.点数), 採点数=COUNT(T1.採点ID) FROM 集計テーブル T1
 WHERE T1.店ID = 採点テーブル.店ID AND T1.項目ID = 採点テーブル.項目ID

正しくはどのようなSQLを書いたらよいのでしょうか。
142NAME IS NULL:04/09/01 17:12 ID:???
>>141
集計テーブルを更新するんだよな?とりあえず
UPDATE 集計テーブル
 ...
FROM 採点テーブル T1
 ...
の間違いじゃないか?
143141:04/09/01 17:19 ID:???
>>142
うわーごめんなさい!

UPDATE 集計テーブル SET 点数合計=SUM(T1.点数), 採点数=COUNT(T1.採点者ID) FROM 採点テーブル T1
 WHERE T1.店ID = 集計テーブル.店ID AND T1.項目ID = 集計テーブル.項目ID

です。
ここに書いたSQL文のみの誤りで、本物は上記のように書けてます。
144141:04/09/01 19:28 ID:???
結局 UPDATE の FROM は利用しないで、各カラムごとにサブクエリを使用することにしました。
でも、UPDATE に FROM を指定したときの挙動はぜひ知りたい項目なので、ご存知の方がいましたら
教えてください。
145NAME IS NULL:04/09/01 19:54 ID:???
なんでかはよくわからんが、
UPDATE 集計テーブル
SET 点数合計=T1.tensuugoukei, 採点数=T1.saitensuu
FROM (SELECT 店ID, 項目ID,
      SUM(T1.点数) as tensuugoukei, SUM(T1.点数) as saitensuu
      FROM 採点テーブル
      GROUP BY 店ID, 項目ID) AS T1
   WHERE T1.店ID = 集計テーブル.店ID AND T1.項目ID = 集計テーブル.項目ID
みたいな感じだとうまく動きそう。
146NAME IS NULL:04/09/01 21:31 ID:???
【SRA】PostgreSQL技術者認定制度【荒稼ぎ】
http://school4.2ch.net/test/read.cgi/lic/1094040519/
147141:04/09/02 02:00 ID:???
>>145
それもダメでした・・・
集計テーブルの全行が同じ値に更新されます。
その値を見るに、ある特定の店ID、項目IDの場合の採点テーブルのSUMっぽいです。
恐らく T1 のサブクエリが、集計テーブルの行ごとに実行されるわけでは無く、最初にSUMが求められ、
それを使い回されているのかなぁ、といった感じです。
ちなみに、こんなメッセージも出ます。
NOTICE: Adding missing FROM-clause entry in subquery for table "集計テーブル"

ついでに >>141 の挙動について補足しておきますと、集計テーブルのどこか一行のみが更新され、
その値は採点テーブルの全行の SUM っぽいです。
やはり WHERE 句が一度のみ評価され、その一番最初に該当した行のみが UPDATE された、って
ことなんでしょうかね。


ところで、FROM句でサブクエリをテーブルに見立てる書き方ができるんですね。初めて知りました。
思わぬ収穫があってよかったです。ありがとうございます。

でも、これって常識なんですか?
148141=147:04/09/02 09:39 ID:???
間違ってました!
ええと、>>145 のアイディアの読み違いで、ちょっと違うSQLを実行していました。
WHERE句を、サブクエリ内に書いてしまった結果が >>147 に書いた内容です。

今サブクエリの WHERE句を >>145 のアイディアの通り、UPDATE の WHERE句に移したところ、
うまく動きました!
ありがとうございました。
149NAME IS NULL:04/09/02 09:44 ID:???
>>147
145じゃないが>>145でうまくいくはずだと思うけど。

>でも、これって常識なんですか?
FROM句のサブクエリのこと? なら、常識です。
150NAME IS NULL:04/09/02 09:44 ID:???
あら、遅かったw
151141=147:04/09/02 12:41 ID:???
>>149
あらま、やっぱり常識なのですか。
いや実は、自分はSQLに関してきちんと教育を受けたわけでもなく、つまみ食いの独学でやってきちゃったので、
こういう常識的なことがすっぽり抜けてたりします。
そんなわけで、また新しい世界が開けた気がしています。
今回は大変利用価値の高い情報をゲットして、大満足です。
152145:04/09/02 12:54 ID:???
俺は145だが、ここでサブクエリが使えるのは正直初めて知ったよ(w
SELECT文のFROM句でサブクエリが使えるのは普通だけど、
UPDATE文のFROM句っていうのはPostgreSQL独自のものだしね。
153NAME IS NULL:04/09/02 15:13 ID:???
>UPDATE文のFROM句っていうのはPostgreSQL独自のものだしね。
T-SQL(Sybase,MSSQL)は、とうの昔からあったよ。
154NAME IS NULL:04/09/02 21:11 ID:???
>>153
SQL92には無い。でよろしいか?
155だいちゃん:04/09/03 11:07 ID:vHZHjt3I
138です。
>>139さん
> SET client_encoding=SJIS;
> ってしてみたらどうかな?

だめでした。(^_^;
156NAME IS NULL:04/09/03 12:29 ID:???
本家(http://www.postgresql.org/)氏んでる?
157NAME IS NULL:04/09/03 14:09 ID:???
>>156
いろんなところにサイトミラーしてDNSラウンドロビンするつもりが、
ミラー受け先のサーバが準備されていないという状況に見える。

ということで、
http://66.98.206.119/
でどうでせぅ。
158NAME IS NULL:04/09/03 17:02 ID:???
Windows版8でUNICODEでDBを作って、UTF-8のPHPファイルからDBに日本語を登録したんだけど
何故か、日本語で検索かけても全く引っかからないし、同じ日本語データを複数入れて

select c_name from c_table group by c_name;

ってやっても全データが返ってくる。バグか、それとも設定がおかしいのか、そもそも
UTF-8がサポートされていないのか・・・。
159158:04/09/03 17:21 ID:???
php.iniのmbstring,http_inputもUTF-8にしたのが問題だったらしい。
UTF-8のはずではあるのだけれど、autoにして事無きを得ました。
160158:04/09/03 17:26 ID:???
と思ったら、文字によって一致したり、しなかったりするみたい・・・。
だめぽ。
161NAME IS NULL:04/09/03 18:18 ID:sBqoyllH
webベースの検索スクリプトを作るとして、検索結果を 1ページあたり 10件くらいにまとめて、ページ送りの機能を付けるとします。
こういった場合、次のような方法を取ってみたのですが、もっといい方法はあるでしょうか?

SELECT ・・・ FROM ・・・ WHERE ・・・ ORDER BY ・・・ OFFSET $ofs LIMIT 10

# $ofs は、出力しようとしてるレコードのオフセット値で、ページ送りボタンによって増減されます

この方法で気になるのは、やはりパフォーマンスです。
上記のやりかただと、1ページ表示しようとするごとにレコードの抽出、およびソートの過程が入るわけで、
しかもその結果は、毎回同じものになるわけです。
できればレコードの抽出やソートは一度のみにして、あとは必要な部分を切り出すだけ、
というような処理にする方法はあるでしょうか。
もちろん効率の良い他の方法があれば、それでもいいです。
さらに、同時に検索ヒット数も取得したいのですが、現在は上記レコード取得用の SELECT の他に、
カウント取得用の SELECT を行っています。
ようするに、同一の検索条件の SELECT を 2度行っています。
この点についても、もっとエレガントな方法はあるのでしょうか。

このスクリプトは、同時に数十人からアクセスされる可能性があり、テーブルのレコード数は数万くらいだとします。
使用言語は PHP ですが、言語には特にこだわりがありません。

現時点で問題が出ているわけではありませんが、どんなやり方があるのかは知っておきたいです。
いいアイディアありましたら、教えてください。
162NAME IS NULL:04/09/03 18:36 ID:???
メモリ(PHPのセッション)にブチ込むか
毎回sql投げるか
二つに一つじゃないの?
163NAME IS NULL:04/09/03 18:57 ID:???
>>162
セッションに入れることも検討しましたが、それだと結果数が多くなったときに何か問題が起こりそうなのと、
ブラウザを複数画面開いた場合の対応を考えなくちゃいけないのとで、見送りました。
でも、これは結構一般的な手法なのでしょうか?

ちなみに、google みたいな検索エンジンはどんなふうにしてるんでしょうね。
ページごとに毎回検索してるんでしょうか。
いや、google 等が RDB かどうかは知りませんが。
164NAME IS NULL:04/09/03 23:01 ID:???
>163
アレは参考にならん。
何しろ数百台のマシンのメモリ上に展開して持っているから。
165NAME IS NULL:04/09/03 23:27 ID:04GGoOZS
クラックされた?
http://www.postgresql.org/
166Aya:04/09/04 02:35 ID:0bAjw2RU
お世話になります。
どなたか下記以外のアドレスで
JDBCDriverをDLできる場所を知っていますか?
7.4.1のDriverを探しています。

http://jdbc.postgresql.org/
167NAME IS NULL:04/09/04 10:20 ID:???
>>166
こちらでもつながりません。
どうしても必要なら、他のミラーサイトを利用するしかないでしょう
ミラーサイトは 
  ttp://www.postgresql.org/ (←ここなら、つながる
で紹介されています
168NAME IS NULL:04/09/04 10:28 ID:A71MCy6c
すみません、ご存知であれば教えていただきたいのですが、
pg_dumpでバックアップするときに

pg_dump: query to obtain list of indexes failed: ERROR: syscache lookup for index 1521522 failed

というエラーが吐かれるのですが、
これってどうやったら対処できるかご存知の方いないでしょうか?
169NAME IS NULL:04/09/04 12:54 ID:DURbHXe3
テーブル毎に grant 出すの面倒なんですが、DB レベルでの grant とか、特定の
DB 内の全テーブルに grant を自動発行させるとか、できませんでしょうか。

pg_dump でバックアップするために、読み取り専用アカウントを作ってあるの
ですが、create table 後に grant を忘れると pg_dump が落ちるんですよね…。
170NAME IS NULL:04/09/04 21:59 ID:4WdYESPM
PostgreSQLのバージョンを確認するにはどうしたらいいのでしょうか?
dataフォルダの中のPG_VERSIONには7.4と書かれていましたが
7.4.xじゃないのでそれがわかる方法があれば教えてください
171NAME IS NULL:04/09/04 22:03 ID:???
psqlにてselect version();
172NAME IS NULL:04/09/04 22:03 ID:???
>>170
SELECT version();
173NAME IS NULL:04/09/04 22:03 ID:???
>>171
即レス感謝!
174NAME IS NULL:04/09/05 04:49 ID:cFYf62B5
以下のようにResultSetが開いてる状態で、別のResultSetを取得しようとすると
ぬるぽが返されてエラーになってしまいますが、これは仕様なんでしょうか?

環境はRedHat9&PostgreSQL7.4.2です


Connection con = DB.getConnection();
Statement s1 = con.createStatement();
ResultSet rs1 = s1.executeQuery("SELECT * FROM table1");
while(rs1.next())
{
String col = rs1.getString("col");
System.out.println(col);
Statement s2 = con.createStatement();
ResultSet rs2 = s2.executeQuery("SELECT * FROM table2");
while(rs2.next())
{
String col2 = rs2.getString("col");
System.out.println("\t" + col2);
}
rs2.close();
s2.close();
}
rs1.close();
s1.close();
con.close();
175174:04/09/05 05:05 ID:cFYf62B5
スタックトレースは以下のような感じです
-----------------
org.postgresql.util.PSQLException: Connection is closed. Operation is not permitted.
at org.postgresql.core.QueryExecutor.executeV3(QueryExecutor.java:115)
at org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:100)
at org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:43)
at org.postgresql.jdbc1.AbstractJdbc1Statement.execute(AbstractJdbc1Statement.java:517)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:50)
at org.postgresql.jdbc1.AbstractJdbc1Statement.execute(AbstractJdbc1Statement.java:298)
176NAME IS NULL:04/09/05 07:18 ID:???
>>174
それはぬるぽなのかと小一時間(ry

Operation is not permitted.
操作が許可されていない。
177NAME IS NULL:04/09/05 12:31 ID:???
phpからアクセスしてるんだけど
connectしたあと
業務ロジックでエラーで終了するときって
closeせずに抜けてるんだけどまずい?
いちいち書くのも面倒で・・・
178174:04/09/05 15:26 ID:cFYf62B5
>>176
呼び出しもとの方ではNULLが返されてぬるぽに
なるみたいです。
>Operation is not permitted.
>操作が許可されていない。
ですが、08004のエラーコードが返されていて
実際は、コネクションは生きているのにJDBCとDBの間の
接続がDB側から?切られてるぽいのです

てか、
>>174みたいな入れ子になったデータ取得ってできてます?
179NAME IS NULL:04/09/05 16:04 ID:???
>>174
ガッ
180NAME IS NULL:04/09/05 19:42 ID:???
>>161
RDB から返ってきた結果をキャッシュする。
181161:04/09/06 11:06 ID:???
>>180
そのキャッシュの方法として、おれならこうするってアイディアはありますか?
自分だったら、キャッシュ管理用に次のようなテーブルを作って

CREATE TABLE FINDCACHE(
  WORD TEXT NOT NULL,
  FILENAME TEXT NOT NULL,
  ADATE TIMESTAMP NOT NULL
);
CREATE INDEX FINDCACHE_WORD ON FINDCACHE(WORD);

検索結果はとりあえず検索対象テーブルの PK だけを抽出してそれをテンポラリファイルに格納し、
そのときの検索ワード及びソート条件をテキスト化したものを上記テーブルの WORD に、
テンポラリファイル名を FILENAME に、そのときの日時を ADATE に格納して、
検索時には FINDCACHE を WORD で検索して、テンポラリファイル名を得たら、ADATEを
そのときの時刻に更新する、なんて処理をしてみようかなと思います。
で、cron かなんかで ADATE を見て、古くなったキャッシュはたまに削除する、みたいな。
テンポラリファイルは PK のみの記録なのでレコード長が固定ですから、fseek で好きな位置の
結果が簡単に取ってこられそうです。
で、この PK の一覧を検索対象テーブルの SELECT の WHERE句で、IN を使ってまとめて
指定すればいいのかな、と。

この処理で気になるのは 2点。
1点は、毎回 ADATE の更新が入る、って点です。
PostgreSQL って、VACUUM するまでレコードの残骸が残るそうで、頻繁に検索されたときに
DB内にゴミがすごい勢いでたまっていくのかな、などと心配になります。

もう 1点は、IN でキーをまとめて指定した場合、また ORDER BY を指定しないと順番が
ばらばらになってしまう点です。
この辺は、プログラム側で PK の並びのリストを持ってますから、うまいことすればうまいこと
できそうですけどね。

このアイディアのダメな点とか、改良案とか、その他アイディアなどはありますか?
182NAME IS NULL:04/09/06 17:09 ID:NN9rGgOF
PostgreSQL歴1ヶ月ぐらいの超初心者です
Windows2000Server上でCygwin+Tomcat 4.1.27+PostgreSQL7.4.3で構築し、
JAVAから操作しようとしているのですが、
\tomcat\common\lib内に、JDBCドライバのpostgresql743.jarをいれ、

JAVAで、ドライバクラスを読みこむところでエラーがでてしまいます
コンパイルは通るのですが、実行しようとすると
Class.forName("org.postgresql.Driver"); で、
ClassNotFoundException のエラーがでるのですが、何か解決策はないでしょうか
183NAME IS NULL:04/09/06 18:42 ID:???
classpath を見直す。
本当に \tomcat\common\lib 以下が読まれているのかどうかを確認する。
postgresql743.jar が壊れていないかを確認する。

それと最も重要なことだが、
「超初心者」と書けば何か教えてくれるだろうという腐った根性も見直すべき。
184NAME IS NULL:04/09/06 22:51 ID:???
>>181
というか実際>>161の方法でパフォーマンス的に問題があるのかと。
たかが数万レコードでしょ?

あと、キャッシュやるとして、データが更新されることはないの?
ないなら、Smartyみたくhtmlレンダリングしちゃったものを
キャッシュしとけば?
185NAME IS NULL:04/09/06 22:57 ID:???
>>181
javaならVectorにぶちこむ
186161=181:04/09/06 23:10 ID:???
>>184
結果としてヒットし得るのは数万レコードですが、検索条件がたくさんのテーブルを結合したものなので、
ちょっと気になります。
ソート条件にも関数を使うケースがあり、その点でも一度求めた結果はなるべく使いまわしたいです。
ただ、現時点ではパフォーマンス的に問題が出ているわけではないので、こちらの事情は置いといて、
今回は一般論としてどうなってるのかを知りたいのです。

キャッシュを使うとして、データの更新は発生する可能性はあります。
データ更新のタイミングはわかっているので、そのタイミングでキャッシュをクリアしてしまう、
ってのもアリだと思っています。
ですがそれはとりあえず置いといて、手法としてどんなものがあるかを聞いてみたいです。

というか、検索結果画面にはほぼ必ずページ送りボタンが付くと思うのですが、みなさんその機能を
どんなふうに実装していますか?
毎回同じ検索条件で検索しなおしてますか?
187NAME IS NULL:04/09/07 17:48 ID:???
>>186

全レコードにシリアル番号を振り、検索結果としてそのシリアル番号の
集合全体を保持しておく。あるいは、X番目まで表示させた時には、X
番目のレコードに該当するシリアル番号を保持しておき、該当レコード
の次のレコードから改めて検索を始める。検索対象によっては、データ
構造を工夫することもある。(Suffix Array とか。)

つうか、数万レコードならどうにでもなるんじゃ?
遅いようならキャッシュで問題ないでしょう。
188161=181=186:04/09/07 18:42 ID:???
>>187
>全レコードにシリアル番号を振り、検索結果としてそのシリアル番号の
>集合全体を保持しておく。

これがいわゆるキャッシュだと思っていたのですが、それでOKですか?
シリアル番号は PK でもいいですよね。
このキャッシュを実現する方法として、どんな手法を使ってますか?
自分でも >>181 に書いてはみたんですけど。

>あるいは、X番目まで表示させた時には、X
>番目のレコードに該当するシリアル番号を保持しておき、該当レコード
>の次のレコードから改めて検索を始める。

このやり方に興味があります。
シリアル番号でソートされている場合は、次のレコードから、という条件は簡単に与えられますが、
そうでない場合はちょっと面倒ですよね。
たとえばテーブル FOO について、シリアル番号をカラム PK として、カラム A、B、C の順でソートしてる場合、
PK=$pk のレコードの次以降を検索する場合には

SELECT T1.* FROM FOO T1, FOO T2
 WHERE T2.PK=$pk AND T1.PK<>$pk AND (T1.A>T2.A OR (T1.A=T2.A AND (T1.B>T2.B OR (T1.B=T2.B OR T1.C>=T1.C)))
 ORDER BY T1.A,T1.B,T1.C

みたいになるのかな、と思いますが、こんな感じで合ってますか?
ただこの書き方だと、SQLが複雑になりがちなので、シンプルな検索以外には使いたくないな、というのが正直なところです。
テーブルの結合や関数等よる値の変換を含んでいた場合、とても大変そうです。
189NAME IS NULL:04/09/07 20:25 ID:???
>>188
そーいうことはやったことないですが、
>  SELECT T1.* FROM FOO T1, FOO T2
>   WHERE T2.PK=$pk AND T1.PK<>$pk AND (T1.A>T2.A OR (T1.A=T2.A AND (T1.B>T2.B OR (T1.B=T2.B OR T1.C>=T1.C)))
>   ORDER BY T1.A,T1.B,T1.C
とかやるくらいなら、$pkではなくA, B, Cの値をアプリで保持しておけば
簡単なんじゃないでしょうか。
あと、行値コンストラクタが使えるんじゃないかな。
 WHERE ... (T1.A, T1.B, T1.C) > (T2.A, T2.B, T2.C)
みたいな書き方ができたと思います。

あと、検索結果のprimary key集合をキャッシュするなら、
create table cache (
  seach_word text,
  seq serial,
  p_key int,  -- (?)
  primary key (word, seq)
);
みたいなかんじでしょうか。seqはソート用。本当はseach_word
毎に通番をつけてもいいんだけど、それだとserial 使えないから
面倒。serialなら
insert into (seach_word, p_key) select ...
で一発だもんね。

ところでこれって、同じキーワードで検索される可能性が
どれくらいあるのかも、キャッシュがどれくらい有効かの判断
に影響しそうですね。
190187:04/09/07 20:37 ID:???
>>181

プライマリキーで用が足りるならそれでいいんじゃないの。別ファイルにせず
にテンポラリなテーブルでも作る方がいいと思うけど。あと ADATE とかはファ
イルの属性を見るだけでいいんじゃないかと思った。

> SELECT T1.* FROM FOO T1, FOO T2 WHERE T2.PK=$pk AND T1.PK<>$pk AND (T1.A>T2.A OR (T1.A=T2.A AND (T1.B>T2.B OR (T1.B=T2.B OR T1.C>=T1.C))) ORDER BY T1.A,T1.B,T1.C

びっくりするほど贅沢なコードだな(w

そもそも >>187 に挙げた解は一般論を述べたもので、「最後のシリアルを保
存する方法」は SQL ではあまり効率よくはならない。>>161 とあまり変わらない。
下手にトリッキーな QUERY を書くより RDBMS のオプティマイザに期待する方
がいい。まあ、

SELECT * FROM sometable WHERE serial > $savedSerial AND $condition ORDER BY $order LIMIT 10
<?php ..update $savedSerial.. ?>

の方が、

SELECT * FROM sometable WHERE $condition ORDER BY $order OFFSET $offset LIMIT 10

よりも速くなるのは自明だけど。

どうしても SQL で効率良く書きたいのであればカーソルでも使うことになる
けど、オープンされたカーソルを保持したまま応答するようなコードを php
で書くのは止めた方がいいと思う(w


いずれにしても、「解く方法」ではなく「効率よく解く方法」を知りたいので
あれば、まず問題の規模と要件ををちゃんとおさえないと話が始まらない。
ユーザが必要とする応答が数万レコード全てもしくは大半ならば、たぶん
キャッシュ用のテーブルを作るべき。でも本当に必要なのはもっと小さい
セットなんでしょう? ならば、いかにして応答件数を減らし効率よい検索を
提供するかを検討する方が、ずっといい。
191161=181=186=188:04/09/07 23:09 ID:???
>>189
>あと、行値コンストラクタが使えるんじゃないかな。
> WHERE ... (T1.A, T1.B, T1.C) > (T2.A, T2.B, T2.C)
>みたいな書き方ができたと思います。

こんなことができるんですね!
と思ってさっそく実験してみたら、期待している動作とはちょっと違いそうです。

SELECT * FROM foo WHERE (A,B,C)>=(1,2,3);

と書いたとき、自分が期待するのは

SELECT * FROM foo WHERE A>1 OR (A=1 AND (B>2 OR (B=2 AND C>=3)));

なんですが、実験した結果では

SELECT * FROM foo WHERE A>=1 AND B>=2 AND C>=3;

のように動作するっぽいですね。
残念。
192161=181=186=188:04/09/07 23:09 ID:???
>>190
>びっくりするほど贅沢なコードだな(w

とおっしゃいますが、

> SELECT * FROM sometable WHERE serial > $savedSerial AND $condition ORDER BY $order LIMIT 10

このコードでは、$order の内容によって serial の並びが番号順にはならないので、
serial > $savedSerial の条件ではだめな気がします。
いや、たしかに >>181 のは贅沢なコードだと思いますけど、このアプローチでは
こういったクエリにならざるを得なそうです。
でも、これやるくらいならおとなしく OFFSET を指定した方が良さそうですね。
どっちを取るかは、レコード抽出のコストはそんなに変わらなそうなので、ソートのコストを比較してみて
どうなるか、ってところだと思います。

>いずれにしても、「解く方法」ではなく「効率よく解く方法」を知りたいので
>あれば、まず問題の規模と要件ををちゃんとおさえないと話が始まらない。

ごもっともです。
でも、なんでこんなことを聞いたのかと言えば、自分の作ってるものを最適化したいというよりも、
他の人がどんな手法を使ってるのかを知りたかったのです。
この規模ならこんなことをしてるよ、みたいな、できるだけたくさんのやり方を聞いてみたかったので、
あえて詳しい条件は提示していません。

だから、毎回検索する、って解でも OK で、ただしこれはこういうときには使えなさそうだ、みたいな
ディスカッションもしてみたいな、ってところです。

あと付け加えると、検索を引き継ぐ方法があるのに、自分はそれを知らないばかりに毎回
検索しているのではないか、という不安もありました。
だけど、簡単に検索結果を引き継ぐという方法は無さそうなので、その点では安心しました。
# カーソルをオープンしっぱなしで引き回すってのはナシって方向で・・・


ところで、キャッシュをするとしたとき、自分は >>181 でテンポラリファイルを使うという方法を選択しました。
これは、PK の集合をソートした通りの順で保存でき、seek することによって好きな位置に効率よく
アクセスできるからです。
>>189 にある方法は、データがデータベース内に完結して、メリットがとても大きいです。
なにより、insert 一発でキャッシュが出来上がるってのがすばらしいですし、キャッシュを読み出して
実際のレコードを検索する手順が SQL 一発でできるのもすばらしいです。
しかし、複数キャッシュが同時に生成される場合など、seq が必ずしも連番になる保障が無いので、
任意のオフセットを求めづらい点がありそうですが、解決できるでしょうか。
また、テンポラリファイルにくらべればディスク容量も食うでしょうし、アクセスも遅そうです。

この辺の選択理由とか、そういった意見も聞いてみたいかも。


#こういった質問の仕方がスレの趣旨に合わなかったりしましたら、誘導してくれるとありがたいです。
193NAME IS NULL:04/09/08 00:25 ID:???
> > SELECT * FROM sometable WHERE serial > $savedSerial AND $condition ORDER BY $order LIMIT 10
>
> このコードでは、$order の内容によって serial の並びが番号順にはならないので、
> serial > $savedSerial の条件ではだめな気がします。

あー、ミスった。
$order が数通りなら、$order の種類毎にシリアル番号をふっておけばよいと
思う。DBのアップデートが頻繁に行われるのであれば「シリアル」ではない
番号を工夫しながらふる必要がある。(二分木を育てるイメージ)

…「続きを見る」の最適化のためだけにそこまでやるのもアホらしいけど。
194189:04/09/08 13:50 ID:???
>>191
ありゃほんとだ。昔は
>  SELECT * FROM foo WHERE A>1 OR (A=1 AND (B>2 OR (B=2 AND C>=3)));
のように動いてたと思うんですが、いま手元の8.0beta1では
>  SELECT * FROM foo WHERE A>=1 AND B>=2 AND C>=3;
のようになってますね。SQL92的にもこっちが正解らしく
直されたようです。
195NAME IS NULL:04/09/08 17:19 ID:7jOMOMHw
こんなテーブルがあったとします。

CREATE TABLE test (
number INTEGER
);

んで、バージョン7.1.3で、
select * from test where number = '';
は、エラーが起きません。

でも、バージョン7.4とか最近のは、
ERROR: invalid input syntax for integer: ""
と、エラーになります。

これ、なにか設定で、エラーの縛りをゆるくしたりってできませんか。
もし、頻出質問だったらすみません。
いちおう、調べてみたんですが、手掛かりなくて。

よろしくおねがいします。
196NAME IS NULL:04/09/08 18:48 ID:???
>>195
select * from test where number = '';
Vertion7.2.1でもつかえた。知らなかったw
しかもなんと0とみなして比較している。

数値の定数を ' で囲っても問題ないのは
知っていたんだけど。

もし、エラーの縛りを変更できるとしたら
http://www.postgresql.jp/document/pg743doc/html/runtime-config.html
あたりに書いてあるんじゃないかな。
あとは、7.2.1でも使えたのでそれ以後のチェンジログを調べてみるとか。
197174:04/09/08 19:59 ID:???
>>174
>>178
誰かわかりませんかー
198NAME IS NULL:04/09/08 21:04 ID:???
>>197
入れ子になったデータ取得自体は問題なくできる。
おまいがコピペしたソース以外のどこかでやらかしているんじゃな
いかと思う。(だからレスが付かないのかもしれない)。

>  ですが、08004のエラーコードが返されていて
>  実際は、コネクションは生きているのにJDBCとDBの間の
>  接続がDB側から?切られてるぽいのです

これは妄想?あるいはなにをどう確認したの?
199195:04/09/08 22:27 ID:h2p7Fopo
>>196

レスありがとうございます。
pgsql/data/以下の各種設定ファイルは、ざっと見たんですが、
それっぽいのがなかったんです。
でも、もいちど、じっくり見てみます。

それとも素直にバージョン落とした方がいいのか。。。(´-ω-`)
200174:04/09/08 23:40 ID:???
>>198
鯖負荷が高いとなるっぽいんですよね
うまく逝くときと逝かない時があるのでどこを
どう調べたらいいかわからんです

>これは妄想?あるいはなにをどう確認したの?

>>175
のトレースをおいかけてったらそうなってますた
201NAME IS NULL:04/09/09 10:01 ID:???
>>200
PostgreSQL側には何もログは残ってないんですか?
202NAME IS NULL:04/09/09 11:10 ID:???
っつーか、
>>200
>  鯖負荷が高いとなるっぽいんですよね
>  うまく逝くときと逝かない時があるのでどこを
>  どう調べたらいいかわからんです
なのに、何故
>>178
>  てか、
>  >>174みたいな入れ子になったデータ取得ってできてます?
という質問になるのかがわからん。
ひょっとしてこれが釣りというやつか?
203174:04/09/09 20:16 ID:???
>>201
logは残ってないっぽいです。
syslogに出てる分と、-lで指定したところと両方みてますけど
他にあります?

>>202
原因がサパーリわからんのでいろいろ調べてるんですが、
エラーコード調べたらPostgreSQLのオフィシャルML?ぽいところに
そんな記述があって似たような構造なので

どこを調べたらいいかわからんのでいろんな可能性を
聞いてます
204202:04/09/10 02:30 ID:???
語録
>  呼び出しもとの方ではNULLが返されてぬるぽに
>  なるみたいです。

>  実際は、コネクションは生きているのにJDBCとDBの間の
>  接続がDB側から?切られてるぽいのです

>  鯖負荷が高いとなるっぽいんですよね

>  エラーコード調べたらPostgreSQLのオフィシャルML?ぽいところに
>  そんな記述があって似たような構造なので

おまいがやった操作と、おまいが見た事実を書け。
なぜ「ここのURLを見たらこう書いてあったのでこう判断した」
と書けない。

>  >>175
>  のトレースをおいかけてったらそうなってますた

トレースを追うと、エラーコードや、実際にはコネクションが
生きてるのにDB側から切断されていることがわかるのか?
205174:04/09/10 03:58 ID:???
206NAME IS NULL:04/09/10 10:09 ID:???
PostgreSQL8betaをWindowsにインストールするにはどうしたらいいですか?
207NAME IS NULL:04/09/10 10:24 ID:???
>>206
downloadして、インストールしたらいいよ?
208NAME IS NULL:04/09/10 10:58 ID:???
209202:04/09/10 15:41:34 ID:???
>>205
だから、それを見てなぜ、エラーコードや、実際にはコネクションが
生きてるのにDB側から切断されていることがわかるのか?

と罵倒しつつ一応調べてみたけど、
at org.postgresql.core.QueryExecutor.executeV3(QueryExecutor.java:115)
というのは、
s = con.createStatement() した後に con.clcose() して
s.executeQuery() すると同じエラーが出るね。
スレッドが絡んでたり、コネクションが意図しないところで
close()されてたりしない?
210174:04/09/10 20:47:17 ID:???
>>209
>スレッドが絡んでたり、コネクションが意図しないところで
>close()されてたりしない?

と思って見てはいるんですが、意図してないところのcloseなんて
どこでされてるのか検討もつかないです
close自体はfinallyで最後に閉じてるだけなので、あるとすれば
別のスレッドからぽいんですけど、どうやったらわかるでしょうか?
211NAME IS NULL:04/09/11 04:25:46 ID:???
>>210
以下は素人がググって推測しただけなんで、そこんとこは割引で。

ttp://java.sun.com/j2se/1.3/ja/docs/ja/api/java/sql/Statement.html
ttp://java.sun.com/j2se/1.3/docs/api/java/sql/Statement.html

> Statement オブジェクトごとに 1 つの ResultSet だけがいつでもオープンできます。
> したがって、1 つの ResultSet オブジェクトの読み込みが、別の読み込みにより割り込まれると、
> 各々は異なった Statement オブジェクトによって生成されたことになります。
> すべての文の execute メソッドは、
> 文の現在の ResultSet オブジェクトでオープンされているものが存在すれば、
> それを暗黙にクローズします。

「暗黙にクローズします」、ということから逆に考えて、
引数なしのcreateStatement()で作ったs1とs2が、じつは同じものだったとしたら、
>>174
>...
>ResultSet rs2 = s2.executeQuery("SELECT * FROM table2");
→ここで、rs1が「暗黙にクローズ」されているのではないでしょうか?
>while(rs2.next())
>...

引数ありの
 public Statement createStatement(int resultSetType, int resultSetConcurrency)
を使えば、多重化できるよーな気がしますが、そういうもんなんでしょうか?
212174:04/09/12 10:48:04 ID:???
>>211
いけそうですね
ちょっと試してみます。ありがとうございました
213NAME IS NULL:04/09/12 18:33:09 ID:o1IBNX1v
勉強用にサンプルデータが欲しいのですが
無料で手に入れられるデータはありませんか?

214NAME IS NULL:04/09/12 18:51:15 ID:???
>>213

郵便番号のデータなんてどうでしょ。

http://www.post.japanpost.jp/zipcode/download.html
215NAME IS NULL:04/09/12 19:29:39 ID:???
>>213
●Practical PostgreSQL
http://www.commandprompt.com/ppbook/book1.htm
の booktown
http://www.commandprompt.com/ppbook/booktown.sql

●PostgreSQL のチュートリアル
src/tutorial/basics.sql
216NAME IS NULL:04/09/12 19:41:46 ID:???
うわぁ、聞いて良かった。
214さん、215さんありがとうございました。
早速勉強を開始します。
217NAME IS NULL:04/09/12 22:59:13 ID:Tg/C9pCP
一つのサーバにTomcat+PostgreSQLが入ってる状態で
認証時にパスワードをMD5又はCryptで暗号化する意味はありますかね?
218NAME IS NULL:04/09/12 23:29:12 ID:???
>>214
実は郵便局のデータで見れば見るほどいい加減なんだけどね。
地方によって書き方ばらばらだったり
いろんな省略があったり
データー中に説明の文言があったり
複数行に渡ってたり


一行一レコードと単純にみなすだけなら問題ないけど
219GRE君:04/09/13 13:26:46 ID:JBMHKhCh
市町村合併により住所の変更を行おうとしました。例として横浜市が海港市になったとします。で下記の命令を発行しました。

*テーブル名:tbl_inf、フィールド名:home_adrs

=> update tbl_inf set home_adrs = translate (home_adrs,'横浜市','海港市');

「横浜市」→「海港市」はこれでできました。

しかしついでに「横浜市横田区」→「海港市横田区」となってほしいのが「海港市海田区」になってしまいました。

どうも1文字ずつ検索でかけて1文字ずつ置換しているようです。これを「横浜市」→「海港市」だけ置換できるようには、どのような構文を書いたらいいのでしょうか?
220NAME IS NULL:04/09/13 13:34:09 ID:RV9U7DMy

同一のホスト(Postgresql)で動いている
「A」と「B」の二つのデータベースを同時に参照したいのですが

SELECT ATable.Price, BTable.PCS FROM
A.TABLE AS ATable LEFT JOIN B.TABLE AS BTable ON ATable.ID = BTable.ID

このように違うDB同士のテーブルの結合を実行したいのですが
何か良い方法はありませんか?

DBを切り替えないで
別々のDBの値を同じSQLで参照したいのです。
宜しくお願いします。
221NAME IS NULL:04/09/13 13:44:50 ID:???
>>219
update tbl_inf set home_adrs = translate (home_adrs,'横浜市','海港市') where home_adrs like '横浜市%';
222NAME IS NULL:04/09/13 13:45:35 ID:???
>>220
無理。
223NAME IS NULL:04/09/13 13:57:00 ID:RV9U7DMy

>>222

やっぱり無理だよな・・・。
一つのDBにまとめろという事ね。

しかし、別々のDBで管理したほうが都合が良い案件なんだす。
例えるなら、本社と営業所が沢山ある会社のDBを構築するときに
各々の営業所を別々のDBにしたいのよ。

でも、それぞれのDBの間にもリレーションが存在するので
データベースを飛び越えたテーブルの結合がやりたい感じ。

仕方ないから、一つのDBにするよ。
224NAME IS NULL:04/09/13 14:16:18 ID:???
>>223
schemaで分ければ。
225NAME IS NULL:04/09/13 23:28:27 ID:???
pgadmin3がセグりまくり。
現時点では使い物にならん。
226NAME IS NULL:04/09/13 23:53:31 ID:???
>>219
replace()
>>220
dblink
227220:04/09/14 18:09:14 ID:???
>>221
>>226
ありがとうございまsぢた

出来ましたーーー

完璧っす
228NAME IS NULL:04/09/14 22:34:23 ID:???
理由
translate(string text, from text, to text)  Any character in string that matches a character in the from set is replaced by the corresponding character in the to set.
replace(string text, from text, to text) Replace all occurrences in string of substring from with substring to.
ttp://www.postgresql.org/docs/7.4/static/functions-string.html#FUNCTIONS-STRING-OTHER
229NAME IS NULL:04/09/15 10:07:39 ID:q473lqGr
postgresqlで、UNIXタイムスタンプを"YYYY/MM/DD"みたいな形式で取り出す関数ってあります?
探してみたんですけど、見つからなかったので。
230NAME IS NULL:04/09/15 10:22:21 ID:???
>>229
関数じゃないけど、
SELECT '1970/01/01'::TIMESTAMP + '1095211305 seconds'::interval;
231NAME IS NULL:04/09/15 10:39:23 ID:q473lqGr
>>230
それを、普通のSelect文にサブクエリとして入れてあげれば良いわけですね。
試してみます。
ありがとうございました。
232231:04/09/15 16:43:48 ID:q473lqGr
すみません、試行錯誤を繰り返したのですけど、
SELECT '1970/01/01'::TIMESTAMP + '1095211305 seconds'::interval;
の、『1095211305』の部分をどうしてもデータベースの値にする事が出来ませんでした。

『TIMESTAMP + lastlogin' seconds'::』のようにすると
『ERROR: type "lastlogin" does not exist』といわれてしまいます。

どなたか、よろしくお願い致します。
233NAME IS NULL:04/09/15 20:06:17 ID:???
たぶん、
SELECT '1970/01/01'::TIMESTAMP + (lastlogin || ' seconds')::interval;
かな。
234プー太郎:04/09/15 22:28:00 ID:FWFbSHGU
Fedora Core2 に postgreSQL をインストールし、
JDBCドライバーの postgresql-jdbc をインストールして、
同じpcよりjavaプログラムでデータベースに接続してみました。
で、成功したのですが、以下の設定をしなければ接続できませんでした。

postgresql.conf ファイルに以下の行を追加
tcpip_socket = true

pg_hba.conf ファイルに以下の行を追加
host all all 127.0.0.1 255.255.255.255 trust

localhostより接続していてもやはり上記の設定は必要名のでしょうか?

どなたかご存知ありませんか?
235NAME IS NULL:04/09/16 02:40:54 ID:???
SELECT文で詰まっています・・・どなたか助けてくださいm(_ _)m

A(整数)、B(タイムスタンプ)という二つカラムがあるテーブルにおいて
Bが2004年の8月のレコード内でAが何種類あるのか出そうとしてます。
GROUP BYとHAVINGを使うということはなんとなく分かるんですが
期待する結果が出ません。どうかお願いします。
236NAME IS NULL:04/09/16 07:53:12 ID:???
>>235
SELECT count(DISTINCT a) FROM table WHERE date_trunc('month',b)='2004/08/01 00:00:00'::TIMESTAMP;
237NAME IS NULL:04/09/16 13:41:10 ID:???
>>234
http://www.postgresql.jp/document/pg743doc/html/jdbc.html#JDBC-PREPARE
JDBCではTCP/IP接続しか使えません。
238NAME IS NULL:04/09/16 16:20:36 ID:35CLisq1
あのー、MS-AccessとpostgreSQLをODBC接続するんですが、
この通信を暗号化する方法ってありませんかね?
239NAME IS NULL:04/09/16 19:11:30 ID:???
>>238
SSHのforwardingじゃだめ?
240NAME IS NULL:04/09/16 19:44:06 ID:???
241NAME IS NULL:04/09/16 20:12:32 ID:35CLisq1
あああ、portfowardingがありましたね。
すいません。対応してるSSL対応のODBCとか無いのかと拘って
まったく気付きませんでした。_| ̄|○

ありがとうございます。バッチリいけました。m(_ _)m
242NAME IS NULL:04/09/16 20:14:27 ID:35CLisq1
>>240
ありがとうございます。今回はTeraTermでイキました。
こんなのもあるんですねー。知りませんでした。ありがとうございます。
243NAME IS NULL:04/09/23 20:21:25 ID:se1pVqkJ
copyコマンドってpostgresアカウントで実行されるのかな?
rootで実行しても/root/ディレクトリに書き出し、読み書きができません。
244NAME IS NULL:04/09/23 21:15:10 ID:xu7mwazl
JDBCでint型のカラムの値を取得するメソッドって
getColumnTypeでいいんでしょうか?
よろしくお願いします。
245NAME IS NULL:04/09/24 00:19:13 ID:ZDjKs/zr
設計のことなのですが、個人の情報の中に例えば都道府県などの項目を複数選択できるようにしたいのですが、その場合考えられる方法が
(1)同じテーブル内に都道府県というフィールドを一つ作ってその中で
カンマ区切りなどで保持
(2)同じテーブル内で1−47の県のフィールドを作ってフラグで保持
(3)別テーブルでユニークなIDプラス(2)の感じ
って感じなのですがどの方法が良いと思いますか?
(1)はmysql向けでpostgresには向いてないと思いますが、、
初歩的な質問ですいません、、
246NAME IS NULL:04/09/24 03:21:49 ID:???
>>245
どういう回答があるか、初心者の漏れも興味深く見守っているとして、
245が挙げた(2)の変形(2')として、

(2') bit(47)のフラグ用カラムで保持

ってのが、容量的に一番有利だと思う。245はそのテーブルが何人分を扱う予定で、
呼び出しや更新の頻度や、どういうインターフェースで読み書きするか
書いた方が、いいんじゃないのかな。

根拠なしに感覚で漏れがやるとするなら、100人以下だったら都道府県別にbit(1)
のカラムを用意して方法(1)。これ読み書きの扱いが楽。それ以上なら方法(2')。

今までPerlからPg.pmでしか扱ったことないけれどね。回答者よろ〜
247NAME IS NULL:04/09/24 04:16:04 ID:???
>>245
正規形にこだわるなら、素直に個人IDと都道府県IDのテーブルを作る。

個人ID|都道府県ID
------------------
ID0001|1
ID0001|2
ID0002|1
ID0003|3
ID0004|1
ID0004|3

みたいな。ま、都道府県て増減しそうにない固定みたいなものだし、
他の情報、例えば都道府県のカタカナとかローマ字表記など要らなければ
わざわざ都道府県IDを作らなくてもいいような気がするけど。

都道府県の情報が末端的な情報で、個人情報内の都道府県を元に
別テーブルと結合するようなことが無ければ、(1)の方法でもカンマ区切りの
変わりに配列型でもいいような気がするが、他のテーブルと結合するなら
このようにしておかないと面倒でしょ。もちろん(1)の方法でも結合条件が
面倒な書き方になるだけで、結合できないと言うわけじゃないけど。
248NAME IS NULL:04/09/24 05:51:14 ID:???
>>245
何のために都道府県情報を複数もつかも重要では?
山田太郎 東京都 神奈川県
たとえば、という情報の場合、この東京と神奈川がそれぞれ何についてかという情報はいらないの?
東京が本籍で神奈川が現住所というような意味を持つとか。
これまで居住したことがある都道府県で、順番も持たせる必要があとで出てきそうだとか。
それによって設計が変わりそうな気がするんだが。
249NAME IS NULL:04/09/24 09:29:32 ID:???
> わざわざ都道府県IDを作らなくてもいいような気がするけど。

データベースで都道府県を扱うときは、JISの都道府県番号を使ってる。
250NAME IS NULL:04/09/24 12:03:31 ID:QPEzY+V7
hoge LIKE '%hoge%' と書いた場合には、文字列中にhogeがあって引っかかるのはよいのですが、
hoge LIKE '%%' になった場合、null 以外のもの全部を引っ張ってきてしまいます。
nullになってる行も引っ張るにはどうしたらいいでしょうか?
251NAME IS NULL:04/09/24 13:10:25 ID:???
LIKE句を書かない。
252247:04/09/24 13:18:32 ID:???
>>249
あくまで都道府県を例えとした話なんで作らなくてもいいとしたけど、
実際にはソートの問題でJISの都道府県番号でID付けするわな。

>>250
全行引っ張るのなら何もいらんだろ。
もしくは AND hoge is NULL を追加するか。
SQLの動的生成の関係で常に同じSQLで済ましたいと言う考えなら、
WHERE CASE WHEN hoge IS NULL THEN '' ELSE hoge END LIKE '%%';
253247:04/09/24 13:34:31 ID:???
>>252
ほとんど余計なことを書いてミスっちまった
×AND hoge is NULL を追加
○ OR hoge is NULL を追加
254250 :04/09/24 22:49:55 ID:QPEzY+V7
>>253
>WHERE CASE WHEN hoge IS NULL THEN '' ELSE hoge END LIKE '%%';
これすごい参考になりました。
目的が達成できました

ありがとうございます。

255NAME IS NULL:04/09/24 23:53:34 ID:???
>>243
そう。copyコマンドはバックエンドがファイルに書き出す。
psqlからなら\copyを使えばできるはず。
256NAME IS NULL:04/09/25 08:50:51 ID:???
>>255
レスありがとうございました。
でもそうならそうと、もっと分かり易いエラーを出して欲しかった。
半日潰してしまいました。
257NAME IS NULL:04/09/25 08:57:12 ID:MM3GDsqJ
素朴な質問で恐縮ですが、日本語テキストをデータとして扱う事はできますか?
258NAME IS NULL:04/09/25 09:01:25 ID:???
できます。
259NAME IS NULL:04/09/25 09:04:53 ID:MM3GDsqJ
それは、何か特別なものを追加インストールしなくても
ですか?
260NAME IS NULL:04/09/25 12:17:27 ID:???
>>259
大丈夫です。

初心者の方だと思いますが、まずはご自分で一通りお調べになることをオススメします。
そのまま質問を続けると間違いなく罵られることになりますので。

こちらのページが参考になると思いますよ。
ttp://www.postgresql.jp/document/index.php3

書籍はPDFとして無料公開されているものもあります
多少古いですが、基本は変わっていません。
ttp://www.sra.co.jp/people/t-ishii/PostgreSQL/postbook-pdf/
261NAME IS NULL:04/09/25 23:45:36 ID:DVjDKwn6
postgresは同一変数を一つの結果セットとして返すことができるのですか?

select *
from (
select code , tcode
from pgdata.sales
) a
left join
( select code , scode
from pgdata.salesdetail
) b
on a.code = b.code ;

とすると

code tcode code scode

として返ってきます。あり得ますか?
262NAME IS NULL:04/09/26 00:23:49 ID:???
>>261
on a.code = b.codeの代わりに
USING(code)とすると一つしか返りません。
263NAME IS NULL:04/09/26 22:35:57 ID:???
CygipcをインストールしたいのですがCygwinを使っての解凍の仕方がわかりません
本を見ながらやってるんですがそこではbunzip2 cygipc-1.10-1.tar.bz2
と記載されてるのですが試してもファイルが見つからないとなって解凍されません
この圧縮されてるファイルはどこに置けばいいのでしょうか?
264NAME IS NULL:04/09/26 23:36:36 ID:???
>>263
cygipc-1.10-1.tar.bz2をダウンロードしたディレクトリに移動して、bunzip2 あるいは tar jzxf してみ。
ところでcygipc-1.10-1ってすげー古い気がする(今のCygwin 1.5.Xじゃ動かん)と思うのだが。
265NAME IS NULL:04/09/27 00:11:26 ID:???
>>264
てことでこれはcygwin上からファイルが置かれているディレクトリに
移動してからbunzip2なりtar jzxfコマンドをやればいいってことですか
はは恥ずかしながらディレクトリの移動の仕方すらわかりません
でもおかしい点がわかったので明日調べてみます
Cygipcが古いのは参考にしてる本で使う教材ソフトと互換性がないとのことで。
動かないときは素直に1.14使います。なにはともあれレスthx
266NAME IS NULL:04/09/27 15:47:41 ID:RiTzpXck
シフトJISでデータベースを作成したいのですが、
どうすればできますか?

# createdb -E SJIS test

などとしても

ERROR: SJIS is not a valid encoding name
createdb: database creation failed

とエラーになってしまいます。

PostgreSQL 7.3.6 です。どなたかご教授願います。
267NAME IS NULL:04/09/27 15:54:53 ID:???
268NAME IS NULL:04/09/27 15:57:30 ID:???
>>267
ありがとうございます。
解決しました。

Perlで作成したCGI(シフトJIS)よりコールする時に、
SET CLIENT_ENCODING TO 'SJIS';
を投げてやるだけでよかったんですね^^;
269NAME IS NULL:04/09/27 16:53:48 ID:???
D:\Cygwinにあるcygipc.tar.bz2を解凍の仕方はどうすればよいのでしょうか?
bunzip2 D:\Cygwin\cygipc-1.10.1-patched-bin.tar.bz2
上のようにDOSみたいにやっても解凍されないのでどうかお教えください
270NAME IS NULL:04/09/27 17:09:41 ID:???
>>269
$ which bunzip2
$ which tar
してみれ。
なければsetup.exeからインストール。
両方ともあるなら
$ cd /cygdrive/d/cygwin
$ tar xvjf cygipc-1.10.1-patched-bin.tar.bz2 -C /
で。
271NAME IS NULL:04/09/27 19:09:10 ID:???
>>270
ありがとうございますさっそくやってみてできました
これでやっとPostgreSQLにインストールありつけます
272NAME IS NULL:04/09/29 20:55:18 ID:???
ちょっと大きな声では言えないんですけどね
わからないんですよ。え?何がわからないかって?
あれです、Postgresqlの本を買ったのはいいけどわからないんです
たとえるなら数学の教科書を買ったのはいいけど
足し算引き算の解説が私には必要なレベルなのにそれが載ってなかったっていう話
sqlを書くためのテキストエリアを開くことすらできないorz
ちなみにPostgreSQL 8.0使って就職できるようになりたい中卒無職です
273NAME IS NULL:04/09/29 21:09:49 ID:???
>>272
psqlだ。どうだ、分かったか。
274NAME IS NULL:04/09/29 23:02:06 ID:???
>>272
夜学通え、もしくは大検受けろ
275NAME IS NULL:04/09/29 23:05:48 ID:???
>>273
ヘルプ見てもpsqlが載ってなくてわからないです
でもしばらくいじってたらそれらしいのがでてきたので>>247のを貼り付けて
実行してみたら出来たのでたぶん成功です、就職に一歩近づけましたthanks yau
276NAME IS NULL:04/09/29 23:16:04 ID:???
thanks you って見ると、どうしてもアレだ。
シュレディンガー音頭を思い出すのは俺だけか?
277NAME IS NULL:04/09/29 23:38:50 ID:???
心配するな、お前だけだ
278NAME IS NULL:04/09/30 01:24:24 ID:???
279NAME IS NULL:04/09/30 13:50:15 ID:???
通信制の高校とか進めてくれるのは嬉しいんですが
残り預金が200万切ってますので余り余裕がないというか金銭面は崖ッぷちです

ところでMS Windows2000&XP用のpgadminUを配布してるサイト潰れてますか?
昨日と今日と404エラーがでてしまうんですが
280NAME IS NULL:04/09/30 15:32:43 ID:???
>>279
pgAdminIII で我慢してください
http://www.pgadmin.org/pgadmin3/index.php?locale=ja_JP
281NAME IS NULL:04/09/30 16:26:56 ID:???
>>280
私目にはもったいないものです、感謝しながらインストールさせていただきます
282NAME IS NULL:04/09/30 20:14:44 ID:???
pgadmin3バグ多すぎ。
まだ実用的に使えるレベルじゃないよ。

将来は期待してるけど。
283NAME IS NULL:04/09/30 21:10:25 ID:???
>>282
確かによく落ちるけど、これって「実用的に使う」ものなの?
動作確認の補助程度にしか使ってないのだけど。
284NAME IS NULL:04/10/01 00:30:07 ID:QZltdLXt
libpq.so.2.2 ってどっかに落ちてませんかね?
一生懸命ぐぐったんですけど…
おながいします。
285NAME IS NULL:04/10/01 00:39:46 ID:???
pgadminは全然使ってないが鯖自体は結構安定してないか?>8.0βWin
286NAME IS NULL:04/10/01 01:42:44 ID:???
>>285
意外と安定してるねぇ。
んでも、今日8.0beta1から8.0beta2-dev3に上げようとして結構苦労した。

あと、8.0betaWinのデータをpg_dump -b -Fcでバックアップすると
7.4.x(Linux)に移せない(Dumpフォーマットバージョンが違うと言うようなエラー)が
発生してラージオブジェクトを含むデータベースを移せないのだけど、
もともとバージョンを落とす方へデータの移行は無理なのかな?

通常のテキストで吐いて psql -d dbname -f dumpfile なら問題ないのだけど、
これだとラージオブジェクトは移せない。
287NAME IS NULL:04/10/02 07:39:03 ID:???
288NAME IS NULL:04/10/02 08:29:31 ID:NGl/1i9J
>>283
pgadminはACCESSのようなフロントエンドを目指してるのと違うの?
289NAME IS NULL:04/10/02 10:28:54 ID:???
adminっていうぐらいなんだからやっぱテストとか確認用だろ。
pgclientとか言う名前なわけじゃないんだから
290283:04/10/02 13:18:05 ID:???
>>288
それはpgaccessだろう。使ったこと無いけど。
291NAME IS NULL:04/10/02 16:01:43 ID:???
一番最初にPostgreSQL触った時に使ってみたきりだな…>pgaccess
292NAME IS NULL:04/10/03 00:38:21 ID:???
tkじゃねぇ....
293NAME IS NULL:04/10/03 00:43:57 ID:???
pgctlの-lオプションで出力できるログのローテーションって
どうやってやってますか?
294NAME IS NULL:04/10/03 19:50:00 ID:FPL8MjTU
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=%E6%B8%8B%E8%B0キ&num=50
のような半角文字を含むURLはどうやって管理したらよいのでしょうか。
EUCで試したところ、INSERTはうまくいったのですが、データベースから
引っ張ってきたときに文字化けしてしまいました。
Shift-JISで試したところ、INSERTさえも受け付けてくれませんでした…
295NAME IS NULL:04/10/03 20:13:08 ID:???
>>294
俺はエンコードしてから入れてる
296NAME IS NULL:04/10/03 22:51:17 ID:???
>>294
意味ワカラン。
半角カナ文字がうまく扱えないと言いたいのだろうか?
EUCでINSERTもSELECTも問題ないけど。
フロントエンドの問題じゃないのか?
297294:04/10/03 23:14:08 ID:FPL8MjTU
>>295
なるほど。エンコードしてからという方法もありましたね。

>>296
おっしゃるとおり、EUCの場合はフロントエンドの問題でした…
htmlで吐き出すとき
<a href="http://www.googl(略)8B%E8%B0キ&num=50">
http://www.googl(略)8B%E8%B0キ&num=50
</a>
のようにしているのですが、リンクがうまく機能していない
みたいです。
「渋谷」というワードで検索しているはずなのに「渋??」と
言うワードを検索したリンクになってしまいます。
これはどうしたら良いのでしょうか…
298NAME IS NULL:04/10/03 23:40:15 ID:???
>>297
そんなもん知るかw
そもそも、なんでそこに「キ」が混じっている?
googleで「渋谷」と入れたら%E6%B8%8B%E8%B0%B7になるんだけど。
299NAME IS NULL:04/10/04 11:51:54 ID:6QgqjC8U
mailtable
email | character varying(100) |
readflg | character varying(1) |
registdate | timestamp with time zone |

という2万件くらい登録されているテーブルがあります。

登録、解除をreadflgで制御して、
再登録時には古いデータはそのままで、新しいデータがinsertされます。

email | readflg | registdate
------------+---------+------------
[email protected] | 1 | 2004/9/29
[email protected] | 1 | 2004/9/29
[email protected] | 1 | 2004/9/29
[email protected] | 0 | 2004/9/30
[email protected] | 0 | 2004/9/30
[email protected] | 1 | 2004/10/1

のような感じ。

一番新しい日付で登録されているデータのreadflgが1のメールアドレスを取得したい
というときに、

SELECT email
FROM mail
WHERE readflg = 1
AND ( registdate, email )
IN ( SELECT MAX(registdate), email FROM mail GROUP BY email );

というSQLを実行したところ、すごく遅くなってしまいます。
もうちょっと早く処理できる方法はないでしょうか?

PostgreSQL 7.1.3
Red Hat Linux 8.0 3.2-7

です。

300NAME IS NULL:04/10/04 12:13:40 ID:???
>>299
explainしてindexはちゃんと使われてるのに遅いってこと?
そのSQLだと
「一番新しい日付で登録されているデータのreadflgが1のメールアドレス」
じゃなくて
「readflgが1のメールアドレスで登録された最新の日付」
にならない?

テーブル全部で最新の日付なのか、メールアドレス単位で最新の日付なのか?
301299:04/10/04 12:21:27 ID:6QgqjC8U
>300
メールアドレス単位で最新の日付です。
explainは実行結果の見方が分かりません。
indexのあるなしはどこで判断すればいいですか?
302NAME IS NULL:04/10/04 12:32:06 ID:???
>>300
>>299のSQLではIndexは使われないと思われ。
303302:04/10/04 12:39:22 ID:???
SELECT MAX(registdate)AS mdate, email FROM mail AS T1
WHERE EXISTS (SELECT * FROM mail WHERE (registdate,email,readflg)=(mdate,T1.email,1));
これでどうかな。
304302:04/10/04 12:47:06 ID:???
>>303
ゴメソ、間違ってた。
SELECT MAX(registdate)AS mdate, DISTINCT email FROM mail AS T1
WHERE EXISTS (SELECT * FROM mail WHERE (registdate,email,readflg)=(mdate,T1.email,1));
305299:04/10/04 12:59:28 ID:6QgqjC8U
>302さん、ありがとうございます。
でも、今実行してみたのですが、
ERROR: parser: parse error at or near "DISTINCT"
というのが出てしまうようです…。
SELECT DISTINCT email, MAX(registdate)AS mdateにしたら
MAX(registdate)の方にもDISTINCTが効いてしまうでしょうか?
306302:04/10/04 13:15:51 ID:???
>>305
あれ、DISTINCTって後ろに持ってきたらダメなんだったっけ?

SELECT MAX(registdate)AS mdate, email FROM mail AS T1
WHERE EXISTS (SELECT * FROM mail WHERE (registdate,email,readflg)=(mdate,T1.email,1)) GROUP BY email;
307302:04/10/04 13:20:35 ID:???
あああああぁー。
DISTINCTの作法に勘違いしているのに気がついた。orz
恥ずかしい(;´Д⊂)
308302:04/10/04 13:43:29 ID:???
何度もスマソ。
>>306
動かないね。嘘ばっか言ってスマソ。
309302:04/10/04 14:13:05 ID:???
SELECT T1.email
FROM (SELECT MAX(registdate)AS mdate, email FROM mail GROUP BY email)AS T1 ,
(SELECT * FROM mail)AS T2
WHERE T1.mdate=T2.registdate AND T1.email=T2.email AND T2.readflg=1;

で、どうでしょう。(^^;
>>299だとループするのに対して、こちらは2回のスキャンで済むから
7.1の時代なら速いと思うんだけどなぁ。
310299:04/10/04 15:49:47 ID:6QgqjC8U
>302さん
ありがとうございました!
先ほど試しましたが最初のに比べると驚くほど早くなりました。
FROM句の副問合せって、こういう風に使うんですね・・・。勉強になりました。
311属性:04/10/05 11:44:27 ID:64zUwooX
すみませんが、フィールドの属性を取得するSQL文
ってどういうに書けばいいんでしょうか?
教えてください。
312NAME IS NULL:04/10/05 12:27:13 ID:???
>>311
-Eをつけてpsqlを起動する。
$psql -E dbname

後はコマンドを打ってそこで表示されるSQLを参考する。
=>\d tablename
313NAME IS NULL:04/10/05 12:27:46 ID:???
\d table-name とか。
314NAME IS NULL:04/10/05 13:49:36 ID:???
他に聞くとこが見当たらなかったので質問させていただきます。
よくweb上で、氏名や希望IDパスワードなどをいれて
アカウントを発行するシステムありますよね。
あれってSQL使ってやってるんですか?
場違い質問だったらすみません。
315NAME IS NULL:04/10/05 13:59:09 ID:???
>>314
アカウントを発行するのは、SQL(DB)には直接関係ないだろう。
発行したアカウントをDBに記録して、新規発行時に発行済みでないかを
SQLで確認している可能性はあるが。
316314:04/10/05 14:03:46 ID:???
>>315
なるほど。重複確認はSQLでできるんですね。
これから勉強して導入しようと思ってるので
参考にさせていただきます。
ありがとうございました。
317NAME IS NULL:04/10/05 14:32:07 ID:???
>>316
あと、会員番号とかをシーケンスで発行してる場合があるよ。
318284:04/10/05 18:23:23 ID:0oRtg4dC
>>287
ありがとうございます><b
319NAME IS NULL:04/10/06 00:24:12 ID:4Vfsvys6
create function f(text) returns text as
'
declare
flag_text alias for $1;

begin
if flag_text = "a"
return "aaa";
else
return "bbb";
end if;

end;
'
language 'plpgsql';

これを作って実行するとattribute〜とかエラーでる
文字列が同じかどうか判定するのはどうすればよろしいですか?
320NAME IS NULL:04/10/06 00:27:02 ID:???
>>319
ダブルクォーテーション(")を使っているところは、シングルクォーテーション(')を2個の間違いじゃないの?
321NAME IS NULL:04/10/06 01:24:51 ID:tV75h7QC
シリアル型の列名と、それに関連するシーケンスがあります。

で、なんどかWebmin(ブラウザからGUIでDBをいじれるツール)
でinsertしたのですが、
シーケンスのlast_valueは昔のままでした。

そこで、 update categorymaster_categoryid_seq set last_value = 159;
としたものの、
You can't change sequence relation categorymaster_categoryid_seq
と怒られてしまいました。

どうすれば、last_valueの値を変更できるのでしょうか?
322NAME IS NULL:04/10/06 01:45:11 ID:???
>>321
select setval('categorymaster_categoryid_seq',159);
323NAME IS NULL:04/10/06 23:54:59 ID:???
>>320
うまくいきました
ありがd
324NAME IS NULL:04/10/07 01:05:27 ID:???
Text形のデータは、改行がある文字列を扱えますか?
325NAME IS NULL:04/10/07 01:12:42 ID:???
>>324
扱えるけどインポート前に改行コードを\nに置換する必要アリ
326NAME IS NULL:04/10/07 10:26:02 ID:???
おまいらはPostgreSQL CEはとりますか?
327NAME IS NULL:04/10/07 12:32:07 ID:???
取りません。
328NAME IS NULL:04/10/07 15:51:44 ID:???
こういうことがやりたいけど、できません。


SELECT A.id,
(SELECT sum(price) from list B where A.id = B.id) AS price,
count(SELECT DISTINCT date FROM list B WHERE A.id = B.id) AS count
FROM member A, list B;

これだとできるので、2回に分けるしかないのでしょうか?
SELECT A.id,
(SELECT sum(price) from list B where A.id = B.id) AS price
FROM member A;

どなたか教えてください。
329NAME IS NULL:04/10/07 16:15:18 ID:???
>>328
SELECT id,SUM(B.price),COUNT(B.date) FROM member AS A JOIN list AS B USING(id) GROUP BY id,date;
かな? ちょっと取り間違いしている気もするが。

そもそも、下段も
SELECT id,SUM(B.price) FROM member AS A JOIN list AS B USING(id) GROUP BY id;
旧構文なら
SELECT A.id,SUM(B.price) FROM member AS A , list AS B WHERE A.id=B.id GROUP BY A.id;
って書くべきだと思うんだけど。
330328:04/10/07 16:43:51 ID:???
すみません。ご回答ありがとうございます。

SELECT id,SUM(B.price),COUNT(B.date) FROM member AS A JOIN list AS B USING(id) GROUP BY id,date;

実は、USING(id) は B では member_id になるので A.id = B.member_id になるのですが、
この場合の記述がわかりません。

すみません。
331328:04/10/07 17:00:19 ID:???
これだと大丈夫なのですが、

SELECT A.id FROM member AS A JOIN shopping_list AS B ON (A.id = B.member_id);

これだとだめです。
SELECT A.id ,SUM(B.price),COUNT(B.date)
FROM member AS A JOIN shopping_list AS B ON (A.id = B.member_id) GROUP BY id,date;
332328:04/10/07 17:11:33 ID:???
できました。

だけど、思った結果が出ませんでした。

SELECT A.id ,SUM(B.price),COUNT(B.date)FROM member AS A LEFT JOIN shopping_list AS B ON (A.id = B.member_id) GROUP BY A.id,B.member_id,B.date;

これを実行すると、

id | sum | count
----+-------+-------
3 | | 0
8 | | 0
24 | 40000 | 2
24 | 10000 | 1
24 | 5000 | 1
37 | | 0

こうなるのですが、例えば id 24 の人だと sum 55000 、count 3 にしたいです。
こまった。
333328:04/10/07 17:15:09 ID:???
何度もすみません。できました!

SELECT A.id ,SUM(B.price),COUNT(B.date)FROM member AS A LEFT JOIN shopping_list AS B ON (A.id = B.member_id) GROUP BY A.id;

ありがとう!!
334NAME IS NULL:04/10/07 17:15:35 ID:???
>>332
GROUP BY A,id だけでいいのかな。
335NAME IS NULL:04/10/07 17:16:09 ID:???
あ、かぶった。つか、おそかった。
オメです。
336NAME IS NULL:04/10/07 21:21:54 ID:???
>>326
どうせ金は会社から出してもらうので受けるつもり。
337NAME IS NULL:04/10/08 12:32:10 ID:???
>>336
またSRA社員かよ・・・
338NAME IS NULL:04/10/08 17:52:15 ID:???
質問です。よろしくお願いします。

Postgresqlのconfigure時のオプションを調べたいのですが、
どうしたらよいでしょうか。
どなたかご教授いただけませんでしょうか。

FreeBSD/i386
Postgresql-7.4
339NAME IS NULL:04/10/08 18:53:11 ID:???
>>338
configure --help
340NAME IS NULL:04/10/08 21:41:11 ID:KQ16bcj/
SRA社員ってなんでDQNなんですか?
341NAME IS NULL:04/10/09 00:27:54 ID:???
>>339
338が聞きたいのは、すでにバイナリーで手元にあるものが、どういう
オプションでconfigureされたか知りたい、ってことじゃないんだろうか。
たとえば、php_info()みたいにね。もちろん339のように、どういう
オプションがあるのか、って意味にも取れる。

そこんとこどうなの >338

バイナリーパッケージ引っ張ってきて使ってるだけで幸せだった頃は
漏れもそんなことが分かったらいいって思ったことがあったけど。

postgresでバイナリーからconfigureオプションを知る方法があるのか
漏れは知らないし、探すつもりも無い。もしあるのなら誰かがたぶん書くだろう。

無いなら、バイナリーパッケージばらせばわかるだろうし(少なくともヒントは
あると思われ)、ソースパッケージ持ってきて自分でパッケージ作り直すか、
いっそソースから自分でビルドしたらいいんじゃね。
342NAME IS NULL:04/10/09 16:04:31 ID:???
pg_config --configure
で、もしかしたら出来るかもしれないよ。
pg_config自体は ./configure したときに編集されるシェルスクリプトだから、
バイナリの作り方にもよるけどね。
343NAME IS NULL:04/10/11 22:47:06 ID:wRlE6/s7
OracleからPostgreSQLに移行するから、
Oracle表領域ごとにPostgreSQLでの容量見積もれって言われたんだけど
何か参考になるサイト、市販本とかありますか?
当方、PostgreSQLは初めてです・・。
344NAME IS NULL:04/10/11 23:25:08 ID:???
>>343
とりあえずシーラカンス本買っとけば。
http://www2b.biglobe.ne.jp/~caco/third_edition/

それぞれどのくらい使うかを比べたことはないなあ。
仕組の違いだけを言っておくと、
PostgreSQL は領域を先に確保せず、必要に応じて広くしていく。
表領域(テーブルごとに領域を分ける)も 8.0 (現在ベータ) 以降でないと使えないよ。
345343:04/10/12 00:38:56 ID:VBJQdYx8
>>344
レスありがとうございます。
まずは、データ移行した場合のディスクサイズが知りたいので、
ORACLEの項目型、ブロックサイズなどから算出した
サイズが分かると良いのですが・・
あと、ディスク分散する場合のコツなんかが知りたいです。
とりあえずシーラカンス本買って見ます。
346NAME IS NULL:04/10/12 05:41:54 ID:2cA1Qpyb
すいません、FreeBSD 4.7を使っているのですが、このたびpamを全ユーザにあてはめました。
すると、
pg_hba.conf
で、
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
local all all trust
host all all 127.0.0.1 255.255.255 pam
のようにMETHODをpamにしたのに、ODBCで接続できなくなってしまいました。
まだ他に設定が必要なのでしょうか?
347346:04/10/12 08:54:07 ID:2cA1Qpyb
すいません、その後調べたら、postgres入れるときに、
./configure --with-pam
をつけ、さらに、
pg_hba.conf には
host all all 127.0.0.1 255.255.255 pam サービス名(デフォルトはpostgres)
としなければならない、とマニュアルにありました。
しかし、そうやっても、pg_hba.confの書式が違うと怒られてしまいます。

ただしくはどうすればいいのでしょうか?
なお、今回Postgresの7.4.5をいれました。
348NAME IS NULL:04/10/12 12:22:34 ID:???
>>345
最近MLにそんな話題あったぞ。
http://ml.postgresql.jp/pipermail/pgsql-jp/2004-October/017640.html

あと、344もいってるけどディスク分散については、
8.0からtablespaceが使えるけど、それより前は
WALだけ別のところに置いておくくらいしかないんじゃないかな。

>>346
とりあえず、psql -h 127.0.0.1では繋がるの?
349NAME IS NULL:04/10/12 12:34:32 ID:???
たまに、ディスク分散の話が出るが、実際のところ物理的に
別HDDじゃないと意味ないよね?

ディスクアレイで複数HDDを束ねて、それをまた、パーティションを
切ったシステムでディスク分散とか考えても意味ないよね?

たとえばRAIDと効果的なディスク分散を両立させるなら、
分散させるファイルシステムごとに、ミラーなりRAID5の
ディスクアレイクラスタを設定して、それぞれのファイルシステムが
物理的に別のHDDになるようにしないと効果ないよね?

あってる?
350NAME IS NULL:04/10/16 21:25:12 ID:???
>>346
お前さー
local all all trust
の意味わかって使ってるの? 恐らくわかっちゃいねーんだろうな。
351NAME IS NULL:04/10/17 14:11:28 ID:???
psqlから
\d tablename;
しても列の一覧が表示されるだけで制約の一覧が表示されないんですが、
(制約自体はちゃんと動いているので存在するはず)
どうすれば表示されますか?
制約を消したいのですが、これでは制約名が分かりません。
Postgresqlのバージョンは7.4.5、OSはDebianです。
352351:04/10/17 14:11:53 ID:???
すいません、あげます。
353NAME IS NULL:04/10/17 14:15:48 ID:???
具体的には本来こんな感じで表示されるはずなのですが
Table "t_bbs2"
Column | Type | Modifiers
--------+--------------------------+-----------
seq | integer | not null
wdate | timestamp with time zone |
Primary key: t_bbs2_pkey
Check constraints: "aaa" (wdate IS NOT NULL)


この部分しか表示されません。
seq | integer | not null
wdate | timestamp with time zone |

主キーも存在するテーブルなのですが、Primary key:の行もありません。
354351:04/10/17 14:18:49 ID:???
すいません自己解決しました
いつのまにかpsqlが-t付で起動するようになってました…
355NAME IS NULL:04/10/19 20:33:42 ID:RZ9faG+F
テーブルからcreate文を作成してくれる便利なツールってありますか?
Windowsで動くとありがたいのですが・・・
356NAME IS NULL:04/10/19 20:34:52 ID:???
pgdumpじゃいかんのか
357NAME IS NULL:04/10/19 21:28:10 ID:???
>>355
PgAdmin3で接続してテーブルを見れば
SQLも表示されるよ。
358NAME IS NULL:04/10/19 23:04:28 ID:???
359NAME IS NULL:04/10/20 02:05:54 ID:???
>>358
これまた古いマニュアルを。。。
360NAME IS NULL:04/10/20 09:45:16 ID:???
>>359
うるさいうるさいうるさい!
結果が合ってるんだから文句を言うんじゃないわよ!
361NAME IS NULL:04/10/20 09:47:48 ID:???
>>360
古いマニュアルはトラブルの元だよ。
362355:04/10/20 12:39:26 ID:???
>>357

無事に解決しました。
ありがとうございました。
363NAME IS NULL:04/10/20 23:03:57 ID:???
>>359
文句はgoogleにいってくれ
364NAME IS NULL:04/10/21 09:27:23 ID:???
358 のような人のせいで Google が古いマニュアルを取得するので
http://www.postgresql.jp/document/current/html/app-pgdump.html
http://www.postgresql.jp/document/current/
とフォロー。
365NAME IS NULL:04/10/21 22:37:12 ID:JwaoDAkV
integer型をbytea型に変換したいのですが、どうやったらできますか?
366NAME IS NULL:04/10/22 02:02:17 ID:???
>>365
integer型のフィールド名::bytea
367NAME IS NULL:04/10/22 09:32:30 ID:ePgzErNH
>> 366
> SQL実行中に以下のエラーが発生しました。
> ERROR: cannot cast type integer to bytea
となります。
368NAME IS NULL:04/10/22 10:25:14 ID:???
PostgreSQLのソースを読むときにガイドになる資料ってなんかありますか?
369NAME IS NULL:04/10/22 10:31:21 ID:???
>>365
例えば、123という数値を'123'というbytea型文字列に変換すると言うことでいいのかな?

SELECT decode(123::text,'escape');
370NAME IS NULL:04/10/22 11:07:06 ID:+jBbM62q
tba と tbb という2つのテーブルがあり、それぞれ id, idate, kin という
という項目をもっているとします。

この tba と tbb を仮想的に1つのテーブルとみなし、抽出したいのですが
その抽出結果で tba と tbb を意識する事なく、同じように id, idate, kin
を扱いたいのですがどのように SQL を書けばよいのかわかりません。

select * from tba, tbb where tba.id = tbb.id

としてしまうと tba.kin, tbb.kin がそれぞれできてしまうので、これを
どちらのテーブルのフィールドであっても kin として使いたいのです。
アドバイスよろしくお願いします。
371NAME IS NULL:04/10/22 11:42:56 ID:???
select * from tba natural join tbb;
372NAME IS NULL:04/10/22 11:52:29 ID:???
>>365
[pgsql-jp: 34134] とマルチの疑いあり。
どっちかにしませう。
373NAME IS NULL:04/10/22 12:00:11 ID:???
(SELECT * FROM tba) UNION ALL (SELECT * FROM tbb);
374370:04/10/22 12:14:17 ID:+jBbM62q
>>371
>>373
いけました。ありがとうございました。
375NAME IS NULL:04/10/22 18:12:27 ID:???
>>369
123という数値なら'\\173'にしたいです。
376NAME IS NULL:04/10/22 18:14:04 ID:???
>>372
こっちにします。
377NAME IS NULL:04/10/22 18:56:03 ID:???
>>375
255以下なら、
SELECT decode(chr(integer),'escape');
で出来るな。それ以上も変換する必要があるなら、
結果文字数(1〜4)に合わせてCASEで分岐し
一文字分ずつchrで変換して連結後decodeするしかないのかなぁ。
一発で変換できる関数を知らない。あってもよさそうだけど。
378NAME IS NULL:04/10/23 10:28:25 ID:???
>>376
なら向こうに「2chで聞くから喪前らにはもう聞かない」と書いて来い。
379NAME IS NULL:04/10/23 12:51:18 ID:???
>>372
>>378
マルチは良くないが、さすがに厳しすぎ!
そんなメールがMLに流れる方が迷惑。
380NAME IS NULL:04/10/23 13:43:00 ID:???
>>379
そういうメール出すクズは脳内アボーンで永久に排除できるだろ。
クズを排除できるなら糞メールの一通くらい安いものだ。
381NAME IS NULL:04/10/23 16:44:27 ID:???
正しくは、

2ちゃんねるで同じことを聞いていました。マルチポストしてしまい申し訳ありません。
あちらでは、こういう回答を頂くことができました。
皆様の参考になればと思い、こちらにも報告させていただきます。

integer型のフィールド名::bytea

という方法で、できるとのことです。



みたいなのを投稿することだな。
382NAME IS NULL:04/10/24 10:45:51 ID:???
>>381
そうね。
383NAME IS NULL:04/10/24 23:09:03 ID:???
>[pgsql-jp: 34134]
向こうでは見事にスルーされてるねw
384NAME IS NULL:04/10/25 00:37:17 ID:GsefG0k5
7.4.5を使用してて、主キーを設定しようとして
CREATE TABLE test (a int,b int,primary key(a));
とすると
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "test_pkey"
for table "test"
という文が2行表示されます。
2行表示されるというのが気になったのですが、大丈夫でしょうか?
\d testとすると
aはnot nullで最後の行にIndexes: "test_pkey" primary key, btree(a)と出るので
大丈夫だと思っているのですが、ちょっと気になりましたので
385NAME IS NULL:04/10/25 02:15:55 ID:???
>>384
お前、その低レベル度から推測するに、安江だろ。
386NAME IS NULL:04/10/25 15:30:34 ID:???
>>384
NOTICEを辞書で引け。
387384:04/10/26 02:23:42 ID:1pWRNhqx
低レベルですみません。
NOTICEは主キーが作られるための注意文だと示すためだと思ったのですが違うんですね。
WARNINGに近いものとして捕らえたほうがいいのでしょうか?
7.4.5でも主キーの設定の仕方は
CREATE TABLE test(a int, b int, primary key(a));
でいいんですよね。それなのに上記のような文が出るのはなぜですか?
教えてください!
388NAME IS NULL:04/10/26 02:29:33 ID:???
>>387
index名を指定もせずに主キーを作れ言われたんで、作るには作ってやるけど
index名はこちらサイドで勝手につけさせてもらうよってこと。
389NAME IS NULL:04/10/26 15:37:10 ID:???
同じメッセージが2行表示される、というところがひっかかって
いるのであれば、もしかしてpostmasterを起動したのと同じ
端末でpsqlを実行したために、psqlの表示するメッセージと
postmasterの表示するメッセージの両方が表示されてるって
ことじゃない?
390NAME IS NULL:04/10/26 15:58:09 ID:???
>>389
それって、silent_modeがtrueになっていないと言うことだろうな。
391NAME IS NULL:04/10/26 18:42:39 ID:mUWk+/vE
せっかく専用のパーティション作ってやったのに initdb すると「lost+found なんてもんがあるぜ、空じゃなきゃいやよ」
とか抜かしやがる。まっさらのパーティションにクラスタは作れないってこと?
392NAME IS NULL:04/10/26 22:19:16 ID:???
一階層はディレクトリを作りましょう。
393NAME IS NULL:04/10/27 01:28:02 ID:???
>>387
礼の一つもなしかよ安江ぇーーーーーーー!
394NAME IS NULL:04/10/27 22:55:33 ID:???
>>390
一旦rmdirすりゃいいだろ。
395NAME IS NULL:04/10/28 09:43:46 ID:???
>>393
すみませんが、私ではありません。
396NAME IS NULL:04/10/28 22:15:50 ID:???
397NAME IS NULL:04/10/29 08:27:48 ID:???
先日、OracleとSQLServerを比べて、大量(10億レコード程度)データを扱うにはOracleでないとダメ、
と聞いたのですが、PostgreSQLとSQLServerを比べたらどうでしょう?
どこかにこのような情報は無いでしょうか?
398NAME IS NULL:04/10/29 09:45:02 ID:???
4.5) ロウ、テーブル、データベースの最大サイズは?
ttp://www.postgresql.org/docs/faqs/FAQ_japanese.html#4.5

自分も知りたい。
399NAME IS NULL:04/10/29 14:13:41 ID:???
補足。
ダメ、というのはパフォーマンスのことです。遅くて使えないとのこと。
400NAME IS NULL:04/10/29 19:01:32 ID:???
数千万なら経験あるけど、別になんでもいいと思う。
401NAME IS NULL:04/10/29 19:19:51 ID:???
>>397
ベンチマークは公開してはいけないというライセンスになっているので、公開されることはないと思われ。
パフォーマンスなんか、利用方法で変わるので、自分で検証すべし。
信頼性とか可用性考えるとOracleとかSQLServerになるかもしれんけど。
402NAME IS NULL:04/10/29 19:45:49 ID:???
10億レコードにもなるとバックアップが大変なんだよね。

PostgreSQL はバックアップやリカバリがどうも弱いように思う。
403NAME IS NULL:04/10/29 22:19:19 ID:???
>>401
可用性はともかく、信頼性を気にしてSQL Server選ぶ奴はおらんな。
404NAME IS NULL:04/10/29 23:17:03 ID:???
パフォーマンスは
MySQL > PostgreSQL > Oracle
スケーラビリティは
Oracle > PostgreSQL > MySQL
かねえ。
信頼性が一番重要視すべきファクタなので Oracle ってことになるんだろうけど。
405NAME IS NULL:04/10/29 23:20:58 ID:???
>404
そこにSQLServerを入れるとしたらどこに入るの?
ランク圏外?
406NAME IS NULL:04/10/29 23:57:22 ID:???
Solaris か Linux の鯖しか使ったことないので分らん。
407NAME IS NULL:04/10/30 00:37:07 ID:???
>>404
PostgresよりOracleの方が全然速いよ
408NAME IS NULL:04/10/30 00:39:08 ID:???
>>407

わしもそう思う。
MySQL でも MyISAM には勝てないだろうが、
InnoDB なら Oracle のほうが速そう。


409NAME IS NULL:04/10/30 01:31:50 ID:???
DB2もいれてくらさい。
410NAME IS NULL:04/10/30 01:40:33 ID:???
MySQLは4.1からデフォがInnoDBになったので
それ考慮したほうがいいな
実際ロックを考えたらInnoDBしか選択しないわけで問題ないが
411NAME IS NULL:04/10/30 03:18:33 ID:???
>>407
同じマシンで動かして、どっちもきちんとチューニングすると、あんまり変わらないよ。
得意不得意もあるので、どっちかが速くて、どっちかが遅いというパターンもあるし。
それは、一概には言えない。
412NAME IS NULL:04/10/30 06:35:33 ID:???
>>404
> 信頼性が一番重要視すべきファクタ

そうとは限らんよ。金がかかる。
一台のサーバーで運用するならそんなに変わらんし。
413NAME IS NULL:04/10/30 06:40:14 ID:???
>>411
その「きちんとチューニング」というのが、PostgreSQLではできないから。
SQLの実行計画の改善も、インデックスを使うか使わないかくらいしか指定できないし。
それと、PostgreSQLは16CPUとか32GBのメモリーとかを活かしきれないから、Oracleみたいに「遅ければハードウェア増強」というのが効かない。
414NAME IS NULL:04/10/30 08:28:25 ID:js5xENO/
計算で求めた値を WHERE句の条件に指定しつつ、値としても取得したい場合について質問です。

SELECT *,FUNC1(xxx),FUNC2(yyy) FROM TBL1 WHERE zzz BETWEEN FUNC1(xxx) AND FUNC2(yyy);

という感じです。
FUNC1 や FUNC2 の部分は必ずしも関数ではなく、任意の計算式です。
今やろうとしていることでは、CASE 文による値の変換を行っていますので、とても長いSQL文になります。

こういったとき、SELECT で取り出すカラムにも WHERE句にも同一の計算式(FUNC1 および FUNC2 の部分)がありますが、
これをもっとスッキリさせる書き方ってありますか?
できれば計算自体は文中に一度だけ、という書き方が知りたいです。
415414:04/10/30 08:46:44 ID:???
すみません。早々に自己解決です。

SELECT T1.*,T2.F1,T2.F2
FROM TBL1 T1,(SELECT FUNC1(T1.xxx) AS F1,FUNC2(T1.yyy) AS F2) T2
WHERE T1.zzz BETWEEN T2.F1 AND T2.F2

こんな感じで良さそうでしょうか?
416NAME IS NULL:04/10/30 10:18:44 ID:???
>>413
今って、16CPUとか32GBメモリとかのシステムに限って話しをしてるのか?
それに、生かし切れないと断言しているが、殆どのやつは、そんなシステムで
PostgreSQLを詳しく検証したこと無いだろ。

得意不得意があるって言ってんだから、そこだけ切り出してOracle最高というのは違うと思うぞ。
417NAME IS NULL:04/10/30 11:36:50 ID:???
>>416
> 16CPUとか32GBメモリとかのシステムに限って

どこから「限って」とでてくるのやら。

> 同じマシンで動かして

の部分が、どんなマシンでもと読めてしまうから、性能の高いマシンではPostgtreSQL不利でしょ、と。
それに、検証とかの話ではなくて、使いきれるしくみになってないということだ。

チューニングも、パラメータがないからPostgreSQLはすぐ限界になるし、ボトルネックがどこか調べるツールも不足してる。
explainしかないんじゃない?

Oracleが遅い場合でも、チューニングすればPostgreSQLより速くなる場合も多いし。
可能な性能、という話でいえばOracle有利。
ただし、チューニングに知識や時間が必要だし、最低限必要になるリソースも多いから、Oracle最高というわけでもない。
418NAME IS NULL:04/10/30 12:23:47 ID:???
日本でまともにものを考えれる奴が、PostgreSQLを選択するときの理由は
低コストでシステム構築したい(Oracleは高い)、MySQLはバギーと知っている、
の2つだと思う。

どうしてもパフォーマンスやスケーラビリティが必要ならOracleかDB2選ぶし、
SELECTオンリーでかなり負荷の高いシステムならMySQLをだましだまし使うし。

PostgreSQLにしてもMySQLにしても、まだまだ完成されたシステムじゃないってこと
を知った上で使うべきだ、プロなら。
419NAME IS NULL:04/10/30 13:26:50 ID:???
プロなら「完成されたシステム」がありえないということをまず知るべきだし。

PostgreSQLは、SQLの構文がどうこう、とかビューとかストアドとか、プログラムインターフェイスに関しては出揃ってるから、MySQLに比べれば成熟度は高い気がする。
可用性、スケーラビリティに目が向いてきているし。
420NAME IS NULL:04/10/30 14:04:07 ID:???
最近日本でも注目されてきてやっと正式版がでたMySQL4.1は
特にエスケープも厄介なWindows版が日本語方面でこけたからな
自滅もありえるかもしれん
あちらではSJIS系といっても一般的なSJISとMS932やAppleSJISとか認識してないっぽ

Postgresは間違いなく狙ってるのは速度的なものはともかく
機能的にOracleあたりかと

安いoracleという認識で間違いない方向は向いてると思う
421NAME IS NULL:04/10/30 14:14:44 ID:???
あんま詳しくないから信用しないでネ。
Oracleは何でもDBでやっちゃおうというシステムだから、
チューニングできるポイントも多い。それが良いところでもあり
悪いところでもある。
PostgreSQLはOSに任せられる所はOSに任せちゃおうというシステム
だから、パフォーマンス出そうと思うと、OSのチューニングも大事かもね。

だからといって、PostgreSQLのパラメータが無いわけじゃないよ。
walとかbufferとかcostとかはちゃんと見といた方がいいらしい。
422NAME IS NULL:04/10/30 15:09:49 ID:???

PostgreSQLはOSに任せるなんて嘘だから信用するな。

効率より機能拡張性
423NAME IS NULL:04/10/30 18:30:15 ID:???
>>417
>  チューニングも、パラメータがないからPostgreSQLはすぐ限界になるし、ボトルネックがどこか調べるツールも不足してる。
>  explainしかないんじゃない?
Oracleだとどんなことができるんですか?詳細キボンぬ
424NAME IS NULL:04/10/30 23:31:32 ID:???
>>422
shard buffer のアルゴリズムがいまいちなので
OS に任せた方がましという話じゃなくて?
425NAME IS NULL:04/10/31 00:23:58 ID:???
>>423
explainのほかには、データディクショナリとか、SQLトレースとか。
10gからは自動SQLチューニングがあるという噂。
426NAME IS NULL:04/10/31 01:35:09 ID:IXaXBW+D
自動チューニングは便利だ、感動した
427NAME IS NULL:04/10/31 09:01:28 ID:???
Oracle使える人達がうらやましいよ。金かかりすぎて、うちじゃあ決裁が降りない。
428NAME IS NULL:04/10/31 11:47:20 ID:???
>>424
421の論旨は"PostgreSQLの実装自体がOSに面倒なことをまかせている"。
422の反論は"PostgreSQLは高い機能拡張を目的とした実装で、処理効率はあまり追求されていない。
少なくともOSにまかせようという思想ではない"。

OSに処理を肩代りさせるなら、OSべったりの汚いソースになる。
PostgreSQLのソースは、それとはまったく違う、きれいなソースだ。
MySQLの汚さとは雲泥の差。

ちなみに、8.0でbufferまわりの処理が効率化されているらしい。
429NAME IS NULL:04/10/31 14:20:27 ID:???
中規模ならチューニングしなくても PostgreSQL > Oracle、
でも大規模になるとチューニングできる Oracle > PostgreSQL。
430NAME IS NULL:04/10/31 16:24:31 ID:???
中規模でも、中の下くらいだね。
ま、こういう規模の話になると、どっからが中規模やねん、ってことになるんだけど。
431NAME IS NULL:04/10/31 17:45:43 ID:???
SQLServerは眼中にないのね。。。
432NAME IS NULL:04/10/31 18:00:22 ID:???
Windowsでしか動かんからね。。。
低予算ならFreeBSD + PostgreSQLでやることが多いけど
それなりのはSoralis + Oracleで組みたいな。
433NAME IS NULL:04/10/31 18:01:01 ID:???
s/Soralis/Solaris/
434NAME IS NULL:04/10/31 18:48:20 ID:???
おらくる
 みらくる
  るるるるる〜
435NAME IS NULL:04/10/31 19:57:57 ID:???
自動チューニングは興味あるなーどんなんだろう。

よくpostgresqlはoracleと比べてチューニングするパラメータが無いとかいうけど、
エクステントだのREDOログだののことを言ってるんであれば、それは
アーキテクチャが違うんだから無くて当然だけどね。

bufferに関しては、そんないっぱいとらなくてもどうせOSがキャッシュ
してるんだからいーんじゃなーいみたいなことなのかな。
ttp://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html#shbuf
436NAME IS NULL:04/10/31 21:16:37 ID:???
>>435
ここでは、個別のチューニングパラメータのことを言ってるわけではなくて、パフォーマンスを改善するための調整項目一般のことをいってるわけだ。
アーキテクチャが違うなら違うなりの調整パラメータを用意すればいいだろう。
437NAME IS NULL:04/10/31 23:00:29 ID:xw6clPjK
ソースを触ればいいじゃない。
438NAME IS NULL:04/10/31 23:25:22 ID:???
>>436
よくわからん。何が足りないわけ?
ア=キテクチャが違えばパラメータが少なくてもおかしくなかろう。
ポスグレはこういうア=キテクチャだからこういうパラメータを用意ればいい
なら話はわかるが。
RDBMSを使うことの目的がパラメータをいじることじゃないだろ?
439NAME IS NULL:04/10/31 23:29:43 ID:???
Oracleと同じような設定方法が見つからないと、
他のDBは融通利かないなってことでかたづけてるんじゃないの?
Oracle厨とか言われちゃうよ。

そんな心意気じゃ、DB2だってSQLServerだって使えないって。

Oracle使いの世の中は、Oracleに詳しければそれでOKなんだろうが、
他のDBMS使いから見ると、Oracleは優秀なプロダクトだという主張ではなくて、
俺はOracleしか使いこなせないと自慢してるようにしか思えないぞ。
440NAME IS NULL:04/10/31 23:30:14 ID:???
と言うよりも、むしろOracleの方がDBMSとして特殊なんじゃないのか…?
441NAME IS NULL:04/10/31 23:32:18 ID:???
オラクルゴールドの俺様をなめんなっ!
442NAME IS NULL:04/10/31 23:46:19 ID:???
新しいドリンク剤か?
443NAME IS NULL:04/10/31 23:51:15 ID:???
>>438-439
Oracleと同じパラメータ用意しろなんていってないわけだが。
何が足りないって、非効率な実行計画立てるときに、効率的な実行計画にできるようなパラメータが足りない。
効率的にハードウェア資源を使えるようにできるパラメータが足りない。
444NAME IS NULL:04/11/01 00:01:05 ID:???
要するに、俺のチューニングは実行計画がすべてだとおっしゃってる訳ね。
俺はシステムエンジニアではなくて、プログラマだよと。
445NAME IS NULL:04/11/01 00:01:57 ID:???
実行計画を設定して、ハードウエアを効率的になんだって?
446NAME IS NULL:04/11/01 00:11:26 ID:???
アーキテクチャが違うDBを比べて、中の人を操作するやり方が違うからクソだなんて、どうかしてるぜ!
447NAME IS NULL:04/11/01 00:14:06 ID:???
その話興味あります。PostgreSQLだと実行計画が良くない場合は、
統計情報の精度を高くするんですが、Oracleだとどんなことを
するんでしょう?
448NAME IS NULL:04/11/01 00:16:42 ID:???
別に、Oracleの方がうまく設定できると思うのなら、Oracle使えばいいんじゃないの?
選ぶ権利は利用者にあるわけだし
俺たちは、PostgreSQLで満足行く設定をできているから、PostgreSQLを使っているのであって

まーそりゃ、何千万円も払ってるんだから、Oracleの方が優秀じゃないと困るだろうけどさ
449NAME IS NULL:04/11/01 00:21:39 ID:???
予算を消化した後にそんなこと言われても困ります・・・
450NAME IS NULL:04/11/01 01:10:07 ID:???
まあOracleとPostgreSQLを比較して物を言える443がある意味ちょっと
羨ましいよ。俺もちょっとはOracle使ったことあるけど、管理は別会社
だったし、本棚にビッシリ詰まってたOracleのマニュアル読んでもどうしても
頭にはいらんかった。

パラメータが足りないというよりは、パラメータをチューニングする
為のツールは足りないんじゃないかな。ディクショナリ的なものなら
pg_stat*とか見るんだろうけど。あと、
http://pqa.projects.postgresql.org/
こんなもんもあるみたい。
451NAME IS NULL:04/11/01 01:50:21 ID:???
>>446
やり方が違うからクソだとは言ってないが。
もっと効率的に動かせる選択肢を用意して欲しいと書いてるだけだ。
452NAME IS NULL:04/11/01 02:05:30 ID:???
>>451
クレクレ君かよ。ボラクルに大枚はたいてろw
453NAME IS NULL:04/11/01 02:08:59 ID:???
要望書いたらクレクレ君か。
454NAME IS NULL:04/11/01 02:29:27 ID:???
>もっと効率的に動かせる選択肢を用意して欲しいと書いてるだけだ。

だからお前は数千万円払って用意してもらったわけだろ?


比べる次元が間違ってるんだってば。
高性能さを求めるなら、スーパーコンピュータ使えよって話になっちゃうし。

結局のところ、費用対効果でしょう。
いくら楽して設定できるからと言って、2000万円払えるかと言われれば、
面倒でもソース書き換えてコンパイルし直すわって人が多くても不思議ではない。
PostgreSQLに詳しくなって安価に仕上げるか、
高い金でツール満載のOracle買うか。
それは使う側の価値観なわけで。
455NAME IS NULL:04/11/01 02:32:51 ID:???
あ、ちなみに2000万ってのは、うちのプロジェクトがOracle導入の時に払った金だけど。
2CPUライセンスで1000万。ハードで300万。その他サポート諸々数百万…
まぁ、自社のシステムじゃないから、いくら掛かっても知らないけどさ。
456NAME IS NULL:04/11/01 02:55:56 ID:???
ソース書き換えてコンパイルできる人>お金貰う側
便利なツールが出るのを待つしかない人>お金払う側

ってことでしょ。
457NAME IS NULL:04/11/01 02:57:35 ID:???
って言うことは、お金があればOracleの方がイイってこと?
458457:04/11/01 02:58:35 ID:???
>>457>>456にってわけじゃないよ。
459NAME IS NULL:04/11/01 03:01:09 ID:???
>>457
そりゃそうだ。
ただし逆に言うと、途中でお金が無くなると、Oracleは動かなくなるけど。
460NAME IS NULL:04/11/01 03:16:01 ID:???
2000万の金が自分の会社をスルーしてOracleに流れるよりは、自分の会社に
いくらかでも留まってくれたほうがうれしくね?
あ、>>457は客の方か?ならじゃぶじゃぶ使ってくれよ。
461NAME IS NULL:04/11/01 03:27:19 ID:???
>>460
どちらにせよ、2000万でOracle導入するのなら、2500万円くらいで請け負うだろうから、
どっちにしろSI会社は儲かるよ。
Oracle導入しなければ、予算が500万円になるだけの話。
462NAME IS NULL:04/11/01 03:33:42 ID:???
>>461
お前さん、営業のセンスゼロだな。
463NAME IS NULL:04/11/01 20:47:15 ID:???
金ばっかり掛けて顧客満足度もゼロに近くて、
次の仕事回ってこない方がアホだと思うな。
低予算でもシステムはできると言うことを客に教えて
継続的にお金を取れる奴が神だと思う。
464NAME IS NULL:04/11/01 21:56:42 ID:???
顧客満足は高いほうがいい。
金をかけるのは悪いことではない。

顧客満足のうちには、金を適度につかってくれるってのも
ありなんだよ。分かんないだろうけど。
465NAME IS NULL:04/11/01 22:20:06 ID:???
んなことではなくて、費用対効果を考えると、2000万も使うんだったら、
作る方も楽できないよってことじゃないの?
466NAME IS NULL:04/11/01 22:20:54 ID:???
PostgreSQLに対してもうちょっといざというときの選択肢用意して欲しいと言っただけなのに、こういう話の流れになるオマエラを、ある意味尊敬する。
467NAME IS NULL:04/11/02 07:49:45 ID:???
>>466
心配するな、PostgreSQLの狂信者はこんなものだが、開発者はちゃんと耳を傾けることを知っているよ。
468NAME IS NULL:04/11/02 09:21:44 ID:???
>467
それ微妙。
469NAME IS NULL:04/11/02 12:38:54 ID:???
SQLite まんせー
470NAME IS NULL:04/11/02 13:32:46 ID:???
Oracle, PostgreSQL, MySQL, SQLite 使い分けまんせー
471NAME IS NULL:04/11/02 13:55:00 ID:???
472NAME IS NULL:04/11/02 14:13:14 ID:???
>>467
どっちかというと、Oracle信者の方が、何に対しても聞く耳を持ってないような気がするんだが…
何か指摘しても、貧乏人はフリー使ってろでかたづけるし。
473NAME IS NULL:04/11/02 14:26:22 ID:???
>>472
一般論は別として、上の流れは「金があるならOracle使ってろ」で聞く耳持たない感じだね。
474NAME IS NULL:04/11/03 02:09:39 ID:???
仕事でSIやってんならPostgreSQLよりOracleのエキスパートの方がアサインしやすくね?
協力会社や派遣に「PostgreSQLの達人きぼんぬ」とか言ってもまず居ないし、むしろヤヴァイ
プロジェクトとみなされて敬遠されるでぇ。

今後規模が拡大されてゆくシステムならDB側にスケーラビリティは必須だと思う。逆に
拡張もなければ想定を超えるようなこともないだろうというシステムならコストベースの
話をしても良いと思う。
475NAME IS NULL:04/11/03 02:14:25 ID:???
別に基幹系でpg使えよって話じゃないんだし、怪しいも何もないだろ。
Web系なんて、割に大規模でもMySQLなんてのもあるし。
476NAME IS NULL:04/11/03 03:20:06 ID:???
Web系の人がいう「大規模」なんて、たかがしれてる。
477NAME IS NULL:04/11/03 03:20:53 ID:???
>>474
DBの達人なんて、1人か2人いれば足りると思われ。
478NAME IS NULL:04/11/03 03:45:40 ID:???
どっかの国のクレジットカード会社の顧客DBを
MySQLでやってるって話なかったっけ?
479NAME IS NULL:04/11/03 04:11:37 ID:???
>>477
それもそうか、大量に必要なのはプログラマだしな。でも今までに見た
Oracle の達人と同レベルの PostgreSQL の達人って見たことないや。
技術屋の裾野が狭いDBにシステムの将来を賭けたくない気持ちも分かる。
480NAME IS NULL:04/11/03 06:23:41 ID:???
どっかの航空会社の予約システムがPostgreSQLだと聞いたことがある
481NAME IS NULL:04/11/03 12:30:20 ID:???
ここはあやふやな情報を貼るスレですか?
482NAME IS NULL:04/11/03 12:32:26 ID:???
オラ厨の釣堀ですがなにか?
483NAME IS NULL:04/11/03 13:50:40 ID:???
あほーびーびーは、最初はアクセスとエクセルの組み合わせで顧客DB作ってたいう話も
484NAME IS NULL:04/11/03 19:27:04 ID:???
>>483
真偽はしらんが、逆に超小規模なのにDB使いたがる奴もいるよなぁ
485NAME IS NULL:04/11/03 19:37:42 ID:???
単純に1つのデータを追記するだけならファイルで構わんけど、検索・集計したり変更があったり、関連のあるデータがあるときにはDB使った方がラクだしなぁ。
DBが使える環境でDB使わないのってアホらしい。
486NAME IS NULL:04/11/03 22:27:01 ID:???
現在稼働しているPostgreSQLのシステムで最大規模のものっていったら
これだろ。

ttp://itpro.nikkeibp.co.jp/members/ITPro/oss/20040922/150269/
> 4万以上の.infoドメインを管理するレジストリで,また280万以上の.orgドメ
> イン管理のバックエンド・サービスも担当するAfiliasは,ドメイン名を管理
> するデータベースにPostgreSQLを使用している。

確か、データベースの容量は2TBだとか言ってた。
487NAME IS NULL:04/11/04 10:50:46 ID:loHog9Xg
当方、携帯向けコンテンツを作成してるのですが絵文字の処理で苦労してます。

環境は
FreeBSD 4.7-RELEASE
Apache 1.3.29 (suEXEC enabled)
PostgreSQL 7.2.4
PHP4 4.2.4

List of databases
Name | Owner | Encoding
-------+----------+----------
testdb | postgres | EUC_JP

レンタルサーバーなので設定はいじれません。
どうも他のサーバーで出来る事が出来なかったりと引っ掛かる事も多いのですが・・。
それは置いておいて、文字列に絵文字が含まれていればpackするなどしてinsertするしかないのでしょうか?
具体的に試してないのですが、読み込んで正常に変換して処理出来るかなどに不安が残ります。
他に簡単な方法、またはヒントに繋がるアイデアはないものでしょうか?
初心者の質問で誠にお恥ずかしいのですが、宜しければご指南頂けないでしょうか?
宜しくお願い致します。
488チョウ:04/11/04 12:58:40 ID:???
VBから、アクセスのmdbファイル中のクエリ名とデータ内容を検索できますか?
489チョウ:04/11/04 13:00:05 ID:???
VBから、アクセスのmdbファイル中のクエリ名とデータ内容を検索できますか?
490NAME IS NULL:04/11/04 13:10:04 ID:???
できるけど、スレ違い。
491NAME IS NULL:04/11/04 16:45:01 ID:???
492NAME IS NULL:04/11/04 17:17:08 ID:???
>>487

>それは置いておいて、文字列に絵文字が含まれていればpackするなどしてinsertするしかないのでしょうか?

それしかないと思う。
493NAME IS NULL:04/11/04 18:18:17 ID:???
>>491
>>492
有難う御座います。
結局やはり進数の値に変換する方法にしているのですが・・
ソースをEUCにしてoutputをSJISにしてるのですが、変換した値から更に値を送って変換して
データベースに書き込むと絵文字種によって別のコードに解釈される事が・・。
なのでSJIS(不本意ですが)で全て書き直しデータベースの読み込みはSJIS、書き込みはEUCにするという方法にしました。
しかし、どうも最近の携帯向けサイトを見てると他の新しい試みがありそうな感があるのですが・・。
EUCとなると限界なのでしょうか・・。
494NAME IS NULL:04/11/04 19:35:58 ID:???
>>487
URLエンコすればいいよ
495NAME IS NULL:04/11/04 19:38:01 ID:???
>>493
それはphpに文字コード変換させてるからダメなんじゃない?
496NAME IS NULL:04/11/04 19:50:27 ID:???
ご返答頂き有難う御座います。

>>494
すいません、URLをエンコードとは・・?

>>495
やはりphpとの互換なのでしょうか・・。
同じような環境と仮定して他の方がどのように為さっているのかが大変気になるところです。
497NAME IS NULL:04/11/04 20:09:46 ID:???
PostgreSQLをCygwinと一緒にインストールしました。
7.4.5です。
で、こいつを一度アンインストールしてから
もう一度入れなおそうとしたのですが、
なんと2回目からは ctgwin\user\local\pgsql
のpgsqlフォルダが作られなくなってしまいました。
どうしたらもう一度このデータベースを使えるように
なるでしょうか?
498NAME IS NULL:04/11/05 00:37:16 ID:???
499NAME IS NULL:04/11/05 00:43:35 ID:???
>>497
「それにもう一度このデータベースを使えるように」ってのが、
PostgreSQLをアンインストールしても、データベースクラスタは残しておいたので、
それを使いたい、って意味なのか、
それとも単に「またPostgreSQLを使いたい(=DBMSを使いたい)」と言いたいのか、
わからん。

あと、Cygwinのpostgresql-7.4.5-1 パッケージはcygwin\usr\local\pgsql なんて
ディレクトリはかってには作らないし…。
500NAME IS NULL:04/11/05 01:15:44 ID:???
まあ、CygwinでPostgreSQLを使うなら、8のβでいい気がする。
501NAME IS NULL:04/11/05 03:04:26 ID:???
>>499
最初に入れたときは確かに作られましたよ。
http://allabout.co.jp/career/database/closeup/CU20040813A/
この通りにやってできたんです。
でももう一度やったらできませんでした。
もう一度DBMSを使えるようにしたいんです。
昔のデータはバックアップしてあるので。
502NAME IS NULL:04/11/05 05:03:03 ID:???
正規化ってテーブル作成段階でやるものなんですか?
作った後に変更することってできないんですか?
503NAME IS NULL:04/11/05 08:08:05 ID:???
テーブル構造決定後に変更すると、プログラマな方々がニフラムされる可能性があります
504NAME IS NULL:04/11/05 10:48:57 ID:???
>>502
スレ違い。
505NAME IS NULL:04/11/05 14:18:48 ID:???
>>500
8のβなんてまだまだダメダメ
506NAME IS NULL:04/11/05 14:37:33 ID:???
>>505
cygwinで動かすより、ある意味まとも。
507NAME IS NULL:04/11/05 15:44:26 ID:???
linux版はまともなんだけどね。8のβ。
もっとも大して使いこなせない人には関係のない問題か。
508NAME IS NULL:04/11/05 16:11:41 ID:X6Q7K1U0
PostgreSQL + OpenSSL をしてみたのですが
psql hoge -h 127.0.0.1
としたら
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)

こんな風に出るので、SSLで繋がってるなと判るのですが、

PHPとかJAVAから、DBつなぐときには、普通に接続して、SSLになってるんでしょうか?
509NAME IS NULL:04/11/05 16:34:05 ID:???
>>508
Javaは知らないけど、PHPの方はPostgreSQLにTCP/IP経由でSSL接続できるよ
510NAME IS NULL:04/11/05 17:04:47 ID:X6Q7K1U0
>>509
どもです
Pg_Connect するとき
host名を 127.0.0.1 でつないでやってみます〜
511NAME IS NULL:04/11/05 19:15:51 ID:st/1ZvTx
別スレに誤爆した後で申し訳ありません
質問です

ID (INT) |MAKE_DATE (TIMESTAMP)
----------+---------------------
1 |1999-12-12 11:11:11
2 |2000-01-01 01:01:01

上記のようなTIMESTAMP型を含むテーブルから
時間の各要素を取り出す方法ってあるですか?

SELECT EXTRACT('HOUR',makedate) FROM <TABLE名> WHRER ID = 1;
SELECT EXTRACT('HOUR', TIMESTAMP makedate) FROM <TABLE名> WHRER ID = 1;
SELECT EXTRACT('HOUR', TIMESTAMP (SELECT makedate FROM <TABLE名> WHRER ID = 1));

こんな感じでいろいろ試してみました
512NAME IS NULL:04/11/05 20:46:56 ID:???
>>511
別スレで答えておいた。
誤爆ならそう書いとけよ。
513NAME IS NULL:04/11/05 22:52:44 ID:???
>>501
AllAboutJapanの新しい方の記事(2003/08のじゃなくて、2004/08/16)の記事の手順で
うまく行かなかった、ってこと?
だったら、Cygwinの /usr/share/doc/Cygwin/postgresql-7.4.5.READMEに書いてある
手順でやってみたら?
514NAME IS NULL:04/11/06 00:27:15 ID:dErfnuxh
現在、PHPとPostgreSQLを使い、個人データの登録を行っています。
PHP:4.3.5
PostgreSQL:7.3.4

個人データ
ID|名前
 1 |a
 2 |b

個人情報データ
ID|情報
 1 |aaaaa
 1 |bbbbb
 1 |ccccc
 2 |aaaaa

今つまづいているのは削除のときです。
一人の方の情報データを削除後、すぐにその方のデータを
画面上に表示したときに、削除したはずのデータが
表示されてしまいます。表示後、1・2秒待ったあと、再更新すると
データは消えています。
こんなことは初めてなのですが、何が原因でしょうか。
よろしく御願いします。
515NAME IS NULL:04/11/06 00:29:38 ID:???
大阪(西梅田)、新宿(JR駅前)のそれぞれ一等地に
拠点を構え、業績急上昇中!未経験者大募集中!の
ソフトウェア開発会社
グリーンシステムを応援するHPです。
http://www.geocities.jp/grs_hp/

応援するスレはこちら!
http://school4.2ch.net/test/read.cgi/job/1077432387/

最高の会社にするため、みんな頑張ってます!
516NAME IS NULL:04/11/06 00:34:23 ID:???
>>514
わかりやすく、丁寧にひとことでいいましょう。
「オマエのバグだろ、ゴルァ」
517NAME IS NULL:04/11/06 00:52:57 ID:???
ブラウザのキャッシュだろ。
518たっちゃん:04/11/06 14:27:05 ID:bF7eqDLm
PostgreSQL 8.0をWin2000にインストールして、使ってみました。
インストールしたマシンでは、うまく動いたのですが、別のマシンからログインできません。
postgresql.confのlisten_addresses = '*'に変更してあります。
hda.confでhost all ............ trust でIPも登録して有ります。
エラー:210 FATAL:missing or erroneous pg_hda.conf fileがでます。
接続方法をご存知の方教えてください
519NAME IS NULL:04/11/06 14:42:42 ID:???
どっかミスってんだろ。
pg_hda.confなんて書くやつは きちんと設定してあると言っても、信用できん
520NAME IS NULL:04/11/06 15:06:29 ID:???
Cygwin上からコマンドで
select * from で24件以上のデータを抽出しようとすると

9 | <91><E5><95><AA><91><E5><8A>w
<91><E5><8E><9A><8A><8E><96><EC><8C><B4>700

↑こんな文字が大量に出てきて結果が表示されないんですが、
これはどうしようもないんでしょうか?
なんかエディタの画面みたいになってるらしくqキーを押さないと
復帰できません。
Cygwin+PostgreSQL7.4.5です。
521NAME IS NULL:04/11/06 15:58:41 ID:???
>>520
24件という数字になんの意味があるのかわからないが、EUC_JPっぽい
ので、set client_encoding to sjis;してやればいいんでない?
522お願いします!:04/11/07 13:22:47 ID:quVGw0mp
phpPgAdminでログインできなくて困っています。
色々調べてpostgresユーザではログインできないということがわかっている
ので、別のユーザを作ってそのユーザでログインしようと試みましたが、
結局ログインできません。一体なんのユーザでログインできるんでしょうか・・・
523NAME IS NULL:04/11/07 13:39:06 ID:???
>>522
>postgresユーザではログインできない
事の是非は別にして、可能。
>別のユーザを作ってそのユーザでログイン
手順をやったとおりに(as is)書いてくれんかね?
524お願いします!:04/11/07 13:47:18 ID:quVGw0mp
523様、よろしくお願いいたします。。。

やったこととしては、
1.phpPgAdminを自宅鯖(Fedora Core2)へインストール
2.Linux側でphpuserというユーザを作る
3.phpPgAdminのindex.phpにアクセス
4.ユーザ、パスワードを入力してログインを試みる
5.「ログインできません」と言われる

「config.inc.php」変更箇所
$conf['servers'][0]['host'] = '192.168.0.40';
$conf['default_lang'] = 'japanese';

やったことはコレくらいなんですが・・・何か足りませんか?
ちなみにPostgreSQL、PHPはFedora Core標準インストールです。
ただ、インストールするときに連携できるための何かをインストール
した記憶があるんですが・・・・なんだか忘れてちまいまちた
525NAME IS NULL:04/11/07 14:10:08 ID:???
>>524
そこでのアカウント・パスワードは、Linux側ではなく、
PostgreSQLが管理するものが対象なので、
PostgreSQL側のユーザ追加とパスワード設定をしてみてください。
526お願いします!:04/11/07 20:51:47 ID:quVGw0mp
なるほど、Linux側のユーザと同じ名前でPostgreSQL側のユーザを
作らなければならなかったのですね。
とりあえずdbuserというユーザをLinux側に作っていたので、同じく
dbuserというユーザをPostgreSQL側でもcreateuserしました。
ただパスワードはLinux側で設定したもので良いのですよね?
それでもログインできないんです・・・。
.bashrcを変更しなければいけないという記事も見つけたのですが、
そもそもそんなファイルは所有していません。
phpPgAdminは簡単に使える・・・と聞いていたんですが、そうでも
ないですね・・・(涙)
527NAME IS NULL:04/11/07 21:28:25 ID:???
>>526
まず、PostgreSQLのアカウント管理とOSのアカウントとは全く関係がありません。
別々に管理されますし、片方を変更・追加・修正しても他方に影響しません。
ただ実際にはpsqlを-U無しで実行した場合にはデフォルトのユーザとしてOSのアカウント名が
渡されたりする等、両方で同じアカウント名にしておいた方が便利な場合が多いです。

で、話を元に戻すと、PostgreSQLのアカウントの方にもパスワードが必要になります。
phpPgAdminはこのアカウント名とパスワードを使って認証を行います。
これが設定されていない状態になっているんじゃないでしょうか?
パスワードの設定は、create user NAME passwd 'PASSWORD' か、
alter user NAME with password 'PASSWORD' を使います。
(大文字部が アカウント名 or パスワード。自信無いんで要マニュアル参照)
528お願いします!:04/11/07 23:22:25 ID:quVGw0mp
527さま
お返事ありがとうございます。ただの素人の私にアドバイス下さって
とてもありがたいです。周りにLinuxなどに詳しい人が全くいないの
で、とても心強いです。ご指摘の通り、お恥ずかしいながら私は
createuser dbuser
としてユーザを作っていました。正しくは
createuser -U dbuser -W
だったのかと思います。-Wをつけることで、この後にパスワードを
聞かれました。
ただ、ちょっと変なのです。

--------------------------------------------------------------------------------------------------------
-bash-2.05b$ createuser -U test50 -W
Enter name of user to add:
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) y
Password:
createuser: could not connect to database template1: FATAL: IDENT authentication failed for user "test50"
--------------------------------------------------------------------------------------------------------
この2行目はなんでしょう・・・
template1ってなんだろ・・・
さらに結局ユーザを作ることが出来ないんです・・・

また、su - postgresでポスグレのマスターの状態から
su - dbuser
でdbuserという名前のユーザになることが出来ます。
一度、exitで抜けてpostgresに戻り、
dropuser dbuerをすると
--------------------------------------------------------------------------------------------------------
dropuser: could not connect to database template1: FATAL: IDENT authentication failed for user "dbuser"
-bash-2.05b$ dropuser dbuser
dropuser: removal of user "dbuser" failed: ERROR: user "dbuser" does not exist
--------------------------------------------------------------------------------------------------------
と、存在は確実なのに上記のように言われてしまいます。

一度、dbuserというのを削除して作り直し、Linux側、Postgres側で
dbuserというユーザと同じパスワードを設定すれば本来はログインで
きるということですよね?
postgres側のユーザというのは、postgresユーザでcreateuserした
ユーザの事と認識していますが、私の認識は間違いでしょうか。
529NAME IS NULL:04/11/08 00:47:14 ID:???
>>518
CIDR-ADDRESSを正確に入力しましょう
今までIP+ネットマスクで設定する仕様だった時は結構
いい加減な記述でも通ってましたが、8は違います。
530NAME IS NULL:04/11/08 02:26:20 ID:???
>>528
PostgreSQLでは認証方法をいくつか選ぶことができますが、
現在はIDENTが選択されています。これは$PGDATA/pg_hba.conf
ファイルで変更することができます。
IDENTが選択されているために、結果としてLinux側にも同じ
ユーザが登録されている必要があるのではないでしょうか。
531NAME IS NULL:04/11/08 03:19:01 ID:l7COVC+q
PowerGres Plus のソースはどこで公開してるの?
532NAME IS NULL:04/11/08 04:23:19 ID:???
ソース公開してんの?
533名無しさん:04/11/08 04:29:12 ID:YizH8jRn
A | 6
B | 2
B | 8
A | 9
C | 7
A | 2
C | 1
B | 0
C | 4

このようなデータからA, B, Cそれぞれの
最小値を取得したいとおもいます

現在はAのなかの最小値、Bのなかの最小値、Cのなかの最小値
と別クエリで取得しております。
A | 2
B | 0
C | 1

一発のSQLで取得できるでしょうか?
サブクエリ使えば出来るのかも、とおもうのですが
どうなのでしょうか教えてください。
534NAME IS NULL:04/11/08 04:52:54 ID:???
う〜ん、select abc, min(num) from t group by abcでは解決しない難しい問題なんだろうなぁ。
535NAME IS NULL:04/11/08 05:22:18 ID:???
>>533
アホか。
536NAME IS NULL:04/11/08 05:40:13 ID:???
>>534
サンクス
order byしか思い浮かばなかったからどうすればいいんだろうと考えた
min,maxとかの集約関数忘れてました
537NAME IS NULL:04/11/09 02:22:17 ID:???
>>518
どこで教えられたか知らないが、trust使うな低脳。

>>528
unix domainのident認証はパスワードは使わない。ユーザー名、パスワードが渡されても無視する。
そして、その時のuser idがそのまま使用される(pg_hba.confの設定がsameuserの場合)。
ユーザ指定してパスワードで認証したかったら、pg_hba.conf設定して、-h localhostを付けたまえ。
pg_hba.confでは絶対にtrustは使わないこと。
538NAME IS NULL:04/11/09 03:00:52 ID:???
trustにすると、生パスワードをプログラムに記述しなくていいので、パスワードが漏れないっていう説はどう?
539NAME IS NULL:04/11/09 03:43:00 ID:???
>>538
localに関して言えば俺もtrust。
テスト環境なのか、実運用にしてもどういったものなのか。
trustだから×って決め付けるもんじゃないと思うけどね。
540NAME IS NULL:04/11/09 04:01:53 ID:???
>>537
ところで、trust使ってはいけない理由は?
541NAME IS NULL:04/11/10 00:48:51 ID:???
env PG_USER=hoge psql
って、やってみて驚け。
542NAME IS NULL:04/11/10 01:21:14 ID:???
なんか驚くことあるかなぁ
543NAME IS NULL:04/11/10 13:28:03 ID:???
7.4.1 なのですが、
bigserial 型を強制的にインクリメントする方法、
または insert 時に not null 制約を一時的に無効(MSので言うnocheckみたいな?)にする方法は無いでしょうか?
544NAME IS NULL:04/11/10 13:38:27 ID:???
後者は無い。
強制的にインクリメントってのは select nextval() じゃダメなんだっけ?
545NAME IS NULL:04/11/10 13:57:25 ID:???
>>544
アリガd(´ー` )
手元の本はSQL2準拠で・・・。
おかげで助かりますた。
546NAME IS NULL:04/11/11 01:36:26 ID:tNmzRnix
PostgreSQL って BLOB/CLOB って扱えるんでしょうか。なんかTEXTが
CLOBっぽいようですがBLOB/CLOBってキーワードでSQL上で指定できますか?
547NAME IS NULL:04/11/11 01:48:47 ID:???
548NAME IS NULL:04/11/11 11:31:13 ID:NczU4nku
あるテーブルから、ユーザIDと年齢が一緒のレコードが複数ある場合に、
そのユーザIDを重複する事なく抽出したのですが・・・
例)
user1、32
user1、32
user2、28
user3、31
user3、31
user3、31

の場合、
user1、32
user3、31
の2レコードを抽出したいです。
よろしくお願いします。
549NAME IS NULL:04/11/11 11:46:09 ID:???
仕事して下さい
550NAME IS NULL:04/11/11 15:35:44 ID:???
>>548
select * from t order by age desc offset 1 limit 2
551NAME IS NULL:04/11/11 15:40:56 ID:???
それは本当にIDなのかと小一時間(ry
552NAME IS NULL:04/11/11 15:54:12 ID:???
553NAME IS NULL:04/11/12 00:50:59 ID:???
>>531
PostgreSQLはGPLではないよ。
554NAME IS NULL:04/11/12 06:20:20 ID:EMtwVk+z
DBのことじゃないんだけど
PostgreSQL好きってことで教えてください。
WebサーバーとDBサーバーを別マシンにするとき
100BASEのLANで性能でますか?1000BASEじゃなきゃだめ?
555NAME IS NULL:04/11/12 06:24:57 ID:???
マシンの性能とやりとりするデータ量による。
どうせ外部とのやりとりするデータ量の方が内部でやりとりするデータ量をうわまわるので、外部とやりとりするネットワークの太さと同程度であれば、それ以上は無駄。
外部と1000BASEでつながってるんなら、内部も1000BASEにしろ。
556554:04/11/12 07:04:52 ID:EMtwVk+z
>>555 Thanks
寝ぼけてて環境間違えました。ごめん。
Webサーバーは無かったことにしてください。

バッチ処理PGMと、そのバッチ処理に使うデータベースがあります。
それをひとつのマシン上で動かしてTOPコマンドで見ると
CPU100%で回りっぱなしで5分程かかってます。
そこでマシンを別にしたらもっと効率が上がるかなと思ったのです。
自宅LAN環境(100BASE)でやると別マシンにしたほうが明らかに遅いんで
ネットワークがボトルネックになってると思いました。
1000BASEの環境がないので教えて君してます。よろしく。
557NAME IS NULL:04/11/12 07:05:54 ID:+NoAzB19
>>554
そもそも 1Gb の帯域を活用してるといえるアーキテクチャのサーバなんてあまり無いんだが。
業務システムでも RDBMS とアプリケーションサーバ間は大抵 100BASE-T (もちろん外部と
繋がってる線とは別で)。構成にもよるが DB サーバならディスク I/O がネックになるので
たいていネットワークは後回し。
558554:04/11/12 07:23:38 ID:EMtwVk+z
>>557さんもその前の>>555さんも ありがとう&おはようございます。
>そもそも 1Gb の帯域を活用してるといえるアーキテクチャのサーバなんてあまり無いんだが。
なるほど。
>たいていネットワークは後回し
うーーん、テスト環境をもう一度クリーンにしてチャレンジしてみます。
ありがとう。
559NAME IS NULL:04/11/12 08:06:12 ID:???
そこで15000rpmのCheetahでRAID0+1ですよ。
560NAME IS NULL:04/11/12 08:35:59 ID:???
>>556
読み落としたが、共有メモリなのかローカルソケット使ってるか知らないがそれをハブ経由のと
比べるのはちょっと酷だろ。100BASE-T で 60〜80Mbps、1000BASE-T で 200Mbps 程度が
相場だからその状況なら改善の余地はあるかもしれない。とりあえずバッチ処理中の帯域
占有量を調べれ。それが 60Mbps 以上なら改善の余地あり。
561NAME IS NULL:04/11/13 02:00:02 ID:/IwXI261
>>554,557,558
おいおいネットワークのスループットとレイテンシをディスク、メモリ
、CPU能力と比べることも出来ないのか?知ったかはよせ。
Pen4のメモリの帯域は6.4GB/Sだぞ?
1000BASE-Tは、理論値が125MB/Sで最悪20MB/Sってとこだろ。桁が違う。

帯域だけじゃなくレイテンシの影響が大きい。
バッチ処理って事は、短時間でDBとの間で多数のやり取りがあるんだから、
ネットワークレイテンシの影響も大きいぞ。
562NAME IS NULL:04/11/13 03:22:04 ID:???
説得力のある知ったかの登場です。
563NAME IS NULL:04/11/13 04:31:46 ID:???
>>561
送信データの内容がすべてメモリ上にリニアにキャッシュされてるって前提ならまだしも、
そんな話をしてもこのケースは意味無いだろ。それにバス直結ならまだしも PCI が噛んだ
環境でそんな理論値でないよ。
564NAME IS NULL:04/11/13 05:02:04 ID:???
>>561
実際やってみれば謝りたくなると思うよ。
565NAME IS NULL:04/11/13 07:56:30 ID:/IwXI261
>>
GbEのネットワークカードは、64BitPCI*66MHzで試すんだよ?
これであればGbEの帯域は全然問題にならない。
それにチップセットにGbEが内蔵されている場合は、最近はPCI経由しないだろ?

>>564
やったことあるよ。Pen4XEON(2.66GHz,MEM:2GB,HDD:IDE7200RPM+Chache2MB)
1台の構成と2台の構成で、APサーバからDBサーバの対して、
数百から数千件の結果を返すクエリ(1件あたり数百バイト、非主キー検索)を投げて、
その間のネットワーク速度をNICの設定を変えて1000Baseから100Baseに変えて測定した。
全然レスポンスが違った。(正確に数値は覚えていないが)

そっちこそ試したことあんの?
566NAME IS NULL:04/11/13 15:39:45 ID:???
大量データ転送時にパフォーマンスは上がるだろうが、
レスポンスは変わらないと思うが。
567NAME IS NULL:04/11/13 15:59:34 ID:???
データ転送量が少いけど重いクエリ実行が多い場合は
web サーバー用マシンと DB サーバー用マシンを
分けて負荷分散。

転送量が多い場合は両サーバーを同じマシンに、
そのマシン構成で複数設置して負荷分散。

負荷のバランスが取れてレスポンスの早いの採用?
568ショシンシャー:04/11/13 18:28:03 ID:???
Solaris9、PostgreSQL-7.4.6をソースからビルドしました。
initdb すると、コアダンプ吐きます。
bash-2.05$ initdb --no-locale -D /usr/local/pgsql/data
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale C.

creating directory /usr/local/pgsql/data... ok
creating directory /usr/local/pgsql/data/base... ok
creating directory /usr/local/pgsql/data/global... ok
creating directory /usr/local/pgsql/data/pg_xlog... ok
creating directory /usr/local/pgsql/data/pg_clog... ok
selecting default max_connections... 40
selecting default shared_buffers... 800
creating configuration files... ok
creating template1 database in /usr/local/pgsql/data/base/1... ok
initializing pg_shadow... ok
enabling unlimited row size for system tables... ok
initializing pg_depend... ok
creating system views... ok
loading pg_description... ok
creating conversions... ok
setting privileges on built-in objects... ok
creating information schema... ok
vacuuming database template1... Bad System Call - core dumped

initdb: failed

うう、何が原因でしょう…
569568:04/11/13 18:30:58 ID:DH3aZI2h
ちなみに、gcc (GCC) 3.4.1 、 GNU Make 3.80 でビルドしました。
570NAME IS NULL:04/11/13 20:00:30 ID:???
>>568
おっ!Solarisのコアダンプネタ。俺の出番だな。どれどれ・・・・・・・全くわかんね。
571NAME IS NULL:04/11/13 22:59:06 ID:???
straceでinitdbしてみるとか、gdb使うとか。
どこで落ちてるかだけなら簡単にみつかりそうだけどね。
572NAME IS NULL:04/11/13 23:38:35 ID:???
>>565 はただのアホ
573NAME IS NULL:04/11/13 23:49:27 ID:???
>>572はただのしろうと。
ちゃんと反論しろ。
574554:04/11/14 00:19:03 ID:HLJ6ND06
>> こらこら君たち 俺がいないのに喧嘩すんなよw
俺がただのアンポンタンってことは皆さん承知でしょう。
565さんも承知でしょう?
たのむ 俺のとこ来て 手取り足取り教えてくれ。
いや、俺の変わりに設定&テストしてくれ。

で本当はどうなのよ?
575NAME IS NULL:04/11/14 02:19:03 ID:???
パソコンまがいに犬積んでシステムだあ〜、パフォーマンスだあ〜
とか言ってる奴って所詮こんなレベルって事。
576NAME IS NULL:04/11/14 02:27:33 ID:???
>やったことあるよ。Pen4XEON(2.66GHz,MEM:2GB,HDD:IDE7200RPM+Chache2MB)

Xeonでメモリ2Gなのに、IDEのディスク1台って、ネタ臭いんですけど。
DB鯖なら普通、CPU落としてでもディスクをRAIDにするだろ。
577NAME IS NULL:04/11/14 02:33:57 ID:???
IDE7200RPM+Chache2MBとか誇らしげに書いてるけど、
SCSIなんて見たこと無い厨が妄想で書いたスペックだから仕方ないと思う

それとも、テストサーバだとか言い訳するのか?(w

そこまでパフォーマンスだなんだ騒いでて、
マジでIDEのディスク1台で運用入ってたら、笑うけどな
578NAME IS NULL:04/11/14 04:53:29 ID:???
>>565
同じクエリを同じマシンで2回投げると、2回目のレスポンスは、
キャッシュが利いてて速くなると思うんだが、
当然NICの設定を変えたときには、OSも含めて、全部クリアしてるよね?
579NAME IS NULL:04/11/14 04:54:33 ID:???
キャッシュの存在を知らずに

1回目は100で投げた→ちょっと微妙
2回目は1000に変更→結構速い!

とかやって喜んでないよね?
580568:04/11/14 10:38:30 ID:Z9vlPXZS
>>570、571 うまくいきました。どうやら、/tmp の容量が足りなかったのが原因だった模様。
再起動してみたらうまくいった…

/tmpの容量増やすにはどうすればいいのやら(OS再インスコ?
581NAME IS NULL:04/11/14 11:39:42 ID:???
>>580
Solarisは動的なパーティション変更できなかったっけ?
AIXとかならできるんだけどな。UNIX板で聞くか、ググったら?
582NAME IS NULL:04/11/14 19:14:32 ID:???
返事がないところを見ると、ディスク構成とキャッシュは考えてなかったみたいだな。
583568:04/11/14 19:37:55 ID:???
>>581 ありがd。具具ってさがしてみます。慣れないOSだと苦労しますな、とほほ(;´д`)
584NAME IS NULL:04/11/14 22:21:07 ID:???
>>583
動的に変更できなくとも、/tmpのとなりのパーティションが
/root,/binなどじゃないなら、
バックアップをとって、シングルユーザモードでrebootして、
変更部分だけパーティションをきり直し、ファイルシステムを作り直す
なんて荒技も可能かな。

それともHDを追加して、/tmpを切替えるって手もありそうだし。

OS入れ直しは最後の手段だよ。
585568:04/11/14 22:24:51 ID:???
>>584 なるへそ、勉強になります。んが、ハードも含めてテスト&評価&勉強目的なので、
気が付いたらOSを入れ直してましたw もちろん、本番機ではこんなことできないでしょうけど。。。
586565:04/11/15 00:07:17 ID:???
>Xeonでメモリ2Gなのに、IDEのディスク1台って、ネタ臭いんですけど。
>DB鯖なら普通、CPU落としてでもディスクをRAIDにするだろ。
システム領域はIDE RAIDのミラーにした。
今時メモリ2Gで多いと思っているなんて可愛いな。

>IDE7200RPM+Chache2MBとか誇らしげに書いてるけど、
>SCSIなんて見たこと無い厨が妄想で書いたスペックだから仕方ないと思う
 SCSIが最高だと思っている厨か?その時の検証には使っていないが、
本番環境はファイバチャネル接続ディスクを別途用意した。
ネットワーク速度のテストは、IDE RAIDのディスクでやったが。
SCSI厨は、U160の太くて取り回しのしにくいケーブルでも使ってな。

>同じクエリを同じマシンで2回投げると、2回目のレスポンスは、
>キャッシュが利いてて速くなると思うんだが、
>当然NICの設定を変えたときには、OSも含めて、全部クリアしてるよね?
その他の検証も行っていたのでOS再起動まで含めてやった。
クエリも結果件数が変わるようにいろいろ試した。

ていうかやったこと無い童貞が下らん反論するな。
587NAME IS NULL:04/11/15 00:10:21 ID:???
なんだこいつ?
知ってる言葉並べただけか?

普通は
>IDE7200RPM+Chache2MB
こんなのは重要じゃなくて、IDE-RAIDの方が書くべきことだろ。

で、FCのディスクは何回転でキャッシュはいくらか書かなくていいのか?(w
588NAME IS NULL:04/11/15 00:11:38 ID:???
で、OSは何ですか?
589NAME IS NULL:04/11/15 01:03:44 ID:???
OSはPostgreSQLです。
590NAME IS NULL:04/11/15 01:25:29 ID:???
OSはミツカン酢です
591NAME IS NULL:04/11/15 01:49:46 ID:???
にゃー、にゃにゃーにゃー。にゃにゃにゃー。
592NAME IS NULL:04/11/15 08:24:57 ID:???
>クエリも結果件数が変わるようにいろいろ試した。

どう試したんだ?
結果件数変えるくらいじゃ、中の人の動きはかわらんぞ。
593NAME IS NULL:04/11/15 08:26:20 ID:???
>システム領域はIDE RAIDのミラーにした。

パフォーマンス気にしてるのに、ミラーとかあり得るのか?
普通は5か10あたりにしないか?
594NAME IS NULL:04/11/15 09:16:15 ID:???
ネットワーク速度のテスト?
なのに数百件や数千件でやってんの?
結果の差が出づらいだろ。
まさかそんなコンマ何秒かの結果差出して、大差が付いた!とか言ってるのか?

普通、最低数百万件入れて、数十万件当てたりしないか?
595NAME IS NULL:04/11/15 11:28:07 ID:???
こういった「普通」がない話で、「普通何件のデータ使わないか?」とかいうのも痛いね。
596NAME IS NULL:04/11/15 11:52:58 ID:Ff1g5uJn
もまいら

> Chache2MB

にも突っ込んでやるやさしさを持ってください。
未だにカーネルもイーサチップもハブも明かされて無い辺り今後のネタの布石だと期待してるぞ、チャッチュ君 (w
597NAME IS NULL:04/11/15 12:50:28 ID:???
PostgreSQLのことならここで聞け。
598NAME IS NULL:04/11/15 13:52:11 ID:???
>>595
まーでも、少なくとも、数百件はありえないけどな。
599NAME IS NULL:04/11/15 13:53:39 ID:???
あと、その他の検証もやってたって、>>586にあるけど、
ネットワークの測定なら、それだけ純粋にやらないと、
どの作用でそうなったのかとの切り分けが難しいのではないかと。
600NAME IS NULL:04/11/15 14:13:45 ID:???
ネットワークの測定だったら適当なファイルをコピーした方が
正確だと思うのは素人?
というか、DB使う意味がないじゃん。
601NAME IS NULL:04/11/15 15:32:22 ID:???
>>600
こっそり同意
602NAME IS NULL:04/11/15 16:46:30 ID:nuaFmwyY
コネクションプーリングの仕掛けがいくつかあるみたいですが
redhat9+postgresql7.43+tomcat5
の組み合わせでオススメのがあれば教えてください<m(_)m>
603NAME IS NULL:04/11/15 16:54:46 ID:???
ふつうにTomcatのデータソースで。
604NAME IS NULL:04/11/15 16:57:42 ID:???
コネクションプーリングはPsotgresのがふつーにあるだろ
もちろんApacheDBCPでもいい

ご自由に
605NAME IS NULL:04/11/15 17:43:54 ID:???
>>603-604
アドバイスどうもです。
結局一番簡単そうなpgpoolにしてみました
606NAME IS NULL:04/11/15 18:07:49 ID:hvuw/xCX
大文字小文字関係なく並べ替えるにはどうすればいいですか?
MM, maとか。。。
607NAME IS NULL:04/11/15 20:05:11 ID:???
select * from lower(fieldname);
もうちょっと質問の仕方考えた方が良いのでは?
608NAME IS NULL:04/11/16 09:17:20 ID:???
それ並べ替えてないし、、、
609NAME IS NULL:04/11/16 11:20:08 ID:???
lower()が示せれば充分だろ。
ここでorder byが思い浮かばないならどうしようもない。
610NAME IS NULL:04/11/16 12:15:03 ID:f7/WOeLC
C言語関数を作りたいのですが、ソース以外に参考になるサイト、書籍などありませんか?
611NAME IS NULL:04/11/16 19:37:49 ID:???
>>609
入力ミスなのに指摘されて逆切れってかっこ悪いですね。プ
612NAME IS NULL:04/11/16 21:28:44 ID:???
加えて言えば、lower()はSELECT句かWHERE句に来るべきもので、
FROM句には来ないと思いまつ、、
613NAME IS NULL:04/11/16 21:38:22 ID:???
みんな突っ込むのがめんどくさくてスルーしてたっぽいw
614NAME IS NULL:04/11/16 22:43:40 ID:psi/skYt
dayって名前の『timestamp』のカラムを
日付でグループ化ってできるんでしょうか?

つまり、こんなやつを
day
-----------------------
2004-11-08 22:47:59+09
2004-11-08 22:48:48+09
2004-11-09 11:18:52+09
2004-11-09 11:24:15+09
2004-11-09 11:27:54+09
-----------------------

=> select day from テーブル group by day ************;して
こんな検索結果にしたいんだけど。。。
day
-----------------------
2004-11-08
2004-11-09

あまりにも小僧な質問でしょうが。。。
615NAME IS NULL:04/11/16 22:47:56 ID:???
dateかcharに変換してからgroup byすればいいんでないの。

select day::date from テーブル group by day::date;

未確認だが。
616NAME IS NULL:04/11/16 23:50:10 ID:mHsEfkKc
PostgreSQL7.4.6の同時接続数を
某本を片手に行いましたが、
例に載っている同時接続数64で設定すると、
書き込みなどのパフォーマンスがかなりわるくなりました。

postgresql.conf内容
max_connections=64
shared_buffers=128

あまりにも悪かったため、shared_buffersを10000にすると、
初期設定よりもパフォーマンスがよくなりました。
共有メモリは128Mぐらいなのですが、同時接続が64*10000になった場合、
SWAPなどが起こり、遅くなるのでしょうか?

また、同時接続数を増やした場合のパフォーマンスをあげる方法ですが、
WALを設定したり、sort_mem を増やしたほうがよいのでしょうか?

OS:FreeBSD4.10
CPU:pentiumV1Gz
MEM:1G
617NAME IS NULL:04/11/17 00:41:13 ID:teQkvpJS
PostgreSQLについて質問です。

数冊の書籍を流し見したのですが、オラクルのビットマップインデックス
に当たるものはあるのでしょうか。
ちょっと見あたりませんでした。

データウェアハウス用途でどれだけ実用になるか興味があります。
618NAME IS NULL:04/11/17 01:41:23 ID:???
>>616
shared_bufferは大きい程よい。max_connectionsの2倍ってのは最低限必要って意味。

で、質問の意味が分からんのだが、パラメータをかえただけで、接続数は変わってないの?
それともパラメータかえて接続数も増えてパフォーマンスが落ちたっていう落ち?
そもそも同時接続64*10000ってなに?
619p1086-ipbf604osakakita.osaka.ocn.ne.jp:04/11/17 01:48:11 ID:???
>>611
>>609だけど、>>607とは別人。
620NAME IS NULL:04/11/17 02:00:46 ID:???
>>619
どうでもいいよ。
621NAME IS NULL:04/11/17 08:18:01 ID:???
>617
無い。以上。
622NAME IS NULL:04/11/17 10:17:20 ID:vZBdMe8w
PostgreSQLの起動時に、他のプログラムを自動実行するような手段はありませんか?
623sage:04/11/17 10:35:33 ID:ffSHJYdD
>>618
パラメータを変えただけです。接続数は64のままです。
64*10000は同時接続がおこった時に1接続に対しshared_buffers分発生すると
思いました。
64接続も1接続もshared_buffers内で行うと考えてよいのでしょうか?
624NAME IS NULL:04/11/17 10:41:29 ID:???
>>620
指摘されて逆切れってかっこ悪いですね。プ
625614 :04/11/17 12:05:14 ID:Z4W5FTYY
>>615
できた!!
ありがとうございますぅ。
早く小僧を脱出しなければ・・・先は長そうだけど・・・
626NAME IS NULL:04/11/17 12:07:34 ID:???
ギガビッドの夢が破れたので、今度はいちいち逆ギレ指摘か。
627NAME IS NULL:04/11/17 12:15:16 ID:???
>>623
接続数は64のままって、じゃあデフォルト32のときも64接続しようとしてたわけ?

> 64接続も1接続もshared_buffers内で行うと考えてよいのでしょうか?
"shared"ってどういう意味か知ってる?

あと、
> 64*10000は同時接続がおこった時に1接続に対しshared_buffers分発生すると
> 思いました。
は意味不明。
628NAME IS NULL:04/11/17 12:52:08 ID:???
swapがおこるかどうかは実際vmstatとかしてみるのがいいのでは?
あと、shared_buffersはでかけりゃいいってもんじゃないらしいよ。
629NAME IS NULL:04/11/17 17:04:24 ID:???
>>622
PostgreSQLを起動するスクリプト内に埋め込む。
この極めて単純な方法を考えなかったり、試行してみなかった理由があるのなら
それを添えて質問してくれ。
630NAME IS NULL:04/11/17 18:35:39 ID:???
今回初めてcygwinを起動してcygipcをインストールしたいのですが
cygipcはD:\cygwin\tmpに解凍することができました
しかし肝心のインストールの仕方がわかりません
ご主人様、どうか哀れなこの豚めにお教えください
631NAME IS NULL:04/11/17 18:49:29 ID:???
スレ違いだ、豚!
632NAME IS NULL:04/11/17 19:20:03 ID:???
豚か。人間なら教えたのに。
633NAME IS NULL:04/11/17 22:06:34 ID:ubZIXP1e
>>624
何も知らない馬鹿(ww
634NAME IS NULL:04/11/17 23:48:33 ID:???
>>629
すみません。
エラーが起きてPostgreSQLが自動的に再起動するときがあるのですが、
このときに他のプログラムを実行させたいのです。
このとき起動スクリプトは実行されないようなのですが。
635NAME IS NULL:04/11/18 00:16:18 ID:???
>>630
D:\cygwin\usr\localに解凍したファイル移動させればいいだけ
636NAME IS NULL:04/11/18 00:55:07 ID:???
>>627
まず、postgresql.confを
max_connections=64
shared_buffers128
に設定を行いました。

テーブルに100件書き込むクエリを実行すると、設定を行う前に比べて
遅かったので、
shared_buffers=10000
にすると、設定を行う前以上に早くなりました。
設定を行う前はpostgresqlの初期設定です。(confファイルはいじってません
また、インストール時にメモリ割り当ては行っていません)

これに関しては色々調べて、キャッシュにあたるほどよいということが
分かりました。

OS:FreeBSD4.10
CPU:pentiumV1Gz
MEM:1G

上記スペックの時、WEB+DBサーバにしか使用しない場合、
FreeBSDの共有メモリにどのくらい割り当てられるものなのか
また、shared_buffersの容量はその共有メモリに対してどのくらい
割り当てたほうがよいのか、その目安はどのくらいなのでしょうか?

また、パフォーマンスをあげる方法としては上記以外にどんな設定を
したらいいのでしょうか?
637NAME IS NULL:04/11/18 01:02:56 ID:???
>>628
現在の設定で100件のデータを書き込む処理を行いましたが、
あまりメモリ容量は上がっていないような気がします。
次はpg_benchで64接続設定を実行しながら、
vmstatでメモリ使用量をチェックしたいと思います。
638NAME IS NULL:04/11/18 02:11:39 ID:???
>>435 のURLのところ見てみるといーんじゃない?
639NAME IS NULL:04/11/19 11:36:37 ID:???
お前ら当然、SoftwareDesign買っただろ?

俺はまだ買ってないけど。
雨だし。
640NAME IS NULL:04/11/19 14:02:04 ID:???
デザイナーの雑誌ですか?
641NAME IS NULL:04/11/19 14:08:54 ID:???
煽る力も残ってないなら寝たほうがいいよ
642NAME IS NULL:04/11/19 14:23:02 ID:???
え、煽られるような内容なの?
まあ、天気もいいし、遊びに行くとするよ。
643NAME IS NULL:04/11/20 18:03:10 ID:TCBn6jbt
timestamp型のところにUnix時間で入れる方法が
あれば教えてください。
出すときにUnix時間にするのはdata_partでできるみたいなんだけど
その逆がみつからなかった・・・orz
644NAME IS NULL:04/11/20 18:44:59 ID:Gp7u48nM
PHP掲示板作ってもらったんだけど、「予約して」って打ったら化けた。
どうして?
645NAME IS NULL:04/11/20 19:02:51 ID:???
予約できないってこと
646NAME IS NULL:04/11/20 23:35:41 ID:CjusAjFh
cygwinでpostgres使いたいんだけどソースからコンパイルしたpostgresは
cygwinフォルダのどこにインストすればいいんですか?
647NAME IS NULL:04/11/20 23:48:13 ID:???
どうやってコンパイルしたんだよ…
648NAME IS NULL:04/11/21 11:22:39 ID:???
>>646
htp://www.pathname.com/fhs/ を参考に、好きな位置に。
649NAME IS NULL:04/11/21 18:12:38 ID:???
>>648thx!
それらしきメッセージがだらーっと出てきたんでたぶんインストール出来ました
次にデータベースユーザを作りたいんですがこんながでてエラーで困ってます
/usr/local/pgsql/bin/createuser nobody

>Shall the new user be allowed to create databases? (y/n)
>Shall the new user be allowed to create more new users? (y/n)
>createuser: could not connect to database template1: could not connect to server
>: No such file or directory
> Is the server running locally and accepting
> connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
650NAME IS NULL:04/11/21 18:22:21 ID:???
>>649
FAQだと思うので、それすら探し出せないようじゃ…。
PostgreSQLをちゃんと起動してますか?
ttp://www.postgresql.jp/document/pg746doc/html/tutorial-createdb.html
>これは、サーバが起動していないか、createdbが想定している状態でサーバが起動していないか
>を示しています。
651650:04/11/21 18:28:05 ID:???
念のため補足。この文はcreatedbについて書かれているが、createuserも同じだ。
ttp://www.postgresql.jp/document/pg746doc/html/app-createuser.html
>データベースサーバは対象ホストで稼働していなければなりません
652NAME IS NULL:04/11/21 18:56:31 ID:???
cygwinってことで
> connections on Unix domain socket
あたりもクサいね。
ipcdaemonやらcygipcやらcygserverやらの設定はしてるんかいのぅ
653649:04/11/21 21:08:57 ID:???
あぁ…PostgreSQL起動してないのかも、icps打っても数字が出てこないし。

設定とかはよくわかんないけどここを参考にしてます
ttp://www.aspect-sys.co.jp/etc/win/xp_db/cygwin/install.html
654NAME IS NULL:04/11/21 21:37:02 ID:???
>>649
postgres.exe(あるいはpostmaster.exe)がちゃんと起動してるか調べるべし。
少なくともプロセスがちゃんと存在するかどうかぐらいは、調べてもよかろう。
タスクマネージャか、Cygwinでps -W、もしWinXPならtasklistでもよし。

もし、Cygwin特有のトラブルと考えるのなら、最低限、
Cygwin、PostgreSQL のバージョンをちゃんと調べて、
OSの種別とバージョンも添えて、
Cygwinスレ(UNIX板とWindows板にある)にでも聞くべし。

ついでに。CygwinのPostgreSQLなら、ぐぐったらもっと新しめの情報がいくつも見つかるはず。
少なくとも、古いのを使うならコンパイルする必要があるかも知れないが、最新版なら
とりあえずはCygwinのパッケージの物を使ってもいいと思う…。
その場合 ttp://www.aspect-sys.co.jp/etc/win/xp_db/cygwin/install.html の情報は
2つほど古いので(CygIpc 1.X の情報が書いてあるが、その後、 CygIpc 2.X を使うようになり、
さらに現在は CygIpcを使わずに cygserver を使うわけで。)
655649:04/11/22 21:16:48 ID:???
無事postgresを起動させることができました
できなかった理由がcygipcなんて古いもんつかってたのがいけなかったみたいです
cygserver使ったらいままでの嘘みたいにすんなりと出来ました。
助言くれた人たち、ホントありがとうございます
656NAME IS NULL:04/11/23 12:20:49 ID:???
>>655
よかったね。年末にはPostgreSQL-8.0が待ってるからそちらもがんばってくれ。
657じぇぬろーく ◆RyJENULLoQ :04/11/23 12:27:24 ID:???
ちなみに8.0はCygwin不要。
現在beta4が出てる。
658NAME IS NULL:04/11/23 17:55:18 ID:???
さっきbeta5が出た。
beta4はなんかやばいのでやめた方がいい。
beta3はOKだったのだが。beta5はまだわからん。
659NAME IS NULL:04/11/23 19:28:41 ID:???
報告よろ
660NAME IS NULL:04/11/23 21:34:48 ID:???
CSE使ってPostgresいじりたいんだがiオプションがどうのこうのとでて接続できん
Postgresのiオプションてなんですかい?
661NAME IS NULL:04/11/23 21:42:38 ID:???
662660:04/11/23 22:26:34 ID:???
>>661
pg_ctl の引数の "-i" やらtcpip_socket = trueやらとわけわかめですが
なんとかできました。thank you!
663NAME IS NULL:04/11/24 14:46:56 ID:???
beta5はどこ?
664NAME IS NULL:04/11/24 17:29:52 ID:???
ftp鯖にある
665NAME IS NULL:04/11/24 17:34:08 ID:???
beta4・beta5ともコンパイル中にエラーが一杯出ますね
それ以前のバージョンでは出なかったのに
warning: pointer of type `void *' used in arithmetic
666NAME IS NULL:04/11/24 18:10:52 ID:???
Winはまだないのね。
667NAME IS NULL:04/11/24 18:35:57 ID:???
Win用って、バイナリで落ちてるだろ
668NAME IS NULL:04/11/24 19:03:50 ID:???
winでbeta4しばらく使ってたけど不具合にまだであってねーな
beta2あたりよりはさすがに安定したというところか
5はどーだろうな
669666:04/11/24 20:31:12 ID:???
>>667
beta5は見当たらないけど。
tp://ftp.jp.postgresql.org/projects/pgFoundry/pginstaller/

psqlコマンドでパスワード認証ができない(勝手にパスワード入力を飛ばして認証エラー)のを
何とかして欲しい。
670NAME IS NULL:04/11/24 20:49:58 ID:???
671666:04/11/24 20:52:10 ID:???
>>670
ありが豚
672NAME IS NULL:04/11/24 22:41:44 ID:koKizAYz
PostgreSQL7.4.6で、日本語のデータをソートしようとすると、
なぜか上手く五十音順にソートできません。なぜでしょうか?
データはカタカナ・漢字が混じっています。
1バイト文字の列のソートはふつうに出来ます。
ex) select * from table order by 2byte asc;
673NAME IS NULL:04/11/24 23:58:58 ID:???
initdbの時にno-localeオプション付けた?
674NAME IS NULL:04/11/25 00:00:03 ID:???
>>672
ひょっとしてこれあたりじゃ?
http://bbs.fedora.jp/read.php?FID=3&TID=174
675NAME IS NULL:04/11/25 00:17:20 ID:???
8.0 beta5 の Winバイナリを落とそうとしたら
今回からファイル名に -en が付くようになったけど
beta5 から何か変わったんですかね?

>>668
本体はともかく pgAdminIII は相変わらず不安定まくりだよね
普段使わないけど(UNIX 系では使ったことがない)、
669氏が言ってるようなpsqlも含めて、
どうも直コマンドの操作性が悪いので時々使ってしまう…
676NAME IS NULL:04/11/25 03:38:17 ID:???
Windows版、糞だな。
Linux版でテストは好調だが。
677NAME IS NULL:04/11/25 08:45:41 ID:???
どうせ正式に出ればWindows版のほうがユーザー数があっさりおいこすから
安定性とかすぐに向上する希ガス

でもMySQLという例があるしなぁ・・・あれは特別か
678NAME IS NULL:04/11/25 15:12:54 ID:???
そもそも、Windowsと言えども、WindowsXPHomeとかWindowsXPProとかWindows2000Proとかは、
データベース動かすように設計されたOSではないので、安定しないと思うんだが。
わざわざデータベース動かす用のWindowsとか出してきてるくらいだし。
679NAME IS NULL:04/11/25 15:40:43 ID:???
pgAdminIII、只でさえ不安定だったのが、ベータ3以降は
さらに磨きをかけたのかメチャクチャ不安定になったな
680NAME IS NULL:04/11/25 16:10:31 ID:7TaEXRyK
postgresql-7.4.6がインスコできないんですが////
環境はAIX5.2で../configureするんですが,次の
makeで
Makefile:13: Makefile.global: このパス名の
ファイルまたはディレクトリーは存在しま
せん。
と出てダメです.Makefile.global.inはあるのですが.そのほかにも,
Makefile.portがないとか言われしまいます.どうしたものでしょうか???
681NAME IS NULL:04/11/25 16:18:46 ID:???
で、どうconfigureしたの?
682NAME IS NULL:04/11/25 16:21:24 ID:???
該当のエラーメッセージくらいそのまま載せろボケ
683NAME IS NULL:04/11/25 16:36:10 ID:???
>>678
でも、多数の使用形態になるであろうクライアント機に搭載された
MS-Accessからリンクして使用した場合、Linux版の8とは挙動が違ったり
データビューが化けて(#Deleted)表示されるってのは考え物。
一応テスト用にこしらえた2000serverや2003で実験したけど、これじゃぁ
Windows版に移行しようとする人が躊躇するだろうな。
ユニークインデックス使っただけなのになぁ。

ちなみに激不安定なpgAdminIIIでデータビューを見ると正常。
もしかするとODBCのせいかな。
ftpに上がってるスナップショットの最新は08_00_0002になってるし。
(うまくインストール出来ないのでテストしてないけど)
684680:04/11/25 17:00:34 ID:7TaEXRyK
Makefile:13: Makefile.global: このパス名の ファイルまたはディレクト
リーは存在しません.
gmake: *** No rule to make target `Makefile.global'. Stop.

上記2つがmakeしたときに吐き出せられたエラ-メッセ-ジです.
configureはごく普通に ./configereしただけです.configureの時の
エラ-メッセ-ジは下記のとおりです.
configure: error: readline header not found
If you have readline already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
Use --without-readline to disable readline support.
教えて君ですいません.どうぞよろしくご教示して下さい
685NAME IS NULL:04/11/25 17:05:05 ID:???
門外漢がしゃしゃり出てスマン

>readline header not found
>Use --without-readline to disable readline support

readlineでググれば何か出てきそうな気がするけど



686NAME IS NULL:04/11/25 17:35:12 ID:???
configureでエラーでてるのに、makeが成功するとでも思ってるのか?
687NAME IS NULL:04/11/25 17:36:33 ID:???
とりあえず、configureとは何のためにするものか
makeとは何のためにするものかを理解しないと、
説明するだけ無駄のような気が…
AIX使ってるくらいだから仕事だと思うけど、
だとしたら今後困るんじゃない?
688NAME IS NULL:04/11/25 20:41:53 ID:???
ODBCってあまりつかわんからなぁ
そっち方面の不安定さはわからん
689NAME IS NULL:04/11/25 21:07:33 ID:???
>>683
#Deletedって、Linux版の8だとちゃんと表示されるようになったの?
それならありがたいんだけど。
690680:04/11/25 21:42:44 ID:7TaEXRyK
>>685
ありがとうございました.
691NAME IS NULL:04/11/26 00:17:37 ID:???
>>689
それって確か今までのLinux版でも主キーにオートナンバーを設定してると
Access側でビューを見たり入力したりする時に#Deletedって出る話ですよね。
それなら8ではまだ実験してないです。
692NAME IS NULL:04/11/26 17:05:36 ID:4/aP9aPl
P3 3GHz/1GB/SATA HDのマシンにpostgresql-7.4.6をインストールして
単純なデータファイルのアクセス用に利用。ただし、遅い気がする。
↓がpgbenchの結果となりますが、これはマシンの性能並なんでしょうか?
データベースは専用のSATA(160GB,7500回転)に載せてます。共有メモリ
は物理メモリの半分の512MBに設定してます。

transaction type: TPC-B (sort of)
scaling factor: 1
number of clients: 1
number of transactions per client: 10
number of transactions actually processed: 10/10
tps = 373.580395 (including connections establishing)
tps = 421.567388 (excluding connections establishing)
693NAME IS NULL:04/11/26 17:08:28 ID:4/aP9aPl
×P3 3GHz
○P4 3GHz

のマチガイ。
694NAME IS NULL:04/11/26 17:15:59 ID:???
だから、SATAとか7500回転と言われてもさ…
もっと重要なことを書いてよ…
OSとか、指定したオプションとかさ…
695NAME IS NULL:04/11/26 17:47:34 ID:4/aP9aPl
Redhat Enterprise Linux(Kernel 2.4.21-4.ELsmp on an i686),
Pentium4 3.0(HT)

っていうか比較できるpgbenchのベンチマーク結果がほしいだけなんだけど
696NAME IS NULL:04/11/26 17:55:25 ID:AQ+rVg4K
PostgreSQL7.4.2を利用していますが、
timestamp型をdefault 'now'でテーブル作成すると、
以前のバージョンはINSERT時に省略するとそのときの時刻が入っていたのですが、
今はテーブル作成時刻にセットされてしまいます。
回避する方法を教えていただければ助かります。
697NAME IS NULL:04/11/26 17:57:27 ID:???
>っていうか比較できるpgbenchのベンチマーク結果がほしいだけなんだけど

え?バカなの?
698NAME IS NULL:04/11/26 18:04:12 ID:4/aP9aPl
>え?バカなの?

もういいよ。確かに聞いたおいらがバカだった
699NAME IS NULL:04/11/26 18:07:16 ID:???
>>696
ドキュメントをよく読むとこう書いてあることに気づく。
http://www.postgresql.jp/document/current/html/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT
700NAME IS NULL:04/11/26 18:14:34 ID:???
自分の出した情報だけじゃ比較できないと気がついてない方がバカだと思うな
701NAME IS NULL:04/11/26 18:16:08 ID:???
しかしまぁこのスレ、仕事で使ってるっぽい人が多いのに、
恐ろしくレベルが低くて無礼な奴が多い気がするんだが…
702NAME IS NULL:04/11/26 18:26:15 ID:???
             . ィ
.._ .......、._    _ /:/l!  またまたご冗談を
 :~""''.>゙' "~ ,、、''‐'、|   みなさん無職ですよ 
゙、'、::::::ノ:::::::_,.-=.  _〜:、         /_.}'':,
 ``、/:::::::::__....,._ `゙'Y' _.ェ-、....._ /_゙''i゙ノ、ノ
 ,.--l‐''"~..-_'.x-='"゙ー 、`'-、 ,:'  ノ゙ノブ     
"   .!-'",/  `'-‐'') /\ `/ でノ-〈
 .-''~ >'゙::    ‐'"゙./  ヽ.,'   ~ /
   //:::::       ',    /    ,:'゙
703NAME IS NULL:04/11/26 18:28:14 ID:???
無職なのに妄想AIX使い!
無職なのに妄想RHEL使い!

道理で詳しくないわけだ
704NAME IS NULL:04/11/26 19:10:08 ID:???
リアル無職な俺が勝ち組('A`)
705NAME IS NULL:04/11/26 19:16:36 ID:???
まー俺も、Oracleのチューニングとか出来るけど無職だな orz
706NAME IS NULL:04/11/26 20:12:15 ID:???
ブラック企業に引っかかったら大変だからな
ハロワなんて法に違反した内容の求人票でも受け付けちゃうし
707NAME IS NULL:04/11/26 21:17:12 ID:???
2相コミット使える?
JTAでJMSと同じ卜ランザクションで扱えられれば
いいとふと思ったんだけど
708NAME IS NULL:04/11/26 22:08:02 ID:???
ハローワークでたまに求人見るけど、IT関連はほとんど人材派遣だしな。
709NAME IS NULL:04/11/26 22:18:29 ID:4/aP9aPl
いきなりバカだもんね
びっくらこいたよ
710NAME IS NULL:04/11/26 23:22:29 ID:???
8.0 beta5ってアンインストールすると
postgresのユーザーが残っちゃうみたいだね。
コントロールパネルのユーザアカウントには表示されないのに
新規ユーザでpostgres作ろうとすると「既に存在します」になる。
困った。
711NAME IS NULL:04/11/26 23:30:45 ID:???
>>709
自分からろくに情報を出さないのに、比較したいとか言い出したら、
バカだと思われても仕方ないんじゃないか?
712NAME IS NULL:04/11/26 23:32:09 ID:???
ちなみに、いきなりバカだと言われたのは、ディスクの回転数に拘って、
他の情報を出さないで荒れたことが最近あったので、そのせいだろう
ディスクの回転数出すなら、他に出すべき情報あるだろって

ちょっと上の方見たら解ると思うが
713NAME IS NULL:04/11/26 23:36:11 ID:???
まぁ、よくわかんないけど貼っとく。

Debian/GNU Linux Woody (kernel 2.4.27)
Eden VIA Samuel 2 533GHz
Memory PC-133 64M
HDD UltraDMA/33 5,600rpm
Postgresql 7.4.2

オプションとかインストールされたまんま。

$ pgbench tome
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1
number of clients: 1
number of transactions per client: 10
number of transactions actually processed: 10/10
tps = 20.079716 (including connections establishing)
tps = 20.991910 (excluding connections establishing)

たいしたことない用途なので、速度で困ったことない。
714NAME IS NULL:04/11/26 23:43:31 ID:???
>Eden VIA Samuel 2 533GHz

参考にならねーよ
715NAME IS NULL:04/11/26 23:44:18 ID:???
まー、そりゃ速度で困らんだろうなぁ…
716NAME IS NULL:04/11/28 02:26:41 ID:jZVNaIXP
どなたかxmlpgsql使っている方いないでしょうか。
Vine 3.0 にインストールしようとしているのですが、どうにも上手くいかないのです。

元々Debian向けに開発されているようで、
どうやらVineだけじゃなくてRedhatでもインストールできてないようなんですが・・・

それとも他の方法考えた方がいいのかな・・・
717NAME IS NULL:04/11/28 02:37:44 ID:???
>>716
普通にインストールできると思うが。
ちょっとググったら、RH7.1に入れてる人いたし。

というか、一から順に教えてくださいって話でもなければ、
どううまく行かないかくらい書かないと誰も答えようがないわけで。

なんか最近、こういうの多いな…
718NAME IS NULL:04/11/28 10:06:39 ID:???
憂える事態ですね。
719NAME IS NULL:04/11/28 15:54:17 ID:???
>>713
K6-2より遅いな
720NAME IS NULL:04/11/28 17:13:01 ID:???
CPUクロックが全く生かされてないな。
721NAME IS NULL:04/11/29 10:43:06 ID:???
クロックが生きてないとコンピュータは動かないけどな
722NAME IS NULL:04/11/29 10:45:22 ID:???
>>721
わははははは
723NAME IS NULL:04/11/29 16:00:31 ID:???
533GHz
724NAME IS NULL:04/12/02 01:30:20 ID:w9oX3nEH
俺はコロッケが好きだけどな
725NAME IS NULL:04/12/02 01:52:18 ID:???
>>724
むずかしすぎます
726NAME IS NULL:04/12/02 19:32:41 ID:???
Windows版pgAdminIII

クエリやSQLが文字化けするからフォントの設定をMSゴシックに変えて
再起動すると、エラーが出て起動しない。
MSゴシックや明朝は駄目でもFixedSysだと問題ないのは仕様ですか?

仕方がないからアンインストール後、残ったゴミファイルやレジストリの
それらしき値を消去してから再インストールすると、Administratorでは
とりあえず使えるようになるのに、以外の一般ユーザーで使おうとすると
やっぱりエラーが出て立ち上がらないは仕様ですか?

結局Windowsを入れ直さないとどうにも駄目なのは仕様ですか?
727NAME IS NULL:04/12/02 19:57:32 ID:YbXY/ZSB

テストDBに10万件ほどのゴミデータを入力して
10万件のデータの検索速度の実験を行おうと考えているのですが

テストデータの10万件を登録する最も楽な方法は何だと思いますか?
普通にプログラムで、

for(int i=0; i<1000000; i++)
SQL実行関数("insert into table () values()");

でもいいんだけど、プログラム書くのが面倒なので
もっと楽にデータを突っ込めるPostgresqlの管理ツールは無いかなぁと。
さらに、できれば、ランダムな文字列とかを挿入できると更にGOODです。

宜しくお願い致します。

728NAME IS NULL:04/12/02 20:12:20 ID:???
>>726
おれデフォで設定何もいじらずないで問題ないけど
729NAME IS NULL:04/12/02 20:13:10 ID:???
>>727
質問の結果を待つより自分で作れば2,3分でおわるんだからそっちのほうがはやいぞ
730NAME IS NULL:04/12/02 20:18:23 ID:???
そんなのここにカキコする時間があったらperlでもrubyででもさくっと書けばいいじゃねーか。

素直に言えよ、プログラムかけませんと。
731NAME IS NULL:04/12/02 20:28:41 ID:ervGI8Vq
大量のテストデータが必要なときは、郵便番号が良く使われるよ。
http://www.post.japanpost.jp/zipcode/dl/kogaki.html
もっとも、10万レコードまでは無いけどな。
732NAME IS NULL:04/12/02 20:30:09 ID:YbXY/ZSB

>>729

楽するのは良くないか〜じゃあプログラムで書くことにするよ。
ところで、MySQLの管理ツールではフリーで「かねやん」というソフトがあったんだけど
それみたいな感覚で使える、Postgresqlの管理ツールってありますか?
CSEというのをSQLクライアントとして入れてみたんだけど使いにくくてね。
最近Postgresqlの管理に関わるようになったので、イマイチ分からないんだよね。

>>730

C、C++、Javaは不得意だけど、遊びでアプレットアルカノイド作れるくらい、VB。
何処までスキルが求められるかによるけど、触れるって程度なのかな?
疑わないでねw
733NAME IS NULL:04/12/02 20:31:18 ID:YbXY/ZSB

>>731

ありがと!!
こういうポジティブな返信を待ってたんだ。
とりあえず、これをODBC経由で取り込んじゃうのが楽そうだな・・・。

やってみるね。
734NAME IS NULL:04/12/02 20:46:06 ID:???
業者からスパム用アドレスでも買っとけ。
735NAME IS NULL:04/12/02 22:17:52 ID:C2POy9Zw
おい、ぽまえら!!
100万レコードのテーブルを2つJOINして、特定のIDの行を取り出そうとすると、
異常に遅いんだが、なんとかならんのでしょうか?
例えば、以下のような処理で、Oracleの100倍以上時間がかかって困ってます。

select * from table1 t1 inner join table2 t2 on t1.id=t2.id where t1.id=100

なお、t1.idもt2.idもprimary keyで、インデックスも作ってますです。
何卒、どうやってチューニングすればよいのか教えてくださいませ。
736NAME IS NULL:04/12/02 22:32:51 ID:???
インデックスを作ったかどうかより、インデックスが使われているかどうかのほうが大事だぞよ
737NAME IS NULL:04/12/02 22:37:10 ID:???
>>735
Oracle を使う
738NAME IS NULL:04/12/02 23:05:37 ID:???
>>735
joinがない場合はどうかね?
それで変わるというのならサブクエリーでやってみるとか

実はID100が50万件くらいあったりしてな

oracleならFirstRows指定でレスポンス重視とかいろいろできるんだよな
739NAME IS NULL:04/12/02 23:20:32 ID:???
>>727
もう8割書いてるのに面倒とか意味解らんぞ。
郵便番号ダウンロードして、伸張して、それをインポートするコマンド打つ方が面倒だろ。
740NAME IS NULL:04/12/03 00:15:06 ID:???
>>728
デフォだとSQLとかで日本語が文字化けしませんか?
項目名とかが日本語だと□□になっちゃうはず
741NAME IS NULL:04/12/03 00:20:27 ID:???
郵便番号辞書を読ませるのは pgpost のスクリプトとか使えば?

それとは関係ないが、同じ sql ファイルで30万件ほどのデーターを
読み込ませてインデックス作るテストを Windows 上で
1) coLinux 上の PostgreSQL 7.4
2) PostgreSQL 8.0beta5 for Windows
の両方の環境で試したのだが、インデックス作るのにかかる時間が
異常に2が長かった。1では1〜2分だったのに、2では10倍
くらいかかった。データーを読み込んだり SELECT する場合には
そこまで差が無かったのだが。

Windows Native の方が当然速くなると思っていたのだが、
何か間違ってるのでしょうか??
742NAME IS NULL:04/12/03 00:27:21 ID:???
Windows用は前途多難だな
743NAME IS NULL:04/12/03 00:48:25 ID:???
まー、OracleをWindowsで使ったって、トラブルはUNIXより多いからな…
744NAME IS NULL:04/12/03 01:00:07 ID:???
>>740
項目名に日本語は使わないときめてるしな
745NAME IS NULL:04/12/03 01:01:09 ID:???
betaはデバッグコードはいってるとか
746NAME IS NULL:04/12/03 02:10:23 ID:???
>>740
プロのデーターベースの世界では項目名やDB名等に日本語なんか使わないのが常識
藻前、多分今までアクセスしか弄ったことないだろう?
あの程度ではデータベースを経験したとは言わないし、あんな見かけだましで標準から外れまくり
ソフトを作ってるような会社が作ったカスソフトをデータベースの標準だと思ってもらっちゃ困る


747NAME IS NULL:04/12/03 02:42:47 ID:???
KUBUN は日本語じゃないのか? ローマ字か、そうか。
748NAME IS NULL:04/12/03 06:04:56 ID:???
まー、中国語でもロシア語でも、駄目だけどな。

プロならダブルバイト文字と言え。
749NAME IS NULL:04/12/03 07:12:20 ID:???
ダブルバイト以外ってのもちょっと微妙だな、ISO-8859-1 とかの 0x80 以上の範囲まで
意味に入っちゃう。us-ascii の英数字とでも言うか。
750NAME IS NULL:04/12/03 11:17:47 ID:???
>>748
マルチバイトキャラクタといえ、プロなら
751NAME IS NULL:04/12/03 11:37:54 ID:???
昔はユーザー名にハイフンも使えなかった世なー
752NAME IS NULL:04/12/03 11:42:52 ID:???
プロなら、全角文字といえ
753NAME IS NULL:04/12/03 11:47:08 ID:???
プロならテーブル名は8文字まででしょ。
754NAME IS NULL:04/12/03 11:51:28 ID:???
>>753
それはプロというよりただの年寄りではないかと。
755NAME IS NULL:04/12/03 12:04:42 ID:???
項目名に日本語を使っちゃだめって言うのも十分年寄りの話だよな
756NAME IS NULL:04/12/03 12:35:49 ID:???
>>739
ダウンロードできる郵便番号のデータって表記がめちゃくちゃだよね。
なんか町名の中にコメントが書いてあったりテキトーな括弧付けしてあったり。
なんとかしてほしい。
757NAME IS NULL:04/12/03 12:51:10 ID:???
>>755
DB自体がマルチバイト通ってもソフトのほうが通らないケースってのも十分あるわけで
特に今は海外発のソフトを使うことが多いしな
むしろ今のほうが慎重になる

そのへんがすべて裏が取れてはじめて項目名やテーブル名に日本語使うのが普通だろ

758NAME IS NULL:04/12/03 12:55:30 ID:???
>>756
邪魔なのは括弧だけのはずだよ。おいらは

#!/usr/bin/perl
require 'jcode.pl';

for (<STDIN>){
jcode::h2z_sjis(\$_); #半角がイヤなとき
jcode::tr(\$_, '()', '()');
s/\(.*?\)//g;
print;
}

とかいうスクリプト(未検証)に流し込んだな。
759NAME IS NULL:04/12/03 13:03:44 ID:???
>>757
いやあ、結局何か障害があれば、ターミナルから直でSQL叩くなんてこと
になる。そのさい使用可能なターミナル/端末が日本語が打てるとは限ら
ない(海外出張時にヘルプが飛んで来たときとかさ)わけだから、テーブル
名、カラム名には非ASCII文字は使うべきではないな。
折れはアルファベットと数字アンスコのみ使うようにしてる。

入門には、日本語だととっつきやすいかもしれんが。
760NAME IS NULL:04/12/03 13:20:45 ID:???
>>757
>>759
うん。だから環境によるよ。
ソフトウェアだけじゃなくて顧客とか自社とかの政治的な環境も含めてね。

漢字は絶対だめ!って思考停止しちゃうおっさんは多いよな。
ま、そのおっさんが政治的な一部であることも多いんだけどさ。

ちなみに、OracleとSQL Serverでは漢字の項目名使ったけど、
運用中も含めてまったくそのことに関しては問題出てないよ。

メリットも結構あると思う。
がんばって日本企業固有の英語になりにくい項目名に、変なローマ字を付けた
り、わけのわからない英語を割りあてたりする必要がなくなる。
仕様書も見やすくなるし。

PostgreSQLではやったことないから、完全なスレ違いだね。すまん。
761NAME IS NULL:04/12/03 13:32:58 ID:???
>>758
いや、物理的な問題じゃなくって表記が不親切って意味です。
たとえば

○○村全体

○○1丁目(○○番地は除く)

○○【○○番地〜○○番地(○○番地は除く)、○○番地】

○○の真珠工場

○○町<○○通りの西側>

(○○通り入る、■■通り下る、△△通り
上る)■■町   ←複数行に跨る

みたいな感じで、各郵便局の担当者がテキトーに手書きしたのもをそのまま打ち込んだ感じなんです。
MS-IMEの郵便番号辞書みたいなきっちりしたものに仕上げるのは大変です。
762NAME IS NULL:04/12/03 13:35:22 ID:???
OracleとかSQLServerでも問題でてるのみたことあるよ
結局海外のツールだったからあたりまえというか

それがLinuxやUnix環境でさわってると日本語が化けるツール等がわりかし多く、
運用管理するツールの選択肢が狭められること、担当者が自分以外にかわったとき
適当に拾ってきたツールがうまく動かないじゃないかといわれたりするので
できるだけ使わないほうがいいという状況は今も変わってない

コード書く人間からするとわざわざFEPONにするのが面倒だとかいろいろあるだろうけど
結局後から追いやすい日本語のほうが俺もいいとは思う

実際のところローマ字あてると人によって
jyutyuuとかjyutyuとかjyuchuとかいろいろあるし
かといって英単語を苦労して当てると聞いたことのないものだったりして
理解に苦しんだりまぁどっちに転んでも問題山積みはかわらん

言語にJavaを選べばまずマルチバイト通るからすべてのツールはJavaを通すこと、
IDEから含めてマルチバイト圏の人がすべて設計から開発までしてること
という条件があるなら安心していけるけど、実際はIDEもすべてあちらだし
ツール類ももちろんすべてあちら

そしてそれらをすべて自作しようと思うとコストがかかりすぎる
763NAME IS NULL:04/12/03 19:27:48 ID:???
>>761
いや、それがデータとして正しい。

郵便番号がユニークキーであって、住所番地がキーのデータではないから。
郵便番号には、複数の住所が結んである場合も当然あるので、そうなるのは仕方ない。
郵便番号簿というのは、住所から郵便番号を調べるためにあるので、
日本語で読んで解ればまったく問題がないものだし。
役所が電子化する以前のシステムなので、それは仕方ないよ。

だから、郵便番号を入力すると、住所を補完してくれるサイトなんかを使うと、
普通に『西新宿(次のビルを除く)』とか変換されて悲しくなったりすることもあるけど。
764NAME IS NULL:04/12/03 20:31:30 ID:???
>>763
まあそうなんだけどね。
結局根性で整形するプログラム書いたので今楽ちんだけど。
765NAME IS NULL:04/12/04 02:44:22 ID:???
>>760
確かにAccessVBA+SQL Serverのシステムでテーブル名もカラム名も、
コード内の変数名までみんな漢字というのを見たことがあるが、あれはあれで、
見易くはあるな。

仕様書が見易いというよりは仕様書なしでいきなり作られてて製造者が逃げて
泣きつかれた時なんかはコード追っかけやすくてよさそうだった。

766NAME IS NULL:04/12/04 03:00:00 ID:???
日本語ベーシックみたいで俺はダメだぁ・・・
767NAME IS NULL:04/12/04 03:05:40 ID:???
システムに使うすべてのOS、アプリケーション、言語などが、
同じ文字コード前提で、それに対応してるのなら、使えるのは当たり前だわな。
Windowsサーバに、WindowsOracleに、ASPなら問題も出ないだろうし、
AccessにSQLServerでも問題は出ないでしょう。

ユニコードになれば、何語で書いても使えるようになるんじゃないの?
768NAME IS NULL:04/12/04 03:57:19 ID:???
ハングル混在とかは問題がありそ
769NAME IS NULL:04/12/04 03:58:32 ID:???
120 モシ A=4 ナラ 250 ヘ イケ
770NAME IS NULL:04/12/04 04:08:05 ID:???
ぴゅう太乙
771NAME IS NULL:04/12/04 04:59:50 ID:???
トンパ文字
772NAME IS NULL:04/12/04 14:59:28 ID:???
アラビア語みたいに、右から書く言葉が混じるとつらいね。
773NAME IS NULL:04/12/04 19:25:54 ID:???
PostgreSQL-8.0.0 RC1出ました。
774NAME IS NULL:04/12/04 21:07:21 ID:OjLRj/5y
ユニコードにも各ベンダに解釈の違いがあるのよ。特にOracleはひどい
775NAME IS NULL:04/12/05 20:55:43 ID:???
誰が見てもわかるPostgreのインストール手順が
書かれているサイトってありませんか?
いろいろ本見てやっても上手く逝かないんです。
776NAME IS NULL:04/12/05 20:58:31 ID:???
>>775
「誰が見てもわかる」って幼稚園児とかも含むのか?
777NAME IS NULL:04/12/05 21:37:26 ID:???
>776
釣りですか?ほとんどの幼稚園児が
postgreを理解できるわけないと思いますが・・。
すみませんが、真面目に困っているんです。
778NAME IS NULL:04/12/05 21:41:25 ID:???
自分が幼稚園児級に見られてることも知らず・・・
779NAME IS NULL:04/12/05 21:42:28 ID:???
OSは?
何をやって何がうまくいかなかったの?

質問の定型さえそろえられないなら園児以下と見られてもしかたがない
780NAME IS NULL:04/12/05 22:11:33 ID:???
freeBSD5.2で、7.4.6をかつおぶしのTipsを見ながらやってみましたが、
gmakeのコンパイルで最後のReady to install.が出なかったです。
明確にエラーとは出なかったのですが。
また、ある本を見て6.3.1をインストールしてみたのですが、
こちらもgmakeが通りません。こちらははっきりとエラーがでました。
エラーは必ず同じ内容で、再現します。
ちょっと今はマシンの電源を落としてしまって明記できませんが。
gmakeのバージョンがかなり新しいので、古いpostgreと
合わないのでしょうか?

あと、シェルはbash以外では問題があるのでしょうか?
781NAME IS NULL:04/12/05 22:24:25 ID:???
ふつーにportsでインストールしてください
782780:04/12/05 22:31:23 ID:???
>781
ネットワークにつながっていないですが、
問題ないでしょうか?
783NAME IS NULL:04/12/05 22:38:23 ID:???
ネットにつながってないと、むずかしいと思う。
とりあえずインストールの時だけつなぐというのは?
784780:04/12/05 22:59:00 ID:???
>783
どうやって繋げばいいのか分からないので、
そこから調べないといけません。
安全、迅速にインストールする方法はないものでしょうか?
翔泳社のPC UNIXユーザのためのPostgress・・・
の新版(2004/06)は役にたちませんか?
購入を検討しているのですが。
785NAME IS NULL:04/12/05 23:46:08 ID:???
786780:04/12/06 00:28:24 ID:???
>785
何故、その書籍がお勧めなのでしょう?
787NAME IS NULL:04/12/06 02:16:11 ID:???
788NAME IS NULL:04/12/06 03:05:22 ID:???
>>775
そういう人のために、SIベンダという業者があるんだと思いますが。

まさか、技術者や研究者なのにインストールできないとかいうオチじゃないですよね?
789NAME IS NULL:04/12/06 11:57:42 ID:???
>>780
PostgreSQL本といえばコレ というくらいのバイブルだからです。
初版は無料でPDF公開されているというオマケ付きです。

最新版は第4版です。PDFを見て気に入ったら買うといいと思います。
790NAME IS NULL:04/12/06 12:29:15 ID:???
通称シーラカンス本だっけ
たしかにこれがスタンダード
初版はさすがに内容が古いな
791NAME IS NULL:04/12/06 14:14:20 ID:???
とりあえず今売りのSoftwareDesign買え
792NAME IS NULL:04/12/06 14:34:29 ID:???
日を求めるのに、一桁の場合01のように前に0をつけたい
のですが、どのようにすればよいかわかりますか?
date_part関数だと0がつかなかったので。
ご存知の方よろしくです。
793NAME IS NULL:04/12/06 15:01:15 ID:???
それは、数字や日付という扱いではなく、文字列にすると言うこと?
普通に文字列扱いにして、一ケタなら0を加えるようにすればいいのでは。
794792:04/12/06 15:12:21 ID:???
> 793
その通りだった。
汚してスマソ
795NAME IS NULL:04/12/06 22:54:28 ID:???
796NAME IS NULL:04/12/07 11:01:54 ID:???
vacuumdb -f dbname をすると、1GB程度メモリを使って解放しないのですが、
これはやり方がまずいのでしょうか?
クーロンで一日一回実行していますが、PostgreSQL自体も再起動させたほうが
いいのでしょうか?
797NAME IS NULL:04/12/07 11:07:24 ID:???
だから、環境くらい書けと何度言ったら(ry
798NAME IS NULL:04/12/07 11:07:55 ID:???
あと、環境に、ディスクの回転数はいらないからな。
799796:04/12/07 14:04:38 ID:???
失礼しました。環境は

[PostgreSQL] 7.3.4

[postgresql.conf設定]
max_connections = 128
shared_buffers = 256

[HDD]
da0: <FUJITSU MAN3184MP 5507> Fixed Direct Access SCSI-3 device
da0: 160.000MB/s transfers (80.000MHz, offset 127, 16bit), Tagged Queueing Enabled
da0: 17366MB (35566478 512 byte sectors: 255H 63S/T 2213C)

[CPU]
CPU: Intel(R) Pentium(R) III CPU family 1133MHz (1130.45-MHz 686-class CPU)

[メモリ]
real memory = 2147475456 (2047 MB)
avail memory = 2084921344 (1988 MB)

[OS] FreeBSD 5.2-RELEASE

[カーネル再構築]
options SYSVSHM #SYSV-style shared memory
options SYSVMSG #SYSV-style message queues
options SYSVSEM #SYSV-style semaphores
options SHMMAXPGS=4096
options SHMSEG=256
options SEMMNI=256 # 150/4以上
options SEMMNS=512 # 150以上
options SEMMNU=256 # SEMMNS/2+1
options SEMMAP=256 # SEMMNI + 2
800NAME IS NULL:04/12/07 15:28:04 ID:???
システムがキャッシュしてる領域じゃなくて?
801NAME IS NULL:04/12/07 16:22:37 ID:???
「解放」の定義が庶民と違うのかもね
802796:04/12/07 16:35:32 ID:???
バッファでもキャッシュでも共有でもなくメモリ使用自体がグッと増える
んですが、それが解放されていません。
vacuumdb -f dbname を実行したごく短時間のうちに1GBほどが・・・。
803NAME IS NULL:04/12/07 18:18:44 ID:5n3ZVKvN
postgresqlで作成したテーブルの属性を確認するには
どのコマンドなのでしょうか?
oracleでいうところのdescです。
804NAME IS NULL:04/12/07 18:38:30 ID:???
\d
805803:04/12/07 18:50:11 ID:5n3ZVKvN
>>804
とても助かりました。ありがとうございます。
806NAME IS NULL:04/12/07 20:05:42 ID:???
テーブル t1 に 100 件のデータがあります。
そのうち 90 件の郵便番号 zip にデータが入っており、残り 10 件は NULL です。

その時に

select zip from t1 where zip not like 'abc';

は 100 件を期待したのですが、NULL の 10 件を除いた 90 件が返ります。

select zip from t1 where zip not like 'abc' or zip is null;

かな、と思ったのですが同じように 90 件です。
NULL を「abc」じゃない、と見なして 100 件にする方法はありませんか?
807NAME IS NULL:04/12/07 20:54:31 ID:???
zip is null or
808NAME IS NULL:04/12/07 23:48:29 ID:???
>>802
で、vacuumdb実行前後のswapinfo,vmstatとかの結果はどうなってんのよ。
809NAME IS NULL:04/12/08 00:25:50 ID:???
>>806
>807に答があるが補足な。
NULLは特殊な値で、IS NULL/NOT NULLでしかSELECTされないのだ。
俺もはじめのうちはハマったな。NULLには。
810NAME IS NULL:04/12/08 01:37:35 ID:???
NULLは「abc」でも「abcじゃないもの」でもない、なにもないんだね。
811NAME IS NULL:04/12/08 01:58:04 ID:???
NULLとブランクを混同すると駄目だよな。
812NAME IS NULL:04/12/08 07:30:42 ID:???
それは駄目すぎだろ。このポコチンが!
813NAME IS NULL:04/12/08 12:28:13 ID:???
そのようなおぞましいもの、ついてませんが、なにか?
814NAME IS NULL:04/12/08 18:32:16 ID:???
現在
クライアント:Win+C+libpq IP 192.168.0.100
サーバー:Vine+PostgreSQL7.4.5+OpenSSL IP 192.168.0.200 db.****.jp
でプログラムを作っています。

pg_hba.confに
hostssl all all 0.0.0.0 0.0.0.0 trust
を追加

クライアントのCのプログラム内で
conn = PQconnectdb( "host=db.***.jp dbname=111 user=aaa sslmode=require");
とし、接続しようとすると
「pg_hba.conf内に192.168.0.100 dbname=111 user=aaaは記述されていません? SSL=Off」
というような内容のエラーがでます。
同様のプログラムをサーバー内で実行したところエラーはでませんでした。
クライアント側から接続するにはどうすればいいのでしょうか?
815NAME IS NULL:04/12/08 19:28:41 ID:???
time型データで
----time--------
19:21:01.159871
19:22:36.451286
18:45:24.484522
14:28:15.234152
を時間別に集約したSQL文をどう書けばいいかわかりません。
↓これはだめでしたこんなかんじです。
select time,count(*) from table group by substr(time,1,2)
結果
時間--件数--
14 1
18 1
19 2
と取得したいのです。
816NAME IS NULL:04/12/08 19:52:39 ID:???
817NAME IS NULL:04/12/08 20:15:35 ID:chzY6eiR
timestamp型の端数を切り捨てたいならextractと同じような関数がもう一個ある
date_trunc('hour', current_timestamp)
time型を使った時点で負け組
818NAME IS NULL:04/12/08 21:09:27 ID:???
>>814
libpqがsslに対応してないとか。
819814:04/12/09 02:05:18 ID:???
>818
PostgreSQL 7.4.5 文書ではSSLに対応しているとでています。
ですが、クライアント側で使用しているlibpqのヘッダ・ライブラリは確かどこかのHPで拾って
きたもののような気が・・・。
調べてみたところ、「nmake /f win32.mak」のコマンドでwindows用のファイルを作成するようなことが出ていますね・・・。
今は手元に作成中のプログラムがないのですが、今度やってみようと思います。
820815:04/12/09 13:27:50 ID:???
>>816>>817
ご回答の程、ありがとうございます。
extract関数は知りませんでした。
ただ、この関数だと直接データを指定するのみで
テーブルのフィールドデータはどのような記述になるのでしょうか?
select date,time from table
group by date,extract(HORU FROM time time)
821NAME IS NULL:04/12/09 16:34:40 ID:???
姓 | 名 | date
山田 | 花子 | 2004-12-03
山田 | 太一 | 2004-12-03
村上 | 健一 | 2004-12-04
村上 | 健一 | 2004-12-04
藤本 | 太郎 | 2004-12-05
田中 | 次郎 | 2004-12-05
山田 | 花子 | 2004-12-05

2004-12-05以前には存在しなくて、2004-12-05 のみ存在する名前の一覧。
ここでは 山田 花子 は 2004-12-05 に存在するのでアウトで
藤本 太郎 と 田中 次郎を抜き出すにはどうすればよろしいでしょうか?
822821:04/12/09 16:35:42 ID:???
間違いました。
> 山田 花子 は 2004-12-05 に存在するので
山田 花子 は 2004-12-05 以前にも存在するので
823NAME IS NULL:04/12/09 18:33:09 ID:???
(select first_name,last_name,date from t1 where date = '2004-12-05') EXCEPT (select first_name,last_name,date from t1 where date < '2004-12-05')
824NAME IS NULL:04/12/09 20:09:53 ID:???
>820
こんな感じ
select extract(HOUR FROM time) from table

825NAME IS NULL:04/12/10 14:33:37 ID:???
select first_name, last_name, date from t as t1
where date = '2004-12-05' and not exists
(select * from t as t2 where t1.first_name = t2.first_name
and t1.last_name = t2.last_name and date < '2004-12-05')
8261/2:04/12/10 16:10:55 ID:vBo2xf8o

長文失礼します

例の郵便番号を10回読み込ませて、擬似的に100万件のデータを登録しました。
それで、検索速度を調べてみました。

INDEXは郵便番号部分と、住所カタカナの部分に張りました。

1.SELECT * FROM 郵便 WHERE 郵便番号 = '111-1111'
これは早いです、0.1秒の世界。

2.SELECT * FROM 郵便 WHERE 住所カタカナ like 'ドコカノマチ%'
下方への曖昧な検索です、これもなかなか早い、0.8秒の世界

問題なのは次です。
3.SELECT * FROM 郵便 WHERE 住所カタカナ like '%ドコカノマチ%'
上方と下方への曖昧な検索です、これはめっさ遅い、30秒の世界。

問題を調べていくと、メモリキャッシュが1,2では有効に働いていて
3.ではディスクアクセスが頻繁に発生しています。
仕方ないので、共有メモリを鬼のように取り、shared_buffersを増やしてみました。

だが、変化無し。
何か良い解決手段はないでしょうか?

マシン構成とOSは次のレスで書きます。
8272/2:04/12/10 16:16:26 ID:vBo2xf8o

マシン構成

CEL_1Ghz
MEM_512MB

OS:FreeBSD5.3-Release
DB:Postgresql-7.3.8
[ カーネル ]
options SHMMAXPGS=40000
[Postgresqの設定]
shared_buffers = 16000

今はテストマシンを使用しているのですが
実メモリを2Gにして、共有メモリを1G単位で取れば
メモリキャッシュが有効になるのかなぁ・・・。

とりあえず、解決方法を知っている方がいたら宜しくお願いします。
828NAME IS NULL:04/12/10 18:00:24 ID:???
>>826
1と2はインデックスが効くけど、3は効かない。
PC側の設定で凝ったことはしたこと無いが、速度的にはそんなもんじゃないかな。

部分一致を高速に検索するなら、検索用のテーブルを作るしかないんじゃないかな。
829NAME IS NULL:04/12/11 03:43:55 ID:???
インデックスが使えるか使えないかだけの話だよね。
830NAME IS NULL:04/12/11 03:57:37 ID:???
>>826
like を使わずに済むようにデータ構造を見直すか、
DB 使わず全文検索エンジンでも使うとか。
831NAME IS NULL:04/12/11 13:49:05 ID:???
>>826 みたいな書き込みを見ると、ハードの高性能化に押され気味な
ソフトウェア技術者の存在価値がまだまだ残っているなとほっとするよ。
832NAME IS NULL:04/12/11 13:52:49 ID:???
むしろ>>826はSQLしってるひとからみたらつりかと
833NAME IS NULL:04/12/11 14:09:44 ID:???
まぁ、色々な人がかねてから指摘してることだが

商売や研究や勉学でやってるはずなのに、レベル低すぎ

と言うことだな。


趣味的に遊んでる人は勝手に悩んでればいいけど。
834NAME IS NULL:04/12/11 14:10:56 ID:???
それだけ裾野が広がったと言うことだろうが、
俺たちの時代はみんな独学でブツブツ…(ry
835NAME IS NULL:04/12/13 11:31:55 ID:???
EUC環境で構築したPostgreSQLのサーバに対して
同じくEUC環境のTomcatサーバと
UTF-8環境のTomcatサーバの二つからアクセスしています。

当然EUC環境同士は問題ないのですが、UTF-8のTomcat上で動くServletから
日本語を含んだINSERT文を投げると、文字化けされた状態でDBに登録されるのですが、
なにか回避方法はありますでしょうか?

ちなみにINSERT文を実行する直前にそのSQLをSystem.out.println(...)で出力しても
コンソールには日本語が正しく表示されます。
836NAME IS NULL:04/12/13 12:20:25 ID:???
>>835
変換してないんだから当たり前。
コンソールで文字化けしないのも当たり前。
837NAME IS NULL:04/12/13 12:27:09 ID:???
>>836
だから835はその変換方法が知りたいんだろ?
838NAME IS NULL:04/12/13 12:54:38 ID:???
>なにか回避方法はありますでしょうか?

が、質問なんだから。

変換すれば?

が、答えだな。
839NAME IS NULL:04/12/13 13:22:58 ID:???
というか、Javaから使うならUnicodeデータベースにしておけ、と。
840NAME IS NULL:04/12/13 13:26:26 ID:???
Tomcat両方ともEUCにすりゃいいじゃん。
841NAME IS NULL:04/12/14 01:41:18 ID:???
Postgresがディスクに吐き出す各種実ファイルに関するの資料、ていうのは
どこぞに無い物だろうか。いや、なんか鯖を長期放置するとレコード数に変化は
ほとんど無いのに(更新は頻繁らしい)TOASTのファイルが膨れ上がってディスク
圧迫するから調査汁、との命が下ったので調査している訳だが。

ドキュメントにはそういった低レベル層の情報は記載されておらず、ググっても
探し方が不味いのか「TOASTによって1レコード8KBの縛りが解けた」程度の物しか
かからん...。

解決案だけならバキュームorリインデックスor鯖の再立ち上げすれば直る、との
事例が何件かかかりはしたが、調べたいのは解決方法では無く膨れる方の原因。
ううむ。
842NAME IS NULL:04/12/14 03:38:27 ID:???
Tomcatの出力とDBのコードとはまったく関係ないぞ
Javaは内部はすべてUTF8だし
843NAME IS NULL:04/12/14 03:57:52 ID:???
>>841
Postgresは更新(UPDATE)の場合でも、古いデータはそのまま残して、
更新後の新しいデータを挿入するから、更新が頻繁だとほっとけば
更新の分だけ膨れますよ。削除(DELETE)も同じでデータそのものは
残ってます。この辺りはMVCCの弊害かな。
844NAME IS NULL:04/12/14 08:57:46 ID:???
>>842
入力だろ。
ブラウザのフォームから送信されてきた文字コードが関係してくる。
Tomcatに載せてる(固定HTMLでもいいけど)アプリケーションから文字コードがEUCで送られてくれば
EUCのまま処理されるし、UnicodeにしてればUnicodeのまま処理される。
845NAME IS NULL:04/12/14 12:53:04 ID:???
>>844
ほんとうにTomcatつかってるの?
846NAME IS NULL:04/12/14 13:23:22 ID:isOo4OrY

データ件数に対する、キャッシュの量の目安について質問します。

メインのテーブルのデータの件数が1万、10万、50万の
3つのデータベースがあったとして

それぞれ、どれくらいのメモリキャッシュサイズが適当だと思いますか?
847NAME IS NULL:04/12/14 13:35:03 ID:???
>Javaは内部はすべてUTF8だし

EUCで入力すれば、ずっとEUCのまま扱われるわけだが。
848NAME IS NULL:04/12/14 13:37:46 ID:???
849NAME IS NULL:04/12/14 13:38:27 ID:???
>>846
それだけで答えが出せるとマジに思ってるわけ?
850NAME IS NULL:04/12/14 14:16:55 ID:???
>>847
こんなプログラマ使いたくないな
851NAME IS NULL:04/12/14 14:47:22 ID:???
>>850
出た
自動脳内文字コード変換厨
852NAME IS NULL:04/12/14 15:03:30 ID:???
>>851頭大丈夫か?
普通はServletRequest.setCharacterEncoding()とか
web.xmlの中にフィルタの文字コード設定いれてフィルタリングするかだろうが

StringはUTF8以外を格納したときの動作保障ないんだから
そこに無理やりへんなのいれるって・・・
853U ◆CZtFsGiu0c :04/12/14 15:08:51 ID:???
>>835
「EUC環境」「UTF-8環境」ってどういう意味で使っているのですか?
その文字コードでHTTPレスポンスを出力しているということですか?

Postgresは使ったことないですけど、きちんと設定してあればJavaプログラムと
DBとのやり取りで文字化けが発生することはないです。もしHTTPレスポンスの
文字コードによって文字化けが発生したりしなかったりするとすれば、HTTP
リクエストのハンドリングをきちんとしていないのではないかと思います。

>>842
Javaの内部コードはUCS2です。
854NAME IS NULL:04/12/14 15:10:30 ID:???
>>852
するだろうがって、してないからそのままなんだろ。
それは変換するように設定してるからであって、
JavaがUTF-8なのとは何の関係もないことだが。
855NAME IS NULL:04/12/14 15:14:42 ID:???
質問の内容飛ばしてるから荒れてるんだろ
質問者は、UTF-8のTomcatからEUCのDBサーバに
INSERTすると文字化けするけど、EUCに設定してる
Tomcatから呼ぶと文字化けしてないと言ってるんだぞ。

EUCの文字、そのままEUCのDBに入れれば、文字化けもせずに入るのは当たり前。
UTF-8の文字を、そのままEUCのDBに入れれば、文字化けするのは当たり前。
JAVAだから、Tomcatだからなんて全く関係ない。
PHPだって同じ。
856NAME IS NULL:04/12/14 15:17:02 ID:???
>>852
頭大丈夫か?
EUCのDBにデータ入れるのに、UTF-8に変換してどうするんだよ。
EUCのデータをそのまま流して問題ないと言ってるんだよ。
EUCのデータが問題があると言ってるのなら、確かにそうだが。
857NAME IS NULL:04/12/14 15:17:23 ID:???
俺はTomcatに詳しいぜと言いたいだけだろ
858NAME IS NULL:04/12/14 15:19:45 ID:???
>>853
Stringは内部でたしかUTF-8だったような。
コード書く側はキャラクタはUCS2なのでまったく意識しないけど。

>>854
してないのが問題って普通は思うねぇ。

>>835
ユーザーからのリクエストをそのまま流すってことはやめたほうがいい。
サーブレットコンテナによって、特にGETのエンコーディングは
ややこしいからちゃんとサーブレットフィルタとかを導入したほうがいいよ。

PostgreSQLにたいしてはJDBCドライバレベルでUTF-8からサーバーの
設定されたエンコーディングにコード変換されるわけで、そこをUTF-8
以外にしているということは危険かと思う。
859NAME IS NULL:04/12/14 15:22:10 ID:???
>>856
俺が言ってるのはJavaの内部で扱うコードはUTF8にしていれば
JDBCドライバがEUCなりUTF8なりサーバーの環境に合わせた
保存形式にしてくれるから、ということだった

最後の行のとこを言いたかったのだけど説明不足ですまんそ
860U ◆CZtFsGiu0c :04/12/14 15:57:47 ID:???
>>858
言語仕様やVM仕様では、StringクラスはUnicode(=UCS2)文字列を表す、
とはあるけど内部コードがどうかはわからんですね。char=16bitだから
UCS2だと思ってたんですが、明確な根拠が見つからん:-)
861NAME IS NULL:04/12/14 16:00:09 ID:???
>>858
だから、お前は自分の知識を披露したいだけで、質問に答える気はあるのかと。
スレ違いなんだよ、JAVAの内部の話なんて。
862NAME IS NULL:04/12/14 16:01:57 ID:???
>>861
今回の>>835の問題はPostgresのほうではなくて
Java側のコードに問題があるとみんな指摘しているだろうに
863NAME IS NULL:04/12/14 16:30:41 ID:???
だからスレ違いなんだって。
日本語読めない奴に注意しても仕方ないけど。
864NAME IS NULL:04/12/14 17:35:10 ID:???
>みんな指摘しているだろうに

多分お前だけだろう
865NAME IS NULL:04/12/15 01:14:33 ID:???
あるデータベース(foo)の特定のテーブル(bar)だけダンプ(hoge.dump)して、いじくった後、
ダンプされたもの(hoge.dump)を元にデータを復元するのって、どうやるんですか?
866NAME IS NULL:04/12/15 13:34:56 ID:???

このスレって質問に答えないで
貶す人が多いですな。
867NAME IS NULL:04/12/15 14:22:30 ID:???
仕方ないよ
厨しか集まってこないんだから
868NAME IS NULL:04/12/15 15:01:05 ID:???
>>865
$ pg_dump -d foo -t bar > hode.dump
   :
(barを弄くり倒す)
   :
$ psql -d foo -c "drop table bar"
DROP TABLE
$ psql -d foo -f hoge.dump
869NAME IS NULL:04/12/15 16:33:04 ID:???
>>868
サンクス!

DROP TABLE は必須なのですか?

$ psql -d foo -c "drop table bar"
をやらずに、いきなり
$ psql -d foo -f hoge.dump
やるとまずい?
870NAME IS NULL:04/12/15 16:53:24 ID:???
>>866
答えられる質問をしないというのもあるわな…
たいがい、スレ違いだったり、同じ文言で検索したら答え出るようなことだったり、
環境とか必要なことを1回で出してこなかったり…
質問者のレベルも明らかに下がってる
871NAME IS NULL:04/12/15 20:02:10 ID:???
>>869
DROPしないとテーブルが既にあるから作れませんと言って断られる。
PostgreSQLのダンプは開いてみれば分かるけどテーブル作って、
データコピーして、インデックスやシーケンス作ってってやるだけ
なんで、現存するテーブルはDROPしないと













872NAME IS NULL:04/12/15 21:37:12 ID:???

>>870

しかし、初心者スレも無い状態で
Postgresqlのことならここで聞けという文言がある時点でそれは仕方ない気もする。

ざっとスレ見た感じ、
仕事等で部下を育てられないタイプが多そうだな、と感じた。
873NAME IS NULL:04/12/15 22:37:44 ID:???
マニアには人格が未熟な人も多いのです
874NAME IS NULL:04/12/16 01:29:06 ID:???
技術や知識は他人がやってるのを見て自分の物にするのが一番いい
教えて貰ってたらいつまでたっても身に付かない
875NAME IS NULL:04/12/16 02:49:50 ID:???

[いっかい やすみ]
876NAME IS NULL:04/12/16 03:32:52 ID:???
技術や知識は他人がやってるのを見て自分の物にするのが一番いい
自分が先にやってたらいつまでたっても身がもたない
877NAME IS NULL:04/12/16 08:54:26 ID:???
>>872
初心者スレという存在も免罪符でどうかと思うけどね。
自分で初心者だと思ってるのなら、本の一冊買って読んだり、
ここのやMLのログ読んだりして一通り勉強くらいするでしょ。
初心者ったって、読書や質問の仕方が初心者なわけじゃないんだし。
878NAME IS NULL:04/12/16 09:27:36 ID:???
そういう初心者もありうる。
879NAME IS NULL:04/12/16 09:35:10 ID:???
それは親に教育し直して貰おうよ。
880NAME IS NULL:04/12/16 09:41:57 ID:???
以前のバージョンって
ALTER TABLE
で外部キーをはるときにそもまま上掛けたけど
今のバージョンって先にDROPしないとエラーになりますよね。

REPLACEみたいなオプションってないでしょうか?
881814:04/12/16 10:08:18 ID:???
PostgreSQL7.4.5のヘッダファイルとWindows機にてコンパイルしたlibpqdll.libを
VC++のプロジェクトに、コンパイルしてできたlibpq.dllをsystem32に入れ実行しても
前回と同様のエラーが発生します。
他になにか原因はあるのでしょうか?
882NAME IS NULL:04/12/16 11:09:23 ID:???

>>877

免罪符とか宗教チックで難しい話になる以前の問題として
初心忘るべからずという事じゃないかな。

と、そろそろこの話は止めた方が良いような気もする。
多分解決しない。
883NAME IS NULL:04/12/16 11:22:32 ID:???
まぁ、次スレから>>1にテンプレ入れようぜ。
ちょっとはググレ、ちょっとは説明書読め、すこしは過去ログ遡れ、
くらいは。
884NAME IS NULL:04/12/16 18:01:12 ID:J+JPYMLL
Postgres+php5を使ってcsvデータを取り込むと文字化けしてしまうんですが
何か良い方法はありませんか?
885NAME IS NULL:04/12/16 18:47:33 ID:???
早速だけど、どういう方法でやって失敗したとか、OSは何かとか、
PostgreSQLのバージョンとか、ファイルの文字コードとか、そういうの書こうよ orz
自分がそういう質問をされたとき、それだけの情報で答え返せる?
886NAME IS NULL:04/12/16 19:10:49 ID:J+JPYMLL
すいませんまだバージョンとかよくわかってないもので。
Postgres7.4.5 + php5 1.3.31
csvファイルの文字コードがShift_JISです見づらいですけどご容赦ください
887NAME IS NULL:04/12/16 19:17:23 ID:???
いやだから、どういう方法で失敗したのかというのが一番重要なわけで…
888NAME IS NULL:04/12/16 19:19:26 ID:???
>>886
あとpostgreSQLの文字コードと、phpで変換どうやってんのかだな。
それとどうやって文字化け確認してるか。
ターミナルでpsql使えるのか、webベースでブラウザでしか確認とれないのか。

要するに取り込めているが取り出す際化けてるのか、そもそもDBに化けて
取り込まれているのかを切り分けることだ。
889NAME IS NULL:04/12/16 20:32:30 ID:???
>>886
885氏、888氏の言うとおりな気がするが、とりあえず、
$hoge = mb_convert_encoding($hoge,"EUC-JP","SJIS")に一票。
890NAME IS NULL:04/12/16 20:35:15 ID:J+JPYMLL
共同で使ってたやつを知らない間に設定変えられてたみたいです
それがわかったんでなんとか出来ました
887-888さんご迷惑おかけしましたホントすいません
891NAME IS NULL:04/12/16 20:49:09 ID:???
で、何の設定だったかも書かない、と。
892NAME IS NULL:04/12/17 01:34:49 ID:ibFP6IpU
初心者スレが出来たら
おいらそっちえ行くぞぃ
みんな焦ってるみたい
893NAME IS NULL:04/12/17 01:42:23 ID:ibFP6IpU
追伸
テンプレ作って情報まとめてくれくれ
文字コードはWEBがあるとさらにワケワカメ
DB自体とっきにくいと思われ
894NAME IS NULL:04/12/17 12:10:36 ID:???
WebProg 板に初心者スレを立てとけばいいと思う。
895NAME IS NULL:04/12/17 19:13:59 ID:???
a と b の2このカラムがあるテーブル test に unique index を設定したいのですが、

create unique index test_idx on test(a,b);

b が NULL の場合だと重複したレコードのインサートか可能になるのですが、
いろいろ調べたのですが、不明です。
現在はアプリ側で対応してるのですが、どうやれば unique index を設定できるでしょうか?
どなたか教えてください。
896NAME IS NULL:04/12/18 00:02:28 ID:???
デフォのpgbenchで遊んでるんだけど、max_connections = 1024が現在最高値。
今のところメモリ不足でswapしたまま帰ってこないんだけど、
意味があるかどうか別として、どこまで増やせるもんなんだろ?
897NAME IS NULL:04/12/18 00:11:54 ID:???
>>895
それでいいんだよ。unique制約付きのINDEXなんだから。
nullはindexに含まれないが、値が重複すればunique制約を受けるから
インサート出来ない。
まあ、uniqueか結合インデックスのどちらかを諦めることだな。
見た感じaがpkeyなんだから普通にCREATE INDEX (a,b)で検索パフォーマンス
に影響なさそうなんだが。。。
898895:04/12/18 21:12:23 ID:???
> 897
違うんです。
本当はもっとカラムがあるのですが、aとbを抜き出しただけなんですよ。

実際のところは違うデータなのですが、
aとbの両方のカラムを1セットでユニークなレコードとして扱いたいのです。
なので b に null がある場合には a のレコードに 「田中」ってデータがある場合には

田中, null

なデータがいくらでも入るのを防ぎたいのです。
なにか unique index 以外でチェックできればいいなぁと。
899NAME IS NULL:04/12/18 21:15:26 ID:???
制約作りたくないのなら
DB制約ではなくてアプリで制約したら?
900NAME IS NULL:04/12/20 01:36:34 ID:???

libpq.dll と libpq.lib を探しまくったのだが、自分の鯖のバージョンのが無い。
これは配布不可なモンなのかな?

でも、よくよく探したら、Postgresql-バージョン.tar.gz のInterfaceの中に
Makeファイルがあったので、コンパイルしたら無事できた。

だが、MSVCが必要になるのね。
久しぶりに、nmakeなんて使ったよ。

これでEXEから直でDBアクセスが可能になる。
ネイティブなEXEから接続する人って少ないから需要も少なそうだ。
やっぱり、JSP、JDBC経由で、WWWが大人気って事か。
901NAME IS NULL:04/12/20 02:44:10 ID:???
というより、libpqの関数を直叩きする人が少ないと思われ。
902NAME IS NULL:04/12/20 23:41:03 ID:???
>>872
このスレはもともと質問用スレであり、本来の
本スレはDB板誕生以前からの流れを汲む下記スレでは?

PostgreSQL & pgsql-jp ML 3テーブル目
http://pc5.2ch.net/test/read.cgi/db/1079771059/

>883
新しいスレを立てる前に、まず上記スレに合流しませんか?
使い分けられているなら良いのですが、
今はPostgreSQLの本スレが2本ある状態です。
903NAME IS NULL:04/12/21 00:05:26 ID:???
MinGW + MSYSとかBCCでもコンパイルできるらしいけどね。
904NAME IS NULL:04/12/21 04:06:58 ID:???
>>902
こんな2ch屈指の過疎板でスレ重複もクソもないから好きにやれば?
むしろ、重複スレ建てまくれ。
905NAME IS NULL:04/12/23 01:04:22 ID:???
8.0.0はクリスマスプレゼントらしい。
906NAME IS NULL:04/12/23 07:37:05 ID:???
RC2 kiteta-。
RC1-ja mokiteta-
RC2、インストール時にPostGIS拡張があった。使ってないからまだ分からんが。
907mk:04/12/23 11:57:53 ID:4tNJfqp/
initcb したときに
creating information schema...
initdb:failed
ってでるんだけどこれってどういう意味なん?


(TT:)
908NAME IS NULL:04/12/23 12:09:04 ID:???
>>907
初期化処理の失敗でしょ

パーミッションとかじゃね?
909NAME IS NULL:04/12/23 20:31:49 ID:???
実データで8使ってる人なんていないだろうから、
特に問題にならないと思うけど、rc2でやばめのバグが発見されてる。

まあ、いつものことだけど、やっぱり8.0.3くらいまでは様子見をしてた方が
よさそうだ。
910NAME IS NULL:04/12/23 21:49:24 ID:???
詳細もしくはソースきぼん
911NAME IS NULL:04/12/23 23:25:26 ID:???
>>910
本家MLだけど、本家ってアーカイブ公開してたっけ。

バグを出した人間は、ただのケアレスミスみたいなこと言ってるけど、
この段階でそういうのが入り込む余地があるってことが、なんか不安。
912NAME IS NULL:04/12/24 00:05:52 ID:???
そうだね。RC2だし。
RC2で新たにエンバグしたんじゃないのなら、しかたないことかと。
913mk:04/12/25 10:40:56 ID:XwNpqCnS
p
914NAME IS NULL:04/12/25 12:13:51 ID:???
>906
それってどこに書いてあるの?
915NAME IS NULL:04/12/25 20:24:14 ID:M5IwN66m
http://plaza.rakuten.co.jp/batrowa/
ここに行ってゲームのことを一から学ぶ<丶`Д´>ニダー
916NAME IS NULL:04/12/25 20:28:03 ID:???
>>915
広告ウザい
917NAME IS NULL:04/12/26 19:11:15 ID:WYt16Lfk
「postgreSQL」 には 「mysql」のデーター定義で使用する
「AUTO_INCREMENT」のような機能はあるのでしょうか???(@p@)
918NAME IS NULL:04/12/26 20:54:20 ID:???
>>917
何で同じ単語をgoogleに入力して検索ボタンを押さない?
919NAME IS NULL:04/12/27 13:44:26 ID:???
なんでマスコットが象なんでしょうか?
920NAME IS NULL:04/12/27 18:16:19 ID:???
VBでODBC使ってResultset開くいて、一行ずつ取得するPGで
集計関数(max,min)の値を取得するところでエラーになるんですが、
これは、回避できるんでしょうか?
921NAME IS NULL:04/12/27 19:07:57 ID:???
マタークの素人だけど集計してるフィールドを取得する時に
集計前のフィールド名を使って指定してたり?
922NAME IS NULL:04/12/29 22:48:52 ID:???
質問です。

現在Java(サーブレット)でWebアプリを作っています。掲示板のような物です。
サーバはRHL9、PostgreSQLのバージョンは7.4.6です。
画面はShift_JISで指定してあり、フォームに入力された値を
サーブレットで受け取り、DBにinsertし、それを閲覧画面で一覧表示します。

実はこれ自体は完成しており、フォームに日本語を入力し、
登録後に閲覧画面に表示させると、無事日本語も化けずに表示されます。

質問はここからです。
そのDBを、pgAdminIIIやEMS PostgreSQL Manager などで見ると
入力された日本語データが全て文字化けしています。
繧ソ繝「繝ェ といった感じで、一見すると UTF-8→Shift_JIS の文字化けのようです。
pgAdminIIIやEMS PostgreSQL Manager等といったツールで、正しく日本語を表示させたいのですが
どう設定すればよいのでしょうか?

よろしくお願いします。
923NAME IS NULL:04/12/29 23:05:44 ID:???
フォントをMSゴシックに設定してみる
924NAME IS NULL:04/12/29 23:20:03 ID:???
んな問題じゃねぇだろ
925NAME IS NULL:04/12/29 23:26:16 ID:???
クライアントエンコーディングと文字セットが間違ってなければ
化けないと思うのだが
サーバエンコーディングがなにで、中に入れてる円コーディングはなにで
とかもう一度良く確認しる
926NAME IS NULL:04/12/30 00:00:07 ID:???
データベース作成時は以下のようにしました
createdb -E UNICODE testdb
ので、文字コードはUNICODE です(Javaを使うため)。
これを表示させるためのクライアントエンコーディングと文字セットがわかりません。

フォーム上から各種データを修正する画面も作ってありますし
$pg_dump -b -F c テーブル名 と $pg_restore -d テーブル名 を使用した
バックアップやリストアもテスト済みで、日本語など問題なく復帰できることも
確認しているため、運用上の問題は無いとは思うのですが
イレギュラー修正時などは直にDBに書き込んだ方が早いので
各種クライアントソフトから修正できないかと思い質問した次第です。
927NAME IS NULL:04/12/30 04:37:37 ID:???
うーん、EMS PostgreSQL Manager Lite で試してみましたが
クライアントエンコーディングをUNICODEとしても、SJISとしても、
文字化けが直りません。というか、どっちも同じ化け方をします。
クライアントエンコーディングをSJISとした場合は、DBがUNICODEですから、>>922のように化けるのは納得がいくんですが
クライアントエンコーディングをUNICODEとしても全く変化がないのが納得いきません。
どこか見落としているんでしょうか?
928NAME IS NULL:04/12/30 10:17:45 ID:???
クライアントで表示する時winとかSJIS環境なら、
例えば、SET CLIENT_ENCODE TO SJIS;
でサーバから受け取るのがSJISになる(サーバ側で変換してるのか、ローカルのlibpqによるのか良く知らないけど)

で、クライアントがSJISで受け取ったとして表示させるには、
そのクライアントでSJISに対応した文字セットを使わなきゃいけない。

あなたの使ってるPosgreSQLManager(win)ならDatabase Proertiesで
Client EncodeingをSJISにFont CharsetをSHIFT JIS_CHARSETに。

そんでOptions > Environment Options > Fontsで
MS UI GothicとかMS PGothicとかMS 明朝とか日本語が表示できるフォントセットに
すればOK。

今試したけどこれで問題ナッシングだよ?
929NAME IS NULL:04/12/30 12:05:38 ID:???
>>928
その設定で化けるんで、もうお手上げです。
何が原因なんでしょうか…

ちなみに、さっきPowerGres落としてきてWindowsマシンにインストールし、
PowerGresサーバマネージャ(GUI)でDB作って、
PowerGresの方を使う設定にしてから自分の作成したWebアプリで
書き込んだりしてみた後、PosgreSQLManagerで中を覗いてみたところ
文字化けせずに表示されました。

一層わからなくなりました。
930NAME IS NULL:04/12/30 12:19:46 ID:???
すいません、ややこしくなりましたが
整理します

・Webアプリ側の設定は(使用するDBの記述以外)変えていない
・RH側はPostgreSQL7.4.6、Win側はPowerGres1.2(試用期間)
・RH側で作ったDB、Win側で作ったDB、共にWebアプリからの書き込み/閲覧は問題なし
・PosgreSQLManagerで覗いたときに
  ・RH側で作ったDBは化ける
  ・Win側で作ったDBは化けない

です。
原因を思い当たる方がいれば、よろしくお願いします。
931NAME IS NULL:04/12/30 13:49:04 ID:???
Windowsのバージョンは何?
932NAME IS NULL:04/12/30 13:55:37 ID:???
Windows2000 SP4です。
933NAME IS NULL:04/12/30 13:57:46 ID:???
>>930
実は、WebアプリがDBに書き込んでいるコードがUNICODEではないとか。
どうすれば直るとか、どうやって確かめるかはわからないですが。
934NAME IS NULL:04/12/30 14:01:37 ID:???
>>933
さっきそれを思い立ち、RH側で
createdb -E EUC-JP testdb
として、Webアプリから書き込んでみたんですが、そうすると
createdb -E UNICODE testdb
としたときと全く同じでした。Webアプリでは読めるし、PostgreSQLManagerでは
繧「繝ェ…といった全く同じ文字化け
-E オプションが効いていない?それとも別の何か…
余計わからなくなってしまいました。
935NAME IS NULL:04/12/30 15:28:04 ID:???
クライアントがWin2000なのが問題では。
ためしにやってみたらXPだと化けず、2000だと化けた。

まあ、2000でも化けずにすむ方法はあるのかもしれんが
オレではわからん
936NAME IS NULL:04/12/30 15:51:58 ID:???
>>935
マジですか!それが原因なんですかね。

自分はWin2kしか持っていないので根本的な解決にはなりませんが、
>>922の通り運用上の問題はとりあえず無いので
原因がわかっただけで充分助かりました。
いずれWindows機を買い直すときが来たら、そのときはXPになっているはずなので
改めて試してみたいと思います(いつになるかはわかりませんが)。

わざわざ試してくださった方々、ありがとうございます。
937935:04/12/30 16:54:43 ID:???
スマン。漏れの勘違いだった・・・
win2000でも表示されてますた・・・あとで吊ってきまつ・・・

さて、再度確認
・postgres.confのclient_encodingはUNICODEになっているか(コメントになってないよね?)
・psql -lで該当のDBのencodingはUNICODEになっているか
・クライアント側でconvertまたはSET client_encode使ってSJIS変換して
 selectかけると文字は正しく表示されるか
・サーバ側のlogにWARNING: ignoring unconvertible UTF-8 characterとか出ていないか
938NAME IS NULL:04/12/30 18:13:27 ID:???
>>937
すいません、間抜けでした。

・postgres.confのclient_encodingはUNICODEになっているか(コメントになってないよね?)

これです。どうやらいつのまにかデグっていて、古いファイルで上書きされていた模様です。
これ元に戻して再起動したところ無事表示されました。

本当にありがとうございました。
939935:04/12/30 18:24:01 ID:???
無事解決してよかった。
じゃ、そろそろ吊ってきます λ......
940NAME IS NULL:04/12/31 15:46:01 ID:???
成仏しろよ
941NAME IS NULL:05/01/03 11:48:57 ID:???
>>917
MySQLのAUTO_INCREMENTに相当するのはSERIAL
942NAME IS NULL:05/01/03 11:51:03 ID:???
SQLが書かれたファイルを実行するのに
psql -e -f file.sql [dbname]
としますが、このときコマンドラインオプションか何かでfile.sqlのSQL文に変数を設定するようなことはできますか?
イメージはmake CFLAGS='-O2' のような感じ。
file.sqlで環境変数が読めるだけでもいいのだが。
943NAME IS NULL:05/01/04 00:48:25 ID:j9ki8lI7
PostgreSQLでラージオブジェクトとしてPDFファイルを登録しています。
そのラージオブジェクトを読み出す場合に、PDFファイルの表示が出来ない
ウェブブラウザの場合には、ファイルを保存するためのダイアログが
表示されます。
その時の保存ファイル名が、PHPファイル名(get_pdf.php等)になってしまいますが、
news.pdf のように変更する事は出来ますか?

具体的には、リンク先に get_pdf.php というファイルを設定して、
このPHPファイルには次のように書いてあります。

// get_pdf.php の一部
$con=pg_connect("dbname=some_db user=www");
$sql="SELECT oid FROM some_db WHERE news_No=3";
$result=pg_query($con, $sql);
$oid=pg_result($result,0,0);
$fd=pg_lo_open($con, $oid, "r");
pg_lo_read_all($fd);
pg_lo_close($fd);
pg_close($con);
944NAME IS NULL:05/01/04 01:07:52 ID:???
>>943
phpを使っているならphp側の仕事だな。
header()関数を使って
Content-Disposition:とContent-type:を吐き出しておく。
945NAME IS NULL:05/01/04 01:08:19 ID:???
>>943
もはやPostgreSQLとは何の関係もない話だ。
http://pc5.2ch.net/php/ へGo!
946NAME IS NULL:05/01/04 18:21:54 ID:B6lG7lz8
主キーに1〜100番号をつけて1から10を表示するのは普通にできるんですが
10〜20と間の表示させたい場合はどうすればよかでしょうか?
947NAME IS NULL:05/01/04 19:25:27 ID:???
10〜20なら
DELETE FROM table WHERE pkey > 9 AND pkey < 21;
かな。
SELECTじゃなくてDELETEってのが味噌だよ > 945

948NAME IS NULL:05/01/05 13:03:51 ID:???
pgadmin3 何とかしてくれ。いいところでアドレス違反。
949943:05/01/05 22:05:54 ID:6TCpvWW7
>>944, >>945
解決しました。ありがとう。
950NAME IS NULL:05/01/05 22:35:30 ID:???
pgadminIIIって初心者しか使わないだろ
951NAME IS NULL:05/01/05 22:44:47 ID:???
えー、便利だよー。
952NAME IS NULL:05/01/05 23:10:51 ID:???
かねやん使うべ
953NAME IS NULL:05/01/06 12:13:14 ID:???
次スレを立てる方へ.

このスレの前スレを html 化してもらいました.これも次スレの 1 に
書いていただけたら助かります.

■   PostgreSQLのことならここで聞け   ■
http://ruku.qp.tc/dat2ch/0501/06/1056960249.html
(http://pc5.2ch.net/test/read.cgi/db/1056960249/)
954NAME IS NULL:05/01/06 14:34:38 ID:???
>>953
GJ
955NAME IS NULL:05/01/06 16:12:54 ID:???
idが1から10のもの(連続する整数)をまとめてinsertするにはどうやればいいですか?
insert into table_name(id) values(1);
を10回繰り返すのはなしという方向で。
956NAME IS NULL:05/01/06 19:32:02 ID:???
結局

TIMESTAMP WITH TIME ZONE



TIMESTAMP WITHOUT TIME ZONE

って
どっちを使えばいいの?
957NAME IS NULL:05/01/06 19:51:21 ID:PHo2e4CR
もうこのスレ終わったな…
958NAME IS NULL:05/01/06 20:24:46 ID:???
>>955
多分,SQLでは無理だと思う.
SQL の INSERT は,複数行が一度に挿入される場合,全部が同時に挿入されたと
みなすようになっている.その複数行間の順番は定義されない.

だから,INSERT を 10回発行するのが王道のはず.
どうしても1回でやりたいなら,1〜10のID があらかじめ書き込まれた中間
テーブルを用意して,それを INSERT ... SELECT するしかないのではないかと.
959NAME IS NULL:05/01/06 20:54:33 ID:???
>955
関数を作ってループさせては?
960NAME IS NULL:05/01/07 01:23:23 ID:???
つか、何のためにそんなことがしたいだか。
961NAME IS NULL:05/01/07 01:28:19 ID:???
手段が目的に変わってるな。
962NAME IS NULL:05/01/07 03:33:29 ID:???
>>169 と同じ質問ですが
テーブル毎に grant 出すの面倒なんですが、DB レベルでの grant とか、特定の
DB 内の全テーブルに grant を自動発行させるとか、できませんでしょうか。


dbname hogehoge
               List of relations
 Schema |        Name         | Type  |  Owner
----------+--------------------------------------+----------+---------
 public | aaa                 | table | hoge
 public | bbb                 | table | hoge


# 現在はこうしている
grant select on table aaa to mona;
grant select on table bbb to mona;


# こんな感じでデータベース単位で権限操作したい
grant select on database hogehoge to mona;
963NAME IS NULL:05/01/07 09:09:05 ID:???
>>955
generate_series (start, stop)
964NAME IS NULL:05/01/07 10:02:57 ID:???
>>963
へえ,こんなものがあったのか,と思ったら,8.0の新規の関数ですか.
http://sql-info.de/postgresql/notes/function-generate_series.html
965NAME IS NULL:05/01/07 17:06:07 ID:???
serial型にINSERTした後にROLLBACKすると
serial値が元に戻らないんですがこういうものなのでしょうか?
966NAME IS NULL:05/01/07 17:32:39 ID:???
>>965
そういうもの。
967942:05/01/07 22:35:19 ID:???
>>942 について
だれかいいソリューションもってないですか?
968NAME IS NULL:05/01/08 00:01:42 ID:???
ねーからレスつかねーんだろ
ここはお前にあわせてみんなが回答する場所じゃないぞ
ソリューションとかカッコつけて英語で解りづらく言って解決できると思ってる?
969NAME IS NULL:05/01/08 01:33:10 ID:???
>>967
file.sql をスクリプトなりで生成したあとに psql すればいいんじゃない
970NAME IS NULL:05/01/08 02:13:21 ID:???
>>967
プロセス改革が必要だ(ゎ
971NAME IS NULL:05/01/08 12:44:34 ID:???
>>967
file.sql に引数付きの PREPARE を書くか、
そもそも関数として登録すればいいんじゃね?
972NAME IS NULL:05/01/08 13:44:23 ID:???
>>942
psql呼ぶのシェルスクリプト
973NAME IS NULL:05/01/08 21:38:30 ID:OFA+99X+
Vine Linux 3.0 + Apache2 + Postgresql7.4.6 + perl
の環境で Postgreのデータ操作で以下のメッセージが表示されます。
原因がわかりません。教えて下さい。コマンドベースならデータの操作できます。
パッケージ管理でperl -> postgresql のライブラリをインストールしたのですが
バージョンなどが原因なのでしょうか?

[Sat Jan 08 21:31:54 2005] [error] [client 127.0.0.1] Can't locate Pg.pm in @INC (@INC contains: /usr/lib/perl5/5.8.2/i386-linux-thread-multi /usr/lib/perl5/5.8.2
/usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl /usr/local/lib/site_perl/5.8.2/i386-linux-thread-multi /usr/local/lib/site_perl/5.8.2 /usr/local/lib/site_perl .)
at /var/www/html/test.cgi line 4., referer: http://localhost/member.html
[Sat Jan 08 21:31:54 2005] [error] [client 127.0.0.1] BEGIN failed--compilation aborted at /var/www/html/test.cgi line 4., referer: http://localhost/member.html
[Sat Jan 08 21:31:54 2005] [error] [client 127.0.0.1] Premature end of script headers: test.cgi, referer: http://localhost/member.html
974NAME IS NULL:05/01/08 22:00:51 ID:???
>>973
エラー内容を読んでも分からなかったのかい?
> Can't locate Pg.pm in @INC
ライブラリパスを探してもPg.pmが見つからないのでperl様がお怒りです。
975NAME IS NULL:05/01/09 04:25:50 ID:i4m6c/dx
postgresqlで各データベースごとの使用容量って制限(quotaみたいな)できるのでしょうか。
/usr/local/pgsql/data/base
の中身をみればできる?とか思いましたが、結局よくわからず。。
現在の使用容量を得る方法も調べてるのですが、わからず。。
(インデックスを含めるかどうか、とかあると思いますが。。)
ちなみに今使ってるものはFreeBSD 4.x + PostgreSQL 7.3.4 です。
レンサバとかだと何かしらの方法で制限してるのでしょうか、何か方法があったら
知りたいです。
もしくは、データの保存ディレクトリをユーザごと(DBの)でわける方法とかあったりするのでしょうか。
よろしくお願いします。
976NAME IS NULL:05/01/10 14:42:43 ID:hATTY7Vv
ERWin(モデリングツール)をPostgreSQLに対応させることはできるのでしょうか?
または, PostgreSQLを使う際にオススメのモデリングツールはございますでしょうか?
977NAME IS NULL:05/01/10 16:49:27 ID:+RJAuM1S
postgresql-8.0-beta1-20040809.msiで
Account passwordと
Verify passwordを入れて [next]を押すと

Invalid user specifierd:ログオン失敗ユーザー名を認識できないか、
又はパスワードが間違っています

って出るのは何ででしょうか?
先に進まない…
978NAME IS NULL:05/01/10 22:44:33 ID:u3Qf5QOE
インデックス(PK)に全角文字って使ってもいいものなんだろうか。。。
技術的には問題ない気がするんだが、みなさんどう思います?
979NAME IS NULL:05/01/11 00:40:07 ID:???
postgresql-8.0.0-rc3-ja.msiを実行してインストールは開始されますが、80%くらいのところで
インストールが失敗したというダイアログがでます。
tmpの下のログファイルを確認せよと表示がでますが、そのログファイルもありません。
なにが原因かわかりますでしょうか
980NAME IS NULL:05/01/11 01:12:07 ID:???
>>979
ネタはよそでやってくれ。

マジならLOGくらい出せ。
981NAME IS NULL:05/01/11 01:18:01 ID:???
ネタじゃねいよ
イベントのプロパティのログはこうなっとります
tmpの下にログファイルがないんだよ。もちろんOKをクリックする前にもない。
--------------------------------------------
製品: PostgreSQL 8.0.0-rc3 -- initdb の実行に失敗しました: 1!
ログファイル 'C:\PostgreSQL\8.0.0-rc3\tmp\initdb.log' を見てください.
注! OKをクリックする前に、このログファイルを読むかコピーしなくてはいけません, それは自動的に抹消されます。

詳細な情報は、http://go.microsoft.com/fwlink/events.asp の [ヘルプとサポート センター] を参照してください。
982NAME IS NULL:05/01/11 03:36:10 ID:???
で、OSとか他に入れてるソフトとかCPUとか、そういうのは言ってくれないんだな。
本気で答えて欲しいのか疑問だわ。
983NAME IS NULL:05/01/11 03:46:39 ID:???
> 他に入れてるソフト

答える気なさそー。

> CPU

関係なさそー。

>>981
次スレ建てて聞きなおした方がいいかもね。
984NAME IS NULL:05/01/11 05:10:44 ID:???
CPUは結構関係あるぞ。
C3だとコンパイル落ちるとか(Postgresじゃないけど)あったって話聞くし。
まぁ、今回はバイナリだが。
985NAME IS NULL:05/01/11 08:47:15 ID:???
教えて君981はどっかよそにいったほうがいいな。
986NAME IS NULL:05/01/11 17:17:07 ID:???
>>983
PostgreSQLの本スレが2本あると新人が迷子になるから
もうひとつの本スレに合流しませんか?

PostgreSQL & pgsql-jp ML 3テーブル目
http://pc5.2ch.net/test/read.cgi/db/1079771059/
987NAME IS NULL:05/01/11 18:31:14 ID:???
>>986
いいアイデアです。
988NAME IS NULL:05/01/12 00:53:58 ID:EnDxXpl0
で、8の正式リリースまだかなー。
989NAME IS NULL:05/01/12 02:11:05 ID:???
クリスマスプレゼントでもお年玉でもなかったね。
990NAME IS NULL:05/01/12 02:16:46 ID:???
バレンタイ(ry
991NAME IS NULL:05/01/12 06:28:41 ID:???
リリースじゃなくて、rc5 きたね
さてさて、これでほんとに最後になるのかな
992NAME IS NULL:05/01/12 09:55:53 ID:???
ドキュメント忘れ、みたいなポカミスしないように
のんびりやってほしいけどね。
993NAME IS NULL:05/01/12 11:30:09 ID:dxbw6oTE
windows版がダメダメなのは相変わらず
ユーザー会もマンセー厨ばかりで腐ってるし
994NAME IS NULL:05/01/12 13:03:46 ID:???
Windows 版は 1.0 みたいなものだしね。
PostgreSQL 6.x も今と比べればダメダメだったし、
生暖かく見守るしかないのでは。
995NAME IS NULL:05/01/12 13:14:02 ID:5qHnMjFe
>>993
ハゲどう

こんな手前味噌な星取り表つくっても無意味だよ。
ttp://ml.postgresql.jp/pipermail/pgsql-jp/2004-December/017980.html
石井某は自賛しすぎるきらいがあるし、とりまきはご機嫌とってるだけ。
996NAME IS NULL:05/01/12 13:24:21 ID:ACKmCDOO
LINUX上で、PostgreSQLをデータベースとすることができる、
会計ソフトってありますか。
997NAME IS NULL:05/01/12 13:47:08 ID:???
>>995
○がずれててよく分からん
998NAME IS NULL:05/01/12 20:51:25 ID:???
>>995
事実だから仕方ないだろ。
べつにPostgreSQLをひいきしてるわけでもあるまい。
999NAME IS NULL:05/01/12 21:16:58 ID:???
>>995
嘘ではないんだが、利用頻度が全く考慮されてないからな。
ルールや継承なんて、使ってるやついるのか?
1000NAME IS NULL:05/01/12 21:37:58 ID:???
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。