既にメーリングリストで議論されてるから(JSON serialization in pgAdmin 4)いずれ良くなると思いますが、現在のBeta 1はちょっと残念。範囲型、日付・時刻型、JSONといったPostgreSQLならではのデータ型がうまく処理or表示されません。


実行環境はWindows7 x64 +
先日書いたウェブアプリ版。上の画像は単純な整数の範囲型'[ 1, 9 )'SELECTしたところ、ウェブサーバ内部でエラーに。ログを見ると ↓ 範囲型リテラルをJSONに変換しようとして失敗してます。
2016-06-20 20:03:45,779: ERROR  pgadmin:        Exception on /sqleditor/poll/376
201 [GET]
Traceback (most recent call last):
...
  File "D:\Works\pgAdmin4\current\venv\lib\site-packages\simplejson\encoder.py", line 246, in default 
    raise TypeError(repr(o) + " is not JSON serializable")
TypeError: NumericRange(1, 9, '[)') is not JSON serializable


使われているのは
simplejsonというPythonのパッケージ。先のMLでは、日付・時刻型の問題を発端に、代わる実装が議論されてました。

例えば現在のタイムスタンプをnow()関数で出すと ↓ 表示のレイアウトはともかく、時刻が000秒。処理のどこかで日付だけに切り縮まってるようてす。


それではテキストに変換して並べて比べようとクエリを投げたら ↓ いつまでも結果が返らない。ログ(画像の下)を見ても今いち原因不明です。
select now(), now() :: text;
2016-06-20 20:14:41,098: ERROR  pgadmin:
Failed to execute query (execute_async) for the server #1 - CONN:6256761 
(Query-id: 8494860):
Error Message:ERROR:  column "now" does not exist
LINE 1: SELECT now;
               ^
********** Error **********

ERROR: column "now" does not exist
SQL state: 42703
Character: 8


JSON型をクエリすると ↓ あ~DOMにそのまま入れてる感じ。undefinedとか出るミスと同じですね。


一応の対策として、クエリ自体でテキストに変換すれば ↓ その通り出ます。範囲型もこれでOKでした。(日付・時刻型は未確認)


この他インターフェイス回りで、キャレット(テキストカーソル)が常に点滅、アウトプットペインでデータが小さく見づらい、などもありますが、それは結局HTML + CSS + JavaScriptだから自前でも対策可能。より根本的な今回のデータ型の件が、早く改善されてほしい。と言うか「お前もMLに投稿しろ」って話ですよね。。。