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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
b11ecca3
Commit
b11ecca3
authored
Jul 18, 2001
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed problem with part keys and BDB tables
Docs/manual.texi: Changelog
parent
4c0f5402
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
32 additions
and
6 deletions
+32
-6
Docs/manual.texi
Docs/manual.texi
+9
-2
bdb/include/db.src
bdb/include/db.src
+1
-0
mysql-test/r/bdb.result
mysql-test/r/bdb.result
+11
-0
sql/ha_berkeley.cc
sql/ha_berkeley.cc
+11
-4
No files found.
Docs/manual.texi
View file @
b11ecca3
...
@@ -3145,6 +3145,10 @@ unsubscribe from the @code{myodbc} list, send a message to
...
@@ -3145,6 +3145,10 @@ unsubscribe from the @code{myodbc} list, send a message to
@email{myodbc-subscribe@@lists.mysql.com} or
@email{myodbc-subscribe@@lists.mysql.com} or
@email{myodbc-unsubscribe@@lists.mysql.com}.
@email{myodbc-unsubscribe@@lists.mysql.com}.
If you can't get an answer for your questions from the mailing list, one
option is to pay for support from @strong{MySQL AB}, which will put you
in direct contact with @strong{MySQL} developers. @xref{Support}.
The following table shows some @strong{MySQL} mailing in other languages than
The following table shows some @strong{MySQL} mailing in other languages than
English. Note that these are not operated by @strong{MySQL AB}, so we can't
English. Note that these are not operated by @strong{MySQL AB}, so we can't
guarantee the quality on these.
guarantee the quality on these.
...
@@ -7584,7 +7588,7 @@ You should also add /etc/my.cnf:
...
@@ -7584,7 +7588,7 @@ You should also add /etc/my.cnf:
open_files_limit=8192
open_files_limit=8192
@end example
@end example
The above should allow @strong{MySQL} to create up to 8192 connections
+
files.
The above should allow @strong{MySQL} to create up to 8192 connections
/
files.
The @code{STACK_SIZE} constant in LinuxThreads controls the spacing of thread
The @code{STACK_SIZE} constant in LinuxThreads controls the spacing of thread
stacks in the address space. It needs to be large enough so that there will
stacks in the address space. It needs to be large enough so that there will
...
@@ -30742,7 +30746,8 @@ method for changing the limit varies widely from system to system.
...
@@ -30742,7 +30746,8 @@ method for changing the limit varies widely from system to system.
@code{table_cache} is related to @code{max_connections}. For example,
@code{table_cache} is related to @code{max_connections}. For example,
for 200 concurrent running connections, you should have a table cache of
for 200 concurrent running connections, you should have a table cache of
at least @code{200 * n}, where @code{n} is the maximum number of tables
at least @code{200 * n}, where @code{n} is the maximum number of tables
in a join.
in a join. You also need to reserve some extra file descriptors for
temporary tables and files.
The cache of open tables can grow to a maximum of @code{table_cache}
The cache of open tables can grow to a maximum of @code{table_cache}
(default 64; this can be changed with the @code{-O table_cache=#}
(default 64; this can be changed with the @code{-O table_cache=#}
...
@@ -45727,6 +45732,8 @@ Added @code{slave_wait_timeout} for replication.
...
@@ -45727,6 +45732,8 @@ Added @code{slave_wait_timeout} for replication.
@item
@item
Fixed problem with @code{UPDATE} and BDB tables.
Fixed problem with @code{UPDATE} and BDB tables.
@item
@item
Fixed hard bug in BDB tables when using key parts.
@item
Fixed problem when using the @code{GRANT FILE ON database.* ...}; Previously
Fixed problem when using the @code{GRANT FILE ON database.* ...}; Previously
we added the @code{DROP} privilege for the database.
we added the @code{DROP} privilege for the database.
@item
@item
bdb/include/db.src
View file @
b11ecca3
...
@@ -119,6 +119,7 @@ struct __db_dbt {
...
@@ -119,6 +119,7 @@ struct __db_dbt {
u_int32_t dlen; /* RO: get/put record length. */
u_int32_t dlen; /* RO: get/put record length. */
u_int32_t doff; /* RO: get/put record offset. */
u_int32_t doff; /* RO: get/put record offset. */
void *app_private; /* Application-private handle. */
#define DB_DBT_ISSET 0x001 /* Lower level calls set value. */
#define DB_DBT_ISSET 0x001 /* Lower level calls set value. */
#define DB_DBT_MALLOC 0x002 /* Return in malloc'd memory. */
#define DB_DBT_MALLOC 0x002 /* Return in malloc'd memory. */
#define DB_DBT_PARTIAL 0x004 /* Partial put/get. */
#define DB_DBT_PARTIAL 0x004 /* Partial put/get. */
...
...
mysql-test/r/bdb.result
View file @
b11ecca3
...
@@ -511,3 +511,14 @@ id id3
...
@@ -511,3 +511,14 @@ id id3
100 2
100 2
KINMU_DATE
KINMU_DATE
KINMU_DATE
KINMU_DATE
a b
1 1
1 2
a b a b
1 1 1 1
1 1 1 2
1 2 1 1
1 2 1 2
a b
1 1
1 2
sql/ha_berkeley.cc
View file @
b11ecca3
...
@@ -351,7 +351,8 @@ berkeley_cmp_hidden_key(DB* file, const DBT *new_key, const DBT *saved_key)
...
@@ -351,7 +351,8 @@ berkeley_cmp_hidden_key(DB* file, const DBT *new_key, const DBT *saved_key)
static
int
static
int
berkeley_cmp_packed_key
(
DB
*
file
,
const
DBT
*
new_key
,
const
DBT
*
saved_key
)
berkeley_cmp_packed_key
(
DB
*
file
,
const
DBT
*
new_key
,
const
DBT
*
saved_key
)
{
{
KEY
*
key
=
(
KEY
*
)
(
file
->
app_private
);
KEY
*
key
=
(
new_key
->
app_private
?
(
KEY
*
)
new_key
->
app_private
:
(
KEY
*
)
(
file
->
app_private
));
char
*
new_key_ptr
=
(
char
*
)
new_key
->
data
;
char
*
new_key_ptr
=
(
char
*
)
new_key
->
data
;
char
*
saved_key_ptr
=
(
char
*
)
saved_key
->
data
;
char
*
saved_key_ptr
=
(
char
*
)
saved_key
->
data
;
KEY_PART_INFO
*
key_part
=
key
->
key_part
,
*
end
=
key_part
+
key
->
key_parts
;
KEY_PART_INFO
*
key_part
=
key
->
key_part
,
*
end
=
key_part
+
key
->
key_parts
;
...
@@ -388,7 +389,8 @@ berkeley_cmp_packed_key(DB *file, const DBT *new_key, const DBT *saved_key)
...
@@ -388,7 +389,8 @@ berkeley_cmp_packed_key(DB *file, const DBT *new_key, const DBT *saved_key)
static
int
static
int
berkeley_cmp_fix_length_key
(
DB
*
file
,
const
DBT
*
new_key
,
const
DBT
*
saved_key
)
berkeley_cmp_fix_length_key
(
DB
*
file
,
const
DBT
*
new_key
,
const
DBT
*
saved_key
)
{
{
KEY
*
key
=
(
KEY
*
)
(
file
->
app_private
);
KEY
*
key
=
(
new_key
->
app_private
?
(
KEY
*
)
new_key
->
app_private
:
(
KEY
*
)
(
file
->
app_private
));
char
*
new_key_ptr
=
(
char
*
)
new_key
->
data
;
char
*
new_key_ptr
=
(
char
*
)
new_key
->
data
;
char
*
saved_key_ptr
=
(
char
*
)
saved_key
->
data
;
char
*
saved_key_ptr
=
(
char
*
)
saved_key
->
data
;
KEY_PART_INFO
*
key_part
=
key
->
key_part
,
*
end
=
key_part
+
key
->
key_parts
;
KEY_PART_INFO
*
key_part
=
key
->
key_part
,
*
end
=
key_part
+
key
->
key_parts
;
...
@@ -730,9 +732,9 @@ DBT *ha_berkeley::create_key(DBT *key, uint keynr, char *buff,
...
@@ -730,9 +732,9 @@ DBT *ha_berkeley::create_key(DBT *key, uint keynr, char *buff,
const
byte
*
record
,
int
key_length
)
const
byte
*
record
,
int
key_length
)
{
{
bzero
((
char
*
)
key
,
sizeof
(
*
key
));
bzero
((
char
*
)
key
,
sizeof
(
*
key
));
if
(
hidden_primary_key
&&
keynr
==
primary_key
)
if
(
hidden_primary_key
&&
keynr
==
primary_key
)
{
{
/* We don't need to set app_private here */
key
->
data
=
current_ident
;
key
->
data
=
current_ident
;
key
->
size
=
BDB_HIDDEN_PRIMARY_KEY_LENGTH
;
key
->
size
=
BDB_HIDDEN_PRIMARY_KEY_LENGTH
;
return
key
;
return
key
;
...
@@ -744,6 +746,7 @@ DBT *ha_berkeley::create_key(DBT *key, uint keynr, char *buff,
...
@@ -744,6 +746,7 @@ DBT *ha_berkeley::create_key(DBT *key, uint keynr, char *buff,
DBUG_ENTER
(
"create_key"
);
DBUG_ENTER
(
"create_key"
);
key
->
data
=
buff
;
key
->
data
=
buff
;
key
->
app_private
=
key_info
;
for
(
;
key_part
!=
end
&&
key_length
>
0
;
key_part
++
)
for
(
;
key_part
!=
end
&&
key_length
>
0
;
key_part
++
)
{
{
if
(
key_part
->
null_bit
)
if
(
key_part
->
null_bit
)
...
@@ -777,10 +780,11 @@ DBT *ha_berkeley::pack_key(DBT *key, uint keynr, char *buff,
...
@@ -777,10 +780,11 @@ DBT *ha_berkeley::pack_key(DBT *key, uint keynr, char *buff,
KEY
*
key_info
=
table
->
key_info
+
keynr
;
KEY
*
key_info
=
table
->
key_info
+
keynr
;
KEY_PART_INFO
*
key_part
=
key_info
->
key_part
;
KEY_PART_INFO
*
key_part
=
key_info
->
key_part
;
KEY_PART_INFO
*
end
=
key_part
+
key_info
->
key_parts
;
KEY_PART_INFO
*
end
=
key_part
+
key_info
->
key_parts
;
DBUG_ENTER
(
"
pack_key2
"
);
DBUG_ENTER
(
"
bdb:pack_key
"
);
bzero
((
char
*
)
key
,
sizeof
(
*
key
));
bzero
((
char
*
)
key
,
sizeof
(
*
key
));
key
->
data
=
buff
;
key
->
data
=
buff
;
key
->
app_private
=
(
void
*
)
key_info
;
for
(;
key_part
!=
end
&&
(
int
)
key_length
>
0
;
key_part
++
)
for
(;
key_part
!=
end
&&
(
int
)
key_length
>
0
;
key_part
++
)
{
{
...
@@ -1373,6 +1377,7 @@ int ha_berkeley::read_row(int error, char *buf, uint keynr, DBT *row,
...
@@ -1373,6 +1377,7 @@ int ha_berkeley::read_row(int error, char *buf, uint keynr, DBT *row,
bzero
((
char
*
)
&
key
,
sizeof
(
key
));
bzero
((
char
*
)
&
key
,
sizeof
(
key
));
key
.
data
=
key_buff
;
key
.
data
=
key_buff
;
key
.
size
=
row
->
size
;
key
.
size
=
row
->
size
;
key
.
app_private
=
(
void
*
)
(
table
->
key_info
+
primary_key
);
memcpy
(
key_buff
,
row
->
data
,
row
->
size
);
memcpy
(
key_buff
,
row
->
data
,
row
->
size
);
/* Read the data into current_row */
/* Read the data into current_row */
current_row
.
flags
=
DB_DBT_REALLOC
;
current_row
.
flags
=
DB_DBT_REALLOC
;
...
@@ -1537,6 +1542,7 @@ int ha_berkeley::rnd_next(byte *buf)
...
@@ -1537,6 +1542,7 @@ int ha_berkeley::rnd_next(byte *buf)
DBT
*
ha_berkeley
::
get_pos
(
DBT
*
to
,
byte
*
pos
)
DBT
*
ha_berkeley
::
get_pos
(
DBT
*
to
,
byte
*
pos
)
{
{
/* We don't need to set app_private here */
bzero
((
char
*
)
to
,
sizeof
(
*
to
));
bzero
((
char
*
)
to
,
sizeof
(
*
to
));
to
->
data
=
pos
;
to
->
data
=
pos
;
...
@@ -1950,6 +1956,7 @@ longlong ha_berkeley::get_auto_increment()
...
@@ -1950,6 +1956,7 @@ longlong ha_berkeley::get_auto_increment()
table
->
next_number_key_offset
);
table
->
next_number_key_offset
);
/* Store for compare */
/* Store for compare */
memcpy
(
old_key
.
data
=
key_buff2
,
key_buff
,
(
old_key
.
size
=
last_key
.
size
));
memcpy
(
old_key
.
data
=
key_buff2
,
key_buff
,
(
old_key
.
size
=
last_key
.
size
));
old_key
.
app_private
=
(
void
*
)
key_info
;
error
=
1
;
error
=
1
;
{
{
/* Modify the compare so that we will find the next key */
/* Modify the compare so that we will find the next key */
...
...
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