aboutsummaryrefslogtreecommitdiff
path: root/src/extend/pginsert/pginsert.c
blob: eb732c693090ff0ac0142a3decc2a3728be718aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/*
 * insert.c
 *
*/

#include <stdio.h>
#include <signal.h>
#include <time.h>
#include <halt.h>
#include <libpq-fe.h>
#include "pginterface.h"

int main(int argc, char **argv)
{
	char query[4000];
	int row =1;
	int	aint;
	float afloat;
	double adouble;
	char achar[11], achar16[17], abpchar[11], avarchar[51], atext[51];
	time_t aabstime;
	
	if (argc != 2)
		halt("Usage:  %s database\n",argv[0]);

	connectdb(argv[1],NULL,NULL,NULL,NULL);

	skip_query_errors = 1;
	doquery("DROP TABLE testfetch");
	skip_query_errors = 0;

	doquery("\
		CREATE TABLE testfetch( \
			aint 	int4, \
			afloat 	float4, \
			adouble float8, \
			achar	char, \
			achar16	char16, \
			abpchar char(10), \
			avarchar varchar(50), \
			atext	text, \
			aabstime abstime) \
		");

	while(1)
	{
		sprintf(query,"INSERT INTO testfetch VALUES ( \
			%d, \
			2322.12, \
			'923121.0323'::float8, \
			'A', \
			'Betty', \
			'Charley', \
			'Doug', \
			'Ernie', \
			'now' )", row);
		doquery(query);
		
		doquery("BEGIN WORK");
  		doquery("DECLARE c_testfetch BINARY CURSOR FOR \
					SELECT * FROM testfetch");

		doquery("FETCH ALL IN c_testfetch");

		while (fetch(
			&aint, 	
			&afloat, 	
			&adouble, 
			achar,	
			achar16,	
			abpchar, 
			avarchar, 
			atext,
			&aabstime) != END_OF_TUPLES)
				printf("int %d\nfloat %f\ndouble %f\nchar %s\nchar16 %s\n\
bpchar %s\nvarchar %s\ntext %s\nabstime %s",
				aint, 	
				afloat, 	
				adouble, 
				achar,	
				achar16,	
				abpchar, 
				avarchar,
				atext,
				ctime(&aabstime));

		
		doquery("CLOSE c_testfetch");
		doquery("COMMIT WORK");
		printf("--- %-d rows inserted so far\n",row);
		
		row++;
	}

	disconnectdb();
	return 0;
}