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
24f75730
Commit
24f75730
authored
Dec 07, 2000
by
serg@serg.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge
parents
b45f7e7c
d22216bc
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
62 additions
and
45 deletions
+62
-45
BitKeeper/etc/logging_ok
BitKeeper/etc/logging_ok
+1
-0
myisammrg/mymrgdef.h
myisammrg/mymrgdef.h
+3
-5
myisammrg/myrg_extra.c
myisammrg/myrg_extra.c
+16
-4
myisammrg/myrg_info.c
myisammrg/myrg_info.c
+3
-5
myisammrg/myrg_rrnd.c
myisammrg/myrg_rrnd.c
+26
-19
sql/sql_base.cc
sql/sql_base.cc
+13
-12
No files found.
BitKeeper/etc/logging_ok
View file @
24f75730
jani@prima.mysql.com
serg@serg.mysql.com
myisammrg/mymrgdef.h
View file @
24f75730
...
...
@@ -30,5 +30,3 @@ extern pthread_mutex_t THR_LOCK_open;
int
_myrg_init_queue
(
MYRG_INFO
*
info
,
int
inx
,
enum
ha_rkey_function
search_flag
);
int
_myrg_finish_scan
(
MYRG_INFO
*
info
,
int
inx
,
enum
ha_rkey_function
type
);
MYRG_TABLE
*
_myrg_find_table
(
MYRG_INFO
*
info
,
ulonglong
pos
);
myisammrg/myrg_extra.c
View file @
24f75730
...
...
@@ -26,6 +26,8 @@ int myrg_extra(MYRG_INFO *info,enum ha_extra_function function)
{
int
error
,
save_error
=
0
;
MYRG_TABLE
*
file
;
DBUG_ENTER
(
"myrg_extra"
);
DBUG_PRINT
(
"info"
,(
"function: %d"
,(
ulong
)
function
));
if
(
function
==
HA_EXTRA_CACHE
)
info
->
cache_in_use
=
1
;
...
...
@@ -38,9 +40,19 @@ int myrg_extra(MYRG_INFO *info,enum ha_extra_function function)
info
->
current_table
=
0
;
info
->
last_used_table
=
info
->
open_tables
;
}
info
->
records
=
info
->
del
=
info
->
data_file_length
=
0
;
for
(
file
=
info
->
open_tables
;
file
!=
info
->
end_table
;
file
++
)
{
if
((
error
=
mi_extra
(
file
->
table
,
function
)))
save_error
=
error
;
file
->
file_offset
=
info
->
data_file_length
;
info
->
data_file_length
+=
file
->
table
->
s
->
state
.
state
.
data_file_length
;
info
->
records
+=
file
->
table
->
s
->
state
.
state
.
records
;
info
->
del
+=
file
->
table
->
s
->
state
.
state
.
del
;
DBUG_PRINT
(
"info2"
,(
"table: %s, offset: 0x%08lx"
,
file
->
table
->
filename
,(
ulong
)
file
->
file_offset
));
}
}
return
save_error
;
DBUG_RETURN
(
save_error
)
;
}
myisammrg/myrg_info.c
View file @
24f75730
...
...
@@ -35,8 +35,6 @@ int myrg_status(MYRG_INFO *info,register MYMERGE_INFO *x,int flag)
MYRG_TABLE
*
current_table
;
DBUG_ENTER
(
"myrg_status"
);
_myrg_find_table
(
info
,
HA_OFFSET_ERROR
);
if
(
!
(
current_table
=
info
->
current_table
)
&&
info
->
open_tables
!=
info
->
end_table
)
current_table
=
info
->
open_tables
;
...
...
myisammrg/myrg_rrnd.c
View file @
24f75730
...
...
@@ -21,6 +21,8 @@
#include "mymrgdef.h"
static
MYRG_TABLE
*
find_table
(
MYRG_TABLE
*
start
,
MYRG_TABLE
*
end
,
ulonglong
pos
);
/*
If filepos == HA_OFFSET_ERROR, read next
Returns same as mi_rrnd:
...
...
@@ -33,6 +35,8 @@ int myrg_rrnd(MYRG_INFO *info,byte *buf,ulonglong filepos)
{
int
error
;
MI_INFO
*
isam_info
;
DBUG_ENTER
(
"myrg_rrnd"
);
DBUG_PRINT
(
"info"
,(
"offset: 0x%016qx"
,
(
ulonglong
)
filepos
));
if
(
filepos
==
HA_OFFSET_ERROR
)
{
...
...
@@ -40,7 +44,7 @@ int myrg_rrnd(MYRG_INFO *info,byte *buf,ulonglong filepos)
{
if
(
info
->
open_tables
==
info
->
end_table
)
{
/* No tables */
return
(
my_errno
=
HA_ERR_END_OF_FILE
);
DBUG_RETURN
(
my_errno
=
HA_ERR_END_OF_FILE
);
}
isam_info
=
(
info
->
current_table
=
info
->
open_tables
)
->
table
;
if
(
info
->
cache_in_use
)
...
...
@@ -60,11 +64,11 @@ int myrg_rrnd(MYRG_INFO *info,byte *buf,ulonglong filepos)
if
((
error
=
(
*
isam_info
->
s
->
read_rnd
)(
isam_info
,(
byte
*
)
buf
,
(
my_off_t
)
filepos
,
1
))
!=
HA_ERR_END_OF_FILE
)
return
(
error
);
DBUG_RETURN
(
error
);
if
(
info
->
cache_in_use
)
mi_extra
(
info
->
current_table
->
table
,
HA_EXTRA_NO_CACHE
);
if
(
info
->
current_table
+
1
==
info
->
end_table
)
return
(
HA_ERR_END_OF_FILE
);
DBUG_RETURN
(
HA_ERR_END_OF_FILE
);
info
->
current_table
++
;
info
->
last_used_table
=
info
->
current_table
;
if
(
info
->
cache_in_use
)
...
...
@@ -78,10 +82,11 @@ int myrg_rrnd(MYRG_INFO *info,byte *buf,ulonglong filepos)
isam_info
->
lastinx
=
(
uint
)
-
1
;
}
}
info
->
current_table
=
_myrg_find_table
(
info
,
filepos
);
info
->
current_table
=
find_table
(
info
->
open_tables
,
info
->
end_table
-
1
,
filepos
);
isam_info
=
info
->
current_table
->
table
;
isam_info
->
update
&=
HA_STATE_CHANGED
;
return
((
*
isam_info
->
s
->
read_rnd
)
DBUG_RETURN
((
*
isam_info
->
s
->
read_rnd
)
(
isam_info
,
(
byte
*
)
buf
,
(
ha_rows
)
(
filepos
-
info
->
current_table
->
file_offset
),
0
));
...
...
@@ -90,19 +95,21 @@ int myrg_rrnd(MYRG_INFO *info,byte *buf,ulonglong filepos)
/* Find which table to use according to file-pos */
MYRG_TABLE
*
_myrg_find_table
(
MYRG_INFO
*
info
,
ulonglong
pos
)
static
MYRG_TABLE
*
find_table
(
MYRG_TABLE
*
start
,
MYRG_TABLE
*
end
,
ulonglong
pos
)
{
MYRG_TABLE
*
t
;
info
->
records
=
info
->
del
=
info
->
data_file_length
=
0
;
MYRG_TABLE
*
mid
;
DBUG_ENTER
(
"find_table"
);
for
(
t
=
info
->
open_tables
;
t
<
info
->
end_table
;
t
++
)
while
(
start
!=
end
)
{
t
->
file_offset
=
info
->
data_file_length
;
if
(
pos
<
t
->
file_offset
)
return
t
-
1
;
info
->
data_file_length
+=
t
->
table
->
state
->
data_file_length
;
info
->
records
+=
t
->
table
->
state
->
records
;
info
->
del
+=
t
->
table
->
state
->
del
;
mid
=
start
+
((
uint
)
(
end
-
start
)
+
1
)
/
2
;
if
(
mid
->
file_offset
>
pos
)
end
=
mid
-
1
;
else
start
=
mid
;
}
return
t
-
1
;
DBUG_PRINT
(
"info"
,(
"offset: 0x%016qx, table: %s"
,
(
ulonglong
)
pos
,
start
->
table
->
filename
));
DBUG_RETURN
(
start
);
}
sql/sql_base.cc
View file @
24f75730
...
...
@@ -740,6 +740,7 @@ TABLE *open_table(THD *thd,const char *db,const char *table_name,
}
table
->
prev
->
next
=
table
->
next
;
/* Remove from unused list */
table
->
next
->
prev
=
table
->
prev
;
table
->
file
->
reset
();
}
else
{
...
...
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