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 (124 lines) | stat: -rw-r--r-- 3,365 bytes parent folder | download | duplicates (5)
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
<?xml version="1.0" encoding="utf-8"?>
<test>
<name>query vs stack overflow</name>

<skip_indexer/>
<config>
searchd
{
	<searchd_settings/>
	workers	= threads
	thread_stack = 320K
	binlog_path =
}

index test
{
	type	= rt
	path	= <data_path/>/test
	
	rt_field		= text
	rt_attr_uint	= idd
	
	rt_mem_limit = 16M
}

</config>

<db_create>
CREATE TABLE `test`
(
	`document_id` int(11) NOT NULL default '0',
	`text` varchar(25) NOT NULL default '',
	`idd` int(11) NOT NULL default '0'
)
</db_create>

<db_drop>
DROP TABLE IF EXISTS `test`
</db_drop>

<custom_test><![CDATA[

global $sd_address, $sd_sphinxql_port;

$results = array();
$sockStr = "$sd_address:$sd_sphinxql_port";
if ($sd_address == "localhost")
	$sockStr = "127.0.0.1:$sd_sphinxql_port";
$sock = @mysql_connect ($sockStr,'','',	true );

if ( $sock === false )
{
	$results[] = "error: can't connect to searchd: " . @mysql_errno ( $sock ) . " : " . @mysql_error ( $sock );
	return;
}

$query = "INSERT INTO test VALUES (1, 'word1 word10', 1 )";
$results[] = $query;
$res = mysql_query ( $query, $sock );
if ($res===true)
	$results[] = "total affected ".mysql_affected_rows($sock);
else if ($res===false)
	$results[] = "error ".@mysql_errno($sock)." : ".@mysql_error ($sock);
else
	$results[] = "total found ".mysql_num_rows ($res);
	
$match = '"word1 word2"~30 ';
for ( $i=3; $i<520; $i++ )
	$match = $match . ' | "word' . $i . ' word' . ( $i+1 ) . '"~30 ';

$query = "SELECT * FROM test WHERE MATCH('$match')";
$results[] = $query;
$res = mysql_query ( $query, $sock );
if ($res===true)
	$results[] = "total affected ".mysql_affected_rows($sock);
else if ($res===false)
	$results[] = "error ".@mysql_errno($sock)." : ".@mysql_error ($sock);
else
	$results[] = "total found ".mysql_num_rows ($res);

// regression ext query crash on snippet generation
$match = 'fast ';
for ( $i=1; $i<1520; $i++ )
        $match = $match . " | ( word word$i )";

$query = "CALL SNIPPETS ( 'fast path word word1000', 'test', '$match', 1 as query_mode, 0 as limit )";
$results[] = 'snippets fast-path ext query stack overflow';
$res = mysql_query ( $query, $sock );
if ($res===true)
        $results[] = "total affected ".mysql_affected_rows($sock);
else if ($res===false)
        $results[] = "error ".@mysql_errno($sock)." : ".@mysql_error ($sock);
else
{
        while ($row = @mysql_fetch_array($res, MYSQL_ASSOC))
        {
                $foo = array();
                foreach ($row as $key => $value)
                        $foo[$key] = $value;
                $results[] = $foo;
        }
}

$query = "CALL SNIPPETS ( 'not a fast path is going here word word1000 and might be others', 'test', '$match', 1 as query_mode, 40 as limit )";
$results[] = 'snippets ext query stack overflow';
$res = mysql_query ( $query, $sock );
if ($res===true)
        $results[] = "total affected ".mysql_affected_rows($sock);
else if ($res===false)
        $results[] = "error ".@mysql_errno($sock)." : ".@mysql_error ($sock);
else
{
        while ($row = @mysql_fetch_array($res, MYSQL_ASSOC))
        {
                $foo = array();
                foreach ($row as $key => $value)
                        $foo[$key] = $value;
                $results[] = $foo;
        }
}
	
]]></custom_test>

</test>