6.6. 大对象∶ pglarge

Table of Contents
open — 打开一个大对象
close — 关闭大对象
read — 从大对象中读
write — 写出到大对象
seek — 改变在大对象中的当前位置
tell — 返回在大对象中的当前位置
unlink — 删除大对象
size — 返回大对象的尺寸
export — 把大对象保留到文件中

这个对象处理所有涉及 PostgreSQL 大对象的请求. 它嵌入和隐藏所有 "复现" 变量(对象 OID 和联接),方法和 pgobject 用的方法一样,因此可以只在函数调用里保留那些 重要的参数.它保留一个指向 pgobject 的引用,用于 自身的创建,并通过其参数发送请求.除了解引用之外,任何对 pgobject 的修改都会因此而影响 pglarge对象.对最初的 pgobject 进行解引用则没有问题,因为 Python 在大对象对之解引用之前 是不会释放它的.所有函数在调用错误的时候都返回一个一般的错误,不管真正的错误是什么. 该对象的 error 属性允许我们获取真正的错误信息.

pglarge 对象定义一个只读的属性集,允许我们获取它的一些信息. 这些属性是∶

oid

和对象关联的 OID

pgcnx

和该对象关联的pgobject

error

联接中最后的警告/错误信息

Important: 在多线程环境里,error 可能被另外一个用 相同 pgobject 的线程修改.请记住这些对象都是共享的, 而不是复制的;如果你想在这样的环境里检查一些东西,那么你应该使用一些锁机制. OID 属性是非常有趣的东西,因为它允许你稍后复用该 OID,这样就可以用 pgobject getlo() 方法调用 创建一个 pglarge 对象.

又见 Chapter 2 获取有关 PostgreSQL 大对象接口的更多信息.