Annotation of embedaddon/php/ext/sqlite3/tests/sqlite3_36_create_collation.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test SQLite3::createCollation() by adding strnatcmp() as an SQL COLLATE sequence
! 3: --SKIPIF--
! 4: <?php require_once dirname(__FILE__) . '/skipif.inc'; ?>
! 5: --FILE--
! 6: <?php
! 7:
! 8: require_once dirname(__FILE__) . '/new_db.inc';
! 9:
! 10: $db->createCollation('NAT', 'strnatcmp');
! 11:
! 12: $db->exec('CREATE TABLE t (s varchar(4))');
! 13:
! 14: $stmt = $db->prepare('INSERT INTO t VALUES (?)');
! 15: foreach(array('a1', 'a10', 'a2') as $s){
! 16: $stmt->bindParam(1, $s);
! 17: $stmt->execute();
! 18: }
! 19:
! 20: $defaultSort = $db->query('SELECT s FROM t ORDER BY s'); //memcmp() sort
! 21: $naturalSort = $db->query('SELECT s FROM t ORDER BY s COLLATE NAT'); //strnatcmp() sort
! 22:
! 23: echo "default\n";
! 24: while ($row = $defaultSort->fetchArray()){
! 25: echo $row['s'], "\n";
! 26: }
! 27:
! 28: echo "natural\n";
! 29: while ($row = $naturalSort->fetchArray()){
! 30: echo $row['s'], "\n";
! 31: }
! 32:
! 33: $db->close();
! 34:
! 35: ?>
! 36: --EXPECT--
! 37: default
! 38: a1
! 39: a10
! 40: a2
! 41: natural
! 42: a1
! 43: a2
! 44: a10
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>