summaryrefslogtreecommitdiff
path: root/doc/src/sgml/lobj.sgml
diff options
context:
space:
mode:
authorTom Lane2022-02-01 15:57:26 +0000
committerTom Lane2022-02-01 15:57:38 +0000
commita5a9d77b8b4ea636ca5f8ae115c00a031c94c56c (patch)
treecb52ffb11166f36fde8a983a9e40934a93660e8c /doc/src/sgml/lobj.sgml
parent0526f2f4c38cb50d3e2a6e0aa5d51354158df6e3 (diff)
Doc: modernize documentation for lo_create()/lo_creat().
At this point lo_creat() is a legacy function with little if any real use-case, so describing it first doesn't make much sense. Describe lo_create() first, and then explain lo_creat() as a backwards-compatibility alternative. Discussion: https://postgr.es/m/[email protected]
Diffstat (limited to 'doc/src/sgml/lobj.sgml')
-rw-r--r--doc/src/sgml/lobj.sgml52
1 files changed, 27 insertions, 25 deletions
diff --git a/doc/src/sgml/lobj.sgml b/doc/src/sgml/lobj.sgml
index 57bb57083a5..b767ba1d051 100644
--- a/doc/src/sgml/lobj.sgml
+++ b/doc/src/sgml/lobj.sgml
@@ -138,57 +138,59 @@
<title>Creating a Large Object</title>
<para>
- <indexterm><primary>lo_creat</primary></indexterm>
+ <indexterm><primary>lo_create</primary></indexterm>
The function
<synopsis>
-Oid lo_creat(PGconn *conn, int mode);
+Oid lo_create(PGconn *conn, Oid lobjId);
</synopsis>
- creates a new large object.
+ creates a new large object. The OID to be assigned can be
+ specified by <replaceable class="parameter">lobjId</replaceable>;
+ if so, failure occurs if that OID is already in use for some large
+ object. If <replaceable class="parameter">lobjId</replaceable>
+ is <symbol>InvalidOid</symbol> (zero) then <function>lo_create</function>
+ assigns an unused OID.
The return value is the OID that was assigned to the new large object,
or <symbol>InvalidOid</symbol> (zero) on failure.
-
- <replaceable class="parameter">mode</replaceable> is unused and
- ignored as of <productname>PostgreSQL</productname> 8.1; however, for
- backward compatibility with earlier releases it is best to
- set it to <symbol>INV_READ</symbol>, <symbol>INV_WRITE</symbol>,
- or <symbol>INV_READ</symbol> <literal>|</literal> <symbol>INV_WRITE</symbol>.
- (These symbolic constants are defined
- in the header file <filename>libpq/libpq-fs.h</filename>.)
</para>
<para>
An example:
<programlisting>
-inv_oid = lo_creat(conn, INV_READ|INV_WRITE);
+inv_oid = lo_create(conn, desired_oid);
</programlisting>
</para>
<para>
- <indexterm><primary>lo_create</primary></indexterm>
- The function
+ <indexterm><primary>lo_creat</primary></indexterm>
+ The older function
<synopsis>
-Oid lo_create(PGconn *conn, Oid lobjId);
+Oid lo_creat(PGconn *conn, int mode);
</synopsis>
- also creates a new large object. The OID to be assigned can be
- specified by <replaceable class="parameter">lobjId</replaceable>;
- if so, failure occurs if that OID is already in use for some large
- object. If <replaceable class="parameter">lobjId</replaceable>
- is <symbol>InvalidOid</symbol> (zero) then <function>lo_create</function> assigns an unused
- OID (this is the same behavior as <function>lo_creat</function>).
+ also creates a new large object, always assigning an unused OID.
The return value is the OID that was assigned to the new large object,
or <symbol>InvalidOid</symbol> (zero) on failure.
</para>
<para>
- <function>lo_create</function> is new as of <productname>PostgreSQL</productname>
- 8.1; if this function is run against an older server version, it will
- fail and return <symbol>InvalidOid</symbol>.
+ In <productname>PostgreSQL</productname> releases 8.1 and later,
+ the <replaceable class="parameter">mode</replaceable> is ignored,
+ so that <function>lo_creat</function> is exactly equivalent to
+ <function>lo_create</function> with a zero second argument.
+ However, there is little reason to use <function>lo_creat</function>
+ unless you need to work with servers older than 8.1.
+ To work with such an old server, you must
+ use <function>lo_creat</function> not <function>lo_create</function>,
+ and you must set <replaceable class="parameter">mode</replaceable> to
+ one of <symbol>INV_READ</symbol>, <symbol>INV_WRITE</symbol>,
+ or <symbol>INV_READ</symbol> <literal>|</literal> <symbol>INV_WRITE</symbol>.
+ (These symbolic constants are defined
+ in the header file <filename>libpq/libpq-fs.h</filename>.)
</para>
<para>
An example:
<programlisting>
-inv_oid = lo_create(conn, desired_oid);
+inv_oid = lo_creat(conn, INV_READ|INV_WRITE);
</programlisting>
</para>
</sect2>