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
0190269c
Commit
0190269c
authored
Sep 25, 2002
by
paul@teton.kitebird.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge paul@work.mysql.com:/home/bk/mysql-4.0
into teton.kitebird.com:/home/paul/mysql-4.0
parents
7b1ff7d8
e03d4330
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
42 additions
and
9 deletions
+42
-9
Docs/manual.texi
Docs/manual.texi
+6
-0
sql/ha_innodb.cc
sql/ha_innodb.cc
+6
-1
sql/ha_innodb.h
sql/ha_innodb.h
+5
-1
sql/sql_acl.cc
sql/sql_acl.cc
+7
-6
sql/time.cc
sql/time.cc
+18
-1
No files found.
Docs/manual.texi
View file @
0190269c
...
...
@@ -50453,6 +50453,12 @@ each individual 4.0.x release.
@itemize @bullet
@item
Fixed bug where @code{GRANT}/@code{REVOKE} failed if hostname was given in
not matching case.
@item
Don't give warning in @code{LOAD DATA INFILE} when setting a
@code{timestamp} to a string of '0'.
@item
Fixed bug in @code{myisamchk -R} mode.
@item
Fixed bug that caused @code{mysqld} to crash on @code{REVOKE}.
sql/ha_innodb.cc
View file @
0190269c
...
...
@@ -2179,7 +2179,12 @@ convert_search_mode_to_innobase(
case
HA_READ_AFTER_KEY
:
return
(
PAGE_CUR_G
);
case
HA_READ_BEFORE_KEY
:
return
(
PAGE_CUR_L
);
case
HA_READ_PREFIX
:
return
(
PAGE_CUR_GE
);
case
HA_READ_PREFIX_LAST
:
ut_a
(
0
);
return
(
PAGE_CUR_LE
);
case
HA_READ_PREFIX_LAST
:
/* ut_print_timestamp(stderr);
fprintf(stderr,
" InnoDB: Warning: Using HA_READ_PREFIX_LAST\n"); */
return
(
PAGE_CUR_LE
);
/* InnoDB does not yet support ..PREFIX_LAST!
We have to add a new search flag
PAGE_CUR_LE_OR_PREFIX to InnoDB. */
...
...
sql/ha_innodb.h
View file @
0190269c
...
...
@@ -81,6 +81,10 @@ class ha_innobase: public handler
HA_NO_WRITE_DELAYED
|
HA_PRIMARY_KEY_IN_READ_INDEX
|
HA_DROP_BEFORE_CREATE
|
/* We should also list HA_NOT_READ_PREFIX_LAST
here but it currently seems to break ORDER BY;
until release 4.0.5 some LIKE 'abc%' ... DESC
queries will not work correctly */
HA_NO_PREFIX_CHAR_KEYS
|
HA_TABLE_SCAN_ON_INDEX
),
last_dup_key
((
uint
)
-
1
),
...
...
@@ -96,7 +100,7 @@ class ha_innobase: public handler
ulong
index_flags
(
uint
idx
)
const
{
return
(
HA_READ_NEXT
|
HA_READ_PREV
|
HA_READ_ORDER
|
HA_KEY_READ_ONLY
|
HA_NOT_READ_PREFIX_LAST
);
HA_KEY_READ_ONLY
);
}
uint
max_record_length
()
const
{
return
HA_MAX_REC_LENGTH
;
}
uint
max_keys
()
const
{
return
MAX_KEY
;
}
...
...
sql/sql_acl.cc
View file @
0190269c
...
...
@@ -643,7 +643,8 @@ static void acl_update_user(const char *user, const char *host,
!
strcmp
(
user
,
acl_user
->
user
))
{
if
(
!
acl_user
->
host
.
hostname
&&
!
host
[
0
]
||
acl_user
->
host
.
hostname
&&
!
strcmp
(
host
,
acl_user
->
host
.
hostname
))
acl_user
->
host
.
hostname
&&
!
my_strcasecmp
(
host
,
acl_user
->
host
.
hostname
))
{
acl_user
->
access
=
privileges
;
if
(
mqh
->
bits
&
1
)
...
...
@@ -732,7 +733,7 @@ static void acl_update_db(const char *user, const char *host, const char *db,
!
strcmp
(
user
,
acl_db
->
user
))
{
if
(
!
acl_db
->
host
.
hostname
&&
!
host
[
0
]
||
acl_db
->
host
.
hostname
&&
!
str
cmp
(
host
,
acl_db
->
host
.
hostname
))
acl_db
->
host
.
hostname
&&
!
my_strcase
cmp
(
host
,
acl_db
->
host
.
hostname
))
{
if
(
!
acl_db
->
db
&&
!
db
[
0
]
||
acl_db
->
db
&&
!
strcmp
(
db
,
acl_db
->
db
))
...
...
@@ -1666,7 +1667,7 @@ static GRANT_TABLE *table_hash_search(const char *host,const char* ip,
{
if
(
exact
)
{
if
((
host
&&
!
str
cmp
(
host
,
grant_table
->
host
))
||
if
((
host
&&
!
my_strcase
cmp
(
host
,
grant_table
->
host
))
||
(
ip
&&
!
strcmp
(
ip
,
grant_table
->
host
)))
return
grant_table
;
}
...
...
@@ -2723,7 +2724,7 @@ int mysql_show_grants(THD *thd,LEX_USER *lex_user)
if
(
!
(
host
=
acl_user
->
host
.
hostname
))
host
=
"%"
;
if
(
!
strcmp
(
lex_user
->
user
.
str
,
user
)
&&
!
str
cmp
(
lex_user
->
host
.
str
,
host
))
!
my_strcase
cmp
(
lex_user
->
host
.
str
,
host
))
break
;
}
if
(
counter
==
acl_users
.
elements
)
...
...
@@ -2870,7 +2871,7 @@ int mysql_show_grants(THD *thd,LEX_USER *lex_user)
host
=
""
;
if
(
!
strcmp
(
lex_user
->
user
.
str
,
user
)
&&
!
str
cmp
(
lex_user
->
host
.
str
,
host
))
!
my_strcase
cmp
(
lex_user
->
host
.
str
,
host
))
{
want_access
=
acl_db
->
access
;
if
(
want_access
)
...
...
@@ -2929,7 +2930,7 @@ int mysql_show_grants(THD *thd,LEX_USER *lex_user)
host
=
""
;
if
(
!
strcmp
(
lex_user
->
user
.
str
,
user
)
&&
!
str
cmp
(
lex_user
->
host
.
str
,
host
))
!
my_strcase
cmp
(
lex_user
->
host
.
str
,
host
))
{
want_access
=
grant_table
->
privs
;
if
((
want_access
|
grant_table
->
cols
)
!=
0
)
...
...
sql/time.cc
View file @
0190269c
...
...
@@ -429,6 +429,7 @@ timestamp_type
str_to_TIME
(
const
char
*
str
,
uint
length
,
TIME
*
l_time
,
bool
fuzzy_date
)
{
uint
field_length
,
year_length
,
digits
,
i
,
number_of_fields
,
date
[
7
];
uint
not_zero_date
;
const
char
*
pos
;
const
char
*
end
=
str
+
length
;
DBUG_ENTER
(
"str_to_TIME"
);
...
...
@@ -446,6 +447,7 @@ str_to_TIME(const char *str, uint length, TIME *l_time,bool fuzzy_date)
digits
=
(
uint
)
(
pos
-
str
);
year_length
=
(
digits
==
4
||
digits
==
8
||
digits
>=
14
)
?
4
:
2
;
field_length
=
year_length
-
1
;
not_zero_date
=
0
;
for
(
i
=
0
;
i
<
6
&&
str
!=
end
&&
isdigit
(
*
str
)
;
i
++
)
{
uint
tmp_value
=
(
uint
)
(
uchar
)
(
*
str
++
-
'0'
);
...
...
@@ -455,6 +457,7 @@ str_to_TIME(const char *str, uint length, TIME *l_time,bool fuzzy_date)
str
++
;
}
date
[
i
]
=
tmp_value
;
not_zero_date
|=
tmp_value
;
if
(
i
==
2
&&
str
!=
end
&&
*
str
==
'T'
)
str
++
;
// ISO8601: CCYYMMDDThhmmss
else
if
(
i
!=
5
)
// Skip inter-field delimiters
...
...
@@ -478,6 +481,7 @@ str_to_TIME(const char *str, uint length, TIME *l_time,bool fuzzy_date)
while
(
str
++
!=
end
&&
isdigit
(
str
[
0
])
&&
field_length
--
)
tmp_value
=
tmp_value
*
10
+
(
uint
)
(
uchar
)
(
*
str
-
'0'
);
date
[
6
]
=
tmp_value
;
not_zero_date
|=
tmp_value
;
}
else
date
[
6
]
=
0
;
...
...
@@ -491,7 +495,20 @@ str_to_TIME(const char *str, uint length, TIME *l_time,bool fuzzy_date)
date
[
2
]
>
31
||
date
[
3
]
>
23
||
date
[
4
]
>
59
||
date
[
5
]
>
59
||
!
fuzzy_date
&&
(
date
[
1
]
==
0
||
date
[
2
]
==
0
))
{
current_thd
->
cuted_fields
++
;
/* Only give warning for a zero date if there is some garbage after */
if
(
!
not_zero_date
)
// If zero date
{
for
(;
str
!=
end
;
str
++
)
{
if
(
!
isspace
(
*
str
))
{
not_zero_date
=
1
;
// Give warning
break
;
}
}
}
if
(
not_zero_date
)
current_thd
->
cuted_fields
++
;
DBUG_RETURN
(
TIMESTAMP_NONE
);
}
if
(
str
!=
end
&&
current_thd
->
count_cuted_fields
)
...
...
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