X



トップページDB@2ch掲示板
1002コメント295KB
PostgreSQL Part.11©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001NAME IS NULL 転載ダメ©2ch.net
垢版 |
2016/05/03(火) 15:42:33.27ID:???
PostgreSQL (ぽすとぐれすきゅーえる, ぽすとぐれす) について語るスレです。

●関連サイト
PostgreSQL 本家
http://www.postgresql.org/
日本PostgreSQLユーザ会
http://www.postgresql.jp/
ドキュメント
http://www.postgresql.jp/document/current/html/
ダウンロード
http://www.postgresql.jp/PostgreSQL
Let's Postgres (ポータルサイト)
http://lets.postgresql.jp/
pgFoundry
http://pgfoundry.org/

●前スレ
PostgreSQL Part.10
http://echo.2ch.net/test/read.cgi/db/1393353314/
0200NAME IS NULL
垢版 |
2017/02/03(金) 16:35:10.23ID:???
文字コード順でも辞書順でも、それを正解とするかどうかは要件次第。
ちなみに漢数字は、訓読み順で並んでいる。
0201NAME IS NULL
垢版 |
2017/02/03(金) 16:45:47.54ID:???
>>199
理解した。Linuxでも順序は変わるね。
ひらがな/カタカナの濁/半濁の扱いは今でも差があるようだ。設計思想?互換性?
 msvcrt: ハはバばパぱ
 glibc : はばぱハバパ

環境依存が怖い。要件次第だが、自前で「ふりがな」列を用意したほうがマシだな。
0203NAME IS NULL
垢版 |
2017/03/21(火) 17:08:09.19ID:???
他人に公開する予定の無い、自分専用のwebサイトを作る場合でもSQLインジェクション対策はしておいた方がいいよね?
クラスを転用するときに問題になるし、悪意が無くてもエラーのもとだし
0204NAME IS NULL
垢版 |
2017/03/21(火) 17:45:20.99ID:???
おお 久々
3.19行った人いないの?
0205NAME IS NULL
垢版 |
2017/03/21(火) 19:35:41.10ID:???
>>203
言語によるけど今時パラメータクエリぐらいは使えるだろうから普通にパラメータクエリでやるわな
あとから見てもその方がわかりやすいし
0206NAME IS NULL
垢版 |
2017/03/21(火) 20:16:56.50ID:???
>>205
PHPで言えば、pg_query_params()とか?
0207NAME IS NULL
垢版 |
2017/03/21(火) 21:01:55.15ID:NIvfjcd/
phpって対策されていないやつ
非推奨じゃなかったっけ

おいらはPDOでやってるかな
0209NAME IS NULL
垢版 |
2017/03/22(水) 00:21:47.00ID:???
ぽすとぐれすきゅーえる
ぽすとぐれすえすきゅーえる
0210NAME IS NULL
垢版 |
2017/05/10(水) 00:41:30.16ID:Yh/Qr3SR
TIMESTAMP (WITHOUT TIMEZONE)とCURRENT_TIMESTAMPについて教えてください。
INSERTにてCURRENT_TIMESTAMPで入れたあと、SELECTで取り出すと日本時間になっています。
どの時点で日本時間になっているのでしょうか?

1. CURRENT_TIMESTAMPの時点ではJSTだが、INSERTするときにJSTがUTCに変換されて保存され、
  SELECTで取り出すときにシステムの時刻を見て+0900されている
2. CURRENT_TIMESTAMPの時点ではJSTで取得されるが、
  元々これにタイムゾーンのデータはなく、そのまま保存され、
  SELECTで取り出すときは同じシステム時刻を使ってるからたまたま同じタイムゾーンとして取得されている
3. CURRENT_TIMESTAMPの時点ではUTCで取得され、保存もUTCだが
  SELECTで取り出すときはシステム時刻を参照して勝手にJSTにしている
