summaryrefslogtreecommitdiff
path: root/storage/connect/preparse.h
blob: 8b57d487736cd2a374dbd89f9b0aca46fec806f5 (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
#if !defined(PREPARSE_DEFINED)
#define PREPARSE_DEFINED

#include "checklvl.h"

/***********************************************************************/
/*  Struct of variables used by the SQL pre-parsers.                   */
/***********************************************************************/
typedef struct _prepar {
  struct _prepar *Next;
  char *Debinp;           // Start of input buffer
  char *Endinp;           // End of input buffer
  char *Pluginp;          // Points on current parsing position
  char *Plugbuf;          // Start of output buffer
  char *Plugptr;          // Current output position
  char *Debchar;          // Next/current start of command
  char *Debselp;          // Beginning of selection
  char *Debline;          // Start of current line
  char *Plugpar[32];      // Parameters
  int   Numparms;         // Number of defined parameters
  int   Nprms;            // Number of ODBC parameters
  int   Lines;            // Line number
  int   Chars;            // Index of selection start in line
  int   Endchars;         // Index of selection end in line
  int   Frinp, Frbuf;     // 0: no, 1: free, 2: delete Debinp/Plugbuf
  int   Outsize;          // Size of output buffer
  FILE *Argfile;          // File containing arguments
  int   Addargs;          // 1 if arguments are added to the list
  } PREPAR, *PPREP;

/***********************************************************************/
/*  Struct of variables used by the date format pre-parser.            */
/***********************************************************************/
typedef struct _datpar {
  char *Format;           // Points to format to decode
  char *Curp;             // Points to current parsing position
  char *InFmt;            // Start of input format
  char *OutFmt;           // Start of output format
  int   Index[8];         // Indexes of date values
  int   Num;              // Number of values to retrieve
  int   Flag;             // 1: Input, 2: Output, 4: no output blank
  int  Outsize;          // Size of output buffers
  } DATPAR, *PDTP;

/***********************************************************************/
/*  Preparsers used by SQL language.                                   */
/***********************************************************************/
#ifdef __cplusplus
extern "C" {
#endif

int sqlflex(PPREP pp);
int sqpflex(PPREP pp);
int fmdflex(PDTP pp);

#ifdef __cplusplus
}
#endif

#endif // PREPARSE_DEFINED