Annotation of embedaddon/php/ext/oci8/tests/bug41069.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Bug #41069 (Oracle crash with certain data over a DB-link when prefetch memory limit used - Oracle bug 6039623)
        !             3: --SKIPIF--
        !             4: <?php 
        !             5: $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
        !             6: require(dirname(__FILE__).'/skipif.inc');
        !             7: if (empty($dbase)) die ("skip requires network connection alias for DB link loopback");
        !             8: if ($test_drcp) die("skip DRCP does not support shared database links");
        !             9: ?>
        !            10: --INI--
        !            11: oci8.default_prefetch=5
        !            12: --FILE--
        !            13:        <?php
        !            14: 
        !            15:        require(dirname(__FILE__).'/connect.inc');
        !            16: 
        !            17: // Initialization
        !            18: 
        !            19: $stmtarray = array(
        !            20:        "alter session set nls_date_format = 'MM/DD/YYYY'",
        !            21: 
        !            22:        "drop database link bug41069_dblink",
        !            23: 
        !            24:        "drop table bug41069_tab",
        !            25: 
        !            26:        "create shared database link bug41069_dblink authenticated by $user identified by $password using '$dbase'",
        !            27: 
        !            28:        "create table bug41069_tab
        !            29:        (
        !            30:                c1  number(20),
        !            31:                c2  varchar2(60 byte),
        !            32:                c3  varchar2(1000 byte),
        !            33:                c4  varchar2(255 byte),
        !            34:                c5  varchar2(2 byte),
        !            35:                c6  varchar2(1 byte),
        !            36:                c7  varchar2(255 byte),
        !            37:                c8  varchar2(50 byte),
        !            38:                c9  date,
        !            39:                c10 date,
        !            40:                c12 number(20),
        !            41:                c13 varchar2(20 byte),
        !            42:                c15 varchar2(50 byte)
        !            43:         )",
        !            44: 
        !            45:        "insert into bug41069_tab (c1, c2, c5, c6, c9, c10, c12, c15)   values
        !            46:        (111, 'aaaaaaa', 'b', 'c', '01/17/2008', '01/07/2017', 2222, 'zzzzzzzzzz')",
        !            47: 
        !            48:        "insert into bug41069_tab (c1, c2, c3, c4, c5, c6, c7, c9, c10, c12, c13, c15) values
        !            49:        (112, 'aaaaaaa', 'bbbbbbbb', 'ccccccc', 'd', 'e', 'rrrrrrr', '04/16/2007', '04/16/2007', 2223, 'xxxxxxxx', 'zzzzzzzz')",
        !            50: 
        !            51:        "insert into bug41069_tab (c1, c2, c3, c4, c5, c6, c7, c9, c10, c12, c15)       values
        !            52:        (113, 'aaaaaaa', 'bbbbbbbbbb', 'cccccc', 'e', 'f', 'dddd', '12/04/2006', '12/04/2006', 2224, 'zzzzzzz')"
        !            53: );
        !            54:                                                 
        !            55: oci8_test_sql_execute($c, $stmtarray);
        !            56: 
        !            57: 
        !            58: // Run Tests
        !            59: 
        !            60: echo "Test 1: non-DB link case that always worked\n";
        !            61: $stid = oci_parse($c, 'select * from bug41069_tab order by c1');
        !            62: oci_execute($stid, OCI_DEFAULT);
        !            63: oci_fetch_all($stid, $results, 0, -1, OCI_ASSOC+OCI_FETCHSTATEMENT_BY_ROW);
        !            64: var_dump($results);
        !            65: 
        !            66: echo "Test 2: Should not crash\n";
        !            67: $stid = oci_parse($c, 'select * from bug41069_tab@bug41069_dblink order by c1');
        !            68: oci_execute($stid, OCI_DEFAULT);
        !            69: oci_fetch_all($stid, $results, 0, -1, OCI_ASSOC+OCI_FETCHSTATEMENT_BY_ROW);
        !            70: var_dump($results);
        !            71: 
        !            72: // Cleanup
        !            73: 
        !            74: $c = oci_new_connect($user, $password, $dbase);
        !            75: 
        !            76: $stmtarray = array(
        !            77:        "drop database link bug41069_dblink",
        !            78:        "drop table bug41069_tab"
        !            79: );
        !            80: 
        !            81: oci8_test_sql_execute($c, $stmtarray);
        !            82: 
        !            83: echo "Done\n";
        !            84: 
        !            85: ?>
        !            86: --EXPECT--
        !            87: Test 1: non-DB link case that always worked
        !            88: array(3) {
        !            89:   [0]=>
        !            90:   array(13) {
        !            91:     ["C1"]=>
        !            92:     string(3) "111"
        !            93:     ["C2"]=>
        !            94:     string(7) "aaaaaaa"
        !            95:     ["C3"]=>
        !            96:     NULL
        !            97:     ["C4"]=>
        !            98:     NULL
        !            99:     ["C5"]=>
        !           100:     string(1) "b"
        !           101:     ["C6"]=>
        !           102:     string(1) "c"
        !           103:     ["C7"]=>
        !           104:     NULL
        !           105:     ["C8"]=>
        !           106:     NULL
        !           107:     ["C9"]=>
        !           108:     string(10) "01/17/2008"
        !           109:     ["C10"]=>
        !           110:     string(10) "01/07/2017"
        !           111:     ["C12"]=>
        !           112:     string(4) "2222"
        !           113:     ["C13"]=>
        !           114:     NULL
        !           115:     ["C15"]=>
        !           116:     string(10) "zzzzzzzzzz"
        !           117:   }
        !           118:   [1]=>
        !           119:   array(13) {
        !           120:     ["C1"]=>
        !           121:     string(3) "112"
        !           122:     ["C2"]=>
        !           123:     string(7) "aaaaaaa"
        !           124:     ["C3"]=>
        !           125:     string(8) "bbbbbbbb"
        !           126:     ["C4"]=>
        !           127:     string(7) "ccccccc"
        !           128:     ["C5"]=>
        !           129:     string(1) "d"
        !           130:     ["C6"]=>
        !           131:     string(1) "e"
        !           132:     ["C7"]=>
        !           133:     string(7) "rrrrrrr"
        !           134:     ["C8"]=>
        !           135:     NULL
        !           136:     ["C9"]=>
        !           137:     string(10) "04/16/2007"
        !           138:     ["C10"]=>
        !           139:     string(10) "04/16/2007"
        !           140:     ["C12"]=>
        !           141:     string(4) "2223"
        !           142:     ["C13"]=>
        !           143:     string(8) "xxxxxxxx"
        !           144:     ["C15"]=>
        !           145:     string(8) "zzzzzzzz"
        !           146:   }
        !           147:   [2]=>
        !           148:   array(13) {
        !           149:     ["C1"]=>
        !           150:     string(3) "113"
        !           151:     ["C2"]=>
        !           152:     string(7) "aaaaaaa"
        !           153:     ["C3"]=>
        !           154:     string(10) "bbbbbbbbbb"
        !           155:     ["C4"]=>
        !           156:     string(6) "cccccc"
        !           157:     ["C5"]=>
        !           158:     string(1) "e"
        !           159:     ["C6"]=>
        !           160:     string(1) "f"
        !           161:     ["C7"]=>
        !           162:     string(4) "dddd"
        !           163:     ["C8"]=>
        !           164:     NULL
        !           165:     ["C9"]=>
        !           166:     string(10) "12/04/2006"
        !           167:     ["C10"]=>
        !           168:     string(10) "12/04/2006"
        !           169:     ["C12"]=>
        !           170:     string(4) "2224"
        !           171:     ["C13"]=>
        !           172:     NULL
        !           173:     ["C15"]=>
        !           174:     string(7) "zzzzzzz"
        !           175:   }
        !           176: }
        !           177: Test 2: Should not crash
        !           178: array(3) {
        !           179:   [0]=>
        !           180:   array(13) {
        !           181:     ["C1"]=>
        !           182:     string(3) "111"
        !           183:     ["C2"]=>
        !           184:     string(7) "aaaaaaa"
        !           185:     ["C3"]=>
        !           186:     NULL
        !           187:     ["C4"]=>
        !           188:     NULL
        !           189:     ["C5"]=>
        !           190:     string(1) "b"
        !           191:     ["C6"]=>
        !           192:     string(1) "c"
        !           193:     ["C7"]=>
        !           194:     NULL
        !           195:     ["C8"]=>
        !           196:     NULL
        !           197:     ["C9"]=>
        !           198:     string(10) "01/17/2008"
        !           199:     ["C10"]=>
        !           200:     string(10) "01/07/2017"
        !           201:     ["C12"]=>
        !           202:     string(4) "2222"
        !           203:     ["C13"]=>
        !           204:     NULL
        !           205:     ["C15"]=>
        !           206:     string(10) "zzzzzzzzzz"
        !           207:   }
        !           208:   [1]=>
        !           209:   array(13) {
        !           210:     ["C1"]=>
        !           211:     string(3) "112"
        !           212:     ["C2"]=>
        !           213:     string(7) "aaaaaaa"
        !           214:     ["C3"]=>
        !           215:     string(8) "bbbbbbbb"
        !           216:     ["C4"]=>
        !           217:     string(7) "ccccccc"
        !           218:     ["C5"]=>
        !           219:     string(1) "d"
        !           220:     ["C6"]=>
        !           221:     string(1) "e"
        !           222:     ["C7"]=>
        !           223:     string(7) "rrrrrrr"
        !           224:     ["C8"]=>
        !           225:     NULL
        !           226:     ["C9"]=>
        !           227:     string(10) "04/16/2007"
        !           228:     ["C10"]=>
        !           229:     string(10) "04/16/2007"
        !           230:     ["C12"]=>
        !           231:     string(4) "2223"
        !           232:     ["C13"]=>
        !           233:     string(8) "xxxxxxxx"
        !           234:     ["C15"]=>
        !           235:     string(8) "zzzzzzzz"
        !           236:   }
        !           237:   [2]=>
        !           238:   array(13) {
        !           239:     ["C1"]=>
        !           240:     string(3) "113"
        !           241:     ["C2"]=>
        !           242:     string(7) "aaaaaaa"
        !           243:     ["C3"]=>
        !           244:     string(10) "bbbbbbbbbb"
        !           245:     ["C4"]=>
        !           246:     string(6) "cccccc"
        !           247:     ["C5"]=>
        !           248:     string(1) "e"
        !           249:     ["C6"]=>
        !           250:     string(1) "f"
        !           251:     ["C7"]=>
        !           252:     string(4) "dddd"
        !           253:     ["C8"]=>
        !           254:     NULL
        !           255:     ["C9"]=>
        !           256:     string(10) "12/04/2006"
        !           257:     ["C10"]=>
        !           258:     string(10) "12/04/2006"
        !           259:     ["C12"]=>
        !           260:     string(4) "2224"
        !           261:     ["C13"]=>
        !           262:     NULL
        !           263:     ["C15"]=>
        !           264:     string(7) "zzzzzzz"
        !           265:   }
        !           266: }
        !           267: Done

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