4. その他の未知の仕組み
0211NAME IS NULL
垢版 |
2017/05/10(水) 07:47:06.12ID:???
>>210
http://www.postgresql.jp/document/current/html/datatype-datetime.html
> 通常timestamp without time zoneの値はtimezoneのローカル時間としてみなされる
とあるから、言葉通りだとするなら:
・INSERTするときに時刻の値だけを保存する (+0900を無視)
・SELECTするときに現在のタイムゾーン扱い (+0900を追加)
SET TIMEZONE TOしながら試してみれば検証できるかも
0212NAME IS NULL
垢版 |
2017/05/12(金) 18:06:02.05ID:???
>>210
まず前提として、without time zoneをselectした結果にはtime zone情報はないのだから、UTCもJSTもない。
次にcurrent_timestampは、tz情報付きのデータ。
それをwithout time zone絡むにインサートすると、tz情報は切り捨てられる。(たとえば、"2017-05-12 18:00:00")

そのデータを、日本で取得しようがアメリカで取得しようが、tz情報なしの"2017-05-12 18:00:00"が取得される。
つまり、アメリカで取得した人は、現地時間の"2017-05-12 18:00:00"だと見えるということ。
0213210
垢版 |
2017/05/12(金) 23:59:44.61ID:???
>>211-212
ありがとうございます。
世界向けのSNSを作ろうとしたのですが、これがネックで
時間部分の設計ができない状態でした。
助かります。
0214NAME IS NULL
垢版 |
2017/05/14(日) 15:53:45.17ID:???
お世話になります。

psql で database ごとに history を分けて表示したい (\s) のですが、
(他の databae の history を表示したくない)
どうやったらいいのでしょうか?

よろしくお願いします。
0215NAME IS NULL
垢版 |
2017/05/14(日) 16:12:10.64ID:???
historyって、homeの .psql_history 出してるだけだからなあ
db切り替えるたびにリネームするとか?
0216NAME IS NULL
垢版 |
2017/05/14(日) 20:12:51.97ID:???
ああ、そういう仕組みなんですね。
複数の database をそれぞれ別々に psql で開いたりしてるんですけど、じゃぁ、全然無理ですね。
わかりました、ありがとうございました。
0218NAME IS NULL
垢版 |
2017/05/15(月) 22:58:52.98ID:???
>>217
そのものズバリですね♪
ありがとうございます。
おかげで、.psqlrc っていう設定ファイルのことも知りました。
PostgreSQL の Documentation にありますね。
かさねがさねありがとうございました。
0219NAME IS NULL
垢版 |
2017/06/09(金) 23:25:23.53ID:???
拡張を使った場合、メジャーバージョンが変わるときのアップグレードで使えなくなったり作業が増えたりするのでしょうか?
スキーマのバージョンが変わっている拡張があったら何かしないといけないとか?
0220NAME IS NULL
垢版 |
2017/06/10(土) 15:00:08.80ID:jh8YfBo0
そこまでわかったいたら随時チェックしたほうがいい
0221NAME IS NULL
垢版 |
2017/06/14(水) 00:49:31.73ID:???
30分単位とかで時間を丸めてくれる関数ないですか
0222NAME IS NULL
垢版 |
2017/06/14(水) 02:30:34.88ID:???
ないんじゃないかな
0223NAME IS NULL
垢版 |
2017/06/14(水) 11:05:12.90ID:???
>>221
> 30分単位とかで時間を丸めてくれる関数ないですか
自作すれば?
0224NAME IS NULL
垢版 |
2017/06/14(水) 11:25:06.19ID:???
トリガのデバッグってどうやってますか?
初めてトリガ関数作ります
0225NAME IS NULL
垢版 |
2017/06/14(水) 11:27:34.06ID:???
>>224
普通に、クエリ後、関連データを取得してassert
0226NAME IS NULL
垢版 |
2017/06/14(水) 11:36:05.69ID:???
>>225
ASSERT文、調べました。
そういうのがあるんですね♪
ありがとうございました
0227NAME IS NULL
垢版 |
2017/06/14(水) 13:45:01.50ID:???
>>226
たぶん勘違いしてる
クライアントコードを実装する、JavaとかPHPとかのプログラミング言語で普通にチェックしろってこと
IDEでステップ実行とかできないからね
0228NAME IS NULL
垢版 |
2017/06/14(水) 16:42:17.71ID:???
>>227
> クライアントコードを実装する、JavaとかPHPとかのプログラミング言語で普通にチェックしろってこと
そうなの?
それなら俺も勘違いしてたわ。
0230NAME IS NULL
垢版 |
2017/06/14(水) 17:40:45.85ID:???
そう思う。自立型トランザクションを使えばログ表に対するcommitを必ずしながら
トリガー本来の処理ではrollback等もできる。多分10g以降の機能で9iでは不可。
0231NAME IS NULL
垢版 |
2017/06/14(水) 17:51:09.39ID:???
>>229
普通にデータベースにアクセスするメソッドをテストする方法と同じだよ。
確認する項目が、トリガーが変更したデータも対象になるってだけで。

