8
push @INC, "../common/";
15
my $dbh = hstest::init_testdb();
16
my $table = 'hstesttbl';
19
"create table $table " .
20
"(k1 varchar(30) not null, k2 varchar(30) not null, " .
21
"v1 int not null, v2 int not null, " .
22
"primary key (k1, k2) ) engine = innodb");
25
my $sth = $dbh->prepare("insert into $table values (?,?,?,?)");
26
for (my $i = 0; $i < $tablesize; ++$i) {
27
for (my $j = 0; $j < $tablesize; ++$j) {
32
$sth->execute($k1, $k2, $v1, $v2);
36
my $hs = hstest::get_hs_connection(undef, 9999);
37
my $dbname = $hstest::conf{dbname};
38
$hs->open_index(1, $dbname, $table, '', 'k1,k2,v1,v2', 'k2');
39
$hs->open_index(2, $dbname, $table, '', 'k1,k2,v1,v2', 'k1,k2,v1,v2');
40
$hs->open_index(3, $dbname, $table, '', 'v1', 'k1,v2');
44
[ 1, '>=', [ '', '' ], 1000, 0 ],
48
# select k1, k2, v1, v2 ... where (k1, k2) >= ('', '') and k2 = 'k2_5'
51
[ 1, '>=', [ '', '' ], 1000, 0, undef, undef, [ [ 'F', '=', 0, 'k2_5' ] ] ]
57
[ 1, '>=', [ '', '' ], 1000, 0, undef, undef, [ [ 'F', '=', 0, 'k2_5' ] ] ],
60
# select k1, k2, v1, v2 ... where (k1, k2) >= ('', '') and v1 = 3
63
[ 2, '>=', [ '', '' ], 1000, 0, undef, undef, [ [ 'F', '=', 2, 3 ] ] ],
66
# select k1, k2, v1, v2 ... where (k1, k2) >= ('k1_1', '') and k1 <= 'k1_2'
69
[ 2, '>=', [ 'k1_1', '' ], 1000, 0, undef, undef,
70
[ [ 'W', '<=', 0, 'k1_2' ] ] ],
73
# select k1, k2, v1, v2 ... where (k1, k2) >= ('k1_1', '') and k1 <= 'k1_2'
77
[ 2, '>=', [ 'k1_1', '' ], 1000, 0, undef, undef,
78
[ [ 'W', '<=', 0, 'k1_2' ], [ 'F', '>=', 3, 10 ] ] ],
81
# update ... set v2 = -1 where (k1, k2) >= ('k1_3', '') and v2 = 10
84
[ 3, '>=', [ 'k1_1', '' ], 1000, 0, 'U', [ -1 ],
85
[ [ 'F', '=', 1, 10 ] ] ],
90
[ 1, '>=', [ '', '' ], 1000, 0 ],
97
my ($width, $mess, $req) = @_;
99
my $res = $hs->execute_single(@$req);
101
my $code = shift(@$res);
102
print "code=$code\n";
104
for my $fld (@$res) {
106
if (++$i >= $width) {
116
my $width = shift(@_);
117
my $mess = shift(@_);
119
my $mres = $hs->execute_multi(\@_);
120
for my $res (@$mres) {
121
my $code = shift(@$res);
122
print "code=$code\n";
124
for my $fld (@$res) {
126
if (++$i >= $width) {