PostgreSQL

PostgreSQL「remaining connection slots are reserved for non-replication superuser connections」

データベースに PostgreSQL を使っているアプリケーションが、急に下のエラーメッセージを出して PostgreSQL に接続できなくなった。 remaining connection slots are reserved for non-replication superuser connections 接続が多すぎて上限に達しているの…

PostgreSQL で character(n) 型の列を主キーにしていたら Entity Framework Core で酷い目にあった

PostgreSQL で Entity Framework Core(Npgsql.EntityFrameworkCore.PostgreSQL) を使っていて、 テーブルの主キーの列に character(n) 型を使っていたら、 エンティティの更新に失敗して嵌った。 再現サンプルは下記の通り。 using Microsoft.EntityFramewor…

PostgreSQL で Entity Framework Core を使っていて money 型でハマった

PostgreSQL で Entity Framework Core を使っていて、PostgreSQL の money 型の列を C# の decimal 型のプロパティにマップしたら、プロパティに格納される値がなんか変でハマった。テーブルに格納されている値の 100 分の 1 になってる。 試したのは下記の…

PostgreSQL で緯度経度から住所を検索する

先日、SQL Server で緯度経度から住所を検索する方法を試したが、 PostgreSQL でも拡張の PostGIS を使えば同じようなことが可能だった。 -- 住所を格納するテーブルを作成 CREATE TABLE addresses ( address_id BIGSERIAL PRIMARY KEY, address TEXT, locat…

ファイルに記述した SQL を PostgreSQL の CLI で実行する方法

しょっちゅう調べているのでブログにメモしておく。 psql コマンドの -f オプションで、SQL が書かれたファイルを指定するだけだった。 psql -h <host_name> -d <db_name> -U <user_name> -f <file_path></file_path></user_name></db_name></host_name>

pgbench で利用する独自スクリプトにランダムなスリープを入れる

pgbench で実行できる独自スクリプトでは、変数や乱数、スリープがが使える。 これらを組み合わせることで、10 ~ 20 秒範囲のランダムなスリープを設けることができた。 SELECT * FROM customers \setrandom wait 10 20 \sleep :wait s SELECT * FROM produ…

PostgreSQL で Dapper を使う

.NET Server Framework がリリースされたら、Mac OS X や Linux で動く .NET アプリケーションを作ることもありそう。そうなるとデータベースは PostgreSQL かなぁ。My SQL や MariaDB も捨てがたい。 どちらにしても、ORM には Dapper か Entity Framework …