普通にデータベースにアクセスするメソッドをテストするときもprintfデバッグしてたら、
トリガーのテストもそうなるだろうけど、普通はコードで確認するんじゃないか?
0232230
垢版 |
2017/06/14(水) 17:57:11.64ID:???
ゴメン。Oracleと勘違いしてた。>>230 は無視して
0233NAME IS NULL
垢版 |
2017/06/14(水) 18:26:54.70ID:???
>>231
トリガだと「普通のアクセス」とはデバッグ方法が違いそう、ってのが質問の意図じゃないの?
それを「同じだよ」で済ませるのは会話が噛み合っていない感がある

トリガの内部で何が起きているかのデバッグにはprintf程度しか道具が無いんじゃないかな?
トリガの結果が適切かを確認するにはテストコードを使うのはわかる
0234NAME IS NULL
垢版 |
2017/06/14(水) 19:40:35.30ID:???
日本語メッセージでGSSAPIがGSSAIになっちゃってるところがある
0235NAME IS NULL
垢版 |
2017/06/15(木) 10:34:25.70ID:???
>>233
> トリガの内部で何が起きているかのデバッグにはprintf程度しか道具が無いんじゃないかな?
内部が正しいと確信が持てるだけのテストをすればいいだけ。
てか、トリガーのコードじゃなくて、ホストプログラムのコードだってそうだろ?
まぁ、途中で変数の中身を見ないと、なにが行われているのかわかれないスキルレベルだったら話は違うが。
0236NAME IS NULL
垢版 |
2017/06/15(木) 12:57:16.02ID:???
>>235
ホワイトボックステストも知らないなら絡んでくるなよ
0237NAME IS NULL
垢版 |
2017/06/15(木) 13:34:54.71ID:???
>>236
いや、ホワイトボックステストの話をしてるつもりだが。

TDDはホワイトボックステストだが、やることは、
・前提条件を作る
・テスト対象のメソッドを呼ぶ
・結果を確認する
を、自分の確証が持てるまでやる。

トリガーをテストする場合も同じ。
トリガーをキックするメソッドを呼び出すか、あるいは直接INSERT/UPDATE/DELETEを実行し、
トリガーが変更した内容を、実際にデータを取得してassertする。

C0カバレッジで満足できるならそこでやめる。
確証が持てないなら、C1カバレッジになるようなテストを追加する。
0238NAME IS NULL
垢版 |
2017/06/15(木) 14:01:14.73ID:???
GUIでブレークポイント張ったりステップ実行させたりもできるようだね。
俺は使ったことないけど。

PL/pgSQLデバッガを使ってみよう
http://pgsqldeepdive.blogspot.jp/2013/05/plpgsqldebugger.html

PostgreSQLのPL/pgSQLのデバッガpldebuggerを使ってみる
http://qiita.com/sadapon2008/items/627d0649122628c115f6

git repository
https://git.postgresql.org/gitweb/?p=pldebugger.git;a=summary
0239NAME IS NULL
垢版 |
2017/06/15(木) 14:12:51.09ID:???
>>237
テストのやり方はそれでいいけど、テストが失敗してなおかつ原因がよくわからないときの話じゃないかな
そういうときは、raise noticeがやっぱり最強だと思う
0240NAME IS NULL
垢版 |
2017/06/15(木) 18:22:46.73ID:???
トリガーはいいとして、複雑なクエリのデバッグはどうやるつもりなんだろうか
それこそ、printfも使えない
0241NAME IS NULL
垢版 |
2017/06/15(木) 18:48:03.58ID:???
>>237
背伸びしすぎ

> TDDはホワイトボックステストだが
TDD の話なんて誰もしてない
最近知って話したくてしょうがないのか? w
そもそも TDD はコードを作る前にテストケースを作るからホワイトボックステストにはならない
むしろ仕様からテストケースを作るのでテストケースの作り方としてはブラックボックステストに近い

> ・前提条件を作る
> ・テスト対象のメソッドを呼ぶ
> ・結果を確認する
その前提条件の作り方の話だぞ
> を、自分の確証が持てるまでやる。
違う、ホワイトボックステストでは内部のコードを考慮してテスト条件を作るんだよ
それがわかってないから
> トリガーをキックするメソッドを呼び出すか、あるいは直接INSERT/UPDATE/DELETEを実行し、
> トリガーが変更した内容を、実際にデータを取得してassertする。
なんてアホなことを言い出す
0242NAME IS NULL
垢版 |
2017/06/15(木) 21:33:54.87ID:???
IPAのデータベーススペシャリスト持ってない奴は書き込むなよ
0243NAME IS NULL
垢版 |
2017/06/15(木) 22:23:02.72ID:???
このスレ的にはPostgreSQL CEだろう。
0244NAME IS NULL
垢版 |
2017/06/16(金) 03:19:45.40ID:CymGFRXo
デバッグしたいと言ってるやつの目的がわからない。

テストと混同しているみたいでやばそうだな。
0245NAME IS NULL
垢版 |
2017/06/16(金) 10:33:58.83ID:???
>>241
TDDのわかってない奴と議論しても時間の無駄なんで、これでも読んで。
https://ja.wikipedia.org/wiki/%E3%83%86%E3%82%B9%E3%83%88%E9%A7%86%E5%8B%95%E9%96%8B%E7%99%BA

> 違う、ホワイトボックステストでは内部のコードを考慮してテスト条件を作るんだよ
C0, C1カバレッジの意味わかってるか?
それを網羅しなければ自信がもてない場合は、それをカバーするテストを納得できるまで追加するんだよ。
0246NAME IS NULL
垢版 |
2017/06/16(金) 10:41:33.48ID:???
>>241
つか、お前、データベースアクセスを含むクラス・メソッドの単体レベルのテストはやってるのか?
やってるとしたら、どうやってんだ?

テストコード書いてるなら、トリガーがあろうとなかろうと関係ないことは自明だろ。
0247NAME IS NULL
垢版 |
2017/06/16(金) 10:58:10.69ID:???
plpgsqlは実行しないとtypoなんかがわからないので、c0必須
0248NAME IS NULL
垢版 |
2017/06/16(金) 14:51:07.42ID:???
>>247
これな
存在しないシンボル名使ってたら、CREATEでエラーにしてくれって話だ
0249NAME IS NULL
垢版 |
2017/06/16(金) 15:21:01.24ID:???
raise notice方法の良くないところは、リリース時にそれを削除する必要があること
トリガーをダンプしてバージョン管理とかしてると、ただそれだけでリビジョンが進む
そして、それを忘れやすい
0250NAME IS NULL
垢版 |
2017/06/16(金) 18:08:22.77ID:???
データベース内で完結するテスト方法は苦行なんで、
普通にプログラムからクエリを実行してテストしたほうがいいよ
0251NAME IS NULL
垢版 |
2017/06/16(金) 21:41:16.11ID:???
>>245
Wikipedia なんて底が浅すぎ w
コードを見てテストケースを作るなんて書いてないだろ?
C0, C1 は結果の話
根本的に理解してないのがバレバレだぞ w

