summaryrefslogtreecommitdiff
path: root/ext/pdo_sqlite/tests/pdo_sqlite_createcollation.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/pdo_sqlite/tests/pdo_sqlite_createcollation.phpt')
-rw-r--r--ext/pdo_sqlite/tests/pdo_sqlite_createcollation.phpt38
1 files changed, 38 insertions, 0 deletions
diff --git a/ext/pdo_sqlite/tests/pdo_sqlite_createcollation.phpt b/ext/pdo_sqlite/tests/pdo_sqlite_createcollation.phpt
new file mode 100644
index 0000000..c35e363
--- /dev/null
+++ b/ext/pdo_sqlite/tests/pdo_sqlite_createcollation.phpt
@@ -0,0 +1,38 @@
+--TEST--
+PDO_sqlite: Testing sqliteCreateCollation()
+--SKIPIF--
+<?php if (!extension_loaded('pdo_sqlite')) print 'skip not loaded'; ?>
+--FILE--
+<?php
+
+$db = new pdo('sqlite::memory:');
+$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+
+$db->query('CREATE TABLE IF NOT EXISTS foobar (id INT AUTO INCREMENT, name TEXT)');
+
+$db->query('INSERT INTO foobar VALUES (NULL, "1")');
+$db->query('INSERT INTO foobar VALUES (NULL, "2")');
+$db->query('INSERT INTO foobar VALUES (NULL, "10")');
+
+$db->sqliteCreateCollation('MYCOLLATE', function($a, $b) { return strnatcmp($a, $b); });
+
+$result = $db->query('SELECT name FROM foobar ORDER BY name COLLATE MYCOLLATE');
+foreach ($result as $row) {
+ echo $row['name'] . "\n";
+}
+
+$result = $db->query('SELECT name FROM foobar ORDER BY name');
+foreach ($result as $row) {
+ echo $row['name'] . "\n";
+}
+
+$db->query('DROP TABLE foobar');
+
+?>
+--EXPECTF--
+1
+2
+10
+1
+10
+2