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
db539026
Commit
db539026
authored
Aug 13, 2007
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge ramayana.hindu.god:/home/tsmith/m/bk/50
into ramayana.hindu.god:/home/tsmith/m/bk/maint/50
parents
db73e34f
e6701d74
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
113 additions
and
11 deletions
+113
-11
mysql-test/r/federated.result
mysql-test/r/federated.result
+14
-0
mysql-test/t/federated.test
mysql-test/t/federated.test
+14
-0
mysys/thr_lock.c
mysys/thr_lock.c
+32
-8
sql/item.cc
sql/item.cc
+1
-1
tests/mysql_client_test.c
tests/mysql_client_test.c
+52
-2
No files found.
mysql-test/r/federated.result
View file @
db539026
...
@@ -1920,6 +1920,20 @@ a b
...
@@ -1920,6 +1920,20 @@ a b
2 Curly
2 Curly
drop table federated.t1;
drop table federated.t1;
drop table federated.t1;
drop table federated.t1;
Bug#18287 create federated table always times out, error 1159 ' '
Test that self-references work
create table federated.t1 (a int primary key);
create table federated.t2 (a int primary key)
ENGINE=FEDERATED
connection='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
insert into federated.t1 (a) values (1);
select * from federated.t2;
a
1
drop table federated.t1, federated.t2;
DROP TABLE IF EXISTS federated.t1;
DROP TABLE IF EXISTS federated.t1;
DROP DATABASE IF EXISTS federated;
DROP DATABASE IF EXISTS federated;
DROP TABLE IF EXISTS federated.t1;
DROP TABLE IF EXISTS federated.t1;
...
...
mysql-test/t/federated.test
View file @
db539026
...
@@ -1671,5 +1671,19 @@ drop table federated.t1;
...
@@ -1671,5 +1671,19 @@ drop table federated.t1;
connection
slave
;
connection
slave
;
drop
table
federated
.
t1
;
drop
table
federated
.
t1
;
--
echo
--
echo
Bug
#18287 create federated table always times out, error 1159 ' '
--
echo
--
echo
Test
that
self
-
references
work
--
echo
connection
slave
;
create
table
federated
.
t1
(
a
int
primary
key
);
--
replace_result
$SLAVE_MYPORT
SLAVE_PORT
eval
create
table
federated
.
t2
(
a
int
primary
key
)
ENGINE
=
FEDERATED
connection
=
'mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1'
;
insert
into
federated
.
t1
(
a
)
values
(
1
);
select
*
from
federated
.
t2
;
drop
table
federated
.
t1
,
federated
.
t2
;
source
include
/
federated_cleanup
.
inc
;
source
include
/
federated_cleanup
.
inc
;
mysys/thr_lock.c
View file @
db539026
...
@@ -383,6 +383,9 @@ static inline my_bool have_specific_lock(THR_LOCK_DATA *data,
...
@@ -383,6 +383,9 @@ static inline my_bool have_specific_lock(THR_LOCK_DATA *data,
}
}
static
void
wake_up_waiters
(
THR_LOCK
*
lock
);
static
enum
enum_thr_lock_result
static
enum
enum_thr_lock_result
wait_for_lock
(
struct
st_lock_list
*
wait
,
THR_LOCK_DATA
*
data
,
wait_for_lock
(
struct
st_lock_list
*
wait
,
THR_LOCK_DATA
*
data
,
my_bool
in_wait_list
)
my_bool
in_wait_list
)
...
@@ -444,8 +447,13 @@ wait_for_lock(struct st_lock_list *wait, THR_LOCK_DATA *data,
...
@@ -444,8 +447,13 @@ wait_for_lock(struct st_lock_list *wait, THR_LOCK_DATA *data,
else
else
wait
->
last
=
data
->
prev
;
wait
->
last
=
data
->
prev
;
data
->
type
=
TL_UNLOCK
;
/* No lock */
data
->
type
=
TL_UNLOCK
;
/* No lock */
check_locks
(
data
->
lock
,
"killed or timed out wait_for_lock"
,
1
);
wake_up_waiters
(
data
->
lock
);
}
else
{
check_locks
(
data
->
lock
,
"aborted wait_for_lock"
,
0
);
}
}
check_locks
(
data
->
lock
,
"failed wait_for_lock"
,
0
);
}
}
else
else
{
{
...
@@ -771,6 +779,26 @@ void thr_unlock(THR_LOCK_DATA *data)
...
@@ -771,6 +779,26 @@ void thr_unlock(THR_LOCK_DATA *data)
lock
->
read_no_write_count
--
;
lock
->
read_no_write_count
--
;
data
->
type
=
TL_UNLOCK
;
/* Mark unlocked */
data
->
type
=
TL_UNLOCK
;
/* Mark unlocked */
check_locks
(
lock
,
"after releasing lock"
,
1
);
check_locks
(
lock
,
"after releasing lock"
,
1
);
wake_up_waiters
(
lock
);
pthread_mutex_unlock
(
&
lock
->
mutex
);
DBUG_VOID_RETURN
;
}
/**
@brief Wake up all threads which pending requests for the lock
can be satisfied.
@param lock Lock for which threads should be woken up
*/
static
void
wake_up_waiters
(
THR_LOCK
*
lock
)
{
THR_LOCK_DATA
*
data
;
enum
thr_lock_type
lock_type
;
DBUG_ENTER
(
"wake_up_waiters"
);
if
(
!
lock
->
write
.
data
)
/* If no active write locks */
if
(
!
lock
->
write
.
data
)
/* If no active write locks */
{
{
...
@@ -820,11 +848,7 @@ void thr_unlock(THR_LOCK_DATA *data)
...
@@ -820,11 +848,7 @@ void thr_unlock(THR_LOCK_DATA *data)
data
=
lock
->
write_wait
.
data
;
/* Free this too */
data
=
lock
->
write_wait
.
data
;
/* Free this too */
}
}
if
(
data
->
type
>=
TL_WRITE_LOW_PRIORITY
)
if
(
data
->
type
>=
TL_WRITE_LOW_PRIORITY
)
{
goto
end
;
check_locks
(
lock
,
"giving write lock"
,
0
);
pthread_mutex_unlock
(
&
lock
->
mutex
);
DBUG_VOID_RETURN
;
}
/* Release possible read locks together with the write lock */
/* Release possible read locks together with the write lock */
}
}
if
(
lock
->
read_wait
.
data
)
if
(
lock
->
read_wait
.
data
)
...
@@ -879,8 +903,7 @@ void thr_unlock(THR_LOCK_DATA *data)
...
@@ -879,8 +903,7 @@ void thr_unlock(THR_LOCK_DATA *data)
free_all_read_locks
(
lock
,
0
);
free_all_read_locks
(
lock
,
0
);
}
}
end:
end:
check_locks
(
lock
,
"thr_unlock"
,
0
);
check_locks
(
lock
,
"after waking up waiters"
,
0
);
pthread_mutex_unlock
(
&
lock
->
mutex
);
DBUG_VOID_RETURN
;
DBUG_VOID_RETURN
;
}
}
...
@@ -1094,6 +1117,7 @@ my_bool thr_abort_locks_for_thread(THR_LOCK *lock, pthread_t thread)
...
@@ -1094,6 +1117,7 @@ my_bool thr_abort_locks_for_thread(THR_LOCK *lock, pthread_t thread)
lock
->
write_wait
.
last
=
data
->
prev
;
lock
->
write_wait
.
last
=
data
->
prev
;
}
}
}
}
wake_up_waiters
(
lock
);
pthread_mutex_unlock
(
&
lock
->
mutex
);
pthread_mutex_unlock
(
&
lock
->
mutex
);
DBUG_RETURN
(
found
);
DBUG_RETURN
(
found
);
}
}
...
...
sql/item.cc
View file @
db539026
...
@@ -1670,7 +1670,7 @@ void Item_ident_for_show::make_field(Send_field *tmp_field)
...
@@ -1670,7 +1670,7 @@ void Item_ident_for_show::make_field(Send_field *tmp_field)
tmp_field
->
type
=
field
->
type
();
tmp_field
->
type
=
field
->
type
();
tmp_field
->
flags
=
field
->
table
->
maybe_null
?
tmp_field
->
flags
=
field
->
table
->
maybe_null
?
(
field
->
flags
&
~
NOT_NULL_FLAG
)
:
field
->
flags
;
(
field
->
flags
&
~
NOT_NULL_FLAG
)
:
field
->
flags
;
tmp_field
->
decimals
=
0
;
tmp_field
->
decimals
=
field
->
decimals
()
;
}
}
/**********************************************/
/**********************************************/
...
...
tests/mysql_client_test.c
View file @
db539026
...
@@ -15570,7 +15570,7 @@ static void test_bug27876()
...
@@ -15570,7 +15570,7 @@ static void test_bug27876()
int
rc
;
int
rc
;
MYSQL_RES
*
result
;
MYSQL_RES
*
result
;
char
utf8_func
[]
=
unsigned
char
utf8_func
[]
=
{
{
0xd1
,
0x84
,
0xd1
,
0x83
,
0xd0
,
0xbd
,
0xd0
,
0xba
,
0xd1
,
0x84
,
0xd1
,
0x83
,
0xd0
,
0xbd
,
0xd0
,
0xba
,
0xd1
,
0x86
,
0xd0
,
0xb8
,
0xd0
,
0xb9
,
0xd0
,
0xba
,
0xd1
,
0x86
,
0xd0
,
0xb8
,
0xd0
,
0xb9
,
0xd0
,
0xba
,
...
@@ -15578,7 +15578,7 @@ static void test_bug27876()
...
@@ -15578,7 +15578,7 @@ static void test_bug27876()
0x00
0x00
};
};
char
utf8_param
[]
=
unsigned
char
utf8_param
[]
=
{
{
0xd0
,
0xbf
,
0xd0
,
0xb0
,
0xd1
,
0x80
,
0xd0
,
0xb0
,
0xd0
,
0xbf
,
0xd0
,
0xb0
,
0xd1
,
0x80
,
0xd0
,
0xb0
,
0xd0
,
0xbc
,
0xd0
,
0xb5
,
0xd1
,
0x82
,
0xd1
,
0x8a
,
0xd0
,
0xbc
,
0xd0
,
0xb5
,
0xd1
,
0x82
,
0xd1
,
0x8a
,
...
@@ -15735,6 +15735,55 @@ static void test_bug27592()
...
@@ -15735,6 +15735,55 @@ static void test_bug27592()
}
}
/**
Bug#29306 Truncated data in MS Access with decimal (3,1) columns in a VIEW
*/
static
void
test_bug29306
()
{
MYSQL_FIELD
*
field
;
int
rc
;
MYSQL_RES
*
res
;
DBUG_ENTER
(
"test_bug29306"
);
myheader
(
"test_bug29306"
);
rc
=
mysql_query
(
mysql
,
"DROP TABLE IF EXISTS tab17557"
);
myquery
(
rc
);
rc
=
mysql_query
(
mysql
,
"DROP VIEW IF EXISTS view17557"
);
myquery
(
rc
);
rc
=
mysql_query
(
mysql
,
"CREATE TABLE tab17557 (dd decimal (3,1))"
);
myquery
(
rc
);
rc
=
mysql_query
(
mysql
,
"CREATE VIEW view17557 as SELECT dd FROM tab17557"
);
myquery
(
rc
);
rc
=
mysql_query
(
mysql
,
"INSERT INTO tab17557 VALUES (7.6)"
);
myquery
(
rc
);
/* Checking the view */
res
=
mysql_list_fields
(
mysql
,
"view17557"
,
NULL
);
while
((
field
=
mysql_fetch_field
(
res
)))
{
if
(
!
opt_silent
)
{
printf
(
"field name %s
\n
"
,
field
->
name
);
printf
(
"field table %s
\n
"
,
field
->
table
);
printf
(
"field decimals %d
\n
"
,
field
->
decimals
);
if
(
field
->
decimals
<
1
)
printf
(
"Error! No decimals!
\n
"
);
printf
(
"
\n\n
"
);
}
DIE_UNLESS
(
field
->
decimals
==
1
);
}
mysql_free_result
(
res
);
rc
=
mysql_query
(
mysql
,
"DROP TABLE tab17557"
);
myquery
(
rc
);
rc
=
mysql_query
(
mysql
,
"DROP VIEW view17557"
);
myquery
(
rc
);
DBUG_VOID_RETURN
;
}
/*
/*
Read and parse arguments and MySQL options from my.cnf
Read and parse arguments and MySQL options from my.cnf
*/
*/
...
@@ -16019,6 +16068,7 @@ static struct my_tests_st my_tests[]= {
...
@@ -16019,6 +16068,7 @@ static struct my_tests_st my_tests[]= {
{
"test_bug28505"
,
test_bug28505
},
{
"test_bug28505"
,
test_bug28505
},
{
"test_bug28934"
,
test_bug28934
},
{
"test_bug28934"
,
test_bug28934
},
{
"test_bug27592"
,
test_bug27592
},
{
"test_bug27592"
,
test_bug27592
},
{
"test_bug29306"
,
test_bug29306
},
{
0
,
0
}
{
0
,
0
}
};
};
...
...
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