>>246
それトリガーの話じゃないだろ
まあ必死だな、ってだけ言っとくよ w
0252NAME IS NULL
垢版 |
2017/06/17(土) 00:34:00.10ID:fomvc+Ad
>>250
0253NAME IS NULL
垢版 |
2017/06/17(土) 00:36:50.28ID:???
>>252
あ、「クエリを発行して」の言いまちがいね
0254NAME IS NULL
垢版 |
2017/06/17(土) 19:19:51.37ID:v6f8+KaI
>>253
発行も実行も普通は同じ意味で使われる。
0255NAME IS NULL
垢版 |
2017/06/17(土) 19:22:53.96ID:v6f8+KaI
データベースに詳しくないのが、何かの言語と結合してテストするようなのとを言ってるけど、それおかしいから。

データベース軽視なんだろうな。
0256NAME IS NULL
垢版 |
2017/06/17(土) 19:34:20.46ID:v6f8+KaI
もともとトリガのテストがしたいという話だが、トリガとトリガが呼び出す関数をいきなり一緒にテストしようとしているのが間違い。

関数は関数でテストして、トリガはトリガがテストして、結合テストはデータのIN/OUTで確認すればいいだけ。

データ観点のテストをあまりしないやつらはかなりいるが、とんでもないから無視した方がいい。
0257NAME IS NULL
垢版 |
2017/06/17(土) 20:14:16.34ID:???
トリガープロシージャって普通の関数として単体で実行できるんだっけ?
やったことないけど、OLDとかNEWとかどう与えるんだろう。
0258NAME IS NULL
垢版 |
2017/06/17(土) 22:29:56.38ID:fomvc+Ad
>>257
Oracleのトリガーと混同してたわ。トリガ関数に普通の関数を呼び出すようにしてないとできないな。
0259NAME IS NULL
垢版 |
2017/06/18(日) 14:38:45.44ID:c1GtVOfY
>>254
いや全然意味違うけどw
始めて本当に日本語勉強した方がいい人見つけたw
0260NAME IS NULL
垢版 |
2017/06/18(日) 17:22:52.65ID:???
はじめて の漢字
0261NAME IS NULL
垢版 |
2017/06/19(月) 11:04:19.39ID:???
>>256
> トリガープロシージャって普通の関数として単体で実行できるんだっけ?

>>237でも言ったが、トリガー関数単体では実行できないので、トリガーのみをテストしたいなら、
INSERT/DELETE/UPDATEを実行して結果を確かめれば良い。

USERSテーブルにINSERTすると、どこかのテーブルのユーザ数合計がトリガーで更新されるとき、
function testUserCountSucc()
{
  prevCount = getPrevUserCount();
  db->execute("INSERT INTO USERS ...");
  currCount = getPrevUserCount();
  assertEquals(prevCount + 1, currCount);
}

自分がそのトリガーを実装する場合は、トリガー内のIFやFORがどういう条件でどうなるかは
わかるはずなので、C0カバレッジになるようにテストケースを増やせば良い。

「ユーザを追加するとユーザ数合計が更新される」というのが、ホストコードで実装されるのか
トリガーで実装されるのかを「実装詳細」と考えるなら、実は上のやり方は好ましくない。

Users::Add()をテストするどこかで、ユーザ数合計が更新されているassertionを追加したほうが良い。
0262NAME IS NULL
垢版 |
2017/06/19(月) 11:05:05.04ID:???
s/getPrevUserCount/getUserCount/
0263261
垢版 |
2017/06/19(月) 11:24:37.78ID:???
なんかもっといろいろ間違ってた。
最初のアンカーは、256じゃなくて>>257

> C0カバレッジ

> C0カバレッジ100%
0264NAME IS NULL
垢版 |
2017/06/19(月) 13:27:42.02ID:???
>>256
どういう意味で結合テストっていってるのかしらんけど、単体テストでもデータのIN/OUTで確認するだろ
0265NAME IS NULL
垢版 |
2017/06/19(月) 14:01:09.16ID:???
「発行」するのは人またはプログラム、「実行」するのはRDBMS、という原理主義者なのか?
0266NAME IS NULL
垢版 |
2017/06/19(月) 14:30:45.06ID:???
>>265
そういうことじゃなくて、俺謎理論だと思うよ
0268NAME IS NULL
垢版 |
2017/06/19(月) 18:12:21.36ID:46JrC3Lz
>>267
どこが苦行なのか?
0269NAME IS NULL
垢版 |
2017/06/19(月) 18:27:58.59ID:???
>>268
・普通のプログラムでは簡単に書ける「共通処理」が書きづらい
 → まぁ、functionで実装していけばいいが、以下の考慮が必要になる
