vincentchu-handlersocket 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/ext/HandlerSocket-Plugin-for-MySQL/AUTHORS +22 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/COPYING +30 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/ChangeLog +12 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/Makefile.am +87 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/README +78 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/autogen.sh +117 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/client/Makefile.am +24 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/client/hsclient.cpp +88 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/client/hslongrun.cpp +1041 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/client/hspool_test.pl +224 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/client/hstest.cpp +1532 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/client/hstest.pl +228 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/client/hstest_hs.sh +4 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/client/hstest_hs_more50.sh +4 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/client/hstest_md.sh +7 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/client/hstest_my.sh +3 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/client/hstest_my_more50.sh +3 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/configure.ac +144 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/docs-en/about-handlersocket.en.txt +72 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/docs-en/configuration-options.en.txt +99 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/docs-en/installation.en.txt +92 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/docs-en/perl-client.en.txt +135 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/docs-en/protocol.en.txt +205 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/docs-ja/about-handlersocket.ja.txt +51 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/docs-ja/installation.ja.txt +88 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/docs-ja/perl-client.ja.txt +127 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/docs-ja/protocol.ja.txt +180 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/handlersocket/COPYRIGHT.txt +27 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/handlersocket/Makefile.am +10 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/handlersocket/Makefile.plain.template +31 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/handlersocket/database.cpp +1190 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/handlersocket/database.hpp +142 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/handlersocket/handlersocket.cpp +222 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/handlersocket/handlersocket.spec.template +29 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/handlersocket/hstcpsvr.cpp +149 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/handlersocket/hstcpsvr.hpp +58 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/handlersocket/hstcpsvr_worker.cpp +951 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/handlersocket/hstcpsvr_worker.hpp +35 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/handlersocket/mysql_incl.hpp +50 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/COPYRIGHT.txt +27 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/Makefile.am +12 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/Makefile.plain +27 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/allocator.hpp +64 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/auto_addrinfo.hpp +49 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/auto_file.hpp +64 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/auto_ptrcontainer.hpp +67 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/config.cpp +67 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/config.hpp +32 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/escape.cpp +127 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/escape.hpp +66 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/fatal.cpp +36 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/fatal.hpp +22 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/hstcpcli.cpp +441 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/hstcpcli.hpp +62 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/libhsclient.spec.template +39 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/mutex.hpp +51 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/socket.cpp +186 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/socket.hpp +51 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/string_buffer.hpp +118 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/string_ref.hpp +63 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/string_util.cpp +182 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/string_util.hpp +53 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/thread.hpp +84 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/libhsclient/util.hpp +25 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/misc/microbench-hs.log +130 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/misc/microbench-my.log +125 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/perl-Net-HandlerSocket/COPYRIGHT.txt +27 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/perl-Net-HandlerSocket/Changes +6 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/perl-Net-HandlerSocket/HandlerSocket.xs +632 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/perl-Net-HandlerSocket/MANIFEST +8 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/perl-Net-HandlerSocket/Makefile.PL +18 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/perl-Net-HandlerSocket/Makefile.PL.installed +20 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/perl-Net-HandlerSocket/README +30 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/perl-Net-HandlerSocket/lib/Net/HandlerSocket.pm +68 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/perl-Net-HandlerSocket/lib/Net/HandlerSocket/Pool.pm +362 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/perl-Net-HandlerSocket/perl-Net-HandlerSocket.spec.template +127 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/perl-Net-HandlerSocket/ppport.h +6375 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/perl-Net-HandlerSocket/t/Net-HandlerSocket.t +15 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/Makefile +79 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/common/binary_my.cnf +4 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/common/compat.sh +29 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/common/hstest.pm +66 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/Makefile +4 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/run.sh +27 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test01.expected +100 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test01.pl +38 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test02.expected +100 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test02.pl +49 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test03.expected +771 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test03.pl +61 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test04.expected +0 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test04.pl +63 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test05.expected +771 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test05.pl +59 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test06.expected +644 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test06.pl +90 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test07.expected +304 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test07.pl +98 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test08.expected +2 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test08.pl +48 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test09.expected +12 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test09.pl +67 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test10.expected +771 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test10.pl +93 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test11.expected +37 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test11.pl +112 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test12.expected +273 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test12.pl +134 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test13.expected +92 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test13.pl +92 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test14.expected +144 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test14.pl +80 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test15.expected +764 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test15.pl +114 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test16.expected +66 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test16.pl +88 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test17.expected +0 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test17.pl +125 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test18.expected +22 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test18.pl +63 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test19.expected +14894 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test19.pl +190 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test20.expected +2 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test20.pl +33 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test21.expected +11 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test21.pl +58 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test22.expected +9 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test22.pl +61 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test23.expected +101 -0
- data/ext/HandlerSocket-Plugin-for-MySQL/regtest/test_01_lib/test23.pl +53 -0
- data/ext/winebarrel-ruby-handlersocket-c19841e47ea2/README +33 -0
- data/ext/winebarrel-ruby-handlersocket-c19841e47ea2/extconf.rb +27 -0
- data/ext/winebarrel-ruby-handlersocket-c19841e47ea2/handlersocket.cpp +437 -0
- data/ext/winebarrel-ruby-handlersocket-c19841e47ea2/handlersocket.h +32 -0
- metadata +200 -0
@@ -0,0 +1,90 @@
|
|
1
|
+
#!/usr/bin/perl
|
2
|
+
|
3
|
+
# vim:sw=2:ai
|
4
|
+
|
5
|
+
# test for insert/update/delete
|
6
|
+
|
7
|
+
BEGIN {
|
8
|
+
push @INC, "../common/";
|
9
|
+
};
|
10
|
+
|
11
|
+
use strict;
|
12
|
+
use warnings;
|
13
|
+
use hstest;
|
14
|
+
|
15
|
+
my $dbh = hstest::init_testdb();
|
16
|
+
my $table = 'hstesttbl';
|
17
|
+
my $tablesize = 256;
|
18
|
+
$dbh->do(
|
19
|
+
"create table $table (" .
|
20
|
+
"k varchar(30) primary key, " .
|
21
|
+
"v1 varchar(30), " .
|
22
|
+
"v2 varchar(30)) " .
|
23
|
+
"engine = innodb default charset = binary");
|
24
|
+
srand(999);
|
25
|
+
|
26
|
+
my %valmap = ();
|
27
|
+
|
28
|
+
print "HSINSERT";
|
29
|
+
my $hs = hstest::get_hs_connection(undef, 9999);
|
30
|
+
my $dbname = $hstest::conf{dbname};
|
31
|
+
$hs->open_index(1, $dbname, $table, '', 'k,v1,v2');
|
32
|
+
for (my $i = 0; $i < $tablesize; ++$i) {
|
33
|
+
my $k = "" . $i;
|
34
|
+
my $v1 = "v1_" . $i;
|
35
|
+
my $v2 = "v2_" . $i;
|
36
|
+
my $r = $hs->execute_insert(1, [ $k, $v1, $v2 ]);
|
37
|
+
my $err = $r->[0];
|
38
|
+
if ($err != 0) {
|
39
|
+
my $err_str = $r->[1];
|
40
|
+
print "$err $err_str\n";
|
41
|
+
}
|
42
|
+
}
|
43
|
+
undef $hs;
|
44
|
+
|
45
|
+
dump_table();
|
46
|
+
|
47
|
+
print "HSUPDATE";
|
48
|
+
$hs = hstest::get_hs_connection(undef, 9999);
|
49
|
+
$dbname = $hstest::conf{dbname};
|
50
|
+
$hs->open_index(2, $dbname, $table, '', 'v1');
|
51
|
+
for (my $i = 0; $i < $tablesize; ++$i) {
|
52
|
+
my $r = $hs->execute_single(2, '=', [ $i ], 1000, 0, 'U', [ "mod_$i" ]);
|
53
|
+
my $err = $r->[0];
|
54
|
+
if ($err != 0) {
|
55
|
+
my $err_str = $r->[1];
|
56
|
+
print "$err $err_str\n";
|
57
|
+
}
|
58
|
+
}
|
59
|
+
undef $hs;
|
60
|
+
|
61
|
+
dump_table();
|
62
|
+
|
63
|
+
print "HSDELETE\n";
|
64
|
+
$hs = hstest::get_hs_connection(undef, 9999);
|
65
|
+
$dbname = $hstest::conf{dbname};
|
66
|
+
$hs->open_index(3, $dbname, $table, '', '');
|
67
|
+
for (my $i = 0; $i < $tablesize; $i = $i + 2) {
|
68
|
+
my $r = $hs->execute_single(3, '=', [ $i ], 1000, 0, 'D');
|
69
|
+
my $err = $r->[0];
|
70
|
+
if ($err != 0) {
|
71
|
+
my $err_str = $r->[1];
|
72
|
+
print "$err $err_str\n";
|
73
|
+
}
|
74
|
+
}
|
75
|
+
undef $hs;
|
76
|
+
|
77
|
+
dump_table();
|
78
|
+
|
79
|
+
sub dump_table {
|
80
|
+
print "DUMP_TABLE\n";
|
81
|
+
my $aref = $dbh->selectall_arrayref("select k,v1,v2 from $table order by k");
|
82
|
+
for my $row (@$aref) {
|
83
|
+
my ($k, $v1, $v2) = @$row;
|
84
|
+
$v1 = "[null]" if !defined($v1);
|
85
|
+
$v2 = "[null]" if !defined($v2);
|
86
|
+
print "$k $v1 $v2\n";
|
87
|
+
# print "MISMATCH\n" if ($valmap{$k} ne $v);
|
88
|
+
}
|
89
|
+
}
|
90
|
+
|
@@ -0,0 +1,304 @@
|
|
1
|
+
MY
|
2
|
+
0 1v1020 2v6350
|
3
|
+
1 1v8031 2v9251
|
4
|
+
2 1v7752 2v5372
|
5
|
+
3 [NULL] 2v4143
|
6
|
+
4 1v5904 2v3024
|
7
|
+
5 1v7045 2v7515
|
8
|
+
6 1v3676 2v4006
|
9
|
+
7 1v3977 2v1707
|
10
|
+
8 1v7198 2v7348
|
11
|
+
9 1v5879 2v4949
|
12
|
+
10 1v52310 2v95410
|
13
|
+
11 1v43311 2v82011
|
14
|
+
12 1v28312 2v83712
|
15
|
+
13 [NULL] 2v41513
|
16
|
+
14 1v54514 2v58314
|
17
|
+
15 1v5215 2v32315
|
18
|
+
16 1v61416 2v67916
|
19
|
+
17 1v80517 2v45117
|
20
|
+
18 1v11518 2v26918
|
21
|
+
19 1v21819 2v61719
|
22
|
+
20 1v87820 2v34520
|
23
|
+
21 1v51221 2v96921
|
24
|
+
22 1v40822 2v29122
|
25
|
+
23 [NULL] 2v95323
|
26
|
+
24 1v71024 2v14224
|
27
|
+
25 1v68225 2v93425
|
28
|
+
26 1v62126 2v96526
|
29
|
+
27 1v57427 2v20427
|
30
|
+
28 1v29828 2v13428
|
31
|
+
29 1v98329 2v44429
|
32
|
+
30 1v14430 2v15230
|
33
|
+
31 1v18731 2v21531
|
34
|
+
32 1v832 2v69732
|
35
|
+
33 [NULL] 2v28033
|
36
|
+
34 1v70134 2v53734
|
37
|
+
35 1v41335 2v6935
|
38
|
+
36 1v8636 2v82236
|
39
|
+
37 1v67037 2v37037
|
40
|
+
38 1v80638 2v68838
|
41
|
+
39 1v2639 2v6639
|
42
|
+
40 1v80240 2v17140
|
43
|
+
41 1v55741 2v84741
|
44
|
+
42 1v77742 2v73042
|
45
|
+
43 [NULL] 2v11543
|
46
|
+
44 1v64644 2v49644
|
47
|
+
45 1v12045 2v68445
|
48
|
+
46 1v37446 2v6546
|
49
|
+
47 1v37047 2v17447
|
50
|
+
48 1v82848 2v86748
|
51
|
+
49 1v75949 2v70349
|
52
|
+
50 1v84350 2v94250
|
53
|
+
51 1v40151 2v36251
|
54
|
+
52 1v36752 2v30752
|
55
|
+
53 [NULL] 2v16753
|
56
|
+
54 1v79954 2v82954
|
57
|
+
55 1v53955 2v37955
|
58
|
+
56 1v56056 2v85856
|
59
|
+
57 1v57957 2v2657
|
60
|
+
58 1v88758 2v50758
|
61
|
+
59 1v34559 2v89859
|
62
|
+
60 1v43060 2v80160
|
63
|
+
61 1v84561 2v32561
|
64
|
+
62 1v62462 2v48062
|
65
|
+
63 [NULL] 2v67663
|
66
|
+
64 1v5364 2v73664
|
67
|
+
65 1v80965 2v27065
|
68
|
+
66 1v17566 2v83966
|
69
|
+
67 1v6167 2v22267
|
70
|
+
68 1v35868 2v50568
|
71
|
+
69 1v62769 2v90669
|
72
|
+
70 1v4670 2v98170
|
73
|
+
71 1v11971 2v471
|
74
|
+
72 1v1472 2v48072
|
75
|
+
73 [NULL] 2v40573
|
76
|
+
74 1v87574 2v63974
|
77
|
+
75 1v82775 2v34475
|
78
|
+
76 1v59876 2v56376
|
79
|
+
77 1v77077 2v51677
|
80
|
+
78 1v53878 2v54878
|
81
|
+
79 1v35779 2v32279
|
82
|
+
80 1v3680 2v37080
|
83
|
+
81 1v33181 2v81581
|
84
|
+
82 1v76982 2v66882
|
85
|
+
83 [NULL] 2v28183
|
86
|
+
84 1v69684 2v45284
|
87
|
+
85 1v40685 2v185
|
88
|
+
86 1v39586 2v32486
|
89
|
+
87 1v3687 2v73887
|
90
|
+
88 1v16088 2v7988
|
91
|
+
89 1v75989 2v65789
|
92
|
+
90 1v3190 2v78390
|
93
|
+
91 1v65091 2v82491
|
94
|
+
92 1v85292 2v6892
|
95
|
+
93 [NULL] 2v54693
|
96
|
+
94 1v81394 2v77594
|
97
|
+
95 1v8795 2v69695
|
98
|
+
96 1v19696 2v38096
|
99
|
+
97 1v7997 2v75197
|
100
|
+
98 1v32398 2v21798
|
101
|
+
99 1v3799 2v70199
|
102
|
+
HS
|
103
|
+
0 1v1020 2v6350
|
104
|
+
1 1v8031 2v9251
|
105
|
+
2 1v7752 2v5372
|
106
|
+
3 [NULL] 2v4143
|
107
|
+
4 1v5904 2v3024
|
108
|
+
5 1v7045 2v7515
|
109
|
+
6 1v3676 2v4006
|
110
|
+
7 1v3977 2v1707
|
111
|
+
8 1v7198 2v7348
|
112
|
+
9 1v5879 2v4949
|
113
|
+
10 1v52310 2v95410
|
114
|
+
11 1v43311 2v82011
|
115
|
+
12 1v28312 2v83712
|
116
|
+
13 [NULL] 2v41513
|
117
|
+
14 1v54514 2v58314
|
118
|
+
15 1v5215 2v32315
|
119
|
+
16 1v61416 2v67916
|
120
|
+
17 1v80517 2v45117
|
121
|
+
18 1v11518 2v26918
|
122
|
+
19 1v21819 2v61719
|
123
|
+
20 1v87820 2v34520
|
124
|
+
21 1v51221 2v96921
|
125
|
+
22 1v40822 2v29122
|
126
|
+
23 [NULL] 2v95323
|
127
|
+
24 1v71024 2v14224
|
128
|
+
25 1v68225 2v93425
|
129
|
+
26 1v62126 2v96526
|
130
|
+
27 1v57427 2v20427
|
131
|
+
28 1v29828 2v13428
|
132
|
+
29 1v98329 2v44429
|
133
|
+
30 1v14430 2v15230
|
134
|
+
31 1v18731 2v21531
|
135
|
+
32 1v832 2v69732
|
136
|
+
33 [NULL] 2v28033
|
137
|
+
34 1v70134 2v53734
|
138
|
+
35 1v41335 2v6935
|
139
|
+
36 1v8636 2v82236
|
140
|
+
37 1v67037 2v37037
|
141
|
+
38 1v80638 2v68838
|
142
|
+
39 1v2639 2v6639
|
143
|
+
40 1v80240 2v17140
|
144
|
+
41 1v55741 2v84741
|
145
|
+
42 1v77742 2v73042
|
146
|
+
43 [NULL] 2v11543
|
147
|
+
44 1v64644 2v49644
|
148
|
+
45 1v12045 2v68445
|
149
|
+
46 1v37446 2v6546
|
150
|
+
47 1v37047 2v17447
|
151
|
+
48 1v82848 2v86748
|
152
|
+
49 1v75949 2v70349
|
153
|
+
50 1v84350 2v94250
|
154
|
+
51 1v40151 2v36251
|
155
|
+
52 1v36752 2v30752
|
156
|
+
53 [NULL] 2v16753
|
157
|
+
54 1v79954 2v82954
|
158
|
+
55 1v53955 2v37955
|
159
|
+
56 1v56056 2v85856
|
160
|
+
57 1v57957 2v2657
|
161
|
+
58 1v88758 2v50758
|
162
|
+
59 1v34559 2v89859
|
163
|
+
60 1v43060 2v80160
|
164
|
+
61 1v84561 2v32561
|
165
|
+
62 1v62462 2v48062
|
166
|
+
63 [NULL] 2v67663
|
167
|
+
64 1v5364 2v73664
|
168
|
+
65 1v80965 2v27065
|
169
|
+
66 1v17566 2v83966
|
170
|
+
67 1v6167 2v22267
|
171
|
+
68 1v35868 2v50568
|
172
|
+
69 1v62769 2v90669
|
173
|
+
70 1v4670 2v98170
|
174
|
+
71 1v11971 2v471
|
175
|
+
72 1v1472 2v48072
|
176
|
+
73 [NULL] 2v40573
|
177
|
+
74 1v87574 2v63974
|
178
|
+
75 1v82775 2v34475
|
179
|
+
76 1v59876 2v56376
|
180
|
+
77 1v77077 2v51677
|
181
|
+
78 1v53878 2v54878
|
182
|
+
79 1v35779 2v32279
|
183
|
+
80 1v3680 2v37080
|
184
|
+
81 1v33181 2v81581
|
185
|
+
82 1v76982 2v66882
|
186
|
+
83 [NULL] 2v28183
|
187
|
+
84 1v69684 2v45284
|
188
|
+
85 1v40685 2v185
|
189
|
+
86 1v39586 2v32486
|
190
|
+
87 1v3687 2v73887
|
191
|
+
88 1v16088 2v7988
|
192
|
+
89 1v75989 2v65789
|
193
|
+
90 1v3190 2v78390
|
194
|
+
91 1v65091 2v82491
|
195
|
+
92 1v85292 2v6892
|
196
|
+
93 [NULL] 2v54693
|
197
|
+
94 1v81394 2v77594
|
198
|
+
95 1v8795 2v69695
|
199
|
+
96 1v19696 2v38096
|
200
|
+
97 1v7997 2v75197
|
201
|
+
98 1v32398 2v21798
|
202
|
+
99 1v3799 2v70199
|
203
|
+
2ndIDX
|
204
|
+
2ndidx 0 1v1020 => 0 1v1020 2v6350
|
205
|
+
2ndidx 1 1v8031 => 1 1v8031 2v9251
|
206
|
+
2ndidx 2 1v7752 => 2 1v7752 2v5372
|
207
|
+
2ndidx 4 1v5904 => 4 1v5904 2v3024
|
208
|
+
2ndidx 5 1v7045 => 5 1v7045 2v7515
|
209
|
+
2ndidx 6 1v3676 => 6 1v3676 2v4006
|
210
|
+
2ndidx 7 1v3977 => 7 1v3977 2v1707
|
211
|
+
2ndidx 8 1v7198 => 8 1v7198 2v7348
|
212
|
+
2ndidx 9 1v5879 => 9 1v5879 2v4949
|
213
|
+
2ndidx 10 1v52310 => 10 1v52310 2v95410
|
214
|
+
2ndidx 11 1v43311 => 11 1v43311 2v82011
|
215
|
+
2ndidx 12 1v28312 => 12 1v28312 2v83712
|
216
|
+
2ndidx 14 1v54514 => 14 1v54514 2v58314
|
217
|
+
2ndidx 15 1v5215 => 15 1v5215 2v32315
|
218
|
+
2ndidx 16 1v61416 => 16 1v61416 2v67916
|
219
|
+
2ndidx 17 1v80517 => 17 1v80517 2v45117
|
220
|
+
2ndidx 18 1v11518 => 18 1v11518 2v26918
|
221
|
+
2ndidx 19 1v21819 => 19 1v21819 2v61719
|
222
|
+
2ndidx 20 1v87820 => 20 1v87820 2v34520
|
223
|
+
2ndidx 21 1v51221 => 21 1v51221 2v96921
|
224
|
+
2ndidx 22 1v40822 => 22 1v40822 2v29122
|
225
|
+
2ndidx 24 1v71024 => 24 1v71024 2v14224
|
226
|
+
2ndidx 25 1v68225 => 25 1v68225 2v93425
|
227
|
+
2ndidx 26 1v62126 => 26 1v62126 2v96526
|
228
|
+
2ndidx 27 1v57427 => 27 1v57427 2v20427
|
229
|
+
2ndidx 28 1v29828 => 28 1v29828 2v13428
|
230
|
+
2ndidx 29 1v98329 => 29 1v98329 2v44429
|
231
|
+
2ndidx 30 1v14430 => 30 1v14430 2v15230
|
232
|
+
2ndidx 31 1v18731 => 31 1v18731 2v21531
|
233
|
+
2ndidx 32 1v832 => 32 1v832 2v69732
|
234
|
+
2ndidx 34 1v70134 => 34 1v70134 2v53734
|
235
|
+
2ndidx 35 1v41335 => 35 1v41335 2v6935
|
236
|
+
2ndidx 36 1v8636 => 36 1v8636 2v82236
|
237
|
+
2ndidx 37 1v67037 => 37 1v67037 2v37037
|
238
|
+
2ndidx 38 1v80638 => 38 1v80638 2v68838
|
239
|
+
2ndidx 39 1v2639 => 39 1v2639 2v6639
|
240
|
+
2ndidx 40 1v80240 => 40 1v80240 2v17140
|
241
|
+
2ndidx 41 1v55741 => 41 1v55741 2v84741
|
242
|
+
2ndidx 42 1v77742 => 42 1v77742 2v73042
|
243
|
+
2ndidx 44 1v64644 => 44 1v64644 2v49644
|
244
|
+
2ndidx 45 1v12045 => 45 1v12045 2v68445
|
245
|
+
2ndidx 46 1v37446 => 46 1v37446 2v6546
|
246
|
+
2ndidx 47 1v37047 => 47 1v37047 2v17447
|
247
|
+
2ndidx 48 1v82848 => 48 1v82848 2v86748
|
248
|
+
2ndidx 49 1v75949 => 49 1v75949 2v70349
|
249
|
+
2ndidx 50 1v84350 => 50 1v84350 2v94250
|
250
|
+
2ndidx 51 1v40151 => 51 1v40151 2v36251
|
251
|
+
2ndidx 52 1v36752 => 52 1v36752 2v30752
|
252
|
+
2ndidx 54 1v79954 => 54 1v79954 2v82954
|
253
|
+
2ndidx 55 1v53955 => 55 1v53955 2v37955
|
254
|
+
2ndidx 56 1v56056 => 56 1v56056 2v85856
|
255
|
+
2ndidx 57 1v57957 => 57 1v57957 2v2657
|
256
|
+
2ndidx 58 1v88758 => 58 1v88758 2v50758
|
257
|
+
2ndidx 59 1v34559 => 59 1v34559 2v89859
|
258
|
+
2ndidx 60 1v43060 => 60 1v43060 2v80160
|
259
|
+
2ndidx 61 1v84561 => 61 1v84561 2v32561
|
260
|
+
2ndidx 62 1v62462 => 62 1v62462 2v48062
|
261
|
+
2ndidx 64 1v5364 => 64 1v5364 2v73664
|
262
|
+
2ndidx 65 1v80965 => 65 1v80965 2v27065
|
263
|
+
2ndidx 66 1v17566 => 66 1v17566 2v83966
|
264
|
+
2ndidx 67 1v6167 => 67 1v6167 2v22267
|
265
|
+
2ndidx 68 1v35868 => 68 1v35868 2v50568
|
266
|
+
2ndidx 69 1v62769 => 69 1v62769 2v90669
|
267
|
+
2ndidx 70 1v4670 => 70 1v4670 2v98170
|
268
|
+
2ndidx 71 1v11971 => 71 1v11971 2v471
|
269
|
+
2ndidx 72 1v1472 => 72 1v1472 2v48072
|
270
|
+
2ndidx 74 1v87574 => 74 1v87574 2v63974
|
271
|
+
2ndidx 75 1v82775 => 75 1v82775 2v34475
|
272
|
+
2ndidx 76 1v59876 => 76 1v59876 2v56376
|
273
|
+
2ndidx 77 1v77077 => 77 1v77077 2v51677
|
274
|
+
2ndidx 78 1v53878 => 78 1v53878 2v54878
|
275
|
+
2ndidx 79 1v35779 => 79 1v35779 2v32279
|
276
|
+
2ndidx 80 1v3680 => 80 1v3680 2v37080
|
277
|
+
2ndidx 81 1v33181 => 81 1v33181 2v81581
|
278
|
+
2ndidx 82 1v76982 => 82 1v76982 2v66882
|
279
|
+
2ndidx 84 1v69684 => 84 1v69684 2v45284
|
280
|
+
2ndidx 85 1v40685 => 85 1v40685 2v185
|
281
|
+
2ndidx 86 1v39586 => 86 1v39586 2v32486
|
282
|
+
2ndidx 87 1v3687 => 87 1v3687 2v73887
|
283
|
+
2ndidx 88 1v16088 => 88 1v16088 2v7988
|
284
|
+
2ndidx 89 1v75989 => 89 1v75989 2v65789
|
285
|
+
2ndidx 90 1v3190 => 90 1v3190 2v78390
|
286
|
+
2ndidx 91 1v65091 => 91 1v65091 2v82491
|
287
|
+
2ndidx 92 1v85292 => 92 1v85292 2v6892
|
288
|
+
2ndidx 94 1v81394 => 94 1v81394 2v77594
|
289
|
+
2ndidx 95 1v8795 => 95 1v8795 2v69695
|
290
|
+
2ndidx 96 1v19696 => 96 1v19696 2v38096
|
291
|
+
2ndidx 97 1v7997 => 97 1v7997 2v75197
|
292
|
+
2ndidx 98 1v32398 => 98 1v32398 2v21798
|
293
|
+
2ndidx 99 1v3799 => 99 1v3799 2v70199
|
294
|
+
2ndIDX NULL
|
295
|
+
2ndidxnull 3 2v4143
|
296
|
+
2ndidxnull 13 2v41513
|
297
|
+
2ndidxnull 23 2v95323
|
298
|
+
2ndidxnull 33 2v28033
|
299
|
+
2ndidxnull 43 2v11543
|
300
|
+
2ndidxnull 53 2v16753
|
301
|
+
2ndidxnull 63 2v67663
|
302
|
+
2ndidxnull 73 2v40573
|
303
|
+
2ndidxnull 83 2v28183
|
304
|
+
2ndidxnull 93 2v54693
|
@@ -0,0 +1,98 @@
|
|
1
|
+
#!/usr/bin/perl
|
2
|
+
|
3
|
+
# vim:sw=2:ai
|
4
|
+
|
5
|
+
# test for nulls
|
6
|
+
|
7
|
+
BEGIN {
|
8
|
+
push @INC, "../common/";
|
9
|
+
};
|
10
|
+
|
11
|
+
# use strict;
|
12
|
+
use warnings;
|
13
|
+
use hstest;
|
14
|
+
|
15
|
+
my $dbh = hstest::init_testdb();
|
16
|
+
my $table = 'hstesttbl';
|
17
|
+
my $tablesize = 100;
|
18
|
+
$dbh->do(
|
19
|
+
"create table $table (" .
|
20
|
+
"k int primary key, v1 varchar(30), v2 varchar(30), " .
|
21
|
+
"key idxv1 (v1) " .
|
22
|
+
") engine = innodb");
|
23
|
+
srand(999);
|
24
|
+
|
25
|
+
my %valmap = ();
|
26
|
+
|
27
|
+
my $sth = $dbh->prepare("insert into $table values (?,?,?)");
|
28
|
+
for (my $i = 0; $i < $tablesize; ++$i) {
|
29
|
+
my $k = "" . $i;
|
30
|
+
my $v1 = "1v" . int(rand(1000)) . $i;
|
31
|
+
my $v2 = "2v" . int(rand(1000)) . $i;
|
32
|
+
if ($i % 10 == 3) {
|
33
|
+
$v1 = undef;
|
34
|
+
}
|
35
|
+
$sth->execute($k, $v1, $v2);
|
36
|
+
$valmap{$k} = $v1;
|
37
|
+
}
|
38
|
+
|
39
|
+
print "MY\n";
|
40
|
+
my $aref = $dbh->selectall_arrayref("select k,v1,v2 from $table order by k");
|
41
|
+
for my $row (@$aref) {
|
42
|
+
my ($k, $v1, $v2) = @$row;
|
43
|
+
$v1 = "[NULL]" if (!defined($v1));
|
44
|
+
print "$k $v1 $v2\n";
|
45
|
+
}
|
46
|
+
|
47
|
+
print "HS\n";
|
48
|
+
my $hs = hstest::get_hs_connection();
|
49
|
+
my $dbname = $hstest::conf{dbname};
|
50
|
+
$hs->open_index(1, $dbname, $table, '', 'k,v1,v2');
|
51
|
+
my $r = $hs->execute_single(1, '>=', [ '' ], 10000, 0);
|
52
|
+
shift(@$r);
|
53
|
+
for (my $i = 0; $i < $tablesize; ++$i) {
|
54
|
+
my $k = $r->[$i * 3];
|
55
|
+
my $v1 = $r->[$i * 3 + 1];
|
56
|
+
my $v2 = $r->[$i * 3 + 2];
|
57
|
+
$v1 = "[NULL]" if (!defined($v1));
|
58
|
+
print "$k $v1 $v2\n";
|
59
|
+
}
|
60
|
+
|
61
|
+
print "2ndIDX\n";
|
62
|
+
$hs->open_index(2, $dbname, $table, 'idxv1', 'k,v1,v2');
|
63
|
+
for (my $i = 0; $i < $tablesize; ++$i) {
|
64
|
+
my $k = "" . $i;
|
65
|
+
my $v1 = $valmap{$k};
|
66
|
+
next if !defined($v1);
|
67
|
+
my $r = $hs->execute_single(2, '=', [ $v1 ], 1, 0);
|
68
|
+
shift(@$r);
|
69
|
+
my $r_k = $r->[0];
|
70
|
+
my $r_v1 = $r->[1];
|
71
|
+
my $r_v2 = $r->[2];
|
72
|
+
print "2ndidx $k $v1 => $r_k $r_v1 $r_v2\n";
|
73
|
+
}
|
74
|
+
|
75
|
+
print "2ndIDX NULL\n";
|
76
|
+
{
|
77
|
+
my %rvals = ();
|
78
|
+
my $v1 = undef;
|
79
|
+
my @arr;
|
80
|
+
push(@arr, undef);
|
81
|
+
my $kv = \@arr;
|
82
|
+
my $r = $hs->execute_single(2, "=", $kv, 10000, 0);
|
83
|
+
shift(@$r);
|
84
|
+
for (my $i = 0; $i < scalar(@$r); $i += 3) {
|
85
|
+
my $k = $r->[$i];
|
86
|
+
my $v1 = $r->[$i + 1];
|
87
|
+
my $v2 = $r->[$i + 2];
|
88
|
+
$rvals{$k} = [ $k, $v1, $v2 ];
|
89
|
+
}
|
90
|
+
for my $i (sort { $a <=> $b } keys %rvals) {
|
91
|
+
my $rec = $rvals{$i};
|
92
|
+
my $k = $rec->[0];
|
93
|
+
my $v1 = $rec->[1];
|
94
|
+
my $v2 = $rec->[2];
|
95
|
+
print "2ndidxnull $k $v2\n";
|
96
|
+
}
|
97
|
+
}
|
98
|
+
|