ReactOS  0.4.14-dev-606-g14ebc0b
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 
59 struct sql_str {
62 };
63 
65 {
67  struct expr *left;
68  struct expr *right;
69 };
70 
71 struct tagJOINTABLE;
73 {
74  struct
75  {
78  } unparsed;
79  struct
80  {
83  } parsed;
84 };
85 
86 struct expr
87 {
88  int type;
89  union
90  {
96  } u;
97 };
98 
99 typedef 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 
147 int sqliteGetToken(const WCHAR *z, int *tokenType, int *skip) DECLSPEC_HIDDEN;
148 
150 
152  MSICONDITION persistent ) DECLSPEC_HIDDEN;
153 
154 #endif /* __WINE_MSI_QUERY_H */
UINT DELETE_CreateView(MSIDATABASE *db, MSIVIEW **view, MSIVIEW *table) DECLSPEC_HIDDEN
Definition: delete.c:199
struct tagJOINTABLE * table
Definition: query.h:82
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
UINT TABLE_CreateView(MSIDATABASE *db, LPCWSTR name, MSIVIEW **view) DECLSPEC_HIDDEN
Definition: table.c:2162
LPCWSTR sval
Definition: query.h:94
struct ext_column::@489 parsed
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:67
GLboolean GLenum GLenum GLvoid * values
Definition: glext.h:5666
UINT r
Definition: query.h:104
Definition: query.h:59
DWORD n
Definition: query.h:103
int32_t INT
Definition: typedefs.h:56
Definition: query.h:86
UINT column
Definition: query.h:81
LPCWSTR command
Definition: query.h:102
MSIVIEW ** view
Definition: query.h:105
UINT STORAGES_CreateView(MSIDATABASE *db, MSIVIEW **view) DECLSPEC_HIDDEN
Definition: storages.c:528
UINT ALTER_CreateView(MSIDATABASE *db, MSIVIEW **view, LPCWSTR name, column_info *colinfo, int hold) DECLSPEC_HIDDEN
Definition: alter.c:255
unsigned int BOOL
Definition: ntddk_ex.h:94
int type
Definition: query.h:88
UINT DROP_CreateView(MSIDATABASE *db, MSIVIEW **view, LPCWSTR name) DECLSPEC_HIDDEN
Definition: drop.c:118
UINT SELECT_CreateView(MSIDATABASE *db, MSIVIEW **view, MSIVIEW *table, const column_info *columns) DECLSPEC_HIDDEN
Definition: select.c:424
GLdouble GLdouble z
Definition: glext.h:5874
UINT CREATE_CreateView(MSIDATABASE *db, MSIVIEW **view, LPCWSTR table, column_info *col_info, BOOL hold) DECLSPEC_HIDDEN
Definition: create.c:161
union expr::@490 u
UINT msi_create_table(MSIDATABASE *db, LPCWSTR name, column_info *col_info, MSICONDITION persistent) DECLSPEC_HIDDEN
Definition: table.c:716
UINT uval
Definition: query.h:93
INT len
Definition: query.h:61
UINT INSERT_CreateView(MSIDATABASE *db, MSIVIEW **view, LPCWSTR table, column_info *columns, column_info *values, BOOL temp) DECLSPEC_HIDDEN
Definition: insert.c:361
__wchar_t WCHAR
Definition: xmlstorage.h:180
struct expr * right
Definition: query.h:68
unsigned long DWORD
Definition: ntddk_ex.h:95
struct ext_column::@488 unparsed
LPCWSTR column
Definition: query.h:76
UINT op
Definition: query.h:66
GLenum GLsizei len
Definition: glext.h:6722
int MSICONDITION
Definition: msiserver.idl:33
Definition: _list.h:228
struct list * mem
Definition: query.h:109
UINT UPDATE_CreateView(MSIDATABASE *db, MSIVIEW **view, LPWSTR table, column_info *list, struct expr *expr) DECLSPEC_HIDDEN
Definition: update.c:228
MSIDATABASE * db
Definition: query.h:101
#define DECLSPEC_HIDDEN
Definition: precomp.h:8
static calc_node_t temp
Definition: rpn_ieee.c:38
UINT WHERE_CreateView(MSIDATABASE *db, MSIVIEW **view, LPWSTR tables, struct expr *cond) DECLSPEC_HIDDEN
Definition: where.c:1209
int sqliteGetToken(const WCHAR *z, int *tokenType, int *skip) DECLSPEC_HIDDEN
Definition: tokenize.c:209
UINT MSI_ParseSQL(MSIDATABASE *db, LPCWSTR command, MSIVIEW **phview, struct list *mem) DECLSPEC_HIDDEN
Definition: sql.tab.c:2714
UINT STREAMS_CreateView(MSIDATABASE *db, MSIVIEW **view) DECLSPEC_HIDDEN
Definition: streams.c:558
unsigned int UINT
Definition: ndis.h:50
INT ival
Definition: query.h:92
#define skip(...)
Definition: atltest.h:64
Definition: mem.c:156
Definition: name.c:38
struct nls_table * tables
Definition: nls_base.c:22
WCHAR * LPWSTR
Definition: xmlstorage.h:184
LPCWSTR table
Definition: query.h:77
struct expr * left
Definition: query.h:67
LPCWSTR data
Definition: query.h:60
UINT DISTINCT_CreateView(MSIDATABASE *db, MSIVIEW **view, MSIVIEW *table) DECLSPEC_HIDDEN
Definition: distinct.c:294