err.pc

text/plain

Filename: err.pc
Type: text/plain
Part: 0
Message: postgres bug
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

EXEC SQL INCLUDE sqlca;

int main (void)
{

	EXEC SQL BEGIN DECLARE SECTION;
	char Query [128] = "INSERT into e (name,size) values (:name,:size)";
	char name [1024];
	int size = 64;
	EXEC SQL END DECLARE SECTION;

	EXEC SQL CONNECT norman;

	/* Don't complain about table existing the second time it's run */
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	EXEC SQL CREATE TABLE e (name varchar (32), size integer);
	EXEC SQL COMMIT;
	sqlca.sqlcode = 0;

	EXEC SQL WHENEVER SQLERROR Goto Error;
	EXEC SQL PREPARE Stmt FROM :Query;
	printf ("Prepared\n");

	strcpy (name, "abcdef");
	EXEC SQL EXECUTE Stmt USING :name,:size;
	printf ("Executed 1\n");

	strcpy (name, "abc'ef");
	EXEC SQL EXECUTE Stmt USING :name,:size;
	printf ("Executed 2\n");

	EXEC SQL COMMIT;

	printf ("Committed\n");
	return 0;
Error:
	printf ("Oops \"%s\"\n", name);
	printf ("%*.*s\n", sqlca.sqlerrm.sqlerrml,
			 sqlca.sqlerrm.sqlerrml, sqlca.sqlerrm.sqlerrmc);
	return 2;
}