]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/cats/myingres.h
Fix segfault when loading Plugins
[bacula/bacula] / bacula / src / cats / myingres.h
1 #ifndef _MYINGRES_SH
2 #define _MYINGRES_SH
3 #include <eqpname.h>
4 #include <eqdefcc.h>
5 #include <eqsqlda.h>
6 /* # line 6 "myingres.sh" */    /* host code */
7 /* ---typedefs--- */
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 typedef struct ing_row {
15     IISQLVAR *sqlvar;           /* ptr to sqlvar[sqld] for one row */
16     struct ing_row *next;
17     int row_number;
18 } ING_ROW;
19 typedef enum ing_status {
20     ING_COMMAND_OK,
21     ING_TUPLES_OK,
22     ING_NO_RESULT,
23     ING_NO_ROWS_PROCESSED,
24     ING_EMPTY_RESULT,
25     ING_ERROR
26 } ING_STATUS;
27 typedef struct ing_varchar {
28     short len;
29     char* value;
30 } ING_VARCHAR;
31 /* It seems, Bacula needs the complete query result stored in one data structure */
32 typedef struct ing_result {
33     IISQLDA *sqlda;             /* descriptor */
34     INGRES_FIELD *fields;
35     int num_rows;
36     int num_fields;
37     ING_STATUS status;
38     ING_ROW *first_row;
39     ING_ROW *act_row;           /* just for iterating */
40     char numrowstring[10];
41 } INGresult;
42 typedef struct ing_conn {
43     char dbname[24];
44     char user[32];
45     char password[32];
46     char connection_name[32];
47     int session_id;
48     char *msg;
49 } INGconn;
50 /* ---Prototypes--- */
51 int     INGcheck();
52 ING_STATUS      INGresultStatus(INGresult *res);
53 short   INGgetCols(const char *stmt);
54 IISQLDA *INGgetDescriptor(short numCols, const char *stmt);
55 void    INGfreeDescriptor(IISQLDA *sqlda);
56 int     INGgetTypeSize(IISQLVAR *ingvar);
57 INGresult       *INGgetINGresult(IISQLDA *sqlda);
58 void    INGfreeINGresult(INGresult *ing_res);
59 ING_ROW *INGgetRowSpace(INGresult *ing_res);
60 void    INGfreeRowSpace(ING_ROW *row, IISQLDA *sqlda);
61 int     INGfetchAll(const char *stmt, INGresult *ing_res);
62 void    INGrowSeek(INGresult *res, int row_number);
63 char    *INGgetvalue(INGresult *res, int row_number, int column_number);
64 int     INGgetisnull(INGresult *res, int row_number, int column_number);
65 int     INGntuples(const INGresult *res);
66 int     INGnfields(const INGresult *res);
67 char    *INGfname(const INGresult *res, int column_number);
68 short   INGftype(const INGresult *res, int column_number);
69 INGresult       *INGexec(INGconn *db, const char *query);
70 void    INGclear(INGresult *res);
71 INGconn *INGconnectDB(char *dbname, char *user, char *passwd);
72 void    INGdisconnectDB(INGconn *dbconn);
73 char    *INGerrorMessage(const INGconn *conn);
74 char    *INGcmdTuples(INGresult *res);
75 /* # line 85 "myingres.sh" */   
76 #endif /* _MYINGRES_SH */