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
a9146ace
Commit
a9146ace
authored
Aug 15, 2003
by
monty@mashka.mysql.fi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Cleanups to recent patches
Fix packet error when using wrong GRANT command
parent
fb47e642
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
76 additions
and
75 deletions
+76
-75
include/config-win.h
include/config-win.h
+1
-0
mysql-test/r/grant.result
mysql-test/r/grant.result
+3
-0
mysql-test/t/grant.test
mysql-test/t/grant.test
+5
-0
mysys/my_chsize.c
mysys/my_chsize.c
+56
-71
sql/opt_range.cc
sql/opt_range.cc
+2
-1
sql/sql_acl.cc
sql/sql_acl.cc
+1
-1
sql/sql_select.cc
sql/sql_select.cc
+8
-2
No files found.
include/config-win.h
View file @
a9146ace
...
...
@@ -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 @
a9146ace
...
...
@@ -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/t/grant.test
View file @
a9146ace
...
...
@@ -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
mysys/my_chsize.c
View file @
a9146ace
...
...
@@ -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,89 +38,74 @@
*/
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
));
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
)
{
LARGE_INTEGER
new_length
;
HANDLE
win_file
;
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
);
}
#elif defined(HAVE_CHSIZE)
if
(
oldsize
>
newlength
||
filler
==
0
)
if
(
oldsize
>
newlength
)
#if defined(HAVE_SETFILEPOINTER)
/* This is for the moment only true on windows */
{
LARGE_INTEGER
new_length
;
HANDLE
win_file
=
(
HANDLE
)
_get_osfhandle
(
fd
);
new_length
.
QuadPart
=
newlength
;
if
(
SetFilePointerEx
(
win_file
,
new_length
,
NULL
,
FILE_BEGIN
))
{
if
(
chsize
(
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
);
}
else
{
if
(
filler
==
0
)
DBUG_RETURN
(
0
);
}
if
(
SetEndOfFile
(
win_file
))
DBUG_RETURN
(
0
);
}
my_errno
=
errno
;
goto
err
;
}
#elif defined(HAVE_FTRUNCATE)
if
(
oldsize
>
newlength
)
{
if
(
ftruncate
(
fd
,
(
off_t
)
newlength
))
{
if
(
ftruncate
(
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
);
}
DBUG_RETURN
(
0
);
}
#else
if
(
oldsize
>
newlength
)
{
/* Fill diff with null */
VOID
(
my_seek
(
fd
,
newlength
,
MY_SEEK_SET
,
MYF
(
MY_WME
+
MY_FAE
)));
swap
(
my_off_t
,
newlength
,
oldsize
);
my_errno
=
errno
;
goto
err
;
}
#endif
/* Full file with 0 until it's as big as requested */
bfill
(
buff
,
IO_SIZE
,
filler
);
while
(
newlength
-
oldsize
>
IO_SIZE
)
DBUG_RETURN
(
0
);
}
#elif defined(HAVE_CHSIZE)
{
if
(
chsize
(
fd
,
(
off_t
)
newlength
))
{
if
(
my_write
(
fd
,(
byte
*
)
buff
,
IO_SIZE
,
MYF
(
MY_NABP
)))
goto
err
;
oldsize
+=
IO_SIZE
;
}
if
(
my_write
(
fd
,(
byte
*
)
buff
,(
uint
)
(
newlength
-
oldsize
),
MYF
(
MY_NABP
)))
my_errno
=
errno
;
goto
err
;
}
DBUG_RETURN
(
0
);
err:
if
(
MyFlags
&
MY_WME
)
my_error
(
EE_CANT_CHSIZE
,
MYF
(
ME_BELL
+
ME_WAITTANG
),
my_errno
);
DBUG_PRINT
(
"error"
,(
"errno: %d"
,
my_errno
));
DBUG_RETURN
(
1
);
}
}
/* my_chsize */
#else
{
/*
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 'filler' until it's as big as requested */
bfill
(
buff
,
IO_SIZE
,
filler
);
while
(
newlength
-
oldsize
>
IO_SIZE
)
{
if
(
my_write
(
fd
,(
byte
*
)
buff
,
IO_SIZE
,
MYF
(
MY_NABP
)))
goto
err
;
oldsize
+=
IO_SIZE
;
}
if
(
my_write
(
fd
,(
byte
*
)
buff
,(
uint
)
(
newlength
-
oldsize
),
MYF
(
MY_NABP
)))
goto
err
;
DBUG_RETURN
(
0
);
err:
DBUG_PRINT
(
"error"
,
(
"errno: %d"
,
errno
));
if
(
MyFlags
&
MY_WME
)
my_error
(
EE_CANT_CHSIZE
,
MYF
(
ME_BELL
+
ME_WAITTANG
),
my_errno
);
DBUG_RETURN
(
1
);
}
/* my_chsize */
sql/opt_range.cc
View file @
a9146ace
...
...
@@ -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 @
a9146ace
...
...
@@ -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_select.cc
View file @
a9146ace
...
...
@@ -1490,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
)
++
;
...
...
@@ -1582,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