1 /*
2 * Copyright (C) YEAR The GNOME Foundation.
3 *
4 * AUTHORS:
5 * TO_ADD: your name and email
6 * Vivien Malerba <malerba@gnome-db.org>
7 *
8 * This Library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public License as
10 * published by the Free Software Foundation; either version 2 of the
11 * License, or (at your option) any later version.
12 *
13 * This Library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Library General Public License for more details.
17 *
18 * You should have received a copy of the GNU Library General Public
19 * License along with this Library; see the file COPYING.LIB. If not,
20 * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 * Boston, MA 02110-1301, USA.
22 */
23
24 #include <string.h>
25 #include "gda-capi.h"
26 #include "gda-capi-meta.h"
27 #include "gda-capi-provider.h"
28 #include <libgda/gda-meta-store.h>
29 #include <libgda/sql-parser/gda-sql-parser.h>
30 #include <glib/gi18n-lib.h>
31 #include <libgda/gda-server-provider-extra.h>
32 #include <libgda/gda-connection-private.h>
33 #include <libgda/gda-data-model-array.h>
34 #include <libgda/gda-set.h>
35 #include <libgda/gda-holder.h>
36 #include <libgda/gda-debug-macros.h>
37 #include <libgda/sqlite/keywords_hash.h>
38 #include "keywords_hash.c" /* this one is dynamically generated */
39
40 /*
41 * predefined statements' IDs
42 */
43 typedef enum {
44 I_STMT_1,
45 } InternalStatementItem;
46
47
48 /*
49 * predefined statements' SQL
50 */
51 static gchar *internal_sql[] = {
52 "SQL for I_STMT_1"
53 };
54
55 /*
56 * global static values, and
57 * predefined statements' GdaStatement, all initialized in _gda_capi_provider_meta_init()
58 */
59 static GMutex init_mutex;
60 static GdaStatement **internal_stmt = NULL;
61 static GdaSet *i_set = NULL;
62 static GdaSqlParser *internal_parser = NULL;
63 /* TO_ADD: other static values */
64
65
66 /*
67 * Meta initialization
68 */
69 void
_gda_capi_provider_meta_init(GdaServerProvider * provider)70 _gda_capi_provider_meta_init (GdaServerProvider *provider)
71 {
72 g_mutex_lock (&init_mutex);
73
74 if (!internal_stmt) {
75 InternalStatementItem i;
76 internal_parser = gda_server_provider_internal_get_parser (provider);
77 internal_stmt = g_new0 (GdaStatement *, sizeof (internal_sql) / sizeof (gchar*));
78 for (i = I_STMT_1; i < sizeof (internal_sql) / sizeof (gchar*); i++) {
79 internal_stmt[i] = gda_sql_parser_parse_string (internal_parser, internal_sql[i], NULL, NULL);
80 if (!internal_stmt[i])
81 g_error ("Could not parse internal statement: %s\n", internal_sql[i]);
82 }
83
84 /* initialize static values here */
85 i_set = gda_set_new_inline (4, "cat", G_TYPE_STRING, "",
86 "name", G_TYPE_STRING, "",
87 "schema", G_TYPE_STRING, "",
88 "name2", G_TYPE_STRING, "");
89 }
90
91 g_mutex_unlock (&init_mutex);
92
93 #ifdef GDA_DEBUG
94 /* make sure the reserved keywords hash works correctly */
95 test_keywords ();
96 #endif
97 }
98
99 gboolean
_gda_capi_meta__info(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,GdaMetaStore * store,GdaMetaContext * context,GError ** error)100 _gda_capi_meta__info (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
101 GdaMetaStore *store, GdaMetaContext *context, GError **error)
102 {
103 GdaDataModel *model = NULL;
104 gboolean retval;
105
106 TO_IMPLEMENT;
107 /* fill in @model, with something like:
108 * model = gda_connection_statement_execute_select (cnc, internal_stmt[I_STMT_1], NULL,
109 * error);
110 */
111 if (!model)
112 return FALSE;
113
114 gda_meta_store_set_reserved_keywords_func (store, is_keyword);
115 retval = gda_meta_store_modify_with_context (store, context, model, error);
116 g_object_unref (model);
117
118 return retval;
119 }
120
121 gboolean
_gda_capi_meta__btypes(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)122 _gda_capi_meta__btypes (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
123 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
124 G_GNUC_UNUSED GError **error)
125 {
126 TO_IMPLEMENT;
127 return TRUE;
128 }
129
130 gboolean
_gda_capi_meta__udt(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)131 _gda_capi_meta__udt (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
132 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context, G_GNUC_UNUSED GError **error)
133 {
134 TO_IMPLEMENT;
135 return TRUE;
136 }
137
138 gboolean
_gda_capi_meta_udt(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,GdaMetaStore * store,GdaMetaContext * context,GError ** error,const GValue * udt_catalog,const GValue * udt_schema)139 _gda_capi_meta_udt (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
140 GdaMetaStore *store, GdaMetaContext *context, GError **error,
141 const GValue *udt_catalog, const GValue *udt_schema)
142 {
143 GdaDataModel *model = NULL;
144 gboolean retval = TRUE;
145
146 /* set internal holder's values from the arguments */
147 if (! gda_holder_set_value (gda_set_get_holder (i_set, "cat"), udt_catalog, error))
148 return FALSE;
149 if (! gda_holder_set_value (gda_set_get_holder (i_set, "schema"), udt_schema, error))
150 return FALSE;
151
152 TO_IMPLEMENT;
153 /* fill in @model, with something like:
154 * model = gda_connection_statement_execute_select (cnc, internal_stmt[I_STMT_UDT], i_set, error);
155 */
156 if (!model)
157 return FALSE;
158
159 gda_meta_store_set_reserved_keywords_func (store, is_keyword);
160 retval = gda_meta_store_modify_with_context (store, context, model, error);
161 g_object_unref (model);
162
163 return retval;
164 }
165
166
167 gboolean
_gda_capi_meta__udt_cols(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)168 _gda_capi_meta__udt_cols (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
169 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
170 G_GNUC_UNUSED GError **error)
171 {
172 TO_IMPLEMENT;
173 return TRUE;
174 }
175
176 gboolean
_gda_capi_meta_udt_cols(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * udt_catalog,G_GNUC_UNUSED const GValue * udt_schema,G_GNUC_UNUSED const GValue * udt_name)177 _gda_capi_meta_udt_cols (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
178 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
179 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *udt_catalog,
180 G_GNUC_UNUSED const GValue *udt_schema, G_GNUC_UNUSED const GValue *udt_name)
181 {
182 TO_IMPLEMENT;
183 return TRUE;
184 }
185
186 gboolean
_gda_capi_meta__enums(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)187 _gda_capi_meta__enums (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
188 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
189 G_GNUC_UNUSED GError **error)
190 {
191 TO_IMPLEMENT;
192 return TRUE;
193 }
194
195 gboolean
_gda_capi_meta_enums(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * udt_catalog,G_GNUC_UNUSED const GValue * udt_schema,G_GNUC_UNUSED const GValue * udt_name)196 _gda_capi_meta_enums (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
197 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
198 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *udt_catalog,
199 G_GNUC_UNUSED const GValue *udt_schema, G_GNUC_UNUSED const GValue *udt_name)
200 {
201 TO_IMPLEMENT;
202 return TRUE;
203 }
204
205
206 gboolean
_gda_capi_meta__domains(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)207 _gda_capi_meta__domains (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
208 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
209 G_GNUC_UNUSED GError **error)
210 {
211 TO_IMPLEMENT;
212 return TRUE;
213 }
214
215 gboolean
_gda_capi_meta_domains(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * domain_catalog,G_GNUC_UNUSED const GValue * domain_schema)216 _gda_capi_meta_domains (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
217 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
218 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *domain_catalog,
219 G_GNUC_UNUSED const GValue *domain_schema)
220 {
221 TO_IMPLEMENT;
222 return TRUE;
223 }
224
225 gboolean
_gda_capi_meta__constraints_dom(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)226 _gda_capi_meta__constraints_dom (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
227 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
228 G_GNUC_UNUSED GError **error)
229 {
230 TO_IMPLEMENT;
231 return TRUE;
232 }
233
234 gboolean
_gda_capi_meta_constraints_dom(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * domain_catalog,G_GNUC_UNUSED const GValue * domain_schema,G_GNUC_UNUSED const GValue * domain_name)235 _gda_capi_meta_constraints_dom (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
236 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
237 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *domain_catalog,
238 G_GNUC_UNUSED const GValue *domain_schema,
239 G_GNUC_UNUSED const GValue *domain_name)
240 {
241 TO_IMPLEMENT;
242 return TRUE;
243 }
244
245 gboolean
_gda_capi_meta__el_types(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)246 _gda_capi_meta__el_types (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
247 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
248 G_GNUC_UNUSED GError **error)
249 {
250 TO_IMPLEMENT;
251 return TRUE;
252 }
253
254 gboolean
_gda_capi_meta_el_types(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * specific_name)255 _gda_capi_meta_el_types (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
256 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
257 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *specific_name)
258 {
259 TO_IMPLEMENT;
260 return TRUE;
261 }
262
263 gboolean
_gda_capi_meta__collations(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)264 _gda_capi_meta__collations (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
265 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
266 G_GNUC_UNUSED GError **error)
267 {
268 TO_IMPLEMENT;
269 return TRUE;
270 }
271
272 gboolean
_gda_capi_meta_collations(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * collation_catalog,G_GNUC_UNUSED const GValue * collation_schema,G_GNUC_UNUSED const GValue * collation_name_n)273 _gda_capi_meta_collations (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
274 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
275 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *collation_catalog,
276 G_GNUC_UNUSED const GValue *collation_schema,
277 G_GNUC_UNUSED const GValue *collation_name_n)
278 {
279 TO_IMPLEMENT;
280 return TRUE;
281 }
282
283 gboolean
_gda_capi_meta__character_sets(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)284 _gda_capi_meta__character_sets (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
285 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
286 G_GNUC_UNUSED GError **error)
287 {
288 TO_IMPLEMENT;
289 return TRUE;
290 }
291
292 gboolean
_gda_capi_meta_character_sets(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * chset_catalog,G_GNUC_UNUSED const GValue * chset_schema,G_GNUC_UNUSED const GValue * chset_name_n)293 _gda_capi_meta_character_sets (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
294 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
295 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *chset_catalog,
296 G_GNUC_UNUSED const GValue *chset_schema,
297 G_GNUC_UNUSED const GValue *chset_name_n)
298 {
299 TO_IMPLEMENT;
300 return TRUE;
301 }
302
303 gboolean
_gda_capi_meta__schemata(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)304 _gda_capi_meta__schemata (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
305 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
306 G_GNUC_UNUSED GError **error)
307 {
308 TO_IMPLEMENT;
309 return TRUE;
310 }
311
312 gboolean
_gda_capi_meta_schemata(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * catalog_name,G_GNUC_UNUSED const GValue * schema_name_n)313 _gda_capi_meta_schemata (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
314 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
315 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *catalog_name,
316 G_GNUC_UNUSED const GValue *schema_name_n)
317 {
318 TO_IMPLEMENT;
319 return TRUE;
320 }
321
322 gboolean
_gda_capi_meta__tables_views(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)323 _gda_capi_meta__tables_views (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
324 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
325 G_GNUC_UNUSED GError **error)
326 {
327 TO_IMPLEMENT;
328 return TRUE;
329 }
330
331 gboolean
_gda_capi_meta_tables_views(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * table_catalog,G_GNUC_UNUSED const GValue * table_schema,G_GNUC_UNUSED const GValue * table_name_n)332 _gda_capi_meta_tables_views (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
333 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
334 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *table_catalog,
335 G_GNUC_UNUSED const GValue *table_schema,
336 G_GNUC_UNUSED const GValue *table_name_n)
337 {
338 TO_IMPLEMENT;
339 return TRUE;
340 }
341
342 gboolean
_gda_capi_meta__columns(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)343 _gda_capi_meta__columns (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
344 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
345 G_GNUC_UNUSED GError **error)
346 {
347 TO_IMPLEMENT;
348 return TRUE;
349 }
350
351 gboolean
_gda_capi_meta_columns(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * table_catalog,G_GNUC_UNUSED const GValue * table_schema,G_GNUC_UNUSED const GValue * table_name)352 _gda_capi_meta_columns (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
353 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
354 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *table_catalog,
355 G_GNUC_UNUSED const GValue *table_schema, G_GNUC_UNUSED const GValue *table_name)
356 {
357 TO_IMPLEMENT;
358 return TRUE;
359 }
360
361 gboolean
_gda_capi_meta__view_cols(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)362 _gda_capi_meta__view_cols (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
363 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
364 G_GNUC_UNUSED GError **error)
365 {
366 TO_IMPLEMENT;
367 return TRUE;
368 }
369
370 gboolean
_gda_capi_meta_view_cols(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * view_catalog,G_GNUC_UNUSED const GValue * view_schema,G_GNUC_UNUSED const GValue * view_name)371 _gda_capi_meta_view_cols (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
372 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
373 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *view_catalog,
374 G_GNUC_UNUSED const GValue *view_schema, G_GNUC_UNUSED const GValue *view_name)
375 {
376 TO_IMPLEMENT;
377 return TRUE;
378 }
379
380 gboolean
_gda_capi_meta__constraints_tab(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)381 _gda_capi_meta__constraints_tab (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
382 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
383 G_GNUC_UNUSED GError **error)
384 {
385 TO_IMPLEMENT;
386 return TRUE;
387 }
388
389 gboolean
_gda_capi_meta_constraints_tab(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * table_catalog,G_GNUC_UNUSED const GValue * table_schema,G_GNUC_UNUSED const GValue * table_name,G_GNUC_UNUSED const GValue * constraint_name_n)390 _gda_capi_meta_constraints_tab (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
391 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
392 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *table_catalog,
393 G_GNUC_UNUSED const GValue *table_schema,
394 G_GNUC_UNUSED const GValue *table_name,
395 G_GNUC_UNUSED const GValue *constraint_name_n)
396 {
397 TO_IMPLEMENT;
398 return TRUE;
399 }
400
401 gboolean
_gda_capi_meta__constraints_ref(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)402 _gda_capi_meta__constraints_ref (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
403 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
404 G_GNUC_UNUSED GError **error)
405 {
406 TO_IMPLEMENT;
407 return TRUE;
408 }
409
410 gboolean
_gda_capi_meta_constraints_ref(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * table_catalog,G_GNUC_UNUSED const GValue * table_schema,G_GNUC_UNUSED const GValue * table_name,G_GNUC_UNUSED const GValue * constraint_name)411 _gda_capi_meta_constraints_ref (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
412 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
413 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *table_catalog,
414 G_GNUC_UNUSED const GValue *table_schema,
415 G_GNUC_UNUSED const GValue *table_name,
416 G_GNUC_UNUSED const GValue *constraint_name)
417 {
418 TO_IMPLEMENT;
419 return TRUE;
420 }
421
422 gboolean
_gda_capi_meta__key_columns(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)423 _gda_capi_meta__key_columns (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
424 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
425 G_GNUC_UNUSED GError **error)
426 {
427 TO_IMPLEMENT;
428 return TRUE;
429 }
430
431 gboolean
_gda_capi_meta_key_columns(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * table_catalog,G_GNUC_UNUSED const GValue * table_schema,G_GNUC_UNUSED const GValue * table_name,G_GNUC_UNUSED const GValue * constraint_name)432 _gda_capi_meta_key_columns (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
433 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
434 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *table_catalog,
435 G_GNUC_UNUSED const GValue *table_schema,
436 G_GNUC_UNUSED const GValue *table_name,
437 G_GNUC_UNUSED const GValue *constraint_name)
438 {
439 TO_IMPLEMENT;
440 return TRUE;
441 }
442
443 gboolean
_gda_capi_meta__check_columns(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)444 _gda_capi_meta__check_columns (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
445 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
446 G_GNUC_UNUSED GError **error)
447 {
448 TO_IMPLEMENT;
449 return TRUE;
450 }
451
452 gboolean
_gda_capi_meta_check_columns(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * table_catalog,G_GNUC_UNUSED const GValue * table_schema,G_GNUC_UNUSED const GValue * table_name,G_GNUC_UNUSED const GValue * constraint_name)453 _gda_capi_meta_check_columns (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
454 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
455 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *table_catalog,
456 G_GNUC_UNUSED const GValue *table_schema,
457 G_GNUC_UNUSED const GValue *table_name,
458 G_GNUC_UNUSED const GValue *constraint_name)
459 {
460 TO_IMPLEMENT;
461 return TRUE;
462 }
463
464 gboolean
_gda_capi_meta__triggers(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)465 _gda_capi_meta__triggers (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
466 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
467 G_GNUC_UNUSED GError **error)
468 {
469 TO_IMPLEMENT;
470 return TRUE;
471 }
472
473 gboolean
_gda_capi_meta_triggers(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * table_catalog,G_GNUC_UNUSED const GValue * table_schema,G_GNUC_UNUSED const GValue * table_name)474 _gda_capi_meta_triggers (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
475 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
476 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *table_catalog,
477 G_GNUC_UNUSED const GValue *table_schema, G_GNUC_UNUSED const GValue *table_name)
478 {
479 TO_IMPLEMENT;
480 return TRUE;
481 }
482
483 gboolean
_gda_capi_meta__routines(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)484 _gda_capi_meta__routines (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
485 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
486 G_GNUC_UNUSED GError **error)
487 {
488 TO_IMPLEMENT;
489 return TRUE;
490 }
491
492 gboolean
_gda_capi_meta_routines(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * routine_catalog,G_GNUC_UNUSED const GValue * routine_schema,G_GNUC_UNUSED const GValue * routine_name_n)493 _gda_capi_meta_routines (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
494 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
495 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *routine_catalog,
496 G_GNUC_UNUSED const GValue *routine_schema,
497 G_GNUC_UNUSED const GValue *routine_name_n)
498 {
499 TO_IMPLEMENT;
500 return TRUE;
501 }
502
503 gboolean
_gda_capi_meta__routine_col(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)504 _gda_capi_meta__routine_col (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
505 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
506 G_GNUC_UNUSED GError **error)
507 {
508 TO_IMPLEMENT;
509 return TRUE;
510 }
511
512 gboolean
_gda_capi_meta_routine_col(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * rout_catalog,G_GNUC_UNUSED const GValue * rout_schema,G_GNUC_UNUSED const GValue * rout_name)513 _gda_capi_meta_routine_col (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
514 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
515 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *rout_catalog,
516 G_GNUC_UNUSED const GValue *rout_schema, G_GNUC_UNUSED const GValue *rout_name)
517 {
518 TO_IMPLEMENT;
519 return TRUE;
520 }
521
522 gboolean
_gda_capi_meta__routine_par(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)523 _gda_capi_meta__routine_par (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
524 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context, G_GNUC_UNUSED GError **error)
525 {
526 TO_IMPLEMENT;
527 return TRUE;
528 }
529
530 gboolean
_gda_capi_meta_routine_par(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * rout_catalog,G_GNUC_UNUSED const GValue * rout_schema,G_GNUC_UNUSED const GValue * rout_name)531 _gda_capi_meta_routine_par (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
532 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
533 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *rout_catalog,
534 G_GNUC_UNUSED const GValue *rout_schema, G_GNUC_UNUSED const GValue *rout_name)
535 {
536 TO_IMPLEMENT;
537 return TRUE;
538 }
539
540 gboolean
_gda_capi_meta__indexes_tab(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)541 _gda_capi_meta__indexes_tab (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
542 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
543 G_GNUC_UNUSED GError **error)
544 {
545 TO_IMPLEMENT;
546 return TRUE;
547 }
548
549 gboolean
_gda_capi_meta_indexes_tab(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * table_catalog,G_GNUC_UNUSED const GValue * table_schema,G_GNUC_UNUSED const GValue * table_name,G_GNUC_UNUSED const GValue * index_name_n)550 _gda_capi_meta_indexes_tab (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
551 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
552 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *table_catalog,
553 G_GNUC_UNUSED const GValue *table_schema, G_GNUC_UNUSED const GValue *table_name,
554 G_GNUC_UNUSED const GValue *index_name_n)
555 {
556 TO_IMPLEMENT;
557 return TRUE;
558 }
559
560 gboolean
_gda_capi_meta__index_cols(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error)561 _gda_capi_meta__index_cols (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
562 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
563 G_GNUC_UNUSED GError **error)
564 {
565 TO_IMPLEMENT;
566 return TRUE;
567 }
568
569 gboolean
_gda_capi_meta_index_cols(G_GNUC_UNUSED GdaServerProvider * prov,G_GNUC_UNUSED GdaConnection * cnc,G_GNUC_UNUSED GdaMetaStore * store,G_GNUC_UNUSED GdaMetaContext * context,G_GNUC_UNUSED GError ** error,G_GNUC_UNUSED const GValue * table_catalog,G_GNUC_UNUSED const GValue * table_schema,G_GNUC_UNUSED const GValue * table_name,G_GNUC_UNUSED const GValue * index_name)570 _gda_capi_meta_index_cols (G_GNUC_UNUSED GdaServerProvider *prov, G_GNUC_UNUSED GdaConnection *cnc,
571 G_GNUC_UNUSED GdaMetaStore *store, G_GNUC_UNUSED GdaMetaContext *context,
572 G_GNUC_UNUSED GError **error, G_GNUC_UNUSED const GValue *table_catalog,
573 G_GNUC_UNUSED const GValue *table_schema, G_GNUC_UNUSED const GValue *table_name,
574 G_GNUC_UNUSED const GValue *index_name)
575 {
576 TO_IMPLEMENT;
577 return TRUE;
578 }
579