ReactOS 0.4.16-dev-340-g0540c21
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
72{
73 struct
74 {
78 struct
79 {
83};
84
85struct expr
86{
87 int type;
88 union
89 {
95 } u;
96};
97
98typedef struct
99{
104 MSIVIEW **view; /* View structure for the resulting query. This value
105 * tracks the view currently being created so we can free
106 * this view on syntax error.
107 */
108 struct list *mem;
109} SQL_input;
110
112
114
116
118
120
122
124 column_info *col_info, BOOL hold );
125
127 column_info *columns, column_info *values, BOOL temp );
128
130 column_info *list, struct expr *expr );
131
133
134UINT ALTER_CreateView( MSIDATABASE *db, MSIVIEW **view, LPCWSTR name, column_info *colinfo, int hold );
135
137
139
141
142int sqliteGetToken(const WCHAR *z, int *tokenType, int *skip);
143
145
147 MSICONDITION persistent, BOOL hold );
148
150
152
153#endif /* __WINE_MSI_QUERY_H */
#define skip(...)
Definition: atltest.h:64
Definition: list.h:37
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 STREAMS_CreateView(MSIDATABASE *db, MSIVIEW **view)
Definition: streams.c:539
UINT msi_view_refresh_row(MSIDATABASE *db, MSIVIEW *view, UINT row, MSIRECORD *rec)
Definition: msiquery.c:287
UINT msi_create_table(MSIDATABASE *db, LPCWSTR name, column_info *col_info, MSICONDITION persistent, BOOL hold)
Definition: table.c:707
UINT DROP_CreateView(MSIDATABASE *db, MSIVIEW **view, LPCWSTR name)
Definition: drop.c:118
UINT msi_select_update(MSIVIEW *view, MSIRECORD *rec, UINT row)
Definition: select.c:251
UINT UPDATE_CreateView(MSIDATABASE *db, MSIVIEW **view, LPWSTR table, column_info *list, struct expr *expr)
Definition: update.c:220
UINT CREATE_CreateView(MSIDATABASE *db, MSIVIEW **view, LPCWSTR table, column_info *col_info, BOOL hold)
Definition: create.c:160
UINT DISTINCT_CreateView(MSIDATABASE *db, MSIVIEW **view, MSIVIEW *table)
Definition: distinct.c:273
UINT ORDER_CreateView(MSIDATABASE *db, MSIVIEW **view, MSIVIEW *table, column_info *columns)
UINT STORAGES_CreateView(MSIDATABASE *db, MSIVIEW **view)
Definition: storages.c:515
int sqliteGetToken(const WCHAR *z, int *tokenType, int *skip)
Definition: tokenize.c:172
UINT INSERT_CreateView(MSIDATABASE *db, MSIVIEW **view, LPCWSTR table, column_info *columns, column_info *values, BOOL temp)
Definition: insert.c:351
UINT SELECT_CreateView(MSIDATABASE *db, MSIVIEW **view, MSIVIEW *table, const column_info *columns)
Definition: select.c:425
UINT ALTER_CreateView(MSIDATABASE *db, MSIVIEW **view, LPCWSTR name, column_info *colinfo, int hold)
Definition: alter.c:160
UINT WHERE_CreateView(MSIDATABASE *db, MSIVIEW **view, LPWSTR tables, struct expr *cond)
Definition: where.c:1225
UINT TABLE_CreateView(MSIDATABASE *db, LPCWSTR name, MSIVIEW **view)
Definition: table.c:2191
UINT MSI_ParseSQL(MSIDATABASE *db, LPCWSTR command, MSIVIEW **phview, struct list *mem)
UINT DELETE_CreateView(MSIDATABASE *db, MSIVIEW **view, MSIVIEW *table)
Definition: delete.c:190
MSIRECORD * msi_query_merge_record(UINT fields, const column_info *vl, MSIRECORD *rec)
Definition: insert.c:66
static calc_node_t temp
Definition: rpn_ieee.c:38
DWORD len
Definition: query.h:102
LPCWSTR command
Definition: query.h:101
UINT r
Definition: query.h:103
struct list * mem
Definition: query.h:108
MSIVIEW ** view
Definition: query.h:104
MSIDATABASE * db
Definition: query.h:100
UINT op
Definition: query.h:66
struct expr * left
Definition: query.h:67
struct expr * right
Definition: query.h:68
Definition: query.h:86
UINT uval
Definition: query.h:92
union expr::@507 u
int type
Definition: query.h:87
LPCWSTR sval
Definition: query.h:93
INT ival
Definition: query.h:91
Definition: mem.c:349
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 join_table * table
Definition: query.h:81
struct ext_column::@506 parsed
UINT column
Definition: query.h:80
LPCWSTR table
Definition: query.h:76
struct ext_column::@505 unparsed
LPCWSTR column
Definition: query.h:75
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