職業プログラマの休日出勤

職業プログラマによる日曜自宅プログラミングや思考実験の成果たち。リアル休日出勤が発生すると更新が滞りがちになる。記事の内容は個人の意見であり、所属している(いた)組織の意見ではない。

PostgreSQL

2月の米子の旅日記 〜 中国地方DB勉強会への参加など

先月の話ですが、鳥取県は米子に行ってきました。 中国地方DB勉強会 #19 を動機とした旅行計画でしたが、かなり満喫することができました。(続きを読む 際は写真が多くなることに注意)

PostgreSQLカンファレンス2015 に参加してきた

PostgreSQLカンファレンスに参加してきたので、その感想文および備忘録を書いておく。www.postgresql.jp ハッシュタグ: #pgcon15j前回参加したのは、2011年のことだった。 なぜ参加しようと思ったのか? 最近PostgreSQLを触る機会があんまり無くて焦ってた…

XAMPP環境でPHPからPostgreSQLに接続

Windows環境でPHP+PostgreSQLなものを作る必要に迫られたので環境構築をしました。WindowsでPostgreSQL使うのは久し振りということもあり、少しだけ躓いたので、メモを残しておきます。 PostgreSQL for Windows インストーラの入手 PostgreSQLはオープンソ…

PostgreSQLのGroup By

1年半くらい前に、こんな記事を書きました。 MySQLのGroup By - 職業プログラマの休日出勤 MySQLのこのような仕様のせい(?)で、バグの発見が遅くなってしまった、という話です。先日、SQLWorld★大阪 #21 というイベントに参加してきましたが、そこで得た…

create table

SQLで、select文の結果を、新規に作成するテーブルへ突っ込む方法があります。きちんと構築するアプリケーションの中で使うことは稀ですが、ささっとバックアップを取得したり、手軽にデータ分析をやったりとか、そういった用途で本当によく使います。 先日…

MySQL で NOOP 操作

最近はMySQLのStoredProcedureを書きまくってる生活を送っています。さて、プログラムの可読性を保つ為に、次のようなテクニックを使うことがあります。 if( 何か条件式 ) { // 何もしないよ! ; } else { // 何か複雑な処理 this.someComplicatedMethod1();…

暗黙的デフォルト値

またまたMySQLでハマったのでメモ。 現象 実行できないはず(エラーになるはず)のSQL文が、MySQLでは実行できてしまいます。 具体的には、not null 制約のある列に対して null 値を格納させようとしても、実行できてしまう場合があります。 サンプルデータ…

PreparedStatementはSQLi対策として100%安全なのか?

脇の甘い技術者というのは世の中には多く存在していて、日本に居た時もAustraliaに来てからも、SQLi (SQL Injection) 脆弱性を見つけたり治したりすることは多々ありました。 基本的にはエスケープをかけるか Prepared Statement を使うかの2択で、可能な限…

AustraliaでのPostgreSQL

この記事は PostgreSQL Advent Calendar 2012 の11日目です(時差の都合で、この記事の投稿時点では日本はまだ12月10日です)。 前日の10日目は、 meketen さんの Raspberry PiでPostgreSQL(PostGIS)を動かして、現在地をしゃべらせてみた。 - meketenの趣味…

暗黙のGroup By

この記事はMySQLのdisってる記事…のように見えるかもしれませんが、「長年継ぎ足して熟成されてきた秘伝のソース」をdisる記事です。 原理?は MySQLのGroup By - 職業プログラマの休日出勤 や distinct と order by - 職業プログラマの休日出勤 と同じです…

distinct と order by

きっと GROUP BY のときの話 と同じ理屈なんでしょうけど、困ってしまったので記事に書いておきます。 テスト用テーブルの定義と、テストデータ(PostgreSQLでもMySQLでも動作OK) create table test20121028 ( id int primary key, data1 text not null ); …

MySQLのGroup By

MySQLの Group By でハマったのでメモ。 テスト用テーブルの定義(PostgreSQLでもMySQLでも動作OK) create table hogehoge ( id int primary key, classification varchar(10), value numeric(5) ); テスト用データ insert into hogehoge values (1, 'test'…

起動せずにバージョンを調べる方法

PostgreSQLを1つのマシンに沢山インストールしていると、どれが何のバージョンだかわからなくなることがあります。もちろん起動していればpgAdminやpsql等の各種ツールで接続すれば簡単に調べることができますが、それが面倒である状況もしばしばあります。…

SQLFeatureNotSupportedException - JDBC4.0 API の中で未実装のもの

PostgreSQL Advent Calendar 2011 24日目の記事です。飛び入り参加しました。この記事の主題はPostgreSQLのJava言語向けクライアントインタフェースである、JDBC Driverです。「今さらJavaですか?」という声も聞こえてきそうですが、まだまだ多くの場所で使…