This file is indexed.

/usr/lib/grass74/include/grass/sqlp.h is in grass-dev 7.4.0-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#ifndef GRASS_SQLP_H
#define GRASS_SQLP_H

/* SQL Parser */

/* KEYWORD OPS */

/* SQL COMMANDS */
#define SQLP_CREATE 1
#define SQLP_DROP   2
#define SQLP_INSERT 3
#define SQLP_SELECT 4
#define SQLP_UPDATE 5
#define SQLP_DELETE 6
#define SQLP_ADD_COLUMN 7
#define SQLP_DROP_COLUMN 8

/* SQL OPERATORS */
  /* Arithmetical */
#define SQLP_ADD   1		/* + */
#define SQLP_SUBTR 2		/* - */
#define SQLP_MLTP  3		/* * */
#define SQLP_DIV   4		/* / */

  /* Comparison */
#define SQLP_EQ   11		/* =  */
#define SQLP_LT   12		/* <  */
#define SQLP_LE   13		/* <= */
#define SQLP_GT   14		/* >  */
#define SQLP_GE   15		/* >= */
#define SQLP_NE   16		/* <> */
#define SQLP_MTCH 17		/* ~ */

#define SQLP_ISNULL  18		/* IS NULL */
#define SQLP_NOTNULL 19		/* IS NULL */

   /* Logical */
#define SQLP_AND  21
#define SQLP_OR   22
#define SQLP_NOT  23

/* SQL VALUE TYPES, NOT COLUMN TYPES */
#define SQLP_NULL 1		/* value NULL -> unknown type */
#define SQLP_S    2		/* string */
#define SQLP_I    3		/* integer */
#define SQLP_D    4		/* float */
#define SQLP_BOOL 5		/* used only for type of expression */
#define SQLP_EXPR  6		/* expression XXX */

/* SQL COLUMN TYPES */
#define SQLP_VARCHAR 1
#define SQLP_INTEGER 2
#define SQLP_DOUBLE  3
#define SQLP_DATE    4
#define SQLP_TIME    5

#define SQLP_MAX_TABLE  200
#define SQLP_MAX_ERR    500

/* Condition node */
#define SQLP_NODE_COLUMN     1
#define SQLP_NODE_VALUE      2
#define SQLP_NODE_EXPRESSION 3

/* Order direction */
#define SORT_ASC  1
#define SORT_DESC 2


typedef struct
{
    int type;			/* SQLP_S, SQLP_I, SQLP_D, SQLP_NULL, SQL_EXPR */
    char *s;			/* pointer to string or NULL */
    int i;
    double d;
    struct sqlpnode *expr;
} SQLPVALUE;

typedef struct sqlpnode
{
    int node_type;		/* Node type: SQLP_NODE_COLUMN, SQLP_NODE_VALUE, SQLP_NODE_EXPRESSION */
    int oper;			/* Operator code */
    struct sqlpnode *left;	/* left argument, sometimes NULL */
    struct sqlpnode *right;	/* right argument, sometimes NULL */
    char *column_name;
    SQLPVALUE value;
} SQLPNODE;

typedef struct
{
    char *stmt;			/* input statement string */
    char *cur;			/* cursor for parser */
    char errmsg[SQLP_MAX_ERR + 1];
    int command;
    char table[SQLP_MAX_TABLE + 1];
    SQLPVALUE *Col;		/* column names */
    int *ColType;
    int *ColWidth;		/* length */
    int *ColDecim;		/* decimals */
    int aCol;			/* allocated */
    int nCol;			/* number of columns */
    SQLPVALUE *Val;		/* values */
    int aVal;
    int nVal;
    SQLPNODE *upperNodeptr;
    char *orderCol;		/* column name which should be used for sorting (ORDER BY) or NULL (no sorting) */
    int orderDir;		/* direction of ordering (ASC or DESC) */
} SQLPSTMT;

#include <grass/defs/sqlp.h>

extern SQLPSTMT *sqlpStmt;

#endif