・テストを変更するのにいちいちmigrationが必要
・テストはテスト対象と同一データベース内におく必要がある
・故に、CIでテストしようとすると全員のテストを一つのDBに入れる必要がある
・そうすると、他人とシンボル名が重複しないようにするなどの配慮が必要だとわかる
・スキーマで分割すればいいじゃんとか思う
・グダる

普通にコードで書くのが楽よ
0270NAME IS NULL
垢版 |
2017/06/19(月) 18:32:56.29ID:46JrC3Lz
>>269
コードって別の言語だし、ユーザー、スキーマは結合テストレベルでは本番環境に無理に合わせない。

なんでいきなりシステムテストレベルで確認しようとするのか?

まあ小さいパッケージやWebサイト屋だとそういうテストをする会社や人間が存在するのは知っているが。
0271NAME IS NULL
垢版 |
2017/06/19(月) 18:35:42.61ID:???
>>270
ちょっと言ってる意味がわからない。

例えばトリガーを単発でテストする方法は>>261に書いたとおり。
ユニットテストレベルの話をしてるのだが。
0272NAME IS NULL
垢版 |
2017/06/19(月) 18:50:38.92ID:???
>>270
数千人月以上のメガプロジェクトの五次請けさん、お疲れっす
0274NAME IS NULL
垢版 |
2017/06/19(月) 19:39:55.80ID:???
pl/pgsqlの、お勧めの入門書ってありますか?
ネットである程度調べられるけど、できれば体系的に学びたいのので
0276NAME IS NULL
垢版 |
2017/06/19(月) 22:28:40.44ID:gwyUxO6k
>>272
いろいろあなたがずさんなのはいいけど、回答するような立場ではないことは自覚した方がいい。
0277NAME IS NULL
垢版 |
2017/06/20(火) 10:41:27.92ID:???
>>276
>>270の方が回答するレベルでも立場でもないわなぁ

あと、>>270のいうシステムテストレベルって何だよ?
0278NAME IS NULL
垢版 |
2017/06/20(火) 11:42:46.63ID:???
コード書けないし、>>261レベルのコードでも何やってるかわかんなくてぐだぐだいってるんだろ
0279NAME IS NULL
垢版 |
2017/06/20(火) 12:36:01.52ID:Ce61+VwB
データベースが苦手なのはよくわかった
0280NAME IS NULL
垢版 |
2017/06/20(火) 13:03:55.39ID:???
>>279
最近のレスでは、君が一番ピントずれてるよ
0281NAME IS NULL
垢版 |
2017/06/20(火) 13:06:51.06ID:???
結局、どうやってテストするかって>>261以外誰も示せてないな
0282NAME IS NULL
垢版 |
2017/06/20(火) 13:12:08.50ID:???
>>279
で、君のところではどうやってテストしてるの?
0283NAME IS NULL
垢版 |
2017/06/20(火) 13:20:48.90ID:???
あれかな、Excelの定型処理を自動化しようとしてマクロ書いたら怒られた的な話?
0284NAME IS NULL
垢版 |
2017/06/20(火) 13:34:57.76ID:???
つか、SIerが仕切る大規模開発で、トリガーが許されるケースなんかあるのか?
トリガーはおろか、ストアドすら許されたことがないんだが。
0285NAME IS NULL
垢版 |
2017/06/20(火) 14:43:03.46ID:Ce61+VwB
>>284
そのシステム開発プロジェクトのポリシーだろうけど、理由の一つはプロジェクトメンバーのレベルがあらゆる面で低い、もう一つはデータベースがよくわからなくて上がトリガやストアドファンクションを禁止しているパターン。

こういうそれなりに大きいプロジェクトは総じてクソでうまくいかない。
0286NAME IS NULL
垢版 |
2017/06/20(火) 14:45:59.43ID:Ce61+VwB
>>282
データとSQLを用意してトリガーを動かして実行前と実行後を比較する。

