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)
相关推荐
weelinking3 小时前
【产品】00_产品经理用Claude实现产品系列介绍
数据库·人工智能·sql·数据挖掘·github·产品经理
2301_803934613 小时前
Go语言如何做网络爬虫_Go语言爬虫开发教程【指南】
jvm·数据库·python
秋94 小时前
windows中安装redis
数据库·redis·缓存
Cosolar4 小时前
万字详解:RAG 向量索引算法与向量数据库架构及实战
数据库·人工智能·算法·数据库架构·milvus
想唱rap4 小时前
IO多路转接之poll
服务器·开发语言·数据库·c++
SeaTunnel4 小时前
AI 让 SeaTunnel 读源码和调试过时了吗?
大数据·数据库·人工智能·apache·seatunnel·数据同步
凯瑟琳.奥古斯特5 小时前
数据冗余与规范化的本质[数据库原理]
开发语言·数据库·职场和发展
_ku_ku_5 小时前
数据库系统原理 · SQL 数据定义、更新及数据库编程 · 自学总结
数据库·oracle
Mortalbreeze6 小时前
深度理解文件系统 ---- 从磁盘存储到内核存储
大数据·linux·数据库
2301_803934616 小时前
MySQL 字段类型选择规范指南
jvm·数据库·python