summaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/lib/extern.h
blob: 3278b0d079c30bdf2e2da2acebc6835c7e3d1a0c (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
#include "postgres_fe.h"
#include "libpq-fe.h"

/* Here are some methods used by the lib. */
/* Returns a pointer to a string containing a simple type name. */
void		free_auto_mem(void);
bool get_data(PGresult *, int, int, int, enum ECPGttype type,
		 enum ECPGttype, void *, void *, long, long, bool);
struct connection *get_connection(const char *);
void		init_sqlca(void);
char	   *ecpg_alloc(long, int);
bool		ecpg_init(const struct connection *, const char *, const int);
char	   *ecpg_strdup(const char *, int);
const char *ECPGtype_name(enum ECPGttype);
unsigned int ECPGDynamicType(Oid);

/* A generic varchar type. */
struct ECPGgeneric_varchar
{
	int			len;
	char		arr[1];
};

/*
 * type information cache
 */
 
struct ECPGtype_information_cache
{
	struct ECPGtype_information_cache	*next;
	int		oid;
	bool	isarray;
};

/* structure to store one statement */
struct statement
{
	int			lineno;
	char	   *command;
	struct connection *connection;
	struct variable *inlist;
	struct variable *outlist;
};

/* structure to store connections */
struct connection
{
	char	   *name;
	PGconn	   *connection;
	bool	    committed;
	int	    autocommit;
	struct ECPGtype_information_cache        *cache_head;
	struct connection *next;
};