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
b13c4de9
Commit
b13c4de9
authored
Sep 26, 2000
by
monty@donna.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge work:/home/bk/mysql into donna.mysql.com:/home/my/bk/mysql
parents
1148accf
a9e11f23
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
51 additions
and
28 deletions
+51
-28
Docs/manual.texi
Docs/manual.texi
+3
-0
myisam/mi_close.c
myisam/mi_close.c
+1
-1
myisam/mi_extra.c
myisam/mi_extra.c
+2
-0
myisam/myisamlog.c
myisam/myisamlog.c
+23
-7
sql-bench/limits/mysql-3.23.cfg
sql-bench/limits/mysql-3.23.cfg
+5
-4
sql-bench/limits/mysql.cfg
sql-bench/limits/mysql.cfg
+5
-4
sql/sql_base.cc
sql/sql_base.cc
+5
-4
sql/table.cc
sql/table.cc
+7
-8
No files found.
Docs/manual.texi
View file @
b13c4de9
...
@@ -7702,6 +7702,9 @@ able to mix @code{INSERT} and @code{SELECT}. Currently we use mutexes
...
@@ -7702,6 +7702,9 @@ able to mix @code{INSERT} and @code{SELECT}. Currently we use mutexes
to emulate @code{pread()}/@code{pwrite()}. We will in the long run
to emulate @code{pread()}/@code{pwrite()}. We will in the long run
replace the file level interface with a virtual interface so that we can
replace the file level interface with a virtual interface so that we can
use the @code{readfile()}/@code{writefile()} interface on NT to get more speed.
use the @code{readfile()}/@code{writefile()} interface on NT to get more speed.
The current implementation will however limit the number of open files
@strong{MySQL} can use to 1024, which means that you will not be able to
run as many concurrent threads on NT as on Unix.
@item Blocking read
@item Blocking read
@strong{MySQL} uses a blocking read for each connection.
@strong{MySQL} uses a blocking read for each connection.
myisam/mi_close.c
View file @
b13c4de9
...
@@ -36,7 +36,7 @@ int mi_close(register MI_INFO *info)
...
@@ -36,7 +36,7 @@ int mi_close(register MI_INFO *info)
if
(
info
->
lock_type
==
F_EXTRA_LCK
)
if
(
info
->
lock_type
==
F_EXTRA_LCK
)
info
->
lock_type
=
F_UNLCK
;
/* HA_EXTRA_NO_USER_CHANGE */
info
->
lock_type
=
F_UNLCK
;
/* HA_EXTRA_NO_USER_CHANGE */
if
(
share
->
reopen
==
1
)
if
(
share
->
reopen
==
1
&&
share
->
kfile
>=
0
)
_mi_decrement_open_count
(
info
);
_mi_decrement_open_count
(
info
);
if
(
info
->
lock_type
!=
F_UNLCK
)
if
(
info
->
lock_type
!=
F_UNLCK
)
...
...
myisam/mi_extra.c
View file @
b13c4de9
...
@@ -241,6 +241,8 @@ int mi_extra(MI_INFO *info, enum ha_extra_function function)
...
@@ -241,6 +241,8 @@ int mi_extra(MI_INFO *info, enum ha_extra_function function)
error
=
my_errno
;
error
=
my_errno
;
info
->
lock_type
=
F_UNLCK
;
info
->
lock_type
=
F_UNLCK
;
}
}
if
(
share
->
kfile
>=
0
)
_mi_decrement_open_count
(
info
);
if
(
share
->
kfile
>=
0
&&
my_close
(
share
->
kfile
,
MYF
(
0
)))
if
(
share
->
kfile
>=
0
&&
my_close
(
share
->
kfile
,
MYF
(
0
)))
error
=
my_errno
;
error
=
my_errno
;
{
{
...
...
myisam/myisamlog.c
View file @
b13c4de9
...
@@ -355,7 +355,7 @@ static int examine_log(my_string file_name, char **table_names)
...
@@ -355,7 +355,7 @@ static int examine_log(my_string file_name, char **table_names)
}
}
command
=
(
uint
)
head
[
0
];
command
=
(
uint
)
head
[
0
];
if
(
command
<
sizeof
(
com_count
)
/
sizeof
(
com_count
[
0
][
0
])
/
3
&&
if
(
command
<
sizeof
(
com_count
)
/
sizeof
(
com_count
[
0
][
0
])
/
3
&&
(
!
curr_file_info
||
curr_file_info
->
used
))
(
!
table_names
[
0
]
||
(
curr_file_info
&&
curr_file_info
->
used
)
))
{
{
com_count
[
command
][
0
]
++
;
com_count
[
command
][
0
]
++
;
if
(
result
)
if
(
result
)
...
@@ -363,9 +363,12 @@ static int examine_log(my_string file_name, char **table_names)
...
@@ -363,9 +363,12 @@ static int examine_log(my_string file_name, char **table_names)
}
}
switch
((
enum
myisam_log_commands
)
command
)
{
switch
((
enum
myisam_log_commands
)
command
)
{
case
MI_LOG_OPEN
:
case
MI_LOG_OPEN
:
com_count
[
command
][
0
]
--
;
/* Must be counted explicite */
if
(
!
table_names
[
0
])
if
(
result
)
{
com_count
[
command
][
1
]
--
;
com_count
[
command
][
0
]
--
;
/* Must be counted explicite */
if
(
result
)
com_count
[
command
][
1
]
--
;
}
if
(
curr_file_info
)
if
(
curr_file_info
)
printf
(
"
\n
Warning: %s is opened twice with same process and filenumber
\n
"
,
printf
(
"
\n
Warning: %s is opened twice with same process and filenumber
\n
"
,
...
@@ -502,6 +505,8 @@ static int examine_log(my_string file_name, char **table_names)
...
@@ -502,6 +505,8 @@ static int examine_log(my_string file_name, char **table_names)
{
{
if
(
!
recover
)
if
(
!
recover
)
goto
com_err
;
goto
com_err
;
if
(
verbose
)
printf_log
(
"error: Didn't find row to delete with mi_rrnd"
);
com_count
[
command
][
2
]
++
;
/* Mark error */
com_count
[
command
][
2
]
++
;
/* Mark error */
}
}
mi_result
=
mi_delete
(
curr_file_info
->
isam
,
curr_file_info
->
record
);
mi_result
=
mi_delete
(
curr_file_info
->
isam
,
curr_file_info
->
record
);
...
@@ -512,6 +517,9 @@ static int examine_log(my_string file_name, char **table_names)
...
@@ -512,6 +517,9 @@ static int examine_log(my_string file_name, char **table_names)
goto
com_err
;
goto
com_err
;
if
(
mi_result
)
if
(
mi_result
)
com_count
[
command
][
2
]
++
;
/* Mark error */
com_count
[
command
][
2
]
++
;
/* Mark error */
if
(
verbose
)
printf_log
(
"error: Got result %d from mi_delete instead of %d"
,
mi_result
,
result
);
}
}
}
}
break
;
break
;
...
@@ -550,6 +558,8 @@ static int examine_log(my_string file_name, char **table_names)
...
@@ -550,6 +558,8 @@ static int examine_log(my_string file_name, char **table_names)
result
=
0
;
result
=
0
;
goto
com_err
;
goto
com_err
;
}
}
if
(
verbose
)
printf_log
(
"error: Didn't find row to update with mi_rrnd"
);
if
(
recover
==
1
||
result
||
if
(
recover
==
1
||
result
||
find_record_with_key
(
curr_file_info
,
buff
))
find_record_with_key
(
curr_file_info
,
buff
))
{
{
...
@@ -564,6 +574,9 @@ static int examine_log(my_string file_name, char **table_names)
...
@@ -564,6 +574,9 @@ static int examine_log(my_string file_name, char **table_names)
{
{
if
(
!
recover
)
if
(
!
recover
)
goto
com_err
;
goto
com_err
;
if
(
verbose
)
printf_log
(
"error: Got result %d from mi_update instead of %d"
,
mi_result
,
result
);
if
(
mi_result
)
if
(
mi_result
)
com_count
[
command
][
2
]
++
;
/* Mark error */
com_count
[
command
][
2
]
++
;
/* Mark error */
}
}
...
@@ -576,15 +589,18 @@ static int examine_log(my_string file_name, char **table_names)
...
@@ -576,15 +589,18 @@ static int examine_log(my_string file_name, char **table_names)
{
{
if
(
!
recover
)
if
(
!
recover
)
goto
com_err
;
goto
com_err
;
if
(
verbose
)
printf_log
(
"error: Got result %d from mi_write instead of %d"
,
mi_result
,
result
);
if
(
mi_result
)
if
(
mi_result
)
com_count
[
command
][
2
]
++
;
/* Mark error */
com_count
[
command
][
2
]
++
;
/* Mark error */
}
}
if
(
!
recover
&&
filepos
!=
curr_file_info
->
isam
->
lastpos
)
if
(
!
recover
&&
filepos
!=
curr_file_info
->
isam
->
lastpos
)
{
{
printf
(
"
Warning
: Wrote at position: %s, should have been %s"
,
printf
(
"
error
: Wrote at position: %s, should have been %s"
,
llstr
(
curr_file_info
->
isam
->
lastpos
,
llbuff
),
llstr
(
curr_file_info
->
isam
->
lastpos
,
llbuff
),
llstr
(
filepos
,
llbuff2
));
llstr
(
filepos
,
llbuff2
));
goto
com_err
;
goto
end
;
}
}
}
}
}
}
...
...
sql-bench/limits/mysql-3.23.cfg
View file @
b13c4de9
#This file is automaticly generated by crash-me 1.4
8
#This file is automaticly generated by crash-me 1.4
9
NEG=yes # update of column= -column
NEG=yes # update of column= -column
Need_cast_for_null=no # Need to cast NULL for arithmetic
Need_cast_for_null=no # Need to cast NULL for arithmetic
...
@@ -36,7 +36,7 @@ constraint_check=no # Column constraints
...
@@ -36,7 +36,7 @@ constraint_check=no # Column constraints
constraint_check_table=no # Table constraints
constraint_check_table=no # Table constraints
constraint_null=yes # NULL constraint (SyBase style)
constraint_null=yes # NULL constraint (SyBase style)
crash_me_safe=no # crash me safe
crash_me_safe=no # crash me safe
crash_me_version=1.4
8
# crash me version
crash_me_version=1.4
9
# crash me version
create_default=yes # default value for column
create_default=yes # default value for column
create_default_func=no # default value function for column
create_default_func=no # default value function for column
create_if_not_exists=yes # create table if not exists
create_if_not_exists=yes # create table if not exists
...
@@ -378,8 +378,9 @@ quote_ident_with_`=yes # ` as identifier quote
...
@@ -378,8 +378,9 @@ quote_ident_with_`=yes # ` as identifier quote
quote_with_"=yes # Allows ' and " as string markers
quote_with_"=yes # Allows ' and " as string markers
remember_end_space=no # Remembers end space in char()
remember_end_space=no # Remembers end space in char()
remember_end_space_varchar=no # Remembers end space in varchar()
remember_end_space_varchar=no # Remembers end space in varchar()
rename_table=yes # rename table
repeat_string_size=1048576 # return string size from function
repeat_string_size=1048576 # return string size from function
right_outer_join=
no
# right outer join
right_outer_join=
yes
# right outer join
rowid=auto_increment # Type for row id
rowid=auto_increment # Type for row id
select_constants=yes # Select constants
select_constants=yes # Select constants
select_limit=with LIMIT # LIMIT number of rows
select_limit=with LIMIT # LIMIT number of rows
...
@@ -387,7 +388,7 @@ select_limit2=yes # SELECT with LIMIT #,#
...
@@ -387,7 +388,7 @@ select_limit2=yes # SELECT with LIMIT #,#
select_string_size=1048565 # constant string size in SELECT
select_string_size=1048565 # constant string size in SELECT
select_table_update=no # Update with sub select
select_table_update=no # Update with sub select
select_without_from=yes # SELECT without FROM
select_without_from=yes # SELECT without FROM
server_version=MySQL 3.23.2
2
beta debug # server version
server_version=MySQL 3.23.2
5
beta debug # server version
simple_joins=yes # ANSI SQL simple joins
simple_joins=yes # ANSI SQL simple joins
storage_of_float=round # Storage of float values
storage_of_float=round # Storage of float values
subqueries=no # subqueries
subqueries=no # subqueries
...
...
sql-bench/limits/mysql.cfg
View file @
b13c4de9
#This file is automaticly generated by crash-me 1.4
8
#This file is automaticly generated by crash-me 1.4
9
NEG=yes # update of column= -column
NEG=yes # update of column= -column
Need_cast_for_null=no # Need to cast NULL for arithmetic
Need_cast_for_null=no # Need to cast NULL for arithmetic
...
@@ -36,7 +36,7 @@ constraint_check=no # Column constraints
...
@@ -36,7 +36,7 @@ constraint_check=no # Column constraints
constraint_check_table=no # Table constraints
constraint_check_table=no # Table constraints
constraint_null=yes # NULL constraint (SyBase style)
constraint_null=yes # NULL constraint (SyBase style)
crash_me_safe=no # crash me safe
crash_me_safe=no # crash me safe
crash_me_version=1.4
8
# crash me version
crash_me_version=1.4
9
# crash me version
create_default=yes # default value for column
create_default=yes # default value for column
create_default_func=no # default value function for column
create_default_func=no # default value function for column
create_if_not_exists=yes # create table if not exists
create_if_not_exists=yes # create table if not exists
...
@@ -378,8 +378,9 @@ quote_ident_with_`=yes # ` as identifier quote
...
@@ -378,8 +378,9 @@ quote_ident_with_`=yes # ` as identifier quote
quote_with_"=yes # Allows ' and " as string markers
quote_with_"=yes # Allows ' and " as string markers
remember_end_space=no # Remembers end space in char()
remember_end_space=no # Remembers end space in char()
remember_end_space_varchar=no # Remembers end space in varchar()
remember_end_space_varchar=no # Remembers end space in varchar()
rename_table=yes # rename table
repeat_string_size=1048576 # return string size from function
repeat_string_size=1048576 # return string size from function
right_outer_join=
no
# right outer join
right_outer_join=
yes
# right outer join
rowid=auto_increment # Type for row id
rowid=auto_increment # Type for row id
select_constants=yes # Select constants
select_constants=yes # Select constants
select_limit=with LIMIT # LIMIT number of rows
select_limit=with LIMIT # LIMIT number of rows
...
@@ -387,7 +388,7 @@ select_limit2=yes # SELECT with LIMIT #,#
...
@@ -387,7 +388,7 @@ select_limit2=yes # SELECT with LIMIT #,#
select_string_size=1048565 # constant string size in SELECT
select_string_size=1048565 # constant string size in SELECT
select_table_update=no # Update with sub select
select_table_update=no # Update with sub select
select_without_from=yes # SELECT without FROM
select_without_from=yes # SELECT without FROM
server_version=MySQL 3.23.2
2
beta debug # server version
server_version=MySQL 3.23.2
5
beta debug # server version
simple_joins=yes # ANSI SQL simple joins
simple_joins=yes # ANSI SQL simple joins
storage_of_float=round # Storage of float values
storage_of_float=round # Storage of float values
subqueries=no # subqueries
subqueries=no # subqueries
...
...
sql/sql_base.cc
View file @
b13c4de9
...
@@ -859,10 +859,11 @@ TABLE *reopen_name_locked_table(THD* thd, TABLE_LIST* table_list)
...
@@ -859,10 +859,11 @@ TABLE *reopen_name_locked_table(THD* thd, TABLE_LIST* table_list)
key_length
=
(
uint
)
(
strmov
(
strmov
(
key
,
db
)
+
1
,
table_name
)
-
key
)
+
1
;
key_length
=
(
uint
)
(
strmov
(
strmov
(
key
,
db
)
+
1
,
table_name
)
-
key
)
+
1
;
pthread_mutex_lock
(
&
LOCK_open
);
pthread_mutex_lock
(
&
LOCK_open
);
if
(
open_unireg_entry
(
table
,
db
,
table_name
,
table_name
)
||
if
(
open_unireg_entry
(
table
,
db
,
table_name
,
table_name
)
||
!
(
table
->
table_cache_key
=
memdup_root
(
&
table
->
mem_root
,(
char
*
)
key
,
!
(
table
->
table_cache_key
=
memdup_root
(
&
table
->
mem_root
,(
char
*
)
key
,
key_length
)))
key_length
)))
{
{
closefrm
(
table
);
pthread_mutex_unlock
(
&
LOCK_open
);
pthread_mutex_unlock
(
&
LOCK_open
);
DBUG_RETURN
(
0
);
DBUG_RETURN
(
0
);
}
}
...
@@ -999,7 +1000,7 @@ TABLE *open_table(THD *thd,const char *db,const char *table_name,
...
@@ -999,7 +1000,7 @@ TABLE *open_table(THD *thd,const char *db,const char *table_name,
MEM_ROOT
*
glob_alloc
;
MEM_ROOT
*
glob_alloc
;
LINT_INIT
(
glob_alloc
);
LINT_INIT
(
glob_alloc
);
if
(
errno
==
ENOENT
&&
if
(
errno
==
ENOENT
&&
(
glob_alloc
=
my_pthread_getspecific_ptr
(
MEM_ROOT
*
,
THR_MALLOC
)))
(
glob_alloc
=
my_pthread_getspecific_ptr
(
MEM_ROOT
*
,
THR_MALLOC
)))
// Sasha: needed for replication
// Sasha: needed for replication
// remember the name of the non-existent table
// remember the name of the non-existent table
...
...
sql/table.cc
View file @
b13c4de9
...
@@ -448,14 +448,13 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,
...
@@ -448,14 +448,13 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,
keyinfo
->
key_length
?
UNIQUE_KEY_FLAG
:
MULTIPLE_KEY_FLAG
);
keyinfo
->
key_length
?
UNIQUE_KEY_FLAG
:
MULTIPLE_KEY_FLAG
);
if
(
i
==
0
)
if
(
i
==
0
)
field
->
key_start
|=
((
key_map
)
1
<<
key
);
field
->
key_start
|=
((
key_map
)
1
<<
key
);
if
(
ha_option
&
HA_HAVE_KEY_READ_ONLY
&&
if
((
ha_option
&
HA_HAVE_KEY_READ_ONLY
)
&&
field
->
key_length
()
==
key_part
->
length
)
field
->
key_length
()
==
key_part
->
length
&&
{
field
->
type
()
!=
FIELD_TYPE_BLOB
&&
if
(
field
->
key_type
()
!=
HA_KEYTYPE_TEXT
&&
(
field
->
key_type
()
!=
HA_KEYTYPE_TEXT
||
!
(
ha_option
&
HA_KEY_READ_WRONG_STR
)
&&
(
!
(
ha_option
&
HA_KEY_READ_WRONG_STR
)
&&
!
(
keyinfo
->
flags
&
HA_FULLTEXT
))
!
(
keyinfo
->
flags
&
HA_FULLTEXT
))))
field
->
part_of_key
|=
((
key_map
)
1
<<
key
);
field
->
part_of_key
|=
((
key_map
)
1
<<
key
);
}
if
(
!
(
key_part
->
key_part_flag
&
HA_REVERSE_SORT
)
&&
if
(
!
(
key_part
->
key_part_flag
&
HA_REVERSE_SORT
)
&&
usable_parts
==
i
)
usable_parts
==
i
)
usable_parts
++
;
// For FILESORT
usable_parts
++
;
// For FILESORT
...
...
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