なんでこんなあたりまえのことを言われなきゃわからないのか?
0287NAME IS NULL
垢版 |
2017/06/20(火) 14:50:35.11ID:???
>>285
最も大きい理由は、大抵データベース設計チームが独立していて、そこが物理設計まで行い、
パフォーマンスの責任まで負うから。

次に大きい理由は、スキーマの変更手順が決まっていて、製造工程中に変更とか無理だから。

その次は、大抵大きなプロジェクトでは、データベースをデータストアとしてしか使わないから。
0288NAME IS NULL
垢版 |
2017/06/20(火) 14:52:13.39ID:???
>>286
> データとSQLを用意してトリガーを動かして実行前と実行後を比較する。
それマニュアルでやるの大変でしょ?
>>261みたいにテスト書いとけば、CI/CDにも組み込めるよ。
別にマニュアルでやるのは否定しないが、だからといって>>261を否定するのはおかしいよ。
0289NAME IS NULL
垢版 |
2017/06/20(火) 14:59:19.37ID:???
>>286
それ、>>237と同じじゃんw
>>237を否定してたように見えたが、そうじゃないなら何と戦ってるの?
0290NAME IS NULL
垢版 |
2017/06/20(火) 15:05:28.32ID:???
クエリを発行する手段としてホストコードを使うよ、
単体テストレベルの話ならユニットテストツールも使えるよってだけなんだけど、
> 何かの言語と結合して
> コードって別の言語だし
というメンタリティの持ち主なので、話が全然噛み合わない
0291NAME IS NULL
垢版 |
2017/06/20(火) 15:08:58.31ID:Ce61+VwB
>>288
なんでこれが手動みたいに見えるわけ?
0292NAME IS NULL
垢版 |
2017/06/20(火) 15:12:35.56ID:Ce61+VwB
>>290
あなたみたいにこういうのがテストだと思っているから話がおかしくなる。

単にデータベースを使いこなせないことをごまかすために言っているとしか思えない。
0293NAME IS NULL
垢版 |
2017/06/20(火) 15:14:22.82ID:Ce61+VwB
PostgreSQLは使われ方から細かいテストをする習慣のない人間が使っていることが多いから理解できないのもわかるよ。
0294NAME IS NULL
垢版 |
2017/06/20(火) 15:27:48.04ID:???
>>291
手動じゃないなら、具体的にどうやってるの?
0295NAME IS NULL
垢版 |
2017/06/20(火) 15:32:39.61ID:???
手動じゃないならなんらかの方法で結果を自動チェックしてるわけで、>>261と何が違うんだってことになる
0296NAME IS NULL
垢版 |
2017/06/20(火) 15:38:25.67ID:???
自分以外全部馬鹿病
0297NAME IS NULL
垢版 |
2017/06/20(火) 15:45:59.07ID:Ce61+VwB
>>295
それだと結合テストの部類だろ。少なくともPostgresqlなんだからPostgresqlで完結しろよ。
0298NAME IS NULL
垢版 |
2017/06/20(火) 16:49:13.37ID:???
もしかして手動でSQL実行してトリガが自動で動くから自動って言ってるの?w
まさかそんなわけないか
0299NAME IS NULL
垢版 |
2017/06/20(火) 20:04:13.49ID:BP5gL4BV
>>298
自動テストの「自動」を誤解している。

よくいるのが有名自動テストツールを使用するのが自動テストで、それで確認できるテストだけがテストだと思ってる人間。

画面をポチポチやるのはたしかに手動だが、それ以外は昔からスクリプトでテストする。

あまり自動化しすぎるとテストにならなくなる。すでに完成しているシステムのリグレッションテストなら有効。

リファクタリングもそうだが特定のツールの機能を使うことを指している人間も多い。

話を戻すとここまでpsqlもPL/pgSQLも出てこない。PostgreSQLやMySQLは入門書で他の言語から使うことばかり書かれているから仕方ないとは思う。

データベースはデータの入れ物、SQLはあまりテストしない習慣の人間といくら話しても平行線をたどる。

LAMP環境だとエンタープライズの感覚がわからないひとは多い。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況