Annotation of embedaddon/php/ext/oci8/tests/bug42173.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Bug #42173 (TIMESTAMP and INTERVAL query and field functions)
                      3: --SKIPIF--
                      4: <?php
                      5: $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
                      6: require(dirname(__FILE__).'/skipif.inc');
                      7: ?> 
                      8: --FILE--
                      9: <?php
                     10: 
                     11: require(dirname(__FILE__).'/connect.inc');
                     12: 
                     13: $stmts = array(
                     14: 
                     15: "drop table ts_test",
                     16: 
                     17: "create table ts_test (
                     18: c1 TIMESTAMP,
                     19: c2 TIMESTAMP (5),
                     20: c3 TIMESTAMP WITH TIME ZONE,
                     21: c4 TIMESTAMP (2) WITH TIME ZONE,
                     22: c5 TIMESTAMP WITH LOCAL TIME ZONE,
                     23: c6 INTERVAL YEAR TO MONTH,
                     24: c7 INTERVAL YEAR(2) TO MONTH,
                     25: c8 INTERVAL DAY TO SECOND,
                     26: c9 INTERVAL DAY(2) TO SECOND(3)
                     27: )",
                     28: 
                     29: "insert into ts_test values (
                     30: timestamp'1999-01-03 10:00:00.123',
                     31: timestamp'1999-01-04 10:00:00.123456',
                     32: timestamp'1999-01-05 10:00:00.123456+1:0',
                     33: timestamp'1999-01-06 10:00:00.123456-1:0',
                     34: timestamp'1999-01-06 10:00:00.123456-1:0',
                     35: interval'1-2' year to month,
                     36: interval'10-4' year to month,
                     37: interval'1 2:20:20.123' day to second,
                     38: interval'1 2:20:20.12345' day to second)");
                     39: 
                     40: foreach ($stmts as $sql) {
                     41:        $s = oci_parse($c, $sql);
                     42:        $r = @oci_execute($s);
                     43: }
                     44: 
                     45: $s = oci_parse($c, "select * from ts_test");
                     46: $r = oci_execute($s);
                     47: $row = oci_fetch_array($s, OCI_ASSOC);
                     48: var_dump($row);
                     49: 
                     50: foreach ($row as $name => $field) {
                     51:        echo "\nColumn $name\n";
                     52:        var_dump(oci_field_is_null($s, $name));
                     53:        var_dump(oci_field_name($s, $name));
                     54:        var_dump(oci_field_type($s, $name));
                     55:        var_dump(oci_field_type_raw($s, $name));
                     56:        var_dump(oci_field_scale($s, $name));
                     57:        var_dump(oci_field_precision($s, $name));
                     58:        var_dump(oci_field_size($s, $name));
                     59: }
                     60: 
                     61: // Cleanup
                     62: 
                     63: $s = oci_parse($c, "drop table ts_test");
                     64: $r = @oci_execute($s);
                     65: 
                     66: echo "Done\n";
                     67: 
                     68: ?>
                     69: --EXPECTF--
                     70: array(9) {
                     71:   ["C1"]=>
                     72:   string(28) "03-JAN-99 10.00.00.123000 AM"
                     73:   ["C2"]=>
                     74:   string(27) "04-JAN-99 10.00.00.12346 AM"
                     75:   ["C3"]=>
                     76:   string(35) "05-JAN-99 10.00.00.123456 AM +01:00"
                     77:   ["C4"]=>
                     78:   string(31) "06-JAN-99 10.00.00.12 AM -01:00"
                     79:   ["C5"]=>
                     80:   string(28) "%s"
                     81:   ["C6"]=>
                     82:   string(6) "+01-02"
                     83:   ["C7"]=>
                     84:   string(6) "+10-04"
                     85:   ["C8"]=>
                     86:   string(19) "+01 02:20:20.123000"
                     87:   ["C9"]=>
                     88:   string(16) "+01 02:20:20.123"
                     89: }
                     90: 
                     91: Column C1
                     92: bool(false)
                     93: string(2) "C1"
                     94: string(9) "TIMESTAMP"
                     95: int(187)
                     96: int(6)
                     97: int(0)
                     98: int(11)
                     99: 
                    100: Column C2
                    101: bool(false)
                    102: string(2) "C2"
                    103: string(9) "TIMESTAMP"
                    104: int(187)
                    105: int(5)
                    106: int(0)
                    107: int(11)
                    108: 
                    109: Column C3
                    110: bool(false)
                    111: string(2) "C3"
                    112: string(23) "TIMESTAMP WITH TIMEZONE"
                    113: int(188)
                    114: int(6)
                    115: int(0)
                    116: int(13)
                    117: 
                    118: Column C4
                    119: bool(false)
                    120: string(2) "C4"
                    121: string(23) "TIMESTAMP WITH TIMEZONE"
                    122: int(188)
                    123: int(2)
                    124: int(0)
                    125: int(13)
                    126: 
                    127: Column C5
                    128: bool(false)
                    129: string(2) "C5"
                    130: string(29) "TIMESTAMP WITH LOCAL TIMEZONE"
                    131: int(232)
                    132: int(6)
                    133: int(0)
                    134: int(11)
                    135: 
                    136: Column C6
                    137: bool(false)
                    138: string(2) "C6"
                    139: string(22) "INTERVAL YEAR TO MONTH"
                    140: int(189)
                    141: int(0)
                    142: int(2)
                    143: int(5)
                    144: 
                    145: Column C7
                    146: bool(false)
                    147: string(2) "C7"
                    148: string(22) "INTERVAL YEAR TO MONTH"
                    149: int(189)
                    150: int(0)
                    151: int(2)
                    152: int(5)
                    153: 
                    154: Column C8
                    155: bool(false)
                    156: string(2) "C8"
                    157: string(22) "INTERVAL DAY TO SECOND"
                    158: int(190)
                    159: int(6)
                    160: int(2)
                    161: int(11)
                    162: 
                    163: Column C9
                    164: bool(false)
                    165: string(2) "C9"
                    166: string(22) "INTERVAL DAY TO SECOND"
                    167: int(190)
                    168: int(3)
                    169: int(2)
                    170: int(11)
                    171: Done

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