Annotation of embedaddon/php/ext/interbase/tests/003.phpt, revision 1.1.1.2

1.1       misho       1: --TEST--
                      2: InterBase: misc sql types (may take a while)
                      3: --SKIPIF--
                      4: <?php include("skipif.inc"); ?>
                      5: --FILE--
1.1.1.2 ! misho       6: <?php /* $Id$ */
1.1       misho       7: 
                      8:     require("interbase.inc");
                      9:     ibase_connect($test_base);
                     10:     
                     11:     ibase_query(
                     12:        "create table test3 (
                     13:             iter               integer not null,
                     14:             v_char             char(1000),
                     15:             v_date      timestamp,
                     16:                        v_decimal4_2            decimal(4,2),
                     17:                        v_decimal4_0            decimal(4,0),
                     18:                        v_decimal7_2            decimal(7,2),
                     19:                        v_decimal7_0            decimal(7,0),
                     20:                        v_numeric15_15          numeric(15,15),
                     21:                        v_numeric15_0   numeric(15,0),
                     22:             v_double   double precision,
                     23:             v_float     float,
                     24:             v_integer   integer,
                     25:             v_smallint  smallint,
                     26:             v_varchar   varchar(10000)
                     27:             )");
                     28:     ibase_commit();
                     29: 
                     30:        /* should fail, but gracefully */
                     31:        @ibase_query("insert into test3 (iter) values (?)", null);
                     32: 
                     33:     /* if timefmt is not supported, suppress error here */
                     34:     ini_set('ibase.timestampformat',"%m/%d/%Y %H:%M:%S");
                     35: 
                     36:     for($iter = 0; $iter < 10; $iter++){
                     37:        /* prepare data  */
                     38:        $v_char = rand_str(1000);
                     39:        $v_date = rand_datetime();
                     40:        $v_decimal4_2 = rand_number(4,2);
                     41:        $v_decimal4_0 = rand_number(4,0);
                     42:        $v_decimal7_2 = rand_number(7,2);
                     43:        $v_decimal7_0 = rand_number(7,0);
                     44:        $v_numeric15_15 = rand_number(15,15);
                     45:        $v_numeric15_0 = $iter ? rand_number(15,0) : 0;
                     46:        $v_double  = rand_number(18);
                     47:        $v_float   = rand_number(7);
                     48:        $v_integer = rand_number(9,0);
                     49:        $v_smallint = rand_number(5) % 32767;
                     50:        $v_varchar = rand_str(10000);
                     51: 
                     52:        ibase_query(
                     53:        "insert into test3 (iter, v_char,v_date,v_decimal4_2, v_decimal4_0, v_decimal7_2, v_decimal7_0,v_numeric15_15, v_numeric15_0,v_double,v_float,v_integer,v_smallint,v_varchar)
                     54:        values ($iter, '$v_char','$v_date',$v_decimal4_2, $v_decimal4_0, $v_decimal7_2, $v_decimal7_0,$v_numeric15_15, $v_numeric15_0,$v_double,$v_float,$v_integer,$v_smallint,'$v_varchar')");
                     55:        $sel = ibase_query("select * from test3 where iter = $iter");
                     56:        $row = ibase_fetch_object($sel);
                     57:        if(substr($row->V_CHAR,0,strlen($v_char)) != $v_char){
                     58:                echo " CHAR fail:\n";
                     59:             echo " in:  $v_char\n";
                     60:             echo " out: $row->V_CHAR\n";
                     61:         }
                     62:         if($row->V_DATE != $v_date){
                     63:             echo " DATE fail\n";
                     64:             echo " in:  $v_date\n";
                     65:             echo " out: $row->V_DATE\n";
                     66:         }
                     67:         if($row->V_DECIMAL4_2 != $v_decimal4_2){
                     68:             echo " DECIMAL4_2 fail\n";
                     69:             echo " in:  $v_decimal4_2\n";
                     70:             echo " out: $row->V_DECIMAL4_2\n";
                     71:         }
                     72:         if($row->V_DECIMAL4_0 != $v_decimal4_0){
                     73:             echo " DECIMAL4_0 fail\n";
                     74:             echo " in:  $v_decimal4_0\n";
                     75:             echo " out: $row->V_DECIMAL4_0\n";
                     76:         }
                     77:         if($row->V_DECIMAL7_2 != $v_decimal7_2){
                     78:             echo " DECIMAL7_2 fail\n";
                     79:             echo " in:  $v_decimal7_2\n";
                     80:             echo " out: $row->V_DECIMAL7_2\n";
                     81:         }
                     82:         if($row->V_DECIMAL7_0 != $v_decimal7_0){
                     83:             echo " DECIMAL7_0 fail\n";
                     84:             echo " in:  $v_decimal7_0\n";
                     85:             echo " out: $row->V_DECIMAL7_0\n";
                     86:         }
                     87:         if($row->V_NUMERIC15_15 != $v_numeric15_15){
                     88:             echo " NUMERIC15_15 fail\n";
                     89:             echo " in:  $v_numeric15_15\n";
                     90:             echo " out: $row->V_NUMERIC15_15\n";
                     91:         }
                     92:         if($row->V_NUMERIC15_0 != (string)$v_numeric15_0){
                     93:             echo " NUMERIC15_0 fail\n";
                     94:             echo " in:  $v_numeric15_0\n";
                     95:             echo " out: $row->V_NUMERIC15_0\n";
                     96:         }
                     97: 
                     98:         if(abs($row->V_DOUBLE - $v_double) > abs($v_double / 1E15)){
                     99:             echo " DOUBLE fail\n";
                    100:             echo " in:  $v_double\n";
                    101:             echo " out: $row->V_DOUBLE\n";
                    102:         }
                    103:         if(abs($row->V_FLOAT - $v_float) > abs($v_float / 1E7)){
                    104:             echo " FLOAT fail\n";
                    105:             echo " in:  $v_float\n";
                    106:             echo " out: $row->V_FLOAT\n";
                    107:         }
                    108:         if($row->V_INTEGER != $v_integer){
                    109:             echo " INTEGER fail\n";
                    110:             echo " in:  $v_integer\n";
                    111:             echo " out: $row->V_INTEGER\n";
                    112:         }
                    113:         if($row->V_SMALLINT != $v_smallint){
                    114:             echo " SMALLINT fail\n";
                    115:             echo " in:  $v_smallint\n";
                    116:             echo " out: $row->V_SMALLINT\n";
                    117:         }
                    118: 
                    119:          if(substr($row->V_VARCHAR,0,strlen($v_varchar)) != $v_varchar){
                    120:                echo " VARCHAR fail:\n";
                    121:             echo " in:  $v_varchar\n";
                    122:             echo " out: $row->V_VARCHAR\n";
                    123:         }
                    124: 
                    125:         ibase_free_result($sel);
                    126:     } /* for($iter) */
                    127: 
                    128:        /* check for correct handling of duplicate field names */
                    129:        $q = ibase_query('SELECT 1 AS id, 2 AS id, 3 AS id, 4 AS id, 5 AS id, 6 AS id, 7 AS id, 8 AS id, 9 AS id,
                    130:                10 AS id, 11 AS id, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 FROM rdb$database');
                    131:        var_dump(ibase_fetch_assoc($q));
                    132:        
                    133:     ibase_close();
                    134:     echo "end of test\n";
                    135: ?>
                    136: --EXPECT--
                    137: array(22) {
                    138:   ["ID"]=>
                    139:   int(1)
                    140:   ["ID_01"]=>
                    141:   int(2)
                    142:   ["ID_02"]=>
                    143:   int(3)
                    144:   ["ID_03"]=>
                    145:   int(4)
                    146:   ["ID_04"]=>
                    147:   int(5)
                    148:   ["ID_05"]=>
                    149:   int(6)
                    150:   ["ID_06"]=>
                    151:   int(7)
                    152:   ["ID_07"]=>
                    153:   int(8)
                    154:   ["ID_08"]=>
                    155:   int(9)
                    156:   ["ID_09"]=>
                    157:   int(10)
                    158:   ["ID_10"]=>
                    159:   int(11)
                    160:   ["CONSTANT"]=>
                    161:   int(12)
                    162:   ["CONSTANT_01"]=>
                    163:   int(13)
                    164:   ["CONSTANT_02"]=>
                    165:   int(14)
                    166:   ["CONSTANT_03"]=>
                    167:   int(15)
                    168:   ["CONSTANT_04"]=>
                    169:   int(16)
                    170:   ["CONSTANT_05"]=>
                    171:   int(17)
                    172:   ["CONSTANT_06"]=>
                    173:   int(18)
                    174:   ["CONSTANT_07"]=>
                    175:   int(19)
                    176:   ["CONSTANT_08"]=>
                    177:   int(20)
                    178:   ["CONSTANT_09"]=>
                    179:   int(21)
                    180:   ["CONSTANT_10"]=>
                    181:   int(22)
                    182: }
                    183: end of test

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>