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
14c052b3
Commit
14c052b3
authored
Jan 18, 2002
by
monty@hundin.mysql.fi
Browse files
Options
Browse Files
Download
Plain Diff
Merge work:/home/bk/mysql into hundin.mysql.fi:/my/bk/mysql
parents
50c7fba4
89fa5f13
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
103 additions
and
11 deletions
+103
-11
Docs/manual.texi
Docs/manual.texi
+11
-1
mysql-test/r/join.result
mysql-test/r/join.result
+4
-0
mysql-test/t/join.test
mysql-test/t/join.test
+75
-1
mysys/hash.c
mysys/hash.c
+1
-1
scripts/mysql_config.sh
scripts/mysql_config.sh
+11
-6
sql/sql_select.cc
sql/sql_select.cc
+1
-2
No files found.
Docs/manual.texi
View file @
14c052b3
...
@@ -46833,6 +46833,7 @@ users use this code as the rest of the code and because of this we are
...
@@ -46833,6 +46833,7 @@ users use this code as the rest of the code and because of this we are
not yet 100% confident in this code.
not yet 100% confident in this code.
@menu
@menu
* News-3.23.48:: Changes in release 3.23.48
* News-3.23.47:: Changes in release 3.23.47
* News-3.23.47:: Changes in release 3.23.47
* News-3.23.46:: Changes in release 3.23.46
* News-3.23.46:: Changes in release 3.23.46
* News-3.23.45:: Changes in release 3.23.45
* News-3.23.45:: Changes in release 3.23.45
...
@@ -46884,7 +46885,16 @@ not yet 100% confident in this code.
...
@@ -46884,7 +46885,16 @@ not yet 100% confident in this code.
* News-3.23.0:: Changes in release 3.23.0
* News-3.23.0:: Changes in release 3.23.0
@end menu
@end menu
@node News-3.23.47, News-3.23.46, News-3.23.x, News-3.23.x
@node News-3.23.48, News-3.23.47, News-3.23.x, News-3.23.x
@appendixsubsec Changes in release 3.23.48
@itemize @bullet
@item
Fixed bug in complicated join with @code{const} tables.
@item
Added internal safety checks for InnoDB.
@end itemize
@node News-3.23.47, News-3.23.46, News-3.23.48, News-3.23.x
@appendixsubsec Changes in release 3.23.47
@appendixsubsec Changes in release 3.23.47
@itemize @bullet
@itemize @bullet
@item
@item
mysql-test/r/join.result
View file @
14c052b3
...
@@ -27,3 +27,7 @@ d d
...
@@ -27,3 +27,7 @@ d d
0000-00-00 NULL
0000-00-00 NULL
d
d
0000-00-00
0000-00-00
COUNT(t1.Title)
1
COUNT(t1.Title)
1
mysql-test/t/join.test
View file @
14c052b3
...
@@ -2,7 +2,8 @@
...
@@ -2,7 +2,8 @@
# This failed for lia Perminov
# This failed for lia Perminov
#
#
drop
table
if
exists
t1
,
t2
;
drop
table
if
exists
t1
,
t2
,
t3
;
create
table
t1
(
id
int
primary
key
);
create
table
t1
(
id
int
primary
key
);
create
table
t2
(
id
int
);
create
table
t2
(
id
int
);
insert
into
t1
values
(
75
);
insert
into
t1
values
(
75
);
...
@@ -120,3 +121,76 @@ INSERT INTO t1 (d) VALUES ('2001-08-01'),('0000-00-00');
...
@@ -120,3 +121,76 @@ INSERT INTO t1 (d) VALUES ('2001-08-01'),('0000-00-00');
SELECT
*
FROM
t1
LEFT
JOIN
t2
USING
(
d
)
WHERE
t2
.
d
IS
NULL
;
SELECT
*
FROM
t1
LEFT
JOIN
t2
USING
(
d
)
WHERE
t2
.
d
IS
NULL
;
SELECT
*
from
t1
WHERE
t1
.
d
IS
NULL
;
SELECT
*
from
t1
WHERE
t1
.
d
IS
NULL
;
DROP
TABLE
t1
,
t2
;
DROP
TABLE
t1
,
t2
;
#
# Problem with reference from const tables
#
CREATE
TABLE
t1
(
Document_ID
varchar
(
50
)
NOT
NULL
default
''
,
Contractor_ID
varchar
(
6
)
NOT
NULL
default
''
,
Language_ID
char
(
3
)
NOT
NULL
default
''
,
Expiration_Date
datetime
default
NULL
,
Publishing_Date
datetime
default
NULL
,
Title
text
,
Column_ID
varchar
(
50
)
NOT
NULL
default
''
,
PRIMARY
KEY
(
Language_ID
,
Document_ID
,
Contractor_ID
)
);
INSERT
INTO
t1
VALUES
(
'xep80'
,
'1'
,
'ger'
,
'2001-12-31 20:00:00'
,
'2001-11-12 10:58:00'
,
'Kartenbestellung - jetzt auch online'
,
'anle'
),(
''
,
'999998'
,
''
,
NULL
,
NULL
,
NULL
,
''
);
CREATE
TABLE
t2
(
Contractor_ID
char
(
6
)
NOT
NULL
default
''
,
Language_ID
char
(
3
)
NOT
NULL
default
''
,
Document_ID
char
(
50
)
NOT
NULL
default
''
,
CanRead
char
(
1
)
default
NULL
,
Customer_ID
int
(
11
)
NOT
NULL
default
'0'
,
PRIMARY
KEY
(
Contractor_ID
,
Language_ID
,
Document_ID
,
Customer_ID
)
);
INSERT
INTO
t2
VALUES
(
'5'
,
'ger'
,
'xep80'
,
'1'
,
999999
),(
'1'
,
'ger'
,
'xep80'
,
'1'
,
999999
);
CREATE
TABLE
t3
(
Language_ID
char
(
3
)
NOT
NULL
default
''
,
Column_ID
char
(
50
)
NOT
NULL
default
''
,
Contractor_ID
char
(
6
)
NOT
NULL
default
''
,
CanRead
char
(
1
)
default
NULL
,
Active
char
(
1
)
default
NULL
,
PRIMARY
KEY
(
Language_ID
,
Column_ID
,
Contractor_ID
)
);
INSERT
INTO
t3
VALUES
(
'ger'
,
'home'
,
'1'
,
'1'
,
'1'
),(
'ger'
,
'Test'
,
'1'
,
'0'
,
'0'
),(
'ger'
,
'derclu'
,
'1'
,
'0'
,
'0'
),(
'ger'
,
'clubne'
,
'1'
,
'0'
,
'0'
),(
'ger'
,
'philos'
,
'1'
,
'0'
,
'0'
),(
'ger'
,
'clubko'
,
'1'
,
'0'
,
'0'
),(
'ger'
,
'clubim'
,
'1'
,
'1'
,
'1'
),(
'ger'
,
'progra'
,
'1'
,
'0'
,
'0'
),(
'ger'
,
'progvo'
,
'1'
,
'0'
,
'0'
),(
'ger'
,
'progsp'
,
'1'
,
'0'
,
'0'
),(
'ger'
,
'progau'
,
'1'
,
'0'
,
'0'
),(
'ger'
,
'progku'
,
'1'
,
'0'
,
'0'
),(
'ger'
,
'progss'
,
'1'
,
'0'
,
'0'
),(
'ger'
,
'nachl'
,
'1'
,
'0'
,
'0'
),(
'ger'
,
'mitgli'
,
'1'
,
'0'
,
'0'
),(
'ger'
,
'mitsu'
,
'1'
,
'0'
,
'0'
),(
'ger'
,
'mitbus'
,
'1'
,
'0'
,
'0'
),(
'ger'
,
'ergmar'
,
'1'
,
'1'
,
'1'
),(
'ger'
,
'home'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'derclu'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'clubne'
,
'4'
,
'0'
,
'0'
),(
'ger'
,
'philos'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'clubko'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'clubim'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'progra'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'progvo'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'progsp'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'progau'
,
'4'
,
'0'
,
'0'
),(
'ger'
,
'progku'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'progss'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'nachl'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'mitgli'
,
'4'
,
'0'
,
'0'
),(
'ger'
,
'mitsu'
,
'4'
,
'0'
,
'0'
),(
'ger'
,
'mitbus'
,
'4'
,
'0'
,
'0'
),(
'ger'
,
'ergmar'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'progra2'
,
'1'
,
'0'
,
'0'
),(
'ger'
,
'archiv'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'anmeld'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'thema'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'edito'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'madis'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'enma'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'madis'
,
'1'
,
'1'
,
'1'
),(
'ger'
,
'enma'
,
'1'
,
'1'
,
'1'
),(
'ger'
,
'vorsch'
,
'4'
,
'0'
,
'0'
),(
'ger'
,
'veranst'
,
'4'
,
'0'
,
'0'
),(
'ger'
,
'anle'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'redak'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'nele'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'aukt'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'callcenter'
,
'4'
,
'1'
,
'1'
),(
'ger'
,
'anle'
,
'1'
,
'0'
,
'0'
);
delete
from
t1
where
Contractor_ID
=
'999998'
;
insert
into
t1
(
Contractor_ID
)
Values
(
'999998'
);
SELECT
DISTINCT
COUNT
(
t1
.
Title
)
FROM
t1
,
t2
,
t3
WHERE
t1
.
Document_ID
=
'xep80'
AND
t1
.
Contractor_ID
=
'1'
AND
t1
.
Language_ID
=
'ger'
AND
'2001-12-21 23:14:24'
>=
Publishing_Date
AND
'2001-12-21 23:14:24'
<=
Expiration_Date
AND
t1
.
Document_ID
=
t2
.
Document_ID
AND
t1
.
Language_ID
=
t2
.
Language_ID
AND
t1
.
Contractor_ID
=
t2
.
Contractor_ID
AND
(
t2
.
Customer_ID
=
'4'
OR
t2
.
Customer_ID
=
'999999'
OR
t2
.
Customer_ID
=
'1'
)
AND
t2
.
CanRead
=
'1'
AND
t1
.
Column_ID
=
t3
.
Column_ID
AND
t1
.
Language_ID
=
t3
.
Language_ID
AND
(
t3
.
Contractor_ID
=
'4'
OR
t3
.
Contractor_ID
=
'999999'
OR
t3
.
Contractor_ID
=
'1'
)
AND
t3
.
CanRead
=
'1'
AND
t3
.
Active
=
'1'
;
SELECT
DISTINCT
COUNT
(
t1
.
Title
)
FROM
t1
,
t2
,
t3
WHERE
t1
.
Document_ID
=
'xep80'
AND
t1
.
Contractor_ID
=
'1'
AND
t1
.
Language_ID
=
'ger'
AND
'2001-12-21 23:14:24'
>=
Publishing_Date
AND
'2001-12-21 23:14:24'
<=
Expiration_Date
AND
t1
.
Document_ID
=
t2
.
Document_ID
AND
t1
.
Language_ID
=
t2
.
Language_ID
AND
t1
.
Contractor_ID
=
t2
.
Contractor_ID
AND
(
t2
.
Customer_ID
=
'4'
OR
t2
.
Customer_ID
=
'999999'
OR
t2
.
Customer_ID
=
'1'
)
AND
t2
.
CanRead
=
'1'
AND
t1
.
Column_ID
=
t3
.
Column_ID
AND
t1
.
Language_ID
=
t3
.
Language_ID
AND
(
t3
.
Contractor_ID
=
'4'
OR
t3
.
Contractor_ID
=
'999999'
OR
t3
.
Contractor_ID
=
'1'
)
AND
t3
.
CanRead
=
'1'
AND
t3
.
Active
=
'1'
;
drop
table
t1
,
t2
,
t3
;
mysys/hash.c
View file @
14c052b3
...
@@ -180,7 +180,7 @@ uint calc_hashnr_caseup(const byte *key, uint len)
...
@@ -180,7 +180,7 @@ uint calc_hashnr_caseup(const byte *key, uint len)
#endif
#endif
#ifndef _
FORTREC_
#ifndef _
_SUNPRO_C
/* SUNPRO can't handle this */
inline
inline
#endif
#endif
uint
rec_hashnr
(
HASH
*
hash
,
const
byte
*
record
)
uint
rec_hashnr
(
HASH
*
hash
,
const
byte
*
record
)
...
...
scripts/mysql_config.sh
View file @
14c052b3
...
@@ -58,12 +58,16 @@ fix_path ()
...
@@ -58,12 +58,16 @@ fix_path ()
done
done
}
}
abs_path
=
`
expr
\(
substr
$0
1 1
\)
=
'/'
`
get_full_path
()
if
[
"x
$abs_path
"
=
"x1"
]
;
then
{
me
=
$0
case
$1
in
else
/
*
)
echo
"
$1
"
;;
me
=
`
which
$0
`
./
*
)
tmp
=
`
pwd
`
/
$1
;
echo
$tmp
|
sed
-e
's;/./;/;'
;;
fi
*
)
which
$1
;;
esac
}
me
=
`
get_full_path
$0
`
basedir
=
`
echo
$me
|
sed
-e
's;/bin/mysql_config;;'
`
basedir
=
`
echo
$me
|
sed
-e
's;/bin/mysql_config;;'
`
...
@@ -81,6 +85,7 @@ ldflags='@LDFLAGS@'
...
@@ -81,6 +85,7 @@ ldflags='@LDFLAGS@'
client_libs
=
'@CLIENT_LIBS@'
client_libs
=
'@CLIENT_LIBS@'
libs
=
"
$ldflags
-L'
$pkglibdir
' -lmysqlclient
$client_libs
"
libs
=
"
$ldflags
-L'
$pkglibdir
' -lmysqlclient
$client_libs
"
libs
=
`
echo
$libs
|
sed
-e
's; +;;'
`
cflags
=
"-I'
$pkgincludedir
'"
cflags
=
"-I'
$pkgincludedir
'"
usage
()
{
usage
()
{
...
...
sql/sql_select.cc
View file @
14c052b3
...
@@ -1026,14 +1026,13 @@ make_join_statistics(JOIN *join,TABLE_LIST *tables,COND *conds,
...
@@ -1026,14 +1026,13 @@ make_join_statistics(JOIN *join,TABLE_LIST *tables,COND *conds,
{
{
ha_rows
records
;
ha_rows
records
;
if
(
!
select
)
if
(
!
select
)
select
=
make_select
(
s
->
table
,
const_table_map
,
select
=
make_select
(
s
->
table
,
0
,
0
,
0
,
and_conds
(
conds
,
s
->
on_expr
),
&
error
);
and_conds
(
conds
,
s
->
on_expr
),
&
error
);
records
=
get_quick_record_count
(
select
,
s
->
table
,
s
->
const_keys
);
records
=
get_quick_record_count
(
select
,
s
->
table
,
s
->
const_keys
);
s
->
quick
=
select
->
quick
;
s
->
quick
=
select
->
quick
;
s
->
needed_reg
=
select
->
needed_reg
;
s
->
needed_reg
=
select
->
needed_reg
;
select
->
quick
=
0
;
select
->
quick
=
0
;
select
->
read_tables
=
const_table_map
;
if
(
records
!=
HA_POS_ERROR
)
if
(
records
!=
HA_POS_ERROR
)
{
{
s
->
found_records
=
records
;
s
->
found_records
=
records
;
...
...
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