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
02d844ee
Commit
02d844ee
authored
Aug 15, 2003
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mashka.mysql.fi:/home/my/mysql-4.0
parents
9ac61d15
ccd82890
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
103 additions
and
93 deletions
+103
-93
include/config-win.h
include/config-win.h
+1
-0
mysql-test/r/grant.result
mysql-test/r/grant.result
+3
-0
mysql-test/r/rpl_log.result
mysql-test/r/rpl_log.result
+4
-1
mysql-test/t/grant.test
mysql-test/t/grant.test
+5
-0
mysql-test/t/rpl_log.test
mysql-test/t/rpl_log.test
+4
-3
mysys/my_chsize.c
mysys/my_chsize.c
+56
-71
sql/log_event.cc
sql/log_event.cc
+16
-8
sql/opt_range.cc
sql/opt_range.cc
+2
-1
sql/sql_acl.cc
sql/sql_acl.cc
+1
-1
sql/sql_parse.cc
sql/sql_parse.cc
+2
-2
sql/sql_select.cc
sql/sql_select.cc
+9
-6
No files found.
include/config-win.h
View file @
02d844ee
...
...
@@ -276,6 +276,7 @@ inline double ulonglong2double(ulonglong value)
#define HAVE_ISAM
/* We want to have support for ISAM in 4.0 */
#define HAVE_QUERY_CACHE
#define SPRINTF_RETURNS_INT
#define HAVE_SETFILEPOINTER
#ifdef NOT_USED
#define HAVE_SNPRINTF
/* Gave link error */
...
...
mysql-test/r/grant.result
View file @
02d844ee
...
...
@@ -108,3 +108,6 @@ flush privileges;
drop table t1;
GRANT FILE on mysqltest.* to mysqltest_1@localhost;
Wrong usage of DB GRANT and GLOBAL PRIVILEGES
select 1;
1
1
mysql-test/r/rpl_log.result
View file @
02d844ee
...
...
@@ -12,7 +12,10 @@ create table t1(n int not null auto_increment primary key);
insert into t1 values (NULL);
drop table t1;
create table t1 (word char(20) not null);
load data infile '../../std_data/words.dat' into table t1;
load data infile '../../std_data/words.dat' into table t1 ignore 1 lines;
select count(*) from t1;
count(*)
69
drop table t1;
show binlog events;
Log_name Pos Event_type Server_id Orig_log_pos Info
...
...
mysql-test/t/grant.test
View file @
02d844ee
...
...
@@ -72,5 +72,10 @@ delete from mysql.tables_priv where user='mysqltest_1';
delete
from
mysql
.
columns_priv
where
user
=
'mysqltest_1'
;
flush
privileges
;
drop
table
t1
;
#
# Test some error conditions
#
--
error
1221
GRANT
FILE
on
mysqltest
.*
to
mysqltest_1
@
localhost
;
select
1
;
--
To
test
that
the
previous
command
didn
'
t
cause
problems
mysql-test/t/rpl_log.test
View file @
02d844ee
...
...
@@ -13,7 +13,8 @@ create table t1(n int not null auto_increment primary key);
insert
into
t1
values
(
NULL
);
drop
table
t1
;
create
table
t1
(
word
char
(
20
)
not
null
);
load
data
infile
'../../std_data/words.dat'
into
table
t1
;
load
data
infile
'../../std_data/words.dat'
into
table
t1
ignore
1
lines
;
select
count
(
*
)
from
t1
;
drop
table
t1
;
--
replace_result
$VERSION
VERSION
show
binlog
events
;
...
...
@@ -35,8 +36,8 @@ flush logs;
# So, depending on a few milliseconds, we end up with 2 rotate events in the
# relay log or one, which influences the output of SHOW SLAVE STATUS, making
# it not predictable and causing random test failures.
# To make it predictable, we do a useless update now, but which has the
interest
# of making the slave catch both rotate events.
# To make it predictable, we do a useless update now, but which has the
#
interest
of making the slave catch both rotate events.
create
table
t5
(
a
int
);
drop
table
t5
;
...
...
mysys/my_chsize.c
View file @
02d844ee
...
...
@@ -30,7 +30,7 @@
MyFlags Flags
DESCRIPTION
my_chsize() truncates file if shorter
,
else fill with the filler character
my_chsize() truncates file if shorter else fill with the filler character
RETURN VALUE
0 Ok
...
...
@@ -38,73 +38,60 @@
*/
int
my_chsize
(
File
fd
,
my_off_t
newlength
,
int
filler
,
myf
MyFlags
)
{
my_off_t
oldsize
;
char
buff
[
IO_SIZE
];
DBUG_ENTER
(
"my_chsize"
);
DBUG_PRINT
(
"my"
,(
"fd: %d length: %lu MyFlags: %d"
,
fd
,(
ulong
)
newlength
,
MyFlags
));
/* if file is shorter, expand with null, else fill unused part with null */
{
my_off_t
oldsize
;
char
buff
[
IO_SIZE
];
oldsize
=
my_seek
(
fd
,
0L
,
MY_SEEK_END
,
MYF
(
MY_WME
+
MY_FAE
));
DBUG_PRINT
(
"info"
,(
"old_size: %ld"
,
(
ulong
)
oldsize
));
#ifdef __WIN__
if
(
oldsize
>
newlength
)
#if defined(HAVE_SETFILEPOINTER)
/* This is for the moment only true on windows */
{
LARGE_INTEGER
new_length
;
HANDLE
win_file
;
win_file
=
(
HANDLE
)
_get_osfhandle
(
fd
);
HANDLE
win_file
=
(
HANDLE
)
_get_osfhandle
(
fd
);
new_length
.
QuadPart
=
newlength
;
if
(
SetFilePointerEx
(
win_file
,
new_length
,
NULL
,
FILE_BEGIN
))
{
if
(
SetEndOfFile
(
win_file
))
DBUG_RETURN
(
0
);
}
DBUG_PRINT
(
"error"
,(
"errno: %d"
,
errno
));
my_errno
=
errno
;
if
(
MyFlags
&
MY_WME
)
my_error
(
EE_CANT_CHSIZE
,
MYF
(
ME_BELL
+
ME_WAITTANG
),
errno
);
DBUG_RETURN
(
1
);
my_errno
=
errno
;
goto
err
;
}
#elif defined(HAVE_CHSIZE)
if
(
oldsize
>
newlength
||
filler
==
0
)
#elif defined(HAVE_FTRUNCATE)
{
if
(
chsize
(
fd
,
(
off_t
)
newlength
))
if
(
ftruncate
(
fd
,
(
off_t
)
newlength
))
{
DBUG_PRINT
(
"error"
,(
"errno: %d"
,
errno
));
my_errno
=
errno
;
if
(
MyFlags
&
MY_WME
)
my_error
(
EE_CANT_CHSIZE
,
MYF
(
ME_BELL
+
ME_WAITTANG
),
errno
);
DBUG_RETURN
(
1
);
my_errno
=
errno
;
goto
err
;
}
else
{
if
(
filler
==
0
)
DBUG_RETURN
(
0
);
}
}
#elif defined(HAVE_FTRUNCATE)
if
(
oldsize
>
newlength
)
#elif defined(HAVE_CHSIZE)
{
if
(
ftruncat
e
(
fd
,
(
off_t
)
newlength
))
if
(
chsiz
e
(
fd
,
(
off_t
)
newlength
))
{
my_errno
=
errno
;
DBUG_PRINT
(
"error"
,(
"errno: %d"
,
errno
));
if
(
MyFlags
&
MY_WME
)
my_error
(
EE_CANT_CHSIZE
,
MYF
(
ME_BELL
+
ME_WAITTANG
),
errno
);
DBUG_RETURN
(
1
);
goto
err
;
}
DBUG_RETURN
(
0
);
}
#else
if
(
oldsize
>
newlength
)
{
/* Fill diff with null */
{
/*
Fill space between requested length and true length with 'filler'
We should never come here on any modern machine
*/
VOID
(
my_seek
(
fd
,
newlength
,
MY_SEEK_SET
,
MYF
(
MY_WME
+
MY_FAE
)));
swap
(
my_off_t
,
newlength
,
oldsize
);
}
#endif
/* Full file with 0 until it's as big as requested */
/* Full file with 'filler' until it's as big as requested */
bfill
(
buff
,
IO_SIZE
,
filler
);
while
(
newlength
-
oldsize
>
IO_SIZE
)
{
...
...
@@ -115,12 +102,10 @@ int my_chsize(File fd, my_off_t newlength, int filler, myf MyFlags)
if
(
my_write
(
fd
,(
byte
*
)
buff
,(
uint
)
(
newlength
-
oldsize
),
MYF
(
MY_NABP
)))
goto
err
;
DBUG_RETURN
(
0
);
err:
err:
DBUG_PRINT
(
"error"
,
(
"errno: %d"
,
errno
));
if
(
MyFlags
&
MY_WME
)
my_error
(
EE_CANT_CHSIZE
,
MYF
(
ME_BELL
+
ME_WAITTANG
),
my_errno
);
DBUG_PRINT
(
"error"
,(
"errno: %d"
,
my_errno
));
my_error
(
EE_CANT_CHSIZE
,
MYF
(
ME_BELL
+
ME_WAITTANG
),
my_errno
);
DBUG_RETURN
(
1
);
}
}
/* my_chsize */
sql/log_event.cc
View file @
02d844ee
...
...
@@ -329,8 +329,14 @@ void Load_log_event::pack_info(String* packet)
pretty_print_str
(
&
tmp
,
sql_ex
.
line_start
,
sql_ex
.
line_start_len
);
}
if
((
int
)
skip_lines
>
0
)
tmp
.
append
(
" IGNORE %ld LINES "
,
(
long
)
skip_lines
);
if
((
long
)
skip_lines
>
0
)
{
char
nr_buff
[
32
],
*
end
;
tmp
.
append
(
" IGNORE "
);
end
=
longlong10_to_str
((
longlong
)
skip_lines
,
nr_buff
,
10
);
tmp
.
append
(
nr_buff
,
(
uint
)
(
end
-
nr_buff
));
tmp
.
append
(
" LINES"
);
}
if
(
num_fields
)
{
...
...
@@ -1338,8 +1344,8 @@ void Load_log_event::print(FILE* file, bool short_form, char* last_db)
pretty_print_str
(
file
,
sql_ex
.
line_start
,
sql_ex
.
line_start_len
);
}
if
((
int
)
skip_lines
>
0
)
fprintf
(
file
,
" IGNORE %ld LINES
"
,
(
long
)
skip_lines
);
if
((
long
)
skip_lines
>
0
)
fprintf
(
file
,
" IGNORE %ld LINES"
,
(
long
)
skip_lines
);
if
(
num_fields
)
{
...
...
@@ -1934,20 +1940,22 @@ int Load_log_event::exec_event(NET* net, struct st_relay_log_info* rli,
else
if
(
sql_ex
.
opt_flags
&
IGNORE_FLAG
)
handle_dup
=
DUP_IGNORE
;
else
{
/*
Note that w
hen replication is running fine, if it was DUP_ERROR on the
W
hen replication is running fine, if it was DUP_ERROR on the
master then we could choose DUP_IGNORE here, because if DUP_ERROR
suceeded on master, and data is identical on the master and slave,
then there should be no uniqueness errors on slave, so DUP_IGNORE is
the same as DUP_ERROR. But in the unlikely case of uniqueness errors
(because the data on the master and slave happen to be different
(user
error or bug), we want LOAD DATA to print an error message on the
slave to discover the problem.
(because the data on the master and slave happen to be different
(user error or bug), we want LOAD DATA to print an error message on
the
slave to discover the problem.
If reading from net (a 3.23 master), mysql_load() will change this
to DUP_IGNORE.
*/
handle_dup
=
DUP_ERROR
;
}
sql_exchange
ex
((
char
*
)
fname
,
sql_ex
.
opt_flags
&
DUMPFILE_FLAG
);
String
field_term
(
sql_ex
.
field_term
,
sql_ex
.
field_term_len
);
...
...
sql/opt_range.cc
View file @
02d844ee
...
...
@@ -798,7 +798,8 @@ static SEL_TREE *get_mm_tree(PARAM *param,COND *cond)
table_map
ref_tables
=
cond
->
used_tables
();
if
(
cond
->
type
()
!=
Item
::
FUNC_ITEM
)
{
// Should be a field
if
(
ref_tables
&
param
->
current_table
)
if
((
ref_tables
&
param
->
current_table
)
||
(
ref_tables
&
~
(
param
->
prev_tables
|
param
->
read_tables
)))
DBUG_RETURN
(
0
);
DBUG_RETURN
(
new
SEL_TREE
(
SEL_TREE
::
MAYBE
));
}
...
...
sql/sql_acl.cc
View file @
02d844ee
...
...
@@ -2370,7 +2370,7 @@ int mysql_grant (THD *thd, const char *db, List <LEX_USER> &list,
else
{
net_printf
(
&
thd
->
net
,
ER_WRONG_USAGE
,
"DB GRANT"
,
"GLOBAL PRIVILEGES"
);
result
=
-
1
;
result
=
1
;
}
}
}
...
...
sql/sql_parse.cc
View file @
02d844ee
...
...
@@ -3579,8 +3579,8 @@ bool reload_acl_and_cache(THD *thd, ulong options, TABLE_LIST *tables)
if
(
options
&
REFRESH_LOG
)
{
/*
Flush the normal query log, the update log, the binary log,
the slow query
log, and the relay log (if it exists).
Flush the normal query log, the update log, the binary log,
the slow query
log, and the relay log (if it exists).
*/
mysql_log
.
new_file
(
1
);
mysql_update_log
.
new_file
(
1
);
...
...
sql/sql_select.cc
View file @
02d844ee
...
...
@@ -972,11 +972,8 @@ mysql_select(THD *thd,TABLE_LIST *tables,List<Item> &fields,COND *conds,
group
?
group
:
order
,
select_limit
,
thd
->
select_limit
))
{
if
(
!
join
.
join_tab
[
join
.
const_tables
].
select
->
quick
)
goto
err
;
}
}
join
.
having
=
having
;
// Actually a parameter
thd
->
proc_info
=
"Sending data"
;
error
=
do_select
(
&
join
,
&
fields
,
NULL
,
procedure
);
...
...
@@ -1493,11 +1490,15 @@ add_key_field(KEY_FIELD **key_fields,uint and_level,
}
}
DBUG_ASSERT
(
num_values
==
1
);
// DBUG_ASSERT(eq_func); /* QQ: Can I uncomment this ASSERT ? */
/*
For the moment eq_func is always true. This slot is reserved for future
extensions where we want to remembers other things than just eq comparisons
*/
DBUG_ASSERT
(
eq_func
);
/* Store possible eq field */
(
*
key_fields
)
->
field
=
field
;
(
*
key_fields
)
->
eq_func
=
eq_func
;
(
*
key_fields
)
->
val
=*
value
;
(
*
key_fields
)
->
val
=
*
value
;
(
*
key_fields
)
->
level
=
(
*
key_fields
)
->
const_level
=
and_level
;
(
*
key_fields
)
->
exists_optimize
=
exists_optimize
;
(
*
key_fields
)
++
;
...
...
@@ -1585,6 +1586,8 @@ add_key_fields(JOIN_TAB *stat,KEY_FIELD **key_fields,uint *and_level,
if
(
cond_func
->
arguments
()[
0
]
->
type
()
==
Item
::
FIELD_ITEM
)
{
Item
*
tmp
=
new
Item_null
;
if
(
!
tmp
)
// Should never be true
return
;
add_key_field
(
key_fields
,
*
and_level
,
((
Item_field
*
)
(
cond_func
->
arguments
()[
0
]))
->
field
,
cond_func
->
functype
()
==
Item_func
::
ISNULL_FUNC
,
...
...
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