ReactOS 0.4.15-dev-5666-gc548b97
query.h
Go to the documentation of this file.
1/*
2 * Implementation of the Microsoft Installer (msi.dll)
3 *
4 * Copyright 2002 Mike McCormack for CodeWeavers
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21#ifndef __WINE_MSI_QUERY_H
22#define __WINE_MSI_QUERY_H
23
24#include <stdarg.h>
25
26#include "windef.h"
27#include "winbase.h"
28#include "objbase.h"
29#include "objidl.h"
30#include "msi.h"
31#include "msiquery.h"
32#include "msipriv.h"
33#include "wine/list.h"
34
35
36#define OP_EQ 1
37#define OP_AND 2
38#define OP_OR 3
39#define OP_GT 4
40#define OP_LT 5
41#define OP_LE 6
42#define OP_GE 7
43#define OP_NE 8
44#define OP_ISNULL 9
45#define OP_NOTNULL 10
46
47#define EXPR_COMPLEX 1
48#define EXPR_COLUMN 2
49#define EXPR_COL_NUMBER 3
50#define EXPR_IVAL 4
51#define EXPR_SVAL 5
52#define EXPR_UVAL 6
53#define EXPR_STRCMP 7
54#define EXPR_WILDCARD 9
55#define EXPR_COL_NUMBER_STRING 10
56#define EXPR_COL_NUMBER32 11
57#define EXPR_UNARY 12
58
59struct sql_str {
62};
63
65{
67 struct expr *left;
68 struct expr *right;
69};
70
71struct tagJOINTABLE;
73{
74 struct
75 {
79 struct
80 {
84};
85
86struct expr
87{
88 int type;
89 union
90 {
96 } u;
97};
98
99typedef struct
100{
105 MSIVIEW **view; /* View structure for the resulting query. This value
106 * tracks the view currently being created so we can free
107 * this view on syntax error.
108 */
109 struct list *mem;
110} SQL_input;
111
113 struct list *mem ) DECLSPEC_HIDDEN;
114
116
118 const column_info *columns ) DECLSPEC_HIDDEN;
119
121
123 column_info *columns ) DECLSPEC_HIDDEN;
124
126 struct expr *cond ) DECLSPEC_HIDDEN;
127
129 column_info *col_info, BOOL hold ) DECLSPEC_HIDDEN;
130
133
136
138
140
142
144
146
147int sqliteGetToken(const WCHAR *z, int *tokenType, int *skip) DECLSPEC_HIDDEN;
148
150
152 MSICONDITION persistent, BOOL hold ) DECLSPEC_HIDDEN;
153
155
157
158#endif /* __WINE_MSI_QUERY_H */
#define skip(...)
Definition: atltest.h:64
Definition: list.h:37
#define DECLSPEC_HIDDEN
Definition: precomp.h:8
struct png_info_def *typedef unsigned char **typedef struct png_info_def *typedef struct png_info_def *typedef struct png_info_def *typedef unsigned char ** row
Definition: typeof.h:78
struct nls_table * tables
Definition: nls_base.c:22
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
GLdouble n
Definition: glext.h:7729
GLboolean GLenum GLenum GLvoid * values
Definition: glext.h:5666
GLdouble GLdouble z
Definition: glext.h:5874
const char * fields[10]
Definition: parser.c:313
unsigned int UINT
Definition: ndis.h:50
UINT MSI_ParseSQL(MSIDATABASE *db, LPCWSTR command, MSIVIEW **phview, struct list *mem) DECLSPEC_HIDDEN
UINT msi_view_refresh_row(MSIDATABASE *db, MSIVIEW *view, UINT row, MSIRECORD *rec) DECLSPEC_HIDDEN
Definition: msiquery.c:287
UINT STORAGES_CreateView(MSIDATABASE *db, MSIVIEW **view) DECLSPEC_HIDDEN
Definition: storages.c:515
UINT STREAMS_CreateView(MSIDATABASE *db, MSIVIEW **view) DECLSPEC_HIDDEN
Definition: streams.c:539
UINT ALTER_CreateView(MSIDATABASE *db, MSIVIEW **view, LPCWSTR name, column_info *colinfo, int hold) DECLSPEC_HIDDEN
Definition: alter.c:160
UINT TABLE_CreateView(MSIDATABASE *db, LPCWSTR name, MSIVIEW **view) DECLSPEC_HIDDEN
Definition: table.c:2189
UINT msi_select_update(MSIVIEW *view, MSIRECORD *rec, UINT row) DECLSPEC_HIDDEN
Definition: select.c:249
UINT ORDER_CreateView(MSIDATABASE *db, MSIVIEW **view, MSIVIEW *table, column_info *columns) DECLSPEC_HIDDEN
MSIRECORD * msi_query_merge_record(UINT fields, const column_info *vl, MSIRECORD *rec) DECLSPEC_HIDDEN
Definition: insert.c:66
UINT DROP_CreateView(MSIDATABASE *db, MSIVIEW **view, LPCWSTR name) DECLSPEC_HIDDEN
Definition: drop.c:118
UINT WHERE_CreateView(MSIDATABASE *db, MSIVIEW **view, LPWSTR tables, struct expr *cond) DECLSPEC_HIDDEN
Definition: where.c:1226
UINT INSERT_CreateView(MSIDATABASE *db, MSIVIEW **view, LPCWSTR table, column_info *columns, column_info *values, BOOL temp) DECLSPEC_HIDDEN
Definition: insert.c:351
UINT UPDATE_CreateView(MSIDATABASE *db, MSIVIEW **view, LPWSTR table, column_info *list, struct expr *expr) DECLSPEC_HIDDEN
Definition: update.c:220
UINT SELECT_CreateView(MSIDATABASE *db, MSIVIEW **view, MSIVIEW *table, const column_info *columns) DECLSPEC_HIDDEN
Definition: select.c:423
UINT CREATE_CreateView(MSIDATABASE *db, MSIVIEW **view, LPCWSTR table, column_info *col_info, BOOL hold) DECLSPEC_HIDDEN
Definition: create.c:160
UINT msi_create_table(MSIDATABASE *db, LPCWSTR name, column_info *col_info, MSICONDITION persistent, BOOL hold) DECLSPEC_HIDDEN
Definition: table.c:705
UINT DELETE_CreateView(MSIDATABASE *db, MSIVIEW **view, MSIVIEW *table) DECLSPEC_HIDDEN
Definition: delete.c:190
int sqliteGetToken(const WCHAR *z, int *tokenType, int *skip) DECLSPEC_HIDDEN
Definition: tokenize.c:172
UINT DISTINCT_CreateView(MSIDATABASE *db, MSIVIEW **view, MSIVIEW *table) DECLSPEC_HIDDEN
Definition: distinct.c:273
static calc_node_t temp
Definition: rpn_ieee.c:38
DWORD len
Definition: query.h:103
LPCWSTR command
Definition: query.h:102
UINT r
Definition: query.h:104
struct list * mem
Definition: query.h:109
MSIVIEW ** view
Definition: query.h:105
MSIDATABASE * db
Definition: query.h:101
UINT op
Definition: query.h:66
struct expr * left
Definition: query.h:67
struct expr * right
Definition: query.h:68
Definition: query.h:87
union expr::@495 u
UINT uval
Definition: query.h:93
int type
Definition: query.h:88
LPCWSTR sval
Definition: query.h:94
INT ival
Definition: query.h:92
Definition: mem.c:156
Definition: name.c:39
Definition: query.h:59
LPCWSTR data
Definition: query.h:60
INT len
Definition: query.h:61
int32_t INT
Definition: typedefs.h:58
struct ext_column::@494 parsed
UINT column
Definition: query.h:81
LPCWSTR table
Definition: query.h:77
struct tagJOINTABLE * table
Definition: query.h:82
LPCWSTR column
Definition: query.h:76
struct ext_column::@493 unparsed
int MSICONDITION
Definition: winemsi.idl:29
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185