9.6. 大对象∶ pglarge

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

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

oid

和对象关联的 oid

pgcnx

和该对象关联的pgobject

error

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

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

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