#include <stdlib.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <pgtypes_numeric.h>

EXEC SQL include sqlda.h;

int
main(void)
{
    sqlda_t *sqlda = NULL;
	char name_buf[16] = {0};
	char var_buf[16] = {0};

	EXEC SQL CONNECT TO 'postgres@/tmp:5432' AS conn1;
    EXEC SQL PREPARE stmt1 FROM "SELECT 123::numeric(3,0), 't'::varchar(2)";
    EXEC SQL DECLARE cur1 CURSOR FOR stmt1;
    EXEC SQL OPEN cur1;

    EXEC SQL FETCH NEXT FROM cur1 INTO DESCRIPTOR sqlda;

	if (sqlda == NULL) { fprintf(stderr, "No data\n"); exit(1); }

	for (int i = 0 ; i < sqlda->sqld ; i++)
    {
		sqlvar_t v = sqlda->sqlvar[i];
		char *sqldata = v.sqldata;

		if (v.sqltype == ECPGt_numeric)
		  sqldata =
			PGTYPESnumeric_to_asc((numeric*)sqlda->sqlvar[i].sqldata, -1);
		
		printf("type: %-8s: data: \"%s\"\n", v.sqlname.data, sqldata);
	}

	EXEC SQL CLOSE cur1;
    EXEC SQL COMMIT;
    EXEC SQL DISCONNECT ALL;

    return 0;
}
