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)
相关推荐
l1t16 小时前
对clickhouse给出的二分法求解Advent of Code 2025第10题 电子工厂 第二部分的算法理解
数据库·算法·clickhouse
IT大白16 小时前
6、数据库优化
数据库·sql
努力学习的小廉16 小时前
【QT(九)】—— 窗口
数据库·qt·系统架构
程序员敲代码吗16 小时前
用Python监控系统日志并发送警报
jvm·数据库·python
m5655bj16 小时前
使用 C# 将 Excel 表格转换为 DataTable
数据库·c#
丁丁点灯o16 小时前
帆软指定某个列连续相同的数值合并单元格
数据库
DBA小马哥16 小时前
文档型数据库MongoDB迁移替换至金仓数据库在电商商品信息存储中的应用
数据库·mongodb
世界尽头与你17 小时前
CVE-2025-14847_ MongoDB 未授权内存泄露漏洞
数据库·安全·mongodb·网络安全·渗透测试
小北方城市网17 小时前
Redis 缓存设计与避坑实战:解决穿透 / 击穿 / 雪崩
java·大数据·数据库·redis·python·elasticsearch·缓存
心态还需努力呀17 小时前
从 Oracle 到 KingbaseES:一次真实项目的数据库国产化迁移实录
数据库·oracle