Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 154146d

Browse files
committed
Rename lo_create(oid, bytea) to lo_from_bytea().
The previous naming broke the query that libpq's lo_initialize() uses to collect the OIDs of the server-side functions it requires, because that query effectively assumes that there is only one function named lo_create in the pg_catalog schema (and likewise only one lo_open, etc). While we should certainly make libpq more robust about this, the naive query will remain in use in the field for the foreseeable future, so it seems the only workable choice is to use a different name for the new function. lo_from_bytea() won a small straw poll. Back-patch into 9.4 where the new function was introduced.
1 parent 7937910 commit 154146d

File tree

8 files changed

+12
-12
lines changed

8 files changed

+12
-12
lines changed

doc/src/sgml/lobj.sgml

+3-3
Original file line numberDiff line numberDiff line change
@@ -547,16 +547,16 @@ int lo_unlink(PGconn *conn, Oid lobjId);
547547
<row>
548548
<entry>
549549
<indexterm>
550-
<primary>lo_create</primary>
550+
<primary>lo_from_bytea</primary>
551551
</indexterm>
552-
<literal><function>lo_create(<parameter>loid</parameter> <type>oid</type>, <parameter>string</parameter> <type>bytea</type>)</function></literal>
552+
<literal><function>lo_from_bytea(<parameter>loid</parameter> <type>oid</type>, <parameter>string</parameter> <type>bytea</type>)</function></literal>
553553
</entry>
554554
<entry><type>oid</type></entry>
555555
<entry>
556556
Create a large object and store data there, returning its OID.
557557
Pass <literal>0</> to have the system choose an OID.
558558
</entry>
559-
<entry><literal>lo_create(0, E'\\xffffff00')</literal></entry>
559+
<entry><literal>lo_from_bytea(0, E'\\xffffff00')</literal></entry>
560560
<entry><literal>24528</literal></entry>
561561
</row>
562562

src/backend/libpq/be-fsstubs.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -862,10 +862,10 @@ lo_get_fragment(PG_FUNCTION_ARGS)
862862
}
863863

864864
/*
865-
* Create LO with initial contents
865+
* Create LO with initial contents given by a bytea argument
866866
*/
867867
Datum
868-
lo_create_bytea(PG_FUNCTION_ARGS)
868+
lo_from_bytea(PG_FUNCTION_ARGS)
869869
{
870870
Oid loOid = PG_GETARG_OID(0);
871871
bytea *str = PG_GETARG_BYTEA_PP(1);

src/include/catalog/catversion.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,6 @@
5353
*/
5454

5555
/* yyyymmddN */
56-
#define CATALOG_VERSION_NO 201406051
56+
#define CATALOG_VERSION_NO 201406121
5757

5858
#endif

src/include/catalog/pg_proc.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -1061,8 +1061,8 @@ DESCR("truncate large object");
10611061
DATA(insert OID = 3172 ( lo_truncate64 PGNSP PGUID 12 1 0 0 0 f f f f t f v 2 0 23 "23 20" _null_ _null_ _null_ _null_ lo_truncate64 _null_ _null_ _null_ ));
10621062
DESCR("truncate large object (64 bit)");
10631063

1064-
DATA(insert OID = 3457 ( lo_create PGNSP PGUID 12 1 0 0 0 f f f f t f v 2 0 26 "26 17" _null_ _null_ _null_ _null_ lo_create_bytea _null_ _null_ _null_ ));
1065-
DESCR("create new large object with content");
1064+
DATA(insert OID = 3457 ( lo_from_bytea PGNSP PGUID 12 1 0 0 0 f f f f t f v 2 0 26 "26 17" _null_ _null_ _null_ _null_ lo_from_bytea _null_ _null_ _null_ ));
1065+
DESCR("create new large object with given content");
10661066
DATA(insert OID = 3458 ( lo_get PGNSP PGUID 12 1 0 0 0 f f f f t f v 1 0 17 "26" _null_ _null_ _null_ _null_ lo_get _null_ _null_ _null_ ));
10671067
DESCR("read entire large object");
10681068
DATA(insert OID = 3459 ( lo_get PGNSP PGUID 12 1 0 0 0 f f f f t f v 3 0 17 "26 20 23" _null_ _null_ _null_ _null_ lo_get_fragment _null_ _null_ _null_ ));

src/include/libpq/be-fsstubs.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ extern Datum lo_export(PG_FUNCTION_ARGS);
2525

2626
extern Datum lo_creat(PG_FUNCTION_ARGS);
2727
extern Datum lo_create(PG_FUNCTION_ARGS);
28-
extern Datum lo_create_bytea(PG_FUNCTION_ARGS);
28+
extern Datum lo_from_bytea(PG_FUNCTION_ARGS);
2929

3030
extern Datum lo_open(PG_FUNCTION_ARGS);
3131
extern Datum lo_close(PG_FUNCTION_ARGS);

src/test/regress/input/largeobject.source

+1-1
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ SELECT lo_unlink(loid) FROM lotest_stash_values;
207207

208208
\set newloid_1 :LASTOID
209209

210-
SELECT lo_create(0, lo_get(:newloid_1)) AS newloid_2
210+
SELECT lo_from_bytea(0, lo_get(:newloid_1)) AS newloid_2
211211
\gset
212212

213213
SELECT md5(lo_get(:newloid_1)) = md5(lo_get(:newloid_2));

src/test/regress/output/largeobject.source

+1-1
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ SELECT lo_unlink(loid) FROM lotest_stash_values;
393393
\lo_unlink :newloid
394394
\lo_import 'results/lotest.txt'
395395
\set newloid_1 :LASTOID
396-
SELECT lo_create(0, lo_get(:newloid_1)) AS newloid_2
396+
SELECT lo_from_bytea(0, lo_get(:newloid_1)) AS newloid_2
397397
\gset
398398
SELECT md5(lo_get(:newloid_1)) = md5(lo_get(:newloid_2));
399399
?column?

src/test/regress/output/largeobject_1.source

+1-1
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ SELECT lo_unlink(loid) FROM lotest_stash_values;
393393
\lo_unlink :newloid
394394
\lo_import 'results/lotest.txt'
395395
\set newloid_1 :LASTOID
396-
SELECT lo_create(0, lo_get(:newloid_1)) AS newloid_2
396+
SELECT lo_from_bytea(0, lo_get(:newloid_1)) AS newloid_2
397397
\gset
398398
SELECT md5(lo_get(:newloid_1)) = md5(lo_get(:newloid_2));
399399
?column?

0 commit comments

Comments
 (0)