lo_import() of an empty file

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема lo_import() of an empty file
Дата
Msg-id 20180330181341.GQ8476@momjian.us
обсуждение исходный текст
Ответы Re: lo_import() of an empty file  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
I have just discovered if you try to lo_import() an empty file, and oid
is returned, but nothing is added to pg_largeobject:

    $ > /rtmp/a
    $ psql test

    SELECT lo_import('/rtmp/a');
     lo_import
    -----------
         16385
    
    SELECT * from pg_largeobject;
     loid | pageno | data
    ------+--------+------

However, the oid is incremented for each call:

    SELECT lo_import('/rtmp/a');
     lo_import
    -----------
         16386
    
    SELECT lo_import('/rtmp/a');
     lo_import
    -----------
         16387
    
    SELECT lo_import('/rtmp/a');
     lo_import
    -----------
         16388

An lo_export() of a non-existant oid does create an empty file.  I guess
this is an optimization of allowing empty file imports to consume no
space in pg_largeobject, but it does seem odd.

I am asking hackers in case someone can see an error here, or something
that should be documented.

-- 
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

+ As you are, so once was I.  As I am, so you will be. +
+                      Ancient Roman grave inscription +


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Jerry Sievers
Дата:
Сообщение: Re: Speedup of relation deletes during recovery
Следующее
От: Tom Lane
Дата:
Сообщение: Re: [HACKERS] AdvanceXLInsertBuffer vs. WAL segment compressibility