1--TEST-- 2SQLite3::createAggregate() test 3--SKIPIF-- 4<?php require_once(__DIR__ . '/skipif.inc'); ?> 5--FILE-- 6<?php 7 8require_once(__DIR__ . '/new_db.inc'); 9 10function sum_list_step($context, $rows, $string) { 11 if (empty($context)) 12 { 13 $context = array('total' => 0, 'values' => array()); 14 } 15 $context['total'] += intval($string); 16 $context['values'][] = $context['total']; 17 return $context; 18} 19 20function sum_list_finalize($context) { 21 return implode(',', $context['values']); 22} 23 24echo "Creating Table\n"; 25var_dump($db->exec('CREATE TABLE test (a INTEGER, b INTEGER)')); 26 27echo "INSERT into table\n"; 28var_dump($db->exec("INSERT INTO test (a, b) VALUES (1, -1)")); 29var_dump($db->exec("INSERT INTO test (a, b) VALUES (2, -2)")); 30var_dump($db->exec("INSERT INTO test (a, b) VALUES (3, -3)")); 31var_dump($db->exec("INSERT INTO test (a, b) VALUES (4, -4)")); 32var_dump($db->exec("INSERT INTO test (a, b) VALUES (4, -4)")); 33 34$db->createAggregate('S', 'sum_list_step', 'sum_list_finalize', 1); 35 36print_r($db->querySingle("SELECT S(a), S(b) FROM test", true)); 37 38echo "Closing database\n"; 39var_dump($db->close()); 40echo "Done\n"; 41?> 42--EXPECT-- 43Creating Table 44bool(true) 45INSERT into table 46bool(true) 47bool(true) 48bool(true) 49bool(true) 50bool(true) 51Array 52( 53 [S(a)] => 1,3,6,10,14 54 [S(b)] => -1,-3,-6,-10,-14 55) 56Closing database 57bool(true) 58Done 59