20. valgrind で PostgreSQL のメモリリークをみつけよう - PostgreSQL のソースコードを読む

環境は整ったので実験していく。

  • 通常の select 1回
    • select * from person;
    • リークしない
  • 通常の insert 1回
    • リークしない
  • drop table
    • リークしない
  • update
    • リークしない
  • create table リークしない
    • CREATE TABLE person (social_no integer, name text, age integer, uri text, PRIMARY KEY (social_no));
  • create Index : リークしない
  • cluster person_age on person; : リークしない

リークしない。大変良い事だがやりがいがない。マイナーな機能を試してみるのが良いかな。

large object を試す

hige=# \lo_import '/home/taro/higepon/diary.txt' 'my diary'
lo_import 16466
hige=# \lo_list
    Large objects
  ID   | Description
-------+-------------
 16466 | my diary
(1 row)

hige=# \lo_unlink 16466
lo_unlink 16466
hige=# \lo_list
  Large objects
 ID | Description
----+-------------
(0 rows)

リークしない。

OID 型に large object をつっこむ

large object

# CREATE TABLE storage (file OID);
# insert into storage values(24668);

リークしないなあ。