postgresql 18版bytea 类型转换的改进

文档看到如下例子

复制代码
此外,还可以将整数值转换为 bytea 类型,反之亦然。将整数转换为 bytea 会根据整数类型的宽度生成 2、4 或 8 个字节。结果是整数的二补数表示,最高有效字节在前。一些示例:

1234::smallint::bytea          \x04d2
cast(1234 as bytea)            \x000004d2
cast(-1234 as bytea)           \xfffffb2e
'\x8000'::bytea::smallint      -32768
'\x8000'::bytea::integer       32768

测试了一下,确实如此

复制代码
psql (18.0 (Debian 18.0-1.pgdg13+3))
Type "help" for help.

postgres=# select 1234::bytea;
   bytea
------------
 \x000004d2
(1 row)

postgres=# select 1234::smallint::bytea;
 bytea
--------
 \x04d2
(1 row)

作为比较,17.7版不支持以上操作, 只支持把字符串转换为bytea 类型

复制代码
postgres=# select 1234::smallint::bytea;
ERROR:  cannot cast type smallint to bytea
LINE 1: select 1234::smallint::bytea;
                             ^
postgres=# select 1234::bytea;
ERROR:  cannot cast type integer to bytea
LINE 1: select 1234::bytea;
                   ^
postgres=# select '1234'::bytea;
   bytea
------------
 \x31323334
(1 row)

postgres=# select 1234::smallint::text::bytea;
   bytea
------------
 \x31323334
(1 row)
相关推荐
月明长歌2 小时前
MySQL 视图:把复杂查询封装成表,并且还能控权限、做解耦
数据库·mysql
小蒜学长2 小时前
python餐厅点餐系统(代码+数据库+LW)
数据库·spring boot·后端·python
岳麓丹枫0012 小时前
PostgreSQL 中 create database 中的注意事项
数据库·postgresql
梦想画家2 小时前
告别关键词!PostgreSQL+pgvector 玩转语义和图像检索
数据库·postgresql
爱潜水的小L2 小时前
自学嵌入式day41,数据库
jvm·数据库
橙汁味的风2 小时前
《数据库系统概论》陈红、卢卫 - 9 - 关系数据库存储管理
数据库·数据库系统概论
最贪吃的虎2 小时前
Redis 除了缓存,还能干什么?
java·数据库·redis·后端·缓存
u0131635512 小时前
Oracle 报错:PLS-00201: 必须声明标识符‘DBMS_LOCK‘的解决方法
数据库·oracle
Awkwardx3 小时前
MySQL数据库—MySQL数据类型
数据库·mysql