~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/innobase/eval/eval0eval.c

  • Committer: Brian Aker
  • Date: 2010-10-20 20:26:18 UTC
  • mfrom: (1859.2.13 refactor)
  • Revision ID: brian@tangent.org-20101020202618-9222n39lm329urv5
Merge for Brian 

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*****************************************************************************
2
2
 
3
 
Copyright (C) 1997, 2009, Innobase Oy. All Rights Reserved.
 
3
Copyright (c) 1997, 2009, Innobase Oy. All Rights Reserved.
4
4
 
5
5
This program is free software; you can redistribute it and/or modify it under
6
6
the terms of the GNU General Public License as published by the Free Software
65
65
 
66
66
        dfield = que_node_get_val(node);
67
67
 
68
 
        data = static_cast<unsigned char *>(dfield_get_data(dfield));
 
68
        data = dfield_get_data(dfield);
69
69
 
70
70
        if (data && data != &eval_dummy) {
71
71
                mem_free(data);
74
74
        if (size == 0) {
75
75
                data = &eval_dummy;
76
76
        } else {
77
 
                data = static_cast<unsigned char *>(mem_alloc(size));
 
77
                data = mem_alloc(size);
78
78
        }
79
79
 
80
80
        que_node_set_val_buf_size(node, size);
102
102
 
103
103
        dfield = que_node_get_val(node);
104
104
 
105
 
        data = static_cast<unsigned char *>(dfield_get_data(dfield));
 
105
        data = dfield_get_data(dfield);
106
106
 
107
107
        if (que_node_get_val_buf_size(node) > 0) {
108
108
                ut_a(data);
384
384
/*==========*/
385
385
        func_node_t*    func_node)      /*!< in: function node */
386
386
{
 
387
        que_node_t*     arg1;
 
388
        que_node_t*     arg2;
387
389
        sym_node_t*     cursor;
388
390
        sel_node_t*     sel_node;
389
391
        ibool           ibool_val;
390
392
 
 
393
        arg1 = func_node->args;
 
394
        arg2 = que_node_get_next(arg1);
 
395
 
391
396
        ut_ad(func_node->func == PARS_NOTFOUND_TOKEN);
392
397
 
393
 
        cursor = static_cast<sym_node_t *>(func_node->args);
 
398
        cursor = arg1;
394
399
 
395
400
        ut_ad(que_node_get_type(cursor) == QUE_NODE_SYMBOL);
396
401
 
436
441
 
437
442
        arg3 = que_node_get_next(arg2);
438
443
 
439
 
        str1 = static_cast<unsigned char *>(dfield_get_data(que_node_get_val(arg1)));
 
444
        str1 = dfield_get_data(que_node_get_val(arg1));
440
445
 
441
446
        len1 = (ulint)eval_node_get_int_val(arg2);
442
447
        len2 = (ulint)eval_node_get_int_val(arg3);
471
476
        arg3 = que_node_get_next(arg2);
472
477
        arg4 = que_node_get_next(arg3);
473
478
 
474
 
        str1 = static_cast<unsigned char *>(dfield_get_data(que_node_get_val(arg1)));
475
 
        str2 = static_cast<unsigned char *>(dfield_get_data(que_node_get_val(arg2)));
 
479
        str1 = dfield_get_data(que_node_get_val(arg1));
 
480
        str2 = dfield_get_data(que_node_get_val(arg2));
476
481
 
477
482
        len1 = (ulint)eval_node_get_int_val(arg3);
478
483
        len2 = (ulint)eval_node_get_int_val(arg4);
513
518
        dfield1 = que_node_get_val(arg1);
514
519
        dfield2 = que_node_get_val(arg2);
515
520
 
516
 
        str1 = static_cast<unsigned char *>(dfield_get_data(dfield1));
517
 
        str2 = static_cast<unsigned char *>(dfield_get_data(dfield2));
 
521
        str1 = dfield_get_data(dfield1);
 
522
        str2 = dfield_get_data(dfield2);
518
523
 
519
524
        len1 = dfield_get_len(dfield1);
520
525
        len2 = dfield_get_len(dfield2);
577
582
 
578
583
        dfield = que_node_get_val(arg1);
579
584
 
580
 
        str1 = static_cast<unsigned char *>(dfield_get_data(dfield));
 
585
        str1 = dfield_get_data(dfield);
581
586
        len1 = dfield_get_len(dfield);
582
587
 
583
588
        if (len1 > 4) {
659
664
 
660
665
        arg1 = func_node->args;
661
666
 
662
 
        str1 = static_cast<unsigned char *>(dfield_get_data(que_node_get_val(arg1)));
 
667
        str1 = dfield_get_data(que_node_get_val(arg1));
663
668
 
664
669
        if (dtype_get_mtype(que_node_get_data_type(arg1)) != DATA_INT) {
665
670
 
787
792
        func_node_t*    func_node)      /*!< in: function node */
788
793
{
789
794
        que_node_t*     arg;
790
 
        ulint           func_class;
 
795
        ulint           class;
791
796
        ulint           func;
792
797
 
793
798
        ut_ad(que_node_get_type(func_node) == QUE_NODE_FUNC);
794
799
 
795
 
        func_class = func_node->func_class;
 
800
        class = func_node->class;
796
801
        func = func_node->func;
797
802
 
798
803
        arg = func_node->args;
805
810
                values, except for eval_cmp and notfound */
806
811
 
807
812
                if (dfield_is_null(que_node_get_val(arg))
808
 
                    && (func_class != PARS_FUNC_CMP)
 
813
                    && (class != PARS_FUNC_CMP)
809
814
                    && (func != PARS_NOTFOUND_TOKEN)
810
815
                    && (func != PARS_PRINTF_TOKEN)) {
811
816
                        ut_error;
814
819
                arg = que_node_get_next(arg);
815
820
        }
816
821
 
817
 
        if (func_class == PARS_FUNC_CMP) {
 
822
        if (class == PARS_FUNC_CMP) {
818
823
                eval_cmp(func_node);
819
 
        } else if (func_class == PARS_FUNC_ARITH) {
 
824
        } else if (class == PARS_FUNC_ARITH) {
820
825
                eval_arith(func_node);
821
 
        } else if (func_class == PARS_FUNC_AGGREGATE) {
 
826
        } else if (class == PARS_FUNC_AGGREGATE) {
822
827
                eval_aggregate(func_node);
823
 
        } else if (func_class == PARS_FUNC_PREDEFINED) {
 
828
        } else if (class == PARS_FUNC_PREDEFINED) {
824
829
 
825
830
                if (func == PARS_NOTFOUND_TOKEN) {
826
831
                        eval_notfound(func_node);
840
845
                        eval_predefined(func_node);
841
846
                }
842
847
        } else {
843
 
                ut_ad(func_class == PARS_FUNC_LOGICAL);
 
848
                ut_ad(class == PARS_FUNC_LOGICAL);
844
849
 
845
850
                eval_logical(func_node);
846
851
        }