1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
<?xml version="1.0" encoding="utf-8"?>
<test>
<name>MVA updates</name>
<requires>
<non-rt/>
<variant_match/>
</requires>
<config>
indexer
{
mem_limit = 16M
}
searchd
{
<searchd_settings/>
}
source src
{
type = mysql
<sql_settings/>
sql_query = SELECT id, text, mva, tag FROM test_table
<Dynamic>
<Variant>sql_attr_multi = uint mva from field</Variant>
<Variant>sql_attr_multi = bigint mva from field</Variant>
</Dynamic>
sql_attr_uint = tag
}
index idx
{
source = src
path = <data_path/>/main
docinfo = extern
}
</config>
<custom_test><![CDATA[
$results[] = $client->Query ( "" );
if ( !$results[0] )
{
$results = false; // maybe its temporary; lets retry
return;
}
for ( $i=0; $i<2; $i++ )
{
$updata = null;
if ( $i==0 )
$updata = array(1=>array(1001), 3=>array(3001), 2=>array(2001));
else
$updata = array(1=>array(array(101)), 3=>array(array(301, 302, 303)),2=>array(array(201, 202)));
$up = $client->UpdateAttributes ( "idx", array("mva"), $updata, $i==1 );
$results[] = sprintf("up.count=%d", $up);
$results[] = $client->Query ( "" );
}
// final fixup; we don't want to compare times
for ( $i=0; $i<count($results); $i++ )
CompareResultSetFixup ( $results[$i], 0, true );
]]></custom_test>
<db_create>
CREATE TABLE `test_table` (
`id` int(11),
`text` varchar(255) NOT NULL,
`mva` varchar(255) NOT NULL,
`tag` int(11)
)
</db_create>
<db_drop>
DROP TABLE IF EXISTS `test_table`
</db_drop>
<db_insert>
INSERT INTO `test_table` VALUES
( 1, 'test1', '1', 11 ),
( 2, 'test2', '2,3', 22 ),
( 3, 'test3', '4,5,6', 33 ),
( 4, 'test4', '7,8,9,10', 44 ),
( 5, 'test5', '', 55 )
</db_insert>
</test>
|