このページを編集する際は、編集に関する方針に従ってください。

概要

  1. attlenが0より大きい場合、cur_offset+attlenを返す。
  2. attlenが-1の場合、attvalをvarattrib構造体としてサイズを算出した結果とcur_offsetの和を返す。
  3. 上記以外の場合、以下を実行する。
    1. attlenが-2かどうかの条件でAssertMacro()/postgresql-8.1.4を実行する。
    2. attvalを文字列としてサイズを算出した結果とcur_offsetの和を返す。

引数

  1. cur_offset : オフセット値。
  2. attlen : 属性(?)のサイズ。
  3. 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) \
	)) \

)

呼出元

履歴

コメント



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS