Thread: Deleting large objects from database.

Deleting large objects from database.

From
Czarny Marcin
Date:
I have column with large objects in table named my_table.
After SQL command:  delete from my_table;
they are still files xinv* and xinx* in directory ./data/base/my_db.
Have I delete this files from operating system?
What is wrong? I hope thats is only my ignorance?

Best regards,Marcin Czarny



Re: [SQL] Deleting large objects from database.

From
neko@kredit.sth.szif.hu
Date:
On Tue, 14 Dec 1999, Czarny Marcin wrote:

> I have column with large objects in table named my_table.
> After SQL command:
>    delete from my_table;
> they are still files xinv* and xinx* in directory ./data/base/my_db.
The delete records are there still too. To remove them, U may use vacuum;
I'm not sure yet, about the vacuum remove the large objects.
I have seen somewhere an util called 'lovacuum'...

--nek;(



Re: [SQL] Deleting large objects from database.

From
Howie
Date:
On Tue, 14 Dec 1999, Czarny Marcin wrote:

> I have column with large objects in table named my_table.
> After SQL command:
>    delete from my_table;
> they are still files xinv* and xinx* in directory ./data/base/my_db.
> Have I delete this files from operating system?
> What is wrong? I hope thats is only my ignorance?

delete'ing a record that 'holds' the LO's OID isnt the same as using
lo_unlink() to delete the LO from disk.

what you might want to do is look at $PGSQL_SRC_ROOT/contrib/lo.
'lo_manage()' is a function you can use in a DELETE trigger that, assuming
a row 'housing' the LO's OID gets wiped, will lo_unlink() the LO, removing
it from disk.  its got a small bug ( doesnt, or didnt, properly check for
NULL OIDs ), so be warned.

---
Howie <caffeine@toodarkpark.org>   URL: http://www.toodarkpark.org    
"Tell a man that there are 400 billion stars and he'll believe you. Tell him a bench has wet paint and he has to touch
it."