| 40 |
static void dump_create(const char *name, TABLE *table_arg, |
static void dump_create(const char *name, TABLE *table_arg, |
| 41 |
HA_CREATE_INFO *create_info); |
HA_CREATE_INFO *create_info); |
| 42 |
|
|
| 43 |
static void call_senna_ql(sen_ctx *ctx, const char *str, bool disp=false); |
static void call_senna_ql(sen_ctx *ctx, const char *str, bool disp=true); |
| 44 |
|
|
| 45 |
static char *mysqltype2sennatype_string(enum_field_types types); |
static char *mysqltype2sennatype_string(enum_field_types types); |
| 46 |
|
|
| 281 |
call_senna_ql(ctx, "(define (select recs expr) (reverse (letrec " |
call_senna_ql(ctx, "(define (select recs expr) (reverse (letrec " |
| 282 |
"((func (lambda (r x) (if x (let ((y (expr x))) " |
"((func (lambda (r x) (if x (let ((y (expr x))) " |
| 283 |
"(func (if y (cons y r) r) (recs ::+ x))) r)))) " |
"(func (if y (cons y r) r) (recs ::+ x))) r)))) " |
| 284 |
"(func () (recs ::)))))"); |
"(func () (recs ::)))))",false); |
| 285 |
call_senna_ql(ctx, "(define (slot-exps class) (select <db> " |
call_senna_ql(ctx, "(define (slot-exps class) (select <db> " |
| 286 |
"(lambda (x) (let ((s (x ::schema))) (and (pair? s) " |
"(lambda (x) (let ((s (x ::schema))) (and (pair? s) " |
| 287 |
"(eq? class (car s)) (list () (car (cdr (cdr s)))))))))"); |
"(eq? class (car s)) (list () (car (cdr (cdr s)))))))))",false); |
| 288 |
call_senna_ql(ctx, "(define (dump-table class) (if (< 0 class.:nrecords) " |
call_senna_ql(ctx, "(define (dump-table class) (if (< 0 class.:nrecords) " |
| 289 |
"(begin (disp `(: ,class (.:key ,@(slot-exps class)) 0 0) " |
"(begin (disp `(: ,class (.:key ,@(slot-exps class)) 0 0) " |
| 290 |
":tsv))))"); |
":tsv))))",false); |
| 291 |
|
|
| 292 |
DBUG_RETURN(0); |
DBUG_RETURN(0); |
| 293 |
} |
} |