dbutils/object.h

Sat, 04 Jan 2025 13:03:01 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sat, 04 Jan 2025 13:03:01 +0100
changeset 11
0aa8cbd7912e
parent 10
80f9d007cb52
permissions
-rw-r--r--

refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list

3
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
1 /*
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
3 *
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
4 * Copyright 2024 Olaf Wintermann. All rights reserved.
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
5 *
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
8 *
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
11 *
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
15 *
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
27 */
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
28
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
29 #ifndef DBU_OBJECT_H
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
30 #define DBU_OBJECT_H
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
31
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
32 #include "dbutils/dbutils.h"
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
33 #include "dbutils/db.h"
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
34
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
35 #ifdef __cplusplus
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
36 extern "C" {
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
37 #endif
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
38
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
39 typedef struct DBUFieldMapping {
4
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
40 DBUClass *cls;
3
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
41 DBUField *field;
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
42 DBUFieldType type;
4
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
43 bool is_main;
3
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
44 } DBUFieldMapping;
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
45
4
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
46 typedef struct DBUBuilderQuery DBUBuilderQuery;
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
47 struct DBUBuilderQuery {
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
48 DBUClass *type;
10
80f9d007cb52 implement dense results
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 9
diff changeset
49 DBUField *field;
4
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
50 DBUQuery *query;
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
51 };
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
52
6
d6981b56ab30 add object cache
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 4
diff changeset
53 typedef struct DBUBuilderObjCache {
d6981b56ab30 add object cache
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 4
diff changeset
54 DBUClass *class;
d6981b56ab30 add object cache
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 4
diff changeset
55 void *obj;
d6981b56ab30 add object cache
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 4
diff changeset
56 } DBUBuilderObjCache;
d6981b56ab30 add object cache
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 4
diff changeset
57
4
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
58 struct DBUObjectBuilder {
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
59 const CxAllocator *allocator;
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
60
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
61 DBUContext *ctx;
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
62
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
63 /*
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
64 * Main query, that us used for generating the result list.
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
65 */
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
66 DBUQuery *mainQuery;
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
67
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
68 /*
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
69 * result type
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
70 */
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
71 DBUClass *resultType;
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
72
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
73 /*
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
74 * key: type name
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
75 * value: DBUQuery*
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
76 *
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
77 * Subqueries, that should be executed for all main result rows.
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
78 * Before a subquery is executed, the first parameter is set to the
7
c98ff52cd806 prepare for list members
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 6
diff changeset
79 * primary key of the main table.
4
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
80 */
10
80f9d007cb52 implement dense results
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 9
diff changeset
81 CxMap *subQueries; // TODO: implement
4
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
82
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
83 /*
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
84 * value: DBUBuilderQuery
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
85 *
6
d6981b56ab30 add object cache
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 4
diff changeset
86 * Additional queries are executed after the main query and the result
d6981b56ab30 add object cache
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 4
diff changeset
87 * objects are added to the previous queried objects
4
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
88 */
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
89 CxList *additionalQueries;
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
90
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
91 /*
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
92 * result builder
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
93 */
7
c98ff52cd806 prepare for list members
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 6
diff changeset
94 DBUObjectResult *result;
6
d6981b56ab30 add object cache
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 4
diff changeset
95
d6981b56ab30 add object cache
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 4
diff changeset
96 /*
d6981b56ab30 add object cache
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 4
diff changeset
97 * object cache
d6981b56ab30 add object cache
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 4
diff changeset
98 *
d6981b56ab30 add object cache
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 4
diff changeset
99 * key: <tablename> + <primary key>
d6981b56ab30 add object cache
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 4
diff changeset
100 * value: DBUBuilderObjCache
d6981b56ab30 add object cache
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 4
diff changeset
101 *
d6981b56ab30 add object cache
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 4
diff changeset
102 */
d6981b56ab30 add object cache
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 4
diff changeset
103 CxMap *cache;
9
5785a693834c prepare for dense queries
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 8
diff changeset
104
5785a693834c prepare for dense queries
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 8
diff changeset
105 /*
5785a693834c prepare for dense queries
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 8
diff changeset
106 * if true, the main result does not contain duplicated entries
5785a693834c prepare for dense queries
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 8
diff changeset
107 * with the same primary key
5785a693834c prepare for dense queries
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 8
diff changeset
108 */
5785a693834c prepare for dense queries
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 8
diff changeset
109 bool denseResult;
4
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
110 };
1908c8b1599f add new object builder API
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 3
diff changeset
111
8
bd08116b8af4 add support for list members to the object builder
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 7
diff changeset
112 typedef struct DBUFK {
bd08116b8af4 add support for list members to the object builder
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 7
diff changeset
113 char *cache_key;
bd08116b8af4 add support for list members to the object builder
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 7
diff changeset
114 DBUClass *cls;
bd08116b8af4 add support for list members to the object builder
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 7
diff changeset
115 } DBUFK;
bd08116b8af4 add support for list members to the object builder
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 7
diff changeset
116
11
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
117 /*
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
118 * an array of ResultType is used to describe, which object types
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
119 * a result contains
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
120 */
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
121 typedef struct DBUResultType {
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
122 /*
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
123 * class
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
124 */
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
125
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
126 DBUClass *cls;
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
127 /*
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
128 * column index of the primary key of this class
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
129 */
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
130 int pk_col;
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
131
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
132 /*
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
133 * previous PK value (allocated copy)
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
134 */
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
135 cxmutstr prev_key;
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
136
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
137 /*
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
138 * previous object pointer
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
139 */
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
140 void *prev_obj;
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
141 } DBUResultType;
0aa8cbd7912e refactor dbuObjectExecuteQuery: replace multiple lists with a single ll list
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 10
diff changeset
142
7
c98ff52cd806 prepare for list members
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 6
diff changeset
143 int dbuObjectExec(DBUObjectBuilder *builder, DBUObjectResult *objresult);
6
d6981b56ab30 add object cache
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 4
diff changeset
144
9
5785a693834c prepare for dense queries
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 8
diff changeset
145 int dbuObjectExecuteQuery(DBUObjectBuilder *builder, DBUQuery *query, DBUClass *type, DBUObjectResult *objresult, bool dense);
3
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
146
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
147 #ifdef __cplusplus
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
148 }
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
149 #endif
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
150
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
151 #endif /* DBU_OBJECT_H */
69ea9040d896 add DB abstraction layer
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
152

mercurial