使用PostgreSQL版本9+如何将隐藏的系统列ctid转换为long类型?
有了这个长值,如何再次转换为tid类型?
答案 0 :(得分:0)
ctid 可以使用按位操作分解为长整数而不会丢失数据:
将 ctid 列转换为长类型(source):
((ctid::text::point)[0]::bigint << 32) | (ctid::text::point)[1]::bigint as long_ctid
将long转换为 tid 类型:
ctid = CONCAT('(', long_ctid >> 32,',',long_ctid << 32 >> 32,')')::tid