#include "executor/spi.h"
#include "funcapi.h"
extern char *stpcpy (char *__dest, const char *__src);
PG_FUNCTION_INFO_V1(ctest);

Datum
ctest(PG_FUNCTION_ARGS)
{   
    SPI_connect();
    char query[255];
    char *to = query;
    to =(char *) stpcpy(to,"SELECT * FROM ctest");
    void * plan;
    Portal portal;
    if ((plan = SPI_prepare(query, 0, NULL)) == NULL)
             elog(ERROR, "initialize_SPI_structures: SPI_prepare('%s') returns NULL", query);
    if ((portal = SPI_cursor_open(NULL, plan, NULL, NULL, true)) == NULL)
      elog(ERROR, "initialize_SPI_structures: SPI_cursor_open('%s') returns NULL", 
                  query);
    SPI_cursor_fetch(portal, true, 1);
    elog(INFO,"ctidhi:%d",SPI_tuptable->vals[0]->t_data->t_ctid.ip_blkid.bi_hi);
    elog(INFO,"ctidlo:%d",SPI_tuptable->vals[0]->t_data->t_ctid.ip_blkid.bi_lo);
    elog(INFO,"ctidip_posid:%d",SPI_tuptable->vals[0]->t_data->t_ctid.ip_posid);
    elog(INFO,"FINISHED PRINTING.");
    SPI_finish();
    SRF_RETURN_DONE(NULL);
}
