Annotation of embedaddon/php/ext/pdo_pgsql/tests/copy_from.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: PDO PgSQL pgsqlCopyFromArray and pgsqlCopyFromFile
        !             3: --SKIPIF--
        !             4: <?php # vim:se ft=php:
        !             5: if (!extension_loaded('pdo') || !extension_loaded('pdo_pgsql')) die('skip not loaded');
        !             6: require dirname(__FILE__) . '/config.inc';
        !             7: require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
        !             8: PDOTest::skip();
        !             9: ?>
        !            10: --FILE--
        !            11: <?php
        !            12: require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
        !            13: $db = PDOTest::test_factory(dirname(__FILE__) . '/common.phpt');
        !            14: $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        !            15: $db->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
        !            16: 
        !            17: $db->exec('CREATE TABLE test (a integer not null primary key, b text, c integer)');
        !            18: 
        !            19: try {
        !            20: 
        !            21: echo "Preparing test file and array for CopyFrom tests\n";
        !            22: 
        !            23: $tableRows = array();
        !            24: $tableRowsWithDifferentNullValues = array();
        !            25: 
        !            26: for($i=0;$i<3;$i++) {
        !            27:        $firstParameter = $i;
        !            28:        $secondParameter = "test insert {$i}";
        !            29:        $tableRows[] = "{$firstParameter}\t{$secondParameter}\t\\N";
        !            30:        $tableRowsWithDifferentNullValues[] = "{$firstParameter};{$secondParameter};NULL";
        !            31:        $tableRowsWithDifferentNullValuesAndSelectedFields[] = "{$firstParameter};NULL";
        !            32: }
        !            33: $filename = 'test_pgsqlCopyFromFile.csv';
        !            34: $filenameWithDifferentNullValues = 'test_pgsqlCopyFromFileWithDifferentNullValues.csv';
        !            35: $filenameWithDifferentNullValuesAndSelectedFields = 'test_pgsqlCopyFromFileWithDifferentNullValuesAndSelectedFields.csv';
        !            36: 
        !            37: file_put_contents($filename, implode("\n",$tableRows));
        !            38: file_put_contents($filenameWithDifferentNullValues, implode("\n",$tableRowsWithDifferentNullValues));
        !            39: file_put_contents($filenameWithDifferentNullValuesAndSelectedFields, implode("\n",$tableRowsWithDifferentNullValuesAndSelectedFields));
        !            40: 
        !            41: echo "Testing pgsqlCopyFromArray() with default parameters\n";
        !            42: $db->beginTransaction();
        !            43: var_dump($db->pgsqlCopyFromArray('test',$tableRows));
        !            44: 
        !            45: $stmt = $db->query("select * from test");
        !            46: foreach($stmt as $r) {
        !            47:        var_dump($r);
        !            48: }
        !            49: $db->rollback();
        !            50: 
        !            51: echo "Testing pgsqlCopyFromArray() with different field separator and not null indicator\n";
        !            52: $db->beginTransaction();
        !            53: var_dump($db->pgsqlCopyFromArray('test',$tableRowsWithDifferentNullValues,";","NULL"));
        !            54: $stmt = $db->query("select * from test");
        !            55: foreach($stmt as $r) {
        !            56:        var_dump($r);
        !            57: }
        !            58: $db->rollback();
        !            59: 
        !            60: echo "Testing pgsqlCopyFromArray() with only selected fields\n";
        !            61: $db->beginTransaction();
        !            62: var_dump($db->pgsqlCopyFromArray('test',$tableRowsWithDifferentNullValuesAndSelectedFields,";","NULL",'a,c'));
        !            63: $stmt = $db->query("select * from test");
        !            64: foreach($stmt as $r) {
        !            65:        var_dump($r);
        !            66: }
        !            67: $db->rollback();
        !            68: 
        !            69: echo "Testing pgsqlCopyFromArray() with error\n";
        !            70: $db->beginTransaction();
        !            71: var_dump($db->pgsqlCopyFromArray('test_error',$tableRowsWithDifferentNullValuesAndSelectedFields,";","NULL",'a,c'));
        !            72: $db->rollback();
        !            73: 
        !            74: 
        !            75: echo "Testing pgsqlCopyFromFile() with default parameters\n";
        !            76: $db->beginTransaction();
        !            77: var_dump($db->pgsqlCopyFromFile('test',$filename));
        !            78: 
        !            79: $stmt = $db->query("select * from test");
        !            80: foreach($stmt as $r) {
        !            81:        var_dump($r);
        !            82: }
        !            83: $db->rollback();
        !            84: 
        !            85: echo "Testing pgsqlCopyFromFile() with different field separator and not null indicator\n";
        !            86: $db->beginTransaction();
        !            87: var_dump($db->pgsqlCopyFromFile('test',$filenameWithDifferentNullValues,";","NULL"));
        !            88: $stmt = $db->query("select * from test");
        !            89: foreach($stmt as $r) {
        !            90:        var_dump($r);
        !            91: }
        !            92: $db->rollback();
        !            93: 
        !            94: echo "Testing pgsqlCopyFromFile() with only selected fields\n";
        !            95: $db->beginTransaction();
        !            96: var_dump($db->pgsqlCopyFromFile('test',$filenameWithDifferentNullValuesAndSelectedFields,";","NULL",'a,c'));
        !            97: $stmt = $db->query("select * from test");
        !            98: foreach($stmt as $r) {
        !            99:        var_dump($r);
        !           100: }
        !           101: $db->rollback();
        !           102: 
        !           103: echo "Testing pgsqlCopyFromFile() with error\n";
        !           104: $db->beginTransaction();
        !           105: var_dump($db->pgsqlCopyFromFile('test_error',$filenameWithDifferentNullValuesAndSelectedFields,";","NULL",'a,c'));
        !           106: $db->rollback();
        !           107: 
        !           108: } catch (Exception $e) {
        !           109:        /* catch exceptions so that we can show the relative error */
        !           110:        echo "Exception! at line ", $e->getLine(), "\n";
        !           111:        var_dump($e->getMessage());
        !           112: }
        !           113: if(isset($filename)) {
        !           114:        @unlink($filename);
        !           115: }
        !           116: ?>
        !           117: --EXPECT--
        !           118: Preparing test file and array for CopyFrom tests
        !           119: Testing pgsqlCopyFromArray() with default parameters
        !           120: bool(true)
        !           121: array(6) {
        !           122:   ["a"]=>
        !           123:   int(0)
        !           124:   [0]=>
        !           125:   int(0)
        !           126:   ["b"]=>
        !           127:   string(13) "test insert 0"
        !           128:   [1]=>
        !           129:   string(13) "test insert 0"
        !           130:   ["c"]=>
        !           131:   NULL
        !           132:   [2]=>
        !           133:   NULL
        !           134: }
        !           135: array(6) {
        !           136:   ["a"]=>
        !           137:   int(1)
        !           138:   [0]=>
        !           139:   int(1)
        !           140:   ["b"]=>
        !           141:   string(13) "test insert 1"
        !           142:   [1]=>
        !           143:   string(13) "test insert 1"
        !           144:   ["c"]=>
        !           145:   NULL
        !           146:   [2]=>
        !           147:   NULL
        !           148: }
        !           149: array(6) {
        !           150:   ["a"]=>
        !           151:   int(2)
        !           152:   [0]=>
        !           153:   int(2)
        !           154:   ["b"]=>
        !           155:   string(13) "test insert 2"
        !           156:   [1]=>
        !           157:   string(13) "test insert 2"
        !           158:   ["c"]=>
        !           159:   NULL
        !           160:   [2]=>
        !           161:   NULL
        !           162: }
        !           163: Testing pgsqlCopyFromArray() with different field separator and not null indicator
        !           164: bool(true)
        !           165: array(6) {
        !           166:   ["a"]=>
        !           167:   int(0)
        !           168:   [0]=>
        !           169:   int(0)
        !           170:   ["b"]=>
        !           171:   string(13) "test insert 0"
        !           172:   [1]=>
        !           173:   string(13) "test insert 0"
        !           174:   ["c"]=>
        !           175:   NULL
        !           176:   [2]=>
        !           177:   NULL
        !           178: }
        !           179: array(6) {
        !           180:   ["a"]=>
        !           181:   int(1)
        !           182:   [0]=>
        !           183:   int(1)
        !           184:   ["b"]=>
        !           185:   string(13) "test insert 1"
        !           186:   [1]=>
        !           187:   string(13) "test insert 1"
        !           188:   ["c"]=>
        !           189:   NULL
        !           190:   [2]=>
        !           191:   NULL
        !           192: }
        !           193: array(6) {
        !           194:   ["a"]=>
        !           195:   int(2)
        !           196:   [0]=>
        !           197:   int(2)
        !           198:   ["b"]=>
        !           199:   string(13) "test insert 2"
        !           200:   [1]=>
        !           201:   string(13) "test insert 2"
        !           202:   ["c"]=>
        !           203:   NULL
        !           204:   [2]=>
        !           205:   NULL
        !           206: }
        !           207: Testing pgsqlCopyFromArray() with only selected fields
        !           208: bool(true)
        !           209: array(6) {
        !           210:   ["a"]=>
        !           211:   int(0)
        !           212:   [0]=>
        !           213:   int(0)
        !           214:   ["b"]=>
        !           215:   NULL
        !           216:   [1]=>
        !           217:   NULL
        !           218:   ["c"]=>
        !           219:   NULL
        !           220:   [2]=>
        !           221:   NULL
        !           222: }
        !           223: array(6) {
        !           224:   ["a"]=>
        !           225:   int(1)
        !           226:   [0]=>
        !           227:   int(1)
        !           228:   ["b"]=>
        !           229:   NULL
        !           230:   [1]=>
        !           231:   NULL
        !           232:   ["c"]=>
        !           233:   NULL
        !           234:   [2]=>
        !           235:   NULL
        !           236: }
        !           237: array(6) {
        !           238:   ["a"]=>
        !           239:   int(2)
        !           240:   [0]=>
        !           241:   int(2)
        !           242:   ["b"]=>
        !           243:   NULL
        !           244:   [1]=>
        !           245:   NULL
        !           246:   ["c"]=>
        !           247:   NULL
        !           248:   [2]=>
        !           249:   NULL
        !           250: }
        !           251: Testing pgsqlCopyFromArray() with error
        !           252: bool(false)
        !           253: Testing pgsqlCopyFromFile() with default parameters
        !           254: bool(true)
        !           255: array(6) {
        !           256:   ["a"]=>
        !           257:   int(0)
        !           258:   [0]=>
        !           259:   int(0)
        !           260:   ["b"]=>
        !           261:   string(13) "test insert 0"
        !           262:   [1]=>
        !           263:   string(13) "test insert 0"
        !           264:   ["c"]=>
        !           265:   NULL
        !           266:   [2]=>
        !           267:   NULL
        !           268: }
        !           269: array(6) {
        !           270:   ["a"]=>
        !           271:   int(1)
        !           272:   [0]=>
        !           273:   int(1)
        !           274:   ["b"]=>
        !           275:   string(13) "test insert 1"
        !           276:   [1]=>
        !           277:   string(13) "test insert 1"
        !           278:   ["c"]=>
        !           279:   NULL
        !           280:   [2]=>
        !           281:   NULL
        !           282: }
        !           283: array(6) {
        !           284:   ["a"]=>
        !           285:   int(2)
        !           286:   [0]=>
        !           287:   int(2)
        !           288:   ["b"]=>
        !           289:   string(13) "test insert 2"
        !           290:   [1]=>
        !           291:   string(13) "test insert 2"
        !           292:   ["c"]=>
        !           293:   NULL
        !           294:   [2]=>
        !           295:   NULL
        !           296: }
        !           297: Testing pgsqlCopyFromFile() with different field separator and not null indicator
        !           298: bool(true)
        !           299: array(6) {
        !           300:   ["a"]=>
        !           301:   int(0)
        !           302:   [0]=>
        !           303:   int(0)
        !           304:   ["b"]=>
        !           305:   string(13) "test insert 0"
        !           306:   [1]=>
        !           307:   string(13) "test insert 0"
        !           308:   ["c"]=>
        !           309:   NULL
        !           310:   [2]=>
        !           311:   NULL
        !           312: }
        !           313: array(6) {
        !           314:   ["a"]=>
        !           315:   int(1)
        !           316:   [0]=>
        !           317:   int(1)
        !           318:   ["b"]=>
        !           319:   string(13) "test insert 1"
        !           320:   [1]=>
        !           321:   string(13) "test insert 1"
        !           322:   ["c"]=>
        !           323:   NULL
        !           324:   [2]=>
        !           325:   NULL
        !           326: }
        !           327: array(6) {
        !           328:   ["a"]=>
        !           329:   int(2)
        !           330:   [0]=>
        !           331:   int(2)
        !           332:   ["b"]=>
        !           333:   string(13) "test insert 2"
        !           334:   [1]=>
        !           335:   string(13) "test insert 2"
        !           336:   ["c"]=>
        !           337:   NULL
        !           338:   [2]=>
        !           339:   NULL
        !           340: }
        !           341: Testing pgsqlCopyFromFile() with only selected fields
        !           342: bool(true)
        !           343: array(6) {
        !           344:   ["a"]=>
        !           345:   int(0)
        !           346:   [0]=>
        !           347:   int(0)
        !           348:   ["b"]=>
        !           349:   NULL
        !           350:   [1]=>
        !           351:   NULL
        !           352:   ["c"]=>
        !           353:   NULL
        !           354:   [2]=>
        !           355:   NULL
        !           356: }
        !           357: array(6) {
        !           358:   ["a"]=>
        !           359:   int(1)
        !           360:   [0]=>
        !           361:   int(1)
        !           362:   ["b"]=>
        !           363:   NULL
        !           364:   [1]=>
        !           365:   NULL
        !           366:   ["c"]=>
        !           367:   NULL
        !           368:   [2]=>
        !           369:   NULL
        !           370: }
        !           371: array(6) {
        !           372:   ["a"]=>
        !           373:   int(2)
        !           374:   [0]=>
        !           375:   int(2)
        !           376:   ["b"]=>
        !           377:   NULL
        !           378:   [1]=>
        !           379:   NULL
        !           380:   ["c"]=>
        !           381:   NULL
        !           382:   [2]=>
        !           383:   NULL
        !           384: }
        !           385: Testing pgsqlCopyFromFile() with error
        !           386: bool(false)

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