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
37e872de
Commit
37e872de
authored
Nov 17, 2004
by
serg@serg.mylan
Browse files
Options
Browse Files
Download
Plain Diff
merged
parents
07859756
2d8c21f7
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
31 additions
and
11 deletions
+31
-11
myisam/ft_boolean_search.c
myisam/ft_boolean_search.c
+11
-11
mysql-test/r/fulltext.result
mysql-test/r/fulltext.result
+9
-0
mysql-test/t/fulltext.test
mysql-test/t/fulltext.test
+11
-0
No files found.
myisam/ft_boolean_search.c
View file @
37e872de
...
...
@@ -164,9 +164,9 @@ static void _ftb_parse_query(FTB *ftb, byte **start, byte *end,
if
(
param
.
trunc
)
ftbw
->
flags
|=
FTB_FLAG_TRUNC
;
ftbw
->
weight
=
weight
;
ftbw
->
up
=
up
;
ftbw
->
docid
[
0
]
=
ftbw
->
docid
[
1
]
=
HA_
POS
_ERROR
;
ftbw
->
docid
[
0
]
=
ftbw
->
docid
[
1
]
=
HA_
OFFSET
_ERROR
;
ftbw
->
ndepth
=
(
param
.
yesno
<
0
)
+
depth
;
ftbw
->
key_root
=
HA_
POS
_ERROR
;
ftbw
->
key_root
=
HA_
OFFSET
_ERROR
;
memcpy
(
ftbw
->
word
+
1
,
w
.
pos
,
w
.
len
);
ftbw
->
word
[
0
]
=
w
.
len
;
if
(
param
.
yesno
>
0
)
up
->
ythresh
++
;
...
...
@@ -181,7 +181,7 @@ static void _ftb_parse_query(FTB *ftb, byte **start, byte *end,
ftbe
->
weight
=
weight
;
ftbe
->
up
=
up
;
ftbe
->
ythresh
=
ftbe
->
yweaks
=
0
;
ftbe
->
docid
[
0
]
=
ftbe
->
docid
[
1
]
=
HA_
POS
_ERROR
;
ftbe
->
docid
[
0
]
=
ftbe
->
docid
[
1
]
=
HA_
OFFSET
_ERROR
;
if
((
ftbe
->
quot
=
param
.
quot
))
ftb
->
with_scan
|=
2
;
if
(
param
.
yesno
>
0
)
up
->
ythresh
++
;
_ftb_parse_query
(
ftb
,
start
,
end
,
ftbe
,
depth
+
1
);
...
...
@@ -259,7 +259,7 @@ static int _ft2_search(FTB *ftb, FTB_WORD *ftbw, my_bool init_search)
{
if
(
!
ftbw
->
off
||
!
(
ftbw
->
flags
&
FTB_FLAG_TRUNC
))
{
ftbw
->
docid
[
0
]
=
HA_
POS
_ERROR
;
ftbw
->
docid
[
0
]
=
HA_
OFFSET
_ERROR
;
if
((
ftbw
->
flags
&
FTB_FLAG_YES
)
&&
ftbw
->
up
->
up
==
0
)
{
/*
...
...
@@ -346,7 +346,7 @@ static void _ftb_init_index_search(FT_INFO *ftb)
ftbe
->
up
->
ythresh
-
ftbe
->
up
->
yweaks
>
1
)
/* 1 */
{
FTB_EXPR
*
top_ftbe
=
ftbe
->
up
->
up
;
ftbw
->
docid
[
0
]
=
HA_
POS
_ERROR
;
ftbw
->
docid
[
0
]
=
HA_
OFFSET
_ERROR
;
for
(
ftbe
=
ftbw
->
up
;
ftbe
!=
top_ftbe
;
ftbe
=
ftbe
->
up
)
if
(
ftbe
->
flags
&
FTB_FLAG_YES
)
ftbe
->
yweaks
++
;
...
...
@@ -387,7 +387,7 @@ FT_INFO * ft_init_boolean_search(MI_INFO *info, uint keynr, byte *query,
ftb
->
charset
=
((
keynr
==
NO_SUCH_KEY
)
?
default_charset_info
:
info
->
s
->
keyinfo
[
keynr
].
seg
->
charset
);
ftb
->
with_scan
=
0
;
ftb
->
lastpos
=
HA_
POS
_ERROR
;
ftb
->
lastpos
=
HA_
OFFSET
_ERROR
;
bzero
(
&
ftb
->
no_dupes
,
sizeof
(
TREE
));
init_alloc_root
(
&
ftb
->
mem_root
,
1024
,
1024
);
...
...
@@ -410,7 +410,7 @@ FT_INFO * ft_init_boolean_search(MI_INFO *info, uint keynr, byte *query,
ftbe
->
quot
=
0
;
ftbe
->
up
=
0
;
ftbe
->
ythresh
=
ftbe
->
yweaks
=
0
;
ftbe
->
docid
[
0
]
=
ftbe
->
docid
[
1
]
=
HA_
POS
_ERROR
;
ftbe
->
docid
[
0
]
=
ftbe
->
docid
[
1
]
=
HA_
OFFSET
_ERROR
;
ftb
->
root
=
ftbe
;
_ftb_parse_query
(
ftb
,
&
query
,
query
+
query_len
,
ftbe
,
0
);
ftb
->
list
=
(
FTB_WORD
**
)
alloc_root
(
&
ftb
->
mem_root
,
...
...
@@ -561,7 +561,7 @@ int ft_boolean_read_next(FT_INFO *ftb, char *record)
while
(
ftb
->
state
==
INDEX_SEARCH
&&
(
curdoc
=
((
FTB_WORD
*
)
queue_top
(
&
ftb
->
queue
))
->
docid
[
0
])
!=
HA_
POS
_ERROR
)
HA_
OFFSET
_ERROR
)
{
while
(
curdoc
==
(
ftbw
=
(
FTB_WORD
*
)
queue_top
(
&
ftb
->
queue
))
->
docid
[
0
])
{
...
...
@@ -615,7 +615,7 @@ float ft_boolean_find_relevance(FT_INFO *ftb, byte *record, uint length)
const
byte
*
end
;
my_off_t
docid
=
ftb
->
info
->
lastpos
;
if
(
docid
==
HA_
POS
_ERROR
)
if
(
docid
==
HA_
OFFSET
_ERROR
)
return
-
2
.
0
;
if
(
!
ftb
->
queue
.
elements
)
return
0
;
...
...
@@ -627,9 +627,9 @@ float ft_boolean_find_relevance(FT_INFO *ftb, byte *record, uint length)
for
(
i
=
0
;
i
<
ftb
->
queue
.
elements
;
i
++
)
{
ftb
->
list
[
i
]
->
docid
[
1
]
=
HA_
POS
_ERROR
;
ftb
->
list
[
i
]
->
docid
[
1
]
=
HA_
OFFSET
_ERROR
;
for
(
x
=
ftb
->
list
[
i
]
->
up
;
x
;
x
=
x
->
up
)
x
->
docid
[
1
]
=
HA_
POS
_ERROR
;
x
->
docid
[
1
]
=
HA_
OFFSET
_ERROR
;
}
}
...
...
mysql-test/r/fulltext.result
View file @
37e872de
...
...
@@ -382,3 +382,12 @@ s
pra para para
para para para
DROP TABLE t1;
CREATE TABLE t1 (h text, FULLTEXT (h));
INSERT INTO t1 VALUES ('Jesses Hasse Ling and his syncopators of Swing');
REPAIR TABLE t1;
Table Op Msg_type Msg_text
test.t1 repair status OK
select count(*) from t1;
count(*)
1
drop table t1;
mysql-test/t/fulltext.test
View file @
37e872de
...
...
@@ -295,3 +295,14 @@ insert into t1 (s) values ('p
select
*
from
t1
where
match
(
s
)
against
(
'para'
in
boolean
mode
);
select
*
from
t1
where
match
(
s
)
against
(
'par*'
in
boolean
mode
);
DROP
TABLE
t1
;
#
# icc -ip bug (ip = interprocedural optimization)
# bug#5528
#
CREATE
TABLE
t1
(
h
text
,
FULLTEXT
(
h
));
INSERT
INTO
t1
VALUES
(
'Jesses Hasse Ling and his syncopators of Swing'
);
REPAIR
TABLE
t1
;
select
count
(
*
)
from
t1
;
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