]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/cats/myingres.sh
Added limit_filter which rewrites queries which use the LIMIT functions into
[bacula/bacula] / bacula / src / cats / myingres.sh
1 #ifndef _MYINGRES_SH
2 #define _MYINGRES_SH
3
4 EXEC SQL INCLUDE SQLDA;
5
6 /* ---typedefs--- */
7
8 typedef struct ing_field {
9    char          name[34];
10    int           max_length;
11    unsigned int  type;
12    unsigned int  flags;       // 1 == not null
13 } INGRES_FIELD;
14
15 typedef struct ing_row {
16     IISQLVAR *sqlvar;           /* ptr to sqlvar[sqld] for one row */
17     struct ing_row *next;
18     int row_number;
19 } ING_ROW;
20
21 typedef enum ing_status {
22     ING_COMMAND_OK,
23     ING_TUPLES_OK,
24     ING_NO_RESULT,
25     ING_NO_ROWS_PROCESSED,
26     ING_EMPTY_RESULT,
27     ING_ERROR
28 } ING_STATUS;
29
30 typedef struct ing_varchar {
31     short len;
32     char* value;
33 } ING_VARCHAR;
34
35 /* It seems, Bacula needs the complete query result stored in one data structure */
36 typedef struct ing_result {
37     IISQLDA *sqlda;             /* descriptor */
38     INGRES_FIELD *fields;
39     int num_rows;
40     int num_fields;
41     ING_STATUS status;
42     ING_ROW *first_row;
43     ING_ROW *act_row;           /* just for iterating */
44     char numrowstring[10];
45     
46 } INGresult;
47
48 typedef struct ing_conn {
49     char dbname[24];
50     char user[32];
51     char password[32];
52     char connection_name[32];
53     int session_id;
54     char *msg;
55 } INGconn;
56
57
58 /* ---Prototypes--- */
59 int INGcheck(void);
60 short INGgetCols(B_DB *mdb, const char *stmt);
61 char *INGgetvalue(INGresult *res, int row_number, int column_number);
62 int INGgetisnull(INGresult *res, int row_number, int column_number);
63 int INGntuples(const INGresult *res);
64 int INGnfields(const INGresult *res);
65 char *INGfname(const INGresult *res, int column_number);
66 short INGftype(const INGresult *res, int column_number);
67 int INGexec(B_DB *mdb, INGconn *db, const char *query);
68 INGresult *INGquery(B_DB *mdb, INGconn *db, const char *query);
69 void INGclear(INGresult *res);
70 INGconn *INGconnectDB(char *dbname, char *user, char *passwd);
71 void INGdisconnectDB(INGconn *dbconn);
72 char *INGerrorMessage(const INGconn *conn);
73 char *INGcmdTuples(INGresult *res);
74
75 #endif /* _MYINGRES_SH */