0

パラメータの 1 つとしてカスタム型を使用する C 言語関数の例を教えてください。

今日、ドキュメントに従ってみましたが、カスタム型の正しい値を取得できませんでした。

ここに例があります: http://www.postgresql.org/docs/9.3/static/xfunc-c.html#XFUNC-C-BASETYPE

#include "postgres.h"
#include "executor/executor.h"  /* for GetAttributeByName() */

#ifdef PG_MODULE_MAGIC
PG_MODULE_MAGIC;
#endif

PG_FUNCTION_INFO_V1(c_overpaid);

Datum
c_overpaid(PG_FUNCTION_ARGS)
{
    HeapTupleHeader  t = PG_GETARG_HEAPTUPLEHEADER(0);
    bool isnull;
    Datum salary;

    salary = GetAttributeByName(t, "salary", &isnull);
    if (isnull)
        PG_RETURN_BOOL(false);

    PG_RETURN_FLOAT4(DatumGetFLOAT4(salary) );
}

答えは常に「0」です。

「CREATE TYPE V AS(salary float);」を使用できます。カスタムタイプとして。どうも。

4

1 に答える 1