Thread: how to get Point * from datum =heap_getattr(....)?
hi,i have this table:
CREATE TABLE pois(
uid integer not null,
name VARCHAR(128),
catcode VARCHAR(32) not null,
catname VARCHAR(32),
others VARCHAR(32)
);
SELECT AddGeometryColumn('pois', 'location', 4214, 'POINT', 2);
and then in my codes,i use this invoke to get location column in tuple:
tuple = heap_getnext(pHeapScanDesc,
CREATE TABLE pois(
uid integer not null,
name VARCHAR(128),
catcode VARCHAR(32) not null,
catname VARCHAR(32),
others VARCHAR(32)
);
SELECT AddGeometryColumn('pois', 'location', 4214, 'POINT', 2);
and then in my codes,i use this invoke to get location column in tuple:
tuple = heap_getnext(pHeapScanDesc,
ForwardScanDirection);
datum = heap_getattr(tuple,6,pRawRelation->rd_att,&isnull);
then on the next,how to write to get Point? is this right?
Point *p = isnull?NULL:(Point *)(PG_DETOAST_DATUM(datum));
i've tried it,but it seems not work.
thanks a lot.
peng
datum = heap_getattr(tuple,6,pRawRelation->rd_att,&isnull);
then on the next,how to write to get Point? is this right?
Point *p = isnull?NULL:(Point *)(PG_DETOAST_DATUM(datum));
i've tried it,but it seems not work.
thanks a lot.
peng
sunpeng <bluevaley@gmail.com> writes: > hi,i have this table: > CREATE TABLE pois( > uid integer not null, > name VARCHAR(128), > catcode VARCHAR(32) not null, > catname VARCHAR(32), > others VARCHAR(32) > ); > SELECT AddGeometryColumn('pois', 'location', 4214, 'POINT', 2); > and then in my codes,i use this invoke to get location column in tuple: > tuple = heap_getnext(pHeapScanDesc, > ForwardScanDirection); > datum = heap_getattr(tuple,6,pRawRelation->rd_att,&isnull); > then on the next,how to write to get Point? is this right? > Point *p = isnull?NULL:(Point *)(PG_DETOAST_DATUM(datum)); I'm not sure what the C-code type name is for geometry columns, but it's definitely not Point --- that corresponds to the SQL type "point". I'd suggest asking about this on the postgis mailing list. regards, tom lane