- 2004-10-24
- pgsql
PostgreSQLのユーザー定義関数なんかを書くとき、文字列の処理にはStringInfoを使うことができる。ちなみにフロントエンド側(libpqアプリケーション)を書くときは、ほとんど同じ機能を持つPQExpBufferというのがある。
StringInfoの定義はinclude/lib/stringinfo.hに、取り扱う関数群はsrc/backend/lib/stringinfo.cにある。
初期化には、 StringInfo s = makeStringInfo(); あるいは、先に領域確保していおいて initStringInfo(s); する。StringInfo型はStringInfoDataへのポインタだ。(typedef StringInfoData *StringInfo;)
あとは、appendStringInfo(StringInfo str, const char *fmt,...)とかゴニョゴニョして、実際の文字列へのポインタが欲しくなったらs->dataする。