vincentchu-handlersocket 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
|