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

概要

  1. va_headerを、int32として定義。
  2. va_contentを、va_compressed、va_external、va_dataの共用体として定義。
    1. va_compressedを、va_rawsize、va_dataの構造体として定義。
      1. va_rawsizeを、int32として定義。
      2. va_dataを、サイズ1のchar配列として定義。
    2. va_externalを、va_rawsize、va_extsize、va_valueid、va_toastrelidの構造体として定義。
      1. va_rawsizeを、int32として定義。
      2. va_extsizeを、int32として定義。
      3. va_valueidを、Oidとして定義。
      4. va_toastrelidを、Oidとして定義。
    3. va_dataを、サイズ1のchar配列として定義。

実装

typedef struct varattrib {

	int32		va_header;		/* External/compressed storage */
	/* flags and item size */
	union
	{
		struct
		{
			int32		va_rawsize;		/* Plain data size */
			char		va_data[1];		/* Compressed data */
		}			va_compressed;		/* Compressed stored attribute */
		struct
		{
			int32		va_rawsize;		/* Plain data size */
			int32		va_extsize;		/* External saved size */
			Oid			va_valueid;		/* Unique identifier of value */
			Oid			va_toastrelid;	/* RelID where to find chunks */
		}			va_external;	/* External stored attribute */
		char		va_data[1]; /* Plain stored attribute */
	}			va_content;

} varattrib;

備考

* ----------------
* struct varattrib is the header of a varlena object that may have been
* TOASTed.
* ----------------

履歴

コメント



*1 99333685+99333685
*2 99333685+99333685
*3 99333685+99333685
*4 99333685+99333685
*5 99333685+99333685
*6 99333685+99333685

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