File: test.xml

package info (click to toggle)
sphinxsearch 2.2.11-8
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid, trixie
  • size: 25,720 kB
  • sloc: cpp: 102,259; xml: 85,608; sh: 9,259; php: 3,790; ansic: 3,158; yacc: 1,969; java: 1,336; ruby: 1,289; python: 1,062; pascal: 912; perl: 381; lex: 275; makefile: 150; sql: 77; cs: 35
file content (137 lines) | stat: -rw-r--r-- 3,005 bytes parent folder | download | duplicates (3)
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?xml version="1.0" encoding="utf-8"?>

<test>
<name>catching errors in multiqueries</name>

<config>
indexer
{
	mem_limit = 16M
}

searchd
{
	<searchd_settings/>
	workers = threads
	binlog_path =
}

source srctest
{
	type = mysql
	<sql_settings/>
	sql_query = SELECT id, best_seller, attributes_id, text FROM test_table

	sql_attr_uint = best_seller
	sql_attr_uint = attributes_id
}

index products
{
	source				= srctest
	path				= <data_path/>/test
}

index idx2
{
	source				= srctest
	path				= <data_path/>/idx2
}

source src3
{
	type = mysql
	<sql_settings/>
	sql_query = SELECT 10 id, 100 as other_seller, 101 attributes_id, 'test' text UNION SELECT 11 id, 101 as other_seller, 102 attributes_id, 'test' text 

	sql_attr_uint = other_seller
	sql_attr_uint = attributes_id
}

index idx3
{
	source				= src3
	path				= <data_path/>/idx3
}

</config>

<db_create>
CREATE TABLE test_table
(
	id integer primary key not null auto_increment,
	best_seller int not null default 0,
	attributes_id int not null default 0,
	text varchar(256)
);
</db_create>

<db_drop>
DROP TABLE IF EXISTS test_table;
</db_drop>

<db_insert>
INSERT INTO test_table (best_seller, attributes_id, text) VALUES
( 1, 1, 'text1' ),
( 2, 1, 'text2' ),
( 3, 2, 'text3' ),
( 4, 2, 'text4' );
</db_insert>

  <Query_Settings><![CDATA[
  $client->SetArrayResult (true);
$client->SetMatchMode (SPH_MATCH_EXTENDED2);
$client->SetSortMode (SPH_SORT_EXTENDED, 'best_seller ASC');
$index = 'products';
$query = "";

// First Query
$client->AddQuery ($query, $index);


//Second query - note that manufacturers_id is absent in the schema, so it must fail the query, but *NOT* crash the searchd.
$client->SetSelect('manufacturers_id');
$client->SetGroupBy ('manufacturers_id', SPH_GROUPBY_ATTR, 'manufacturers_id desc');
$client->AddQuery ($query, $index);

//fullscan query should return something while in multiquery with fulltext query
$client->SetSelect('*');
$client->SetLimits(0, 1);
$client->ResetGroupBy();
$client->AddQuery ('text1', $index);

//Run queries
$results = $client->RunQueries(); 


// regression crash on multiquery with one bad query
$index = 'products, idx2';
$query = 'text1';
$client->SetSortMode (SPH_SORT_EXTENDED, 'best_seller asc');
$client->SetSelect('*');
$client->SetLimits(0, 10);

$client->AddQuery ($query, $index);
$client->SetGroupBy ('missed', SPH_GROUPBY_ATTR, 'missed desc');
$client->AddQuery ($query, $index);
$results[] = $client->RunQueries(); 

$client->ResetGroupBy();
$index = 'products, idx3';
$client->SetSelect('');
$client->SetLimits(0, 10);
$client->SetSortMode (SPH_SORT_EXTENDED, 'attributes_id ASC');
$results[] = $client->Query ('', $index);

]]></Query_Settings>

<Queries><Query/></Queries>

<sphqueries>
<sphinxql>select missed from products; select * from products</sphinxql>

<!-- regression SET and new SHOW statements at multi query-->
<sphinxql>set profiling=1; select id from idx3; show plan; show meta; set profiling=1; show plan; show meta</sphinxql>
</sphqueries>

</test>