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
643b6028
Commit
643b6028
authored
Feb 14, 2005
by
svoj@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug#8351
Fix for crash when using a double quote in boolean fulltext query.
parent
10c53ae1
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
30 additions
and
22 deletions
+30
-22
BitKeeper/etc/logging_ok
BitKeeper/etc/logging_ok
+1
-0
myisam/ft_boolean_search.c
myisam/ft_boolean_search.c
+14
-22
mysql-test/r/fulltext.result
mysql-test/r/fulltext.result
+7
-0
mysql-test/t/fulltext.test
mysql-test/t/fulltext.test
+8
-0
No files found.
BitKeeper/etc/logging_ok
View file @
643b6028
...
...
@@ -203,6 +203,7 @@ serg@sergbook.mysql.com
sergefp@mysql.com
sinisa@rhols221.adsl.netsonic.fi
stewart@mysql.com
svoj@mysql.com
tfr@beta.frontier86.ee
tfr@indrek.tfr.cafe.ee
tfr@sarvik.tfr.cafe.ee
...
...
myisam/ft_boolean_search.c
View file @
643b6028
...
...
@@ -435,32 +435,24 @@ static int _ftb_strstr(const byte *s0, const byte *e0,
const
byte
*
s1
,
const
byte
*
e1
,
CHARSET_INFO
*
cs
)
{
const
byte
*
p0
,
*
p1
;
my_bool
s_after
,
e_before
;
s_after
=
true_word_char
(
cs
,
s1
[
0
]);
e_before
=
true_word_char
(
cs
,
e1
[
-
1
]);
p0
=
s0
;
const
byte
*
p0
=
s0
;
my_bool
s_after
=
true_word_char
(
cs
,
s1
[
0
]);
my_bool
e_before
=
true_word_char
(
cs
,
e1
[
-
1
]);
uint
p0_len
;
my_match_t
m
[
2
];
while
(
p0
<
e0
)
{
while
(
p0
<
e0
&&
cs
->
to_upper
[(
uint
)
(
uchar
)
*
p0
++
]
!=
cs
->
to_upper
[(
uint
)
(
uchar
)
*
s1
])
/* no-op */
;
if
(
p0
>=
e0
)
return
0
;
if
(
s_after
&&
p0
-
1
>
s0
&&
true_word_char
(
cs
,
p0
[
-
2
]))
continue
;
p1
=
s1
+
1
;
while
(
p0
<
e0
&&
p1
<
e1
&&
cs
->
to_upper
[(
uint
)
(
uchar
)
*
p0
]
==
cs
->
to_upper
[(
uint
)
(
uchar
)
*
p1
])
p0
++
,
p1
++
;
if
(
p1
==
e1
&&
(
!
e_before
||
p0
==
e0
||
!
true_word_char
(
cs
,
p0
[
0
])))
return
1
;
if
(
cs
->
coll
->
instr
(
cs
,
p0
,
e0
-
p0
,
s1
,
e1
-
s1
,
m
,
2
)
!=
2
)
return
(
0
);
if
((
!
s_after
||
p0
+
m
[
1
].
beg
==
s0
||
!
true_word_char
(
cs
,
p0
[
m
[
1
].
beg
-
1
]))
&&
(
!
e_before
||
p0
+
m
[
1
].
end
==
e0
||
!
true_word_char
(
cs
,
p0
[
m
[
1
].
end
])))
return
(
1
);
p0
+=
m
[
1
].
beg
;
p0
+=
(
p0_len
=
my_mbcharlen
(
cs
,
*
(
uchar
*
)
p0
))
?
p0_len
:
1
;
}
return
0
;
return
(
0
);
}
...
...
mysql-test/r/fulltext.result
View file @
643b6028
...
...
@@ -408,3 +408,10 @@ insert t1 values (1, "aaaa"), (2, "bbbb");
insert t2 values (10, "aaaa"), (2, "cccc");
replace t1 select * from t2;
drop table t1, t2;
CREATE TABLE t1 (t VARCHAR(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci, FULLTEXT (t));
SET NAMES latin1;
INSERT INTO t1 VALUES('Mit freundlichem Gr aus Osnabrck');
SELECT COUNT(*) FROM t1 WHERE MATCH(t) AGAINST ('"osnabrck"' IN BOOLEAN MODE);
COUNT(*)
1
DROP TABLE t1;
mysql-test/t/fulltext.test
View file @
643b6028
...
...
@@ -322,3 +322,11 @@ insert t2 values (10, "aaaa"), (2, "cccc");
replace
t1
select
*
from
t2
;
drop
table
t1
,
t2
;
#
# bug#8351
#
CREATE
TABLE
t1
(
t
VARCHAR
(
200
)
CHARACTER
SET
utf8
COLLATE
utf8_unicode_ci
,
FULLTEXT
(
t
));
SET
NAMES
latin1
;
INSERT
INTO
t1
VALUES
(
'Mit freundlichem Gr aus Osnabrck'
);
SELECT
COUNT
(
*
)
FROM
t1
WHERE
MATCH
(
t
)
AGAINST
(
'"osnabrck"'
IN
BOOLEAN
MODE
);
DROP
TABLE
t1
;
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