mirror of
https://github.com/MariaDB/server.git
synced 2025-01-22 14:54:20 +01:00
2bf61233fa
The problem is that since MyISAM's concurrent_insert is on by default some concurrent SELECT statements might not see changes made by INSERT statements in other connections, even if the INSERT statement has returned. The solution is to disable concurrent_insert so that INSERT statements returns after the data is actually visible to other statements.
91 lines
2.3 KiB
Text
91 lines
2.3 KiB
Text
set @old_concurrent_insert= @@global.concurrent_insert;
|
|
set @@global.concurrent_insert= 0;
|
|
create table t1 (
|
|
`a&b` int,
|
|
`a<b` int,
|
|
`a>b` text
|
|
);
|
|
insert into t1 values (1, 2, 'a&b a<b a>b');
|
|
<?xml version="1.0"?>
|
|
|
|
<resultset statement="select * from t1
|
|
" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
<row>
|
|
<field name="a&b">1</field>
|
|
<field name="a<b">2</field>
|
|
<field name="a>b">a&b a<b a>b</field>
|
|
</row>
|
|
</resultset>
|
|
<?xml version="1.0"?>
|
|
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
<database name="test">
|
|
<table_structure name="t1">
|
|
<field Field="a&b" Type="int(11)" Null="YES" Key="" Extra="" />
|
|
<field Field="a<b" Type="int(11)" Null="YES" Key="" Extra="" />
|
|
<field Field="a>b" Type="text" Null="YES" Key="" Extra="" />
|
|
</table_structure>
|
|
<table_data name="t1">
|
|
<row>
|
|
<field name="a&b">1</field>
|
|
<field name="a<b">2</field>
|
|
<field name="a>b">a&b a<b a>b</field>
|
|
</row>
|
|
</table_data>
|
|
</database>
|
|
</mysqldump>
|
|
<?xml version="1.0"?>
|
|
|
|
<resultset statement="select count(*) from t1
|
|
" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
<row>
|
|
<field name="count(*)">1</field>
|
|
</row>
|
|
</resultset>
|
|
<?xml version="1.0"?>
|
|
|
|
<resultset statement="select 1 < 2 from dual
|
|
" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
<row>
|
|
<field name="1 < 2">1</field>
|
|
</row>
|
|
</resultset>
|
|
<?xml version="1.0"?>
|
|
|
|
<resultset statement="select 1 > 2 from dual
|
|
" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
<row>
|
|
<field name="1 > 2">0</field>
|
|
</row>
|
|
</resultset>
|
|
<?xml version="1.0"?>
|
|
|
|
<resultset statement="select 1 & 3 from dual
|
|
" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
<row>
|
|
<field name="1 & 3">1</field>
|
|
</row>
|
|
</resultset>
|
|
<?xml version="1.0"?>
|
|
|
|
<resultset statement="select null from dual
|
|
" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
<row>
|
|
<field name="NULL" xsi:nil="true" />
|
|
</row>
|
|
</resultset>
|
|
<?xml version="1.0"?>
|
|
|
|
<resultset statement="select 1 limit 0
|
|
" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></resultset>
|
|
--------------
|
|
select 1 limit 0
|
|
--------------
|
|
|
|
<?xml version="1.0"?>
|
|
|
|
<resultset statement="select 1 limit 0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></resultset>
|
|
Empty set
|
|
|
|
Bye
|
|
drop table t1;
|
|
set @@global.concurrent_insert= @old_concurrent_insert;
|