DuroDBMS API  1.7
rdb.h
1 #ifndef RDB_RDB_H
2 #define RDB_RDB_H
3 
4 /*
5 Main DuroDBMS header file.
6 
7 This file is part of DuroDBMS, a relational database management system.
8 Copyright (C) 2003-2009, 2011-2018 Rene Hartmann.
9 
10 DuroDBMS is free software; you can redistribute it and/or modify
11 it under the terms of the GNU Lesser General Public License as published by
12 the Free Software Foundation; either version 3 of the License, or
13 (at your option) any later version.
14 
15 DuroDBMS is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
19 
20 You should have received a copy of the GNU General Public License
21 along with DuroDBMS; if not, write to the Free Software Foundation, Inc.,
22 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 */
24 
25 #include <rec/env.h>
26 #include <rec/dbdefs.h>
27 #include <rec/tx.h>
28 #include <gen/hashmap.h>
29 #include <gen/hashtable.h>
30 #include <gen/types.h>
31 #include <obj/type.h>
32 #include <obj/object.h>
33 #include <obj/excontext.h>
34 #include <obj/expression.h>
35 #include <obj/builtintypes.h>
36 #include <obj/tuple.h>
37 #include <obj/array.h>
38 #include <obj/operator.h>
39 #include <obj/objmatch.h>
40 
41 #include <stdlib.h>
42 
43 #define RDB_THE_PREFIX "the_"
44 
45 #define RDB_TREAT_PREFIX "treat_as_"
46 #define RDB_TREAT_PREFIX_LEN (sizeof(RDB_TREAT_PREFIX) - 1)
47 
48 typedef struct RDB_expression RDB_expression;
49 
58 typedef struct {
60  char *attrname;
62  RDB_bool asc;
63 } RDB_seq_item;
64 
69 typedef struct RDB_qresult RDB_qresult;
70 
71 #ifndef DOXYGEN_SHOULD_SKIP_THIS
72 
73 typedef struct RDB_database RDB_database;
74 
75 typedef struct RDB_transaction RDB_transaction;
76 
77 typedef struct RDB_transaction {
78  /* internal */
79  RDB_database *dbp;
80  RDB_environment *envp;
81  RDB_rec_transaction *tx;
82  void *user_data;
83  struct RDB_transaction *parentp;
84  struct RDB_rmlink *delrmp;
85  struct RDB_ixlink *delixp;
86 } RDB_transaction;
87 
88 #endif
89 
90 typedef int RDB_apply_constraint_fn(RDB_expression *, const char *,
91  RDB_exec_context *, RDB_transaction *);
92 
100 typedef struct {
101  char *name;
102  RDB_expression *exp;
104 
109 typedef RDB_object *RDB_getobjfn(const char *, void *);
110 
115 enum {
116  RDB_DISTINCT = 1,
117  RDB_INCLUDED = 2
118 };
119 
123 typedef struct {
124  RDB_object *tbp;
125  RDB_object *objp;
126  int flags;
127 } RDB_ma_insert;
128 
129 typedef struct {
130  const char *name;
131  RDB_expression *exp;
133 
137 typedef struct {
138  RDB_object *tbp;
139  RDB_expression *condp;
140  int updc;
141  RDB_attr_update *updv;
142 } RDB_ma_update;
143 
147 typedef struct {
148  RDB_object *tbp;
149  RDB_expression *condp;
150 } RDB_ma_delete;
151 
155 typedef struct {
156  RDB_object *tbp;
157  RDB_object *objp;
158  int flags;
160 
161 typedef struct {
162  RDB_object *dstp;
163  RDB_object *srcp;
164 } RDB_ma_copy;
165 
174 enum {
175  RDB_TYPE_ORDERED = 1,
176  RDB_TYPE_UNION = 2
177 };
178 
183 int
184 RDB_init_builtin(RDB_exec_context *);
185 
186 const char *
187 RDB_db_name(const RDB_database *);
188 
189 RDB_environment *
190 RDB_db_env(RDB_database *);
191 
192 RDB_database *
193 RDB_create_db_from_env(const char *, RDB_environment *,
194  RDB_exec_context *);
195 
196 RDB_database *
197 RDB_get_db_from_env(const char *, RDB_environment *, RDB_exec_context *,
198  RDB_transaction *);
199 
200 int
201 RDB_drop_db(RDB_database *, RDB_exec_context *);
202 
203 int
204 RDB_get_dbs(RDB_environment *, RDB_object *, RDB_exec_context *);
205 
206 RDB_object *
207 RDB_create_table(const char *,
208  int, const RDB_attr[],
209  int, const RDB_string_vec[],
210  RDB_exec_context *, RDB_transaction *);
211 
212 RDB_object *
213 RDB_create_table_from_type(const char *name,
214  RDB_type *,
215  int keyc, const RDB_string_vec[],
216  int, const RDB_attr[],
217  RDB_exec_context *, RDB_transaction *);
218 
219 int
220 RDB_init_table(RDB_object *, const char *,
221  int, const RDB_attr[],
222  int, const RDB_string_vec[],
223  RDB_exec_context *);
224 
225 int
226 RDB_init_table_from_type(RDB_object *, const char *, RDB_type *,
227  int, const RDB_string_vec keyv[],
228  int, const RDB_attr[],
229  RDB_exec_context *);
230 
231 int
232 RDB_create_public_table(const char *,
233  int, const RDB_attr[],
234  int, const RDB_string_vec[],
235  RDB_exec_context *, RDB_transaction *);
236 
237 int
238 RDB_create_public_table_from_type(const char *,
239  RDB_type *,
240  int, const RDB_string_vec[],
241  RDB_exec_context *, RDB_transaction *);
242 
243 int
244 RDB_map_public_table(const char *, RDB_expression *,
245  RDB_exec_context *, RDB_transaction *);
246 
247 RDB_object *
248 RDB_get_table(const char *, RDB_exec_context *, RDB_transaction *);
249 
250 int
251 RDB_drop_table(RDB_object *, RDB_exec_context *, RDB_transaction *);
252 
253 int
254 RDB_drop_table_by_name(const char *, RDB_exec_context *, RDB_transaction *);
255 
256 int
257 RDB_table_keys(RDB_object *, RDB_exec_context *, RDB_string_vec **);
258 
259 const char *
260 RDB_table_name(const RDB_object *);
261 
262 int
263 RDB_set_table_name(RDB_object *, const char *, RDB_exec_context *,
264  RDB_transaction *);
265 
266 int
267 RDB_add_table(RDB_object *, RDB_database *, RDB_exec_context *, RDB_transaction *);
268 
269 int
270 RDB_insert(RDB_object *tbp, const RDB_object *tplp, RDB_exec_context *,
271  RDB_transaction *);
272 
273 RDB_int
274 RDB_update(RDB_object *, RDB_expression *, int attrc,
275  const RDB_attr_update updv[], RDB_exec_context *, RDB_transaction *);
276 
277 RDB_int
278 RDB_delete(RDB_object *tbp, RDB_expression *condp, RDB_exec_context *,
279  RDB_transaction *);
280 
281 int
282 RDB_copy_table(RDB_object *dstp, RDB_object *srcp, RDB_exec_context *,
283  RDB_transaction *);
284 
285 RDB_int
286 RDB_move_tuples(RDB_object *, RDB_object *, int, RDB_exec_context *,
287  RDB_transaction *);
288 
289 RDB_int
290 RDB_multi_assign(int, const RDB_ma_insert[],
291  int, const RDB_ma_update[],
292  int, const RDB_ma_delete[],
293  int, const RDB_ma_vdelete[],
294  int, const RDB_ma_copy[],
295  RDB_getobjfn *, void *,
296  RDB_exec_context *, RDB_transaction *);
297 
298 int
300  int, const RDB_ma_update[],
301  int, const RDB_ma_delete[],
302  int, const RDB_ma_vdelete[],
303  int, const RDB_ma_copy[],
304  RDB_apply_constraint_fn *,
305  RDB_getobjfn *, void *,
306  RDB_exec_context *, RDB_transaction *);
307 
308 int
309 RDB_max(RDB_object *, RDB_expression *, RDB_exec_context *,
310  RDB_transaction *, RDB_object *);
311 
312 int
313 RDB_min(RDB_object *tbp, RDB_expression *, RDB_exec_context *,
314  RDB_transaction *, RDB_object *);
315 
316 int
317 RDB_all(RDB_object *tbp, RDB_expression *, RDB_exec_context *,
318  RDB_transaction *, RDB_bool *);
319 
320 int
321 RDB_any(RDB_object *tbp, RDB_expression *, RDB_exec_context *,
322  RDB_transaction *, RDB_bool *);
323 
324 int
325 RDB_sum(RDB_object *, RDB_expression *, RDB_exec_context *,
326  RDB_transaction *, RDB_object *);
327 
328 int
329 RDB_avg(RDB_object *, RDB_expression *, RDB_exec_context *,
330  RDB_transaction *, RDB_float *);
331 
332 int
333 RDB_table_contains(RDB_object *tbp, const RDB_object *, RDB_exec_context *,
334  RDB_transaction *, RDB_bool *);
335 
336 int
337 RDB_subset(RDB_object *tb1p, RDB_object *tb2p, RDB_exec_context *,
338  RDB_transaction *, RDB_bool *);
339 
340 int
341 RDB_table_matching_tuple(RDB_object *, const RDB_object *, RDB_exec_context *,
342  RDB_transaction *, RDB_bool *);
343 
344 int
345 RDB_extract_tuple(RDB_object *, RDB_exec_context *, RDB_transaction *,
346  RDB_object *);
347 
348 RDB_bool
349 RDB_table_is_persistent(const RDB_object *);
350 
351 RDB_bool
352 RDB_table_is_real(const RDB_object *);
353 
354 RDB_bool
355 RDB_table_is_stored(const RDB_object *);
356 
357 RDB_bool
358 RDB_table_is_user(const RDB_object *);
359 
360 int
361 RDB_table_is_empty(RDB_object *, RDB_exec_context *, RDB_transaction *,
362  RDB_bool *resultp);
363 
364 RDB_int
365 RDB_cardinality(RDB_object *tbp, RDB_exec_context *, RDB_transaction *);
366 
367 RDB_object *
368 RDB_expr_to_vtable(RDB_expression *, RDB_exec_context *, RDB_transaction *);
369 
370 RDB_expression *
371 RDB_vtable_expr(const RDB_object *);
372 
373 RDB_bool
374 RDB_expr_refers(const RDB_expression *, const RDB_object *);
375 
376 RDB_attr *
377 RDB_table_attrs(const RDB_object *, int *);
378 
379 RDB_bool
380 RDB_expr_is_serial(const RDB_expression *);
381 
382 int
383 RDB_create_table_index(const char *name, RDB_object *tbp, int idxcompc,
384  const RDB_seq_item idxcompv[], int flags, RDB_exec_context *,
385  RDB_transaction *);
386 
387 int
388 RDB_drop_table_index(const char *name, RDB_exec_context *, RDB_transaction *);
389 
390 int
391 RDB_infer_keys(RDB_expression *, RDB_getobjfn *, void *,
392  RDB_environment *, RDB_exec_context *, RDB_transaction *,
393  RDB_string_vec **, RDB_bool *);
394 
395 int
396 RDB_define_type(const char *, int, const RDB_possrep[],
397  RDB_expression *, RDB_expression *, int,
398  RDB_exec_context *, RDB_transaction *);
399 
400 int
401 RDB_define_subtype(const char *, int, RDB_type *[], int, const RDB_possrep[],
402  RDB_expression *, RDB_expression *, int, RDB_exec_context *,
403  RDB_transaction *);
404 
405 RDB_type *
406 RDB_get_type(const char *name, RDB_exec_context *, RDB_transaction *);
407 
408 int
409 RDB_drop_type(const char *name, RDB_exec_context *, RDB_transaction *);
410 
411 int
412 RDB_next_attr_sorted(const RDB_type *, const char *);
413 
414 RDB_type *
415 RDB_type_attr_type(const RDB_type *, const char *);
416 
417 RDB_bool
418 RDB_is_selector(const RDB_operator *);
419 
420 RDB_database *
421 RDB_tx_db(RDB_transaction *);
422 
423 RDB_bool
424 RDB_tx_is_running(RDB_transaction *);
425 
426 int
427 RDB_begin_tx(RDB_exec_context *, RDB_transaction *, RDB_database *dbp,
428  RDB_transaction *parent);
429 
430 int
431 RDB_commit(RDB_exec_context *, RDB_transaction *);
432 
433 int
434 RDB_rollback(RDB_exec_context *, RDB_transaction *);
435 
436 int
437 RDB_rollback_all(RDB_exec_context *, RDB_transaction *);
438 
439 void
440 RDB_handle_err(RDB_exec_context *, RDB_transaction *);
441 
442 int
443 RDB_obj_equals(const RDB_object *, const RDB_object *,
444  RDB_exec_context *, RDB_transaction *, RDB_bool *);
445 
446 int
447 RDB_set_init_value(RDB_object *, RDB_type *, RDB_environment *,
448  RDB_exec_context *);
449 
450 int
451 RDB_extend_tuple(RDB_object *, int attrc, const RDB_virtual_attr attrv[],
452  RDB_getobjfn *, void *, RDB_exec_context *, RDB_transaction *);
453 
454 int
455 RDB_add_tuple(RDB_object *, const RDB_object *,
456  RDB_exec_context *, RDB_transaction *);
457 
458 int
459 RDB_union_tuples(const RDB_object *, const RDB_object *, RDB_exec_context *,
460  RDB_transaction *, RDB_object *);
461 
462 int
463 RDB_wrap_tuple(const RDB_object *tplp, int wrapc, const RDB_wrapping wrapv[],
464  RDB_exec_context *, RDB_object *restplp);
465 
466 int
467 RDB_unwrap_tuple(const RDB_object *tplp, int attrc, char *attrv[],
468  RDB_exec_context *, RDB_object *restplp);
469 
470 int
471 RDB_table_to_array(RDB_object *arrp, RDB_object *,
472  int seqitc, const RDB_seq_item seqitv[], int flags,
473  RDB_exec_context *, RDB_transaction *);
474 
475 RDB_qresult *
476 RDB_table_iterator(RDB_object *, int, const RDB_seq_item[],
477  RDB_exec_context *, RDB_transaction *);
478 
479 int
480 RDB_del_table_iterator(RDB_qresult *, RDB_exec_context *, RDB_transaction *);
481 
482 int
483 RDB_next_tuple(RDB_qresult *, RDB_object *, RDB_exec_context *,
484  RDB_transaction *);
485 
486 int
487 RDB_obj_property(const RDB_object *, const char *compname,
488  RDB_object *comp, RDB_environment *,
489  RDB_exec_context *, RDB_transaction *);
490 
491 int
492 RDB_obj_set_property(RDB_object *, const char *compname,
493  const RDB_object *comp, RDB_environment *,
494  RDB_exec_context *, RDB_transaction *);
495 
496 int
497 RDB_evaluate(RDB_expression *, RDB_getobjfn *, void *, RDB_environment *,
498  RDB_exec_context *, RDB_transaction *, RDB_object *);
499 
500 RDB_type *
501 RDB_expr_type(RDB_expression *, RDB_gettypefn *, void *,
502  RDB_environment *, RDB_exec_context *, RDB_transaction *);
503 
504 int
505 RDB_expr_equals(const RDB_expression *, const RDB_expression *,
506  RDB_exec_context *, RDB_transaction *, RDB_bool *);
507 
508 int
509 RDB_evaluate_bool(RDB_expression *, RDB_getobjfn *getfnp, void *getdata,
510  RDB_environment *, RDB_exec_context *, RDB_transaction *, RDB_bool *);
511 
512 int
513 RDB_expr_resolve_varname_expr(RDB_expression **, const char *,
514  RDB_expression *, RDB_exec_context *);
515 
516 RDB_expression *
517 RDB_expr_resolve_varnames(RDB_expression *, RDB_getobjfn *,
518  void *, RDB_exec_context *, RDB_transaction *);
519 
520 int
521 RDB_create_ro_op(const char *, int, RDB_parameter[], RDB_type *,
522  const char *, const char *,
523  const char *,
524  RDB_exec_context *, RDB_transaction *);
525 
526 int
527 RDB_create_ro_op_version(const char *, const char *,
528  int, RDB_parameter[], RDB_type *,
529  const char *, const char *,
530  const char *,
531  RDB_exec_context *, RDB_transaction *);
532 
533 int
534 RDB_create_update_op(const char *, int, RDB_parameter[],
535  const char *, const char *,
536  const char *,
537  RDB_exec_context *, RDB_transaction *);
538 
539 int
540 RDB_create_update_op_version(const char *, const char *, int, RDB_parameter[],
541  const char *, const char *,
542  const char *,
543  RDB_exec_context *, RDB_transaction *);
544 
545 RDB_operator *
546 RDB_get_update_op(const char *, int, RDB_type *[],
547  RDB_environment *, RDB_exec_context *, RDB_transaction *);
548 
549 RDB_operator *
550 RDB_get_update_op_by_args(const char *, int, RDB_object *[],
551  RDB_environment *, RDB_exec_context *, RDB_transaction *);
552 
553 int
554 RDB_call_ro_op_by_name(const char *, int, RDB_object *[],
555  RDB_exec_context *, RDB_transaction *, RDB_object *);
556 
557 int
558 RDB_call_ro_op_by_name_e(const char *, int, RDB_object *[], RDB_environment *,
559  RDB_exec_context *, RDB_transaction *, RDB_object *);
560 
561 int
562 RDB_call_update_op_by_name(const char *name, int argc, RDB_object *argv[],
563  RDB_exec_context *, RDB_transaction *);
564 
565 int
566 RDB_call_update_op(RDB_operator *, int argc, RDB_object *[],
567  RDB_exec_context *, RDB_transaction *);
568 
569 int
570 RDB_drop_op(const char *, RDB_exec_context *, RDB_transaction *);
571 
572 int
573 RDB_drop_op_version(const char *, const char *,
574  RDB_exec_context *, RDB_transaction *);
575 
576 int
577 RDB_put_global_ro_op(const char *, int, RDB_type **, RDB_type *,
578  RDB_ro_op_func *, RDB_exec_context *);
579 
580 int
581 RDB_create_constraint(const char *name, RDB_expression *,
582  RDB_exec_context *, RDB_transaction *);
583 
584 int
585 RDB_drop_constraint(const char *name, RDB_exec_context *,
586  RDB_transaction *);
587 
588 int
589 RDB_net_form_to_tuple(RDB_object *, const char *, RDB_exec_context *);
590 
591 int
592 RDB_net_hescape(RDB_object *, const char *, RDB_exec_context *);
593 
594 int
595 RDB_obj_to_bin(RDB_object *, const RDB_object *, RDB_exec_context *);
596 
597 int
598 RDB_bin_to_obj(const RDB_object *, RDB_object *, RDB_exec_context *);
599 
600 #endif
RDB_bool asc
Definition: rdb.h:62
Definition: rdb.h:58
int RDB_drop_table_by_name(const char *, RDB_exec_context *, RDB_transaction *)
Definition: database.c:1673
int RDB_set_table_name(RDB_object *, const char *, RDB_exec_context *, RDB_transaction *)
Definition: database.c:1705
Definition: type.h:78
const char * RDB_db_name(const RDB_database *)
Definition: database.c:43
int RDB_init_table(RDB_object *, const char *, int, const RDB_attr[], int, const RDB_string_vec[], RDB_exec_context *)
Definition: table.c:374
RDB_environment * RDB_db_env(RDB_database *)
Definition: database.c:57
RDB_database * RDB_get_db_from_env(const char *, RDB_environment *, RDB_exec_context *, RDB_transaction *)
Definition: database.c:662
int RDB_drop_table(RDB_object *, RDB_exec_context *, RDB_transaction *)
Definition: database.c:1576
int RDB_table_contains(RDB_object *tbp, const RDB_object *, RDB_exec_context *, RDB_transaction *, RDB_bool *)
Definition: contains.c:51
int RDB_begin_tx(RDB_exec_context *, RDB_transaction *, RDB_database *dbp, RDB_transaction *parent)
Definition: transaction.c:142
RDB_object * RDB_get_table(const char *, RDB_exec_context *, RDB_transaction *)
Definition: database.c:1297
RDB_int RDB_multi_assign(int, const RDB_ma_insert[], int, const RDB_ma_update[], int, const RDB_ma_delete[], int, const RDB_ma_vdelete[], int, const RDB_ma_copy[], RDB_getobjfn *, void *, RDB_exec_context *, RDB_transaction *)
Definition: assign.c:2166
int RDB_obj_property(const RDB_object *, const char *compname, RDB_object *comp, RDB_environment *, RDB_exec_context *, RDB_transaction *)
Definition: objectx.c:721
Definition: operator.h:36
int RDB_set_init_value(RDB_object *, RDB_type *, RDB_environment *, RDB_exec_context *)
Definition: objectx.c:902
int RDB_extend_tuple(RDB_object *, int attrc, const RDB_virtual_attr attrv[], RDB_getobjfn *, void *, RDB_exec_context *, RDB_transaction *)
Definition: tuplex.c:153
int RDB_init_builtin(RDB_exec_context *)
Definition: builtinops.c:1306
int RDB_obj_set_property(RDB_object *, const char *compname, const RDB_object *comp, RDB_environment *, RDB_exec_context *, RDB_transaction *)
Definition: objectx.c:818
int RDB_table_to_array(RDB_object *arrp, RDB_object *, int seqitc, const RDB_seq_item seqitv[], int flags, RDB_exec_context *, RDB_transaction *)
Definition: arrayx.c:130
RDB_object * RDB_create_table_from_type(const char *name, RDB_type *, int keyc, const RDB_string_vec[], int, const RDB_attr[], RDB_exec_context *, RDB_transaction *)
Definition: database.c:1212
RDB_object * RDB_expr_to_vtable(RDB_expression *, RDB_exec_context *, RDB_transaction *)
Definition: vtable.c:76
int RDB_drop_constraint(const char *name, RDB_exec_context *, RDB_transaction *)
Definition: constraint.c:264
char * attrname
Definition: rdb.h:60
int RDB_expr_resolve_varname_expr(RDB_expression **, const char *, RDB_expression *, RDB_exec_context *)
Definition: expression.c:64
int RDB_commit(RDB_exec_context *, RDB_transaction *)
Definition: transaction.c:166
int RDB_create_update_op(const char *, int, RDB_parameter[], const char *, const char *, const char *, RDB_exec_context *, RDB_transaction *)
Definition: uoperator.c:303
RDB_bool RDB_expr_refers(const RDB_expression *, const RDB_object *)
Definition: expressionx.c:194
int RDB_init_table_from_type(RDB_object *tbp, const char *name, RDB_type *reltyp, int keyc, const RDB_string_vec keyv[], int default_attrc, const RDB_attr *default_attrv, RDB_exec_context *ecp)
Definition: table.c:337
RDB_bool RDB_table_is_user(const RDB_object *)
Definition: table.c:632
int RDB_map_public_table(const char *, RDB_expression *, RDB_exec_context *, RDB_transaction *)
Definition: ptable.c:163
int RDB_apply_constraints(int, const RDB_ma_insert[], int, const RDB_ma_update[], int, const RDB_ma_delete[], int, const RDB_ma_vdelete[], int, const RDB_ma_copy[], RDB_apply_constraint_fn *, RDB_getobjfn *, void *, RDB_exec_context *, RDB_transaction *)
Definition: assign.c:2725
int RDB_union_tuples(const RDB_object *, const RDB_object *, RDB_exec_context *, RDB_transaction *, RDB_object *)
Definition: tuplex.c:107
int RDB_call_update_op_by_name(const char *name, int argc, RDB_object *argv[], RDB_exec_context *, RDB_transaction *)
Definition: uoperator.c:762
RDB_expression * RDB_expr_resolve_varnames(RDB_expression *, RDB_getobjfn *, void *, RDB_exec_context *, RDB_transaction *)
Definition: expressionx.c:128
RDB_type * RDB_get_type(const char *name, RDB_exec_context *, RDB_transaction *)
Definition: utype.c:724
int RDB_rollback(RDB_exec_context *, RDB_transaction *)
Definition: transaction.c:211
int RDB_drop_db(RDB_database *, RDB_exec_context *)
Definition: database.c:814
int RDB_call_update_op(RDB_operator *, int argc, RDB_object *[], RDB_exec_context *, RDB_transaction *)
Definition: uoperator.c:786
RDB_bool RDB_is_selector(const RDB_operator *)
Definition: utype.c:610
RDB_attr * RDB_table_attrs(const RDB_object *, int *)
Definition: table.c:732
int RDB_table_is_empty(RDB_object *, RDB_exec_context *, RDB_transaction *, RDB_bool *resultp)
Definition: aggrf.c:804
RDB_int RDB_cardinality(RDB_object *tbp, RDB_exec_context *, RDB_transaction *)
Definition: aggrf.c:860
const char * RDB_table_name(const RDB_object *)
Definition: table.c:434
Definition: rdb.h:100
RDB_operator * RDB_get_update_op(const char *, int, RDB_type *[], RDB_environment *, RDB_exec_context *, RDB_transaction *)
Definition: uoperator.c:579
RDB_int RDB_move_tuples(RDB_object *, RDB_object *, int, RDB_exec_context *, RDB_transaction *)
Definition: table.c:271
int RDB_call_ro_op_by_name_e(const char *, int, RDB_object *[], RDB_environment *, RDB_exec_context *, RDB_transaction *, RDB_object *)
Definition: uoperator.c:450
Definition: rdb.h:155
int RDB_create_constraint(const char *name, RDB_expression *, RDB_exec_context *, RDB_transaction *)
Definition: constraint.c:187
RDB_bool RDB_tx_is_running(RDB_transaction *)
Definition: transaction.c:269
RDB_int RDB_delete(RDB_object *tbp, RDB_expression *condp, RDB_exec_context *, RDB_transaction *)
Definition: assign.c:2702
Definition: rdb.h:123
int RDB_create_ro_op(const char *, int, RDB_parameter[], RDB_type *, const char *, const char *, const char *, RDB_exec_context *, RDB_transaction *)
Definition: uoperator.c:159
int RDB_table_matching_tuple(RDB_object *, const RDB_object *, RDB_exec_context *, RDB_transaction *, RDB_bool *)
Definition: match.c:358
int RDB_create_table_index(const char *name, RDB_object *tbp, int idxcompc, const RDB_seq_item idxcompv[], int flags, RDB_exec_context *, RDB_transaction *)
Definition: table.c:1021
int RDB_wrap_tuple(const RDB_object *tplp, int wrapc, const RDB_wrapping wrapv[], RDB_exec_context *, RDB_object *restplp)
Definition: tuplex.c:246
Definition: type.h:28
Definition: rdb.h:161
int RDB_insert(RDB_object *tbp, const RDB_object *tplp, RDB_exec_context *, RDB_transaction *)
Definition: assign.c:2572
int RDB_create_ro_op_version(const char *, const char *, int, RDB_parameter[], RDB_type *, const char *, const char *, const char *, RDB_exec_context *, RDB_transaction *)
Definition: uoperator.c:174
RDB_bool RDB_table_is_real(const RDB_object *)
Definition: table.c:603
int RDB_unwrap_tuple(const RDB_object *tplp, int attrc, char *attrv[], RDB_exec_context *, RDB_object *restplp)
Definition: tuplex.c:324
int RDB_sum(RDB_object *, RDB_expression *, RDB_exec_context *, RDB_transaction *, RDB_object *)
Definition: aggrf.c:547
Definition: rdb.h:147
int RDB_any(RDB_object *tbp, RDB_expression *, RDB_exec_context *, RDB_transaction *, RDB_bool *)
Definition: aggrf.c:171
Definition: rdb.h:137
int RDB_all(RDB_object *tbp, RDB_expression *, RDB_exec_context *, RDB_transaction *, RDB_bool *)
Definition: aggrf.c:55
int RDB_drop_table_index(const char *name, RDB_exec_context *, RDB_transaction *)
Definition: table.c:1130
RDB_operator * RDB_get_update_op_by_args(const char *, int, RDB_object *[], RDB_environment *, RDB_exec_context *, RDB_transaction *)
Definition: uoperator.c:669
int RDB_drop_op(const char *, RDB_exec_context *, RDB_transaction *)
Definition: uoperator.c:816
int RDB_obj_equals(const RDB_object *, const RDB_object *, RDB_exec_context *, RDB_transaction *, RDB_bool *)
Definition: objectx.c:666
RDB_object * RDB_create_table(const char *, int, const RDB_attr[], int, const RDB_string_vec[], RDB_exec_context *, RDB_transaction *)
Definition: database.c:1181
int RDB_subset(RDB_object *tb1p, RDB_object *tb2p, RDB_exec_context *, RDB_transaction *, RDB_bool *)
Definition: table.c:666
int RDB_max(RDB_object *, RDB_expression *, RDB_exec_context *, RDB_transaction *, RDB_object *)
Definition: aggrf.c:287
Definition: rdb.h:129
int RDB_add_table(RDB_object *, RDB_database *, RDB_exec_context *, RDB_transaction *)
Definition: database.c:1872
RDB_bool RDB_table_is_persistent(const RDB_object *)
Definition: table.c:586
int RDB_rollback_all(RDB_exec_context *, RDB_transaction *)
Definition: transaction.c:246
int RDB_drop_type(const char *name, RDB_exec_context *, RDB_transaction *)
Definition: utype.c:496
int RDB_define_type(const char *, int, const RDB_possrep[], RDB_expression *, RDB_expression *, int, RDB_exec_context *, RDB_transaction *)
Definition: utype.c:217
int RDB_create_public_table(const char *, int, const RDB_attr[], int, const RDB_string_vec[], RDB_exec_context *, RDB_transaction *)
Definition: ptable.c:123
Definition: type.h:138
int RDB_evaluate(RDB_expression *, RDB_getobjfn *, void *, RDB_environment *, RDB_exec_context *, RDB_transaction *, RDB_object *)
Definition: evaluate.c:705
RDB_type * RDB_expr_type(RDB_expression *, RDB_gettypefn *, void *, RDB_environment *, RDB_exec_context *, RDB_transaction *)
Definition: exprtype.c:1258
int RDB_expr_equals(const RDB_expression *, const RDB_expression *, RDB_exec_context *, RDB_transaction *, RDB_bool *)
Definition: expressionx.c:139
int RDB_define_subtype(const char *, int, RDB_type *[], int, const RDB_possrep[], RDB_expression *, RDB_expression *, int, RDB_exec_context *, RDB_transaction *)
Definition: utype.c:254
RDB_bool RDB_table_is_stored(const RDB_object *)
Definition: table.c:618
int RDB_avg(RDB_object *, RDB_expression *, RDB_exec_context *, RDB_transaction *, RDB_float *)
Definition: aggrf.c:685
RDB_int RDB_update(RDB_object *, RDB_expression *, int attrc, const RDB_attr_update updv[], RDB_exec_context *, RDB_transaction *)
Definition: assign.c:2649
Definition: type.h:68
RDB_database * RDB_tx_db(RDB_transaction *)
Definition: transaction.c:283
int RDB_extract_tuple(RDB_object *, RDB_exec_context *, RDB_transaction *, RDB_object *)
Definition: table.c:519
int RDB_get_dbs(RDB_environment *, RDB_object *, RDB_exec_context *)
Definition: database.c:943
int RDB_copy_table(RDB_object *dstp, RDB_object *srcp, RDB_exec_context *, RDB_transaction *)
Definition: table.c:471
int RDB_call_ro_op_by_name(const char *, int, RDB_object *[], RDB_exec_context *, RDB_transaction *, RDB_object *)
Definition: uoperator.c:436
int RDB_min(RDB_object *tbp, RDB_expression *, RDB_exec_context *, RDB_transaction *, RDB_object *)
Definition: aggrf.c:417
RDB_database * RDB_create_db_from_env(const char *, RDB_environment *, RDB_exec_context *)
Definition: database.c:620