このページを編集する際は、編集に関する方針に従ってください。
概要 †
- cur_offsetに、以下の値を加算した値を返す。
- attlenが0より大きい場合、attlenの値。
- attlenが-1の場合、attvalをvarattrib*型にキャストしてva_headerメンバの値を取得し、上位2ビットを除外した値。
- attlenが-2の場合、attvalを文字列としてサイズを算出した値。
- それ以外の場合、attlenが-2の場合と同じ。ただし、AssertMacro()/postgresql-8.1.4が有効であれば、エラーメッセージを出力してプログラムを終了する。
引数 †
- cur_offset : オフセット値。
- attlen : 属性(?)のサイズ。
- attval : 属性(?)を格納する変数(可変長の属性(?)を扱う場合のみ使用)。
実装 †
#define att_addlength(cur_offset, attlen, attval) \
( \
((attlen) > 0) ? \
( \
(cur_offset) + (attlen) \
) \
: (((attlen) == -1) ? \
( \
(cur_offset) + VARATT_SIZE(DatumGetPointer(attval)) \
) \
: \
( \
AssertMacro((attlen) == -2), \
(cur_offset) + (strlen(DatumGetCString(attval)) + 1) \
)) \
)
呼出元 †
履歴 †
コメント †