Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
4d1e3874
Commit
4d1e3874
authored
Apr 17, 2006
by
pekka@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ndb - bug#16796
parent
93f965d1
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
203 additions
and
0 deletions
+203
-0
mysql-test/r/ndb_blob_partition.result
mysql-test/r/ndb_blob_partition.result
+104
-0
mysql-test/t/ndb_blob_partition.test
mysql-test/t/ndb_blob_partition.test
+93
-0
storage/ndb/src/ndbapi/NdbBlob.cpp
storage/ndb/src/ndbapi/NdbBlob.cpp
+2
-0
storage/ndb/src/ndbapi/NdbOperationSearch.cpp
storage/ndb/src/ndbapi/NdbOperationSearch.cpp
+4
-0
No files found.
mysql-test/r/ndb_blob_partition.result
0 → 100644
View file @
4d1e3874
drop table if exists t1;
create table t1 (
a mediumint not null,
b text not null,
c int not null,
d longblob,
primary key using hash (a,c),
unique key (c)
)
engine=ndb
partition by range (c)
partitions 3
( partition p1 values less than (200),
partition p2 values less than (300),
partition p3 values less than (400));
insert into t1 values (1, @v1, 101, @v2);
insert into t1 values (1, @v2, 102, @v3);
insert into t1 values (1, @v3, 103, @v4);
insert into t1 values (2, @v4, 201, @v5);
insert into t1 values (2, @v5, 202, @v6);
insert into t1 values (2, @v6, 203, @v7);
insert into t1 values (3, @v7, 301, @v8);
insert into t1 values (3, @v8, 302, @v9);
insert into t1 values (3, @v9, 303, @v1);
select a, sha1(b), c, sha1(d) from t1 order by a;
a sha1(b) c sha1(d)
1 1d42dd9090cf78314a06665d4ea938c35cc760f4 101 10d3c783026b310218d10b7188da96a2401648c6
1 10d3c783026b310218d10b7188da96a2401648c6 102 a33549d9844092289a58ac348dd59f09fc28406a
1 a33549d9844092289a58ac348dd59f09fc28406a 103 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c
2 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c 201 70fc9a7d08beebc522258bfb02000a30c77a8f1d
2 70fc9a7d08beebc522258bfb02000a30c77a8f1d 202 090565c580809efed3d369481a4bbb168b20713e
2 090565c580809efed3d369481a4bbb168b20713e 203 1e0070bec426871a46291de27b9bd6e4255ab4e5
3 1e0070bec426871a46291de27b9bd6e4255ab4e5 301 acbaba01bc2e682f015f40e79d9cbe475db3002e
3 acbaba01bc2e682f015f40e79d9cbe475db3002e 302 9ee30d99162574f79c66ae95cdf132dcf9cbc259
3 9ee30d99162574f79c66ae95cdf132dcf9cbc259 303 1d42dd9090cf78314a06665d4ea938c35cc760f4
select a, sha1(b), c, sha1(d) from t1 where a = 1 and c = 101;
a sha1(b) c sha1(d)
1 1d42dd9090cf78314a06665d4ea938c35cc760f4 101 10d3c783026b310218d10b7188da96a2401648c6
select a, sha1(b), c, sha1(d) from t1 where a = 2 and c = 201;
a sha1(b) c sha1(d)
2 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c 201 70fc9a7d08beebc522258bfb02000a30c77a8f1d
select a, sha1(b), c, sha1(d) from t1 where a = 3 and c = 301;
a sha1(b) c sha1(d)
3 1e0070bec426871a46291de27b9bd6e4255ab4e5 301 acbaba01bc2e682f015f40e79d9cbe475db3002e
update t1 set b = @v3, d = @v4 where a = 1 and c = 102;
update t1 set b = @v6, d = @v7 where a = 2 and c = 202;
update t1 set b = @v9, d = @v1 where a = 3 and c = 302;
select a, sha1(b), c, sha1(d) from t1 order by a;
a sha1(b) c sha1(d)
1 1d42dd9090cf78314a06665d4ea938c35cc760f4 101 10d3c783026b310218d10b7188da96a2401648c6
1 a33549d9844092289a58ac348dd59f09fc28406a 102 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c
1 a33549d9844092289a58ac348dd59f09fc28406a 103 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c
2 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c 201 70fc9a7d08beebc522258bfb02000a30c77a8f1d
2 090565c580809efed3d369481a4bbb168b20713e 202 1e0070bec426871a46291de27b9bd6e4255ab4e5
2 090565c580809efed3d369481a4bbb168b20713e 203 1e0070bec426871a46291de27b9bd6e4255ab4e5
3 1e0070bec426871a46291de27b9bd6e4255ab4e5 301 acbaba01bc2e682f015f40e79d9cbe475db3002e
3 9ee30d99162574f79c66ae95cdf132dcf9cbc259 302 1d42dd9090cf78314a06665d4ea938c35cc760f4
3 9ee30d99162574f79c66ae95cdf132dcf9cbc259 303 1d42dd9090cf78314a06665d4ea938c35cc760f4
update t1 set b = @v4, d = @v5 where c = 103;
update t1 set b = @v7, d = @v8 where c = 203;
update t1 set b = @v1, d = @v2 where c = 303;
select a, sha1(b), c, sha1(d) from t1 order by a;
a sha1(b) c sha1(d)
1 1d42dd9090cf78314a06665d4ea938c35cc760f4 101 10d3c783026b310218d10b7188da96a2401648c6
1 a33549d9844092289a58ac348dd59f09fc28406a 102 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c
1 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c 103 70fc9a7d08beebc522258bfb02000a30c77a8f1d
2 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c 201 70fc9a7d08beebc522258bfb02000a30c77a8f1d
2 090565c580809efed3d369481a4bbb168b20713e 202 1e0070bec426871a46291de27b9bd6e4255ab4e5
2 1e0070bec426871a46291de27b9bd6e4255ab4e5 203 acbaba01bc2e682f015f40e79d9cbe475db3002e
3 1e0070bec426871a46291de27b9bd6e4255ab4e5 301 acbaba01bc2e682f015f40e79d9cbe475db3002e
3 9ee30d99162574f79c66ae95cdf132dcf9cbc259 302 1d42dd9090cf78314a06665d4ea938c35cc760f4
3 1d42dd9090cf78314a06665d4ea938c35cc760f4 303 10d3c783026b310218d10b7188da96a2401648c6
update t1 set b = @v5, d = @v6;
select a, sha1(b), c, sha1(d) from t1 order by a;
a sha1(b) c sha1(d)
1 70fc9a7d08beebc522258bfb02000a30c77a8f1d 101 090565c580809efed3d369481a4bbb168b20713e
1 70fc9a7d08beebc522258bfb02000a30c77a8f1d 102 090565c580809efed3d369481a4bbb168b20713e
1 70fc9a7d08beebc522258bfb02000a30c77a8f1d 103 090565c580809efed3d369481a4bbb168b20713e
2 70fc9a7d08beebc522258bfb02000a30c77a8f1d 201 090565c580809efed3d369481a4bbb168b20713e
2 70fc9a7d08beebc522258bfb02000a30c77a8f1d 202 090565c580809efed3d369481a4bbb168b20713e
2 70fc9a7d08beebc522258bfb02000a30c77a8f1d 203 090565c580809efed3d369481a4bbb168b20713e
3 70fc9a7d08beebc522258bfb02000a30c77a8f1d 301 090565c580809efed3d369481a4bbb168b20713e
3 70fc9a7d08beebc522258bfb02000a30c77a8f1d 302 090565c580809efed3d369481a4bbb168b20713e
3 70fc9a7d08beebc522258bfb02000a30c77a8f1d 303 090565c580809efed3d369481a4bbb168b20713e
update t1 set b = @v1, d = @v2 where 100 < c and c < 200;
update t1 set b = @v4, d = @v5 where 200 < c and c < 300;
update t1 set b = @v7, d = @v8 where 300 < c and c < 400;
select a, sha1(b), c, sha1(d) from t1 order by a;
a sha1(b) c sha1(d)
1 1d42dd9090cf78314a06665d4ea938c35cc760f4 101 10d3c783026b310218d10b7188da96a2401648c6
1 1d42dd9090cf78314a06665d4ea938c35cc760f4 102 10d3c783026b310218d10b7188da96a2401648c6
1 1d42dd9090cf78314a06665d4ea938c35cc760f4 103 10d3c783026b310218d10b7188da96a2401648c6
2 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c 201 70fc9a7d08beebc522258bfb02000a30c77a8f1d
2 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c 202 70fc9a7d08beebc522258bfb02000a30c77a8f1d
2 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c 203 70fc9a7d08beebc522258bfb02000a30c77a8f1d
3 1e0070bec426871a46291de27b9bd6e4255ab4e5 301 acbaba01bc2e682f015f40e79d9cbe475db3002e
3 1e0070bec426871a46291de27b9bd6e4255ab4e5 302 acbaba01bc2e682f015f40e79d9cbe475db3002e
3 1e0070bec426871a46291de27b9bd6e4255ab4e5 303 acbaba01bc2e682f015f40e79d9cbe475db3002e
delete from t1 where a = 1 and c = 101;
delete from t1 where c = 102;
delete from t1;
select a, sha1(b), c, sha1(d) from t1 order by a;
a sha1(b) c sha1(d)
drop table t1;
mysql-test/t/ndb_blob_partition.test
0 → 100644
View file @
4d1e3874
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
drop
table
if
exists
t1
;
--
enable_warnings
#
# Minimal NDB blobs test with range partitions.
#
create
table
t1
(
a
mediumint
not
null
,
b
text
not
null
,
c
int
not
null
,
d
longblob
,
primary
key
using
hash
(
a
,
c
),
unique
key
(
c
)
)
engine
=
ndb
partition
by
range
(
c
)
partitions
3
(
partition
p1
values
less
than
(
200
),
partition
p2
values
less
than
(
300
),
partition
p3
values
less
than
(
400
));
--
disable_query_log
sleep
1
;
# length 61
set
@
s0
=
'rggurloniukyehuxdbfkkyzlceixzrehqhvxvxbpwizzvjzpucqmzrhzxzfau'
;
set
@
s1
=
'ykyymbzqgqlcjhlhmyqelfoaaohvtbekvifukdtnvcrrjveevfakxarxexomz'
;
set
@
s2
=
'dbnfqyzgtqxalcrwtfsqabknvtfcbpoonxsjiqvmhnfikxxhcgoexlkoezvah'
;
set
@
v1
=
repeat
(
@
s0
,
100
);
--
1
d42dd9090cf78314a06665d4ea938c35cc760f4
set
@
v2
=
repeat
(
@
s1
,
200
);
--
10
d3c783026b310218d10b7188da96a2401648c6
set
@
v3
=
repeat
(
@
s2
,
300
);
--
a33549d9844092289a58ac348dd59f09fc28406a
set
@
v4
=
repeat
(
@
s0
,
400
);
--
daa61c6de36a0526f0d47dc29d6b9de7e6d2630c
set
@
v5
=
repeat
(
@
s1
,
500
);
--
70
fc9a7d08beebc522258bfb02000a30c77a8f1d
set
@
v6
=
repeat
(
@
s2
,
600
);
--
090565
c580809efed3d369481a4bbb168b20713e
set
@
v7
=
repeat
(
@
s0
,
700
);
--
1
e0070bec426871a46291de27b9bd6e4255ab4e5
set
@
v8
=
repeat
(
@
s1
,
800
);
--
acbaba01bc2e682f015f40e79d9cbe475db3002e
set
@
v9
=
repeat
(
@
s2
,
900
);
--
9
ee30d99162574f79c66ae95cdf132dcf9cbc259
--
enable_query_log
# -- insert --
insert
into
t1
values
(
1
,
@
v1
,
101
,
@
v2
);
insert
into
t1
values
(
1
,
@
v2
,
102
,
@
v3
);
insert
into
t1
values
(
1
,
@
v3
,
103
,
@
v4
);
insert
into
t1
values
(
2
,
@
v4
,
201
,
@
v5
);
insert
into
t1
values
(
2
,
@
v5
,
202
,
@
v6
);
insert
into
t1
values
(
2
,
@
v6
,
203
,
@
v7
);
insert
into
t1
values
(
3
,
@
v7
,
301
,
@
v8
);
insert
into
t1
values
(
3
,
@
v8
,
302
,
@
v9
);
insert
into
t1
values
(
3
,
@
v9
,
303
,
@
v1
);
select
a
,
sha1
(
b
),
c
,
sha1
(
d
)
from
t1
order
by
a
;
# -- pk read --
select
a
,
sha1
(
b
),
c
,
sha1
(
d
)
from
t1
where
a
=
1
and
c
=
101
;
select
a
,
sha1
(
b
),
c
,
sha1
(
d
)
from
t1
where
a
=
2
and
c
=
201
;
select
a
,
sha1
(
b
),
c
,
sha1
(
d
)
from
t1
where
a
=
3
and
c
=
301
;
# -- pk update --
update
t1
set
b
=
@
v3
,
d
=
@
v4
where
a
=
1
and
c
=
102
;
update
t1
set
b
=
@
v6
,
d
=
@
v7
where
a
=
2
and
c
=
202
;
update
t1
set
b
=
@
v9
,
d
=
@
v1
where
a
=
3
and
c
=
302
;
select
a
,
sha1
(
b
),
c
,
sha1
(
d
)
from
t1
order
by
a
;
# -- hash index update --
update
t1
set
b
=
@
v4
,
d
=
@
v5
where
c
=
103
;
update
t1
set
b
=
@
v7
,
d
=
@
v8
where
c
=
203
;
update
t1
set
b
=
@
v1
,
d
=
@
v2
where
c
=
303
;
select
a
,
sha1
(
b
),
c
,
sha1
(
d
)
from
t1
order
by
a
;
# -- full scan update --
update
t1
set
b
=
@
v5
,
d
=
@
v6
;
select
a
,
sha1
(
b
),
c
,
sha1
(
d
)
from
t1
order
by
a
;
# -- range scan update
update
t1
set
b
=
@
v1
,
d
=
@
v2
where
100
<
c
and
c
<
200
;
update
t1
set
b
=
@
v4
,
d
=
@
v5
where
200
<
c
and
c
<
300
;
update
t1
set
b
=
@
v7
,
d
=
@
v8
where
300
<
c
and
c
<
400
;
select
a
,
sha1
(
b
),
c
,
sha1
(
d
)
from
t1
order
by
a
;
# -- delete --
delete
from
t1
where
a
=
1
and
c
=
101
;
delete
from
t1
where
c
=
102
;
# delete from t1 where c < 300; # XXX coredump
delete
from
t1
;
select
a
,
sha1
(
b
),
c
,
sha1
(
d
)
from
t1
order
by
a
;
# -- clean up --
drop
table
t1
;
storage/ndb/src/ndbapi/NdbBlob.cpp
View file @
4d1e3874
...
...
@@ -535,6 +535,8 @@ NdbBlob::setTableKeyValue(NdbOperation* anOp)
pos
+=
(
len
+
3
)
/
4
;
}
}
if
(
theNdbOp
->
theDistrKeyIndicator_
)
anOp
->
setPartitionId
(
theNdbOp
->
getPartitionId
());
assert
(
pos
==
theKeyBuf
.
size
/
4
);
DBUG_RETURN
(
0
);
}
...
...
storage/ndb/src/ndbapi/NdbOperationSearch.cpp
View file @
4d1e3874
...
...
@@ -640,10 +640,14 @@ NdbOperation::setPartitionId(Uint32 value)
{
theDistributionKey
=
value
;
theDistrKeyIndicator_
=
1
;
DBUG_PRINT
(
"info"
,
(
"NdbOperation::setPartitionId: %u"
,
theDistributionKey
));
}
Uint32
NdbOperation
::
getPartitionId
()
const
{
DBUG_PRINT
(
"info"
,
(
"NdbOperation::getPartitionId: %u ind=%d"
,
theDistributionKey
,
theDistrKeyIndicator_
));
return
theDistributionKey
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment