LoginSignup
1
0

More than 5 years have passed since last update.

【要調査】【メモ】バイト型から文字列型にキャストした際の異なる挙動(暫定対応)

Posted at

概要

PostgreSQLでbytea型からvarchar型にキャストを行った際に結果が異なる現象が起きたためメモします。
後ほど詳しく調査します。

環境

バージョン確認
SELECT version(); 

環境1

  • CentOS7にyumでインストール
version
PostgreSQL 9.6.8 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16), 64-bit

環境2

version
PostgreSQL 9.6.9 on x86_64-pc-linux-musl, compiled by gcc (Alpine 6.4.0) 6.4.0, 64-bit

事象

キャスト検証
SELECT '1'::bytea::VARCHAR; 

環境1での結果

varchar
1

環境2での結果

varchar
\x31

環境2での暫定対応

エスケープで暫定対応
SELECT encode('1' ::bytea, 'escape')::VARCHAR; 
varchar
1

ただしASCIIで表現できない文字が入ると駄目。。。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0