Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Faustin Lammler
mariadb-10.1
Commits
9e48a920
Commit
9e48a920
authored
May 09, 2015
by
Otto Kekäläinen
Browse files
Imported Upstream version 10.0.19
parent
17d544d3
Changes
196
Expand all
Hide whitespace changes
Inline
Side-by-side
.gitattributes
View file @
9e48a920
...
...
@@ -4,15 +4,16 @@
# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.c text
*.ic text
*.cc text
*.cpp text
*.h text
*.test text
#
Declar
e files
that will always have LF line endings on checkout.
*.result text
eol=lf
storage/connect/mysql-test/connect/std_data/*.txt text
eol=lf
storage/connect/mysql-test/connect/std_data/*.dat text
eol=lf
#
Thes
e files
should be checked out as is
*.result
-
text
-whitespace
storage/connect/mysql-test/connect/std_data/*.txt
-
text
storage/connect/mysql-test/connect/std_data/*.dat
-
text
# Denote all files that are truly binary and should not be modified.
*.png binary
...
...
Docs/INFO_SRC
View file @
9e48a920
commit:
5c833689ac98991ea85a1a50565e2b1a6abe6c1
f
date: 2015-05-0
6
1
2:41:21
+0
2
00
build-date: 2015-05-0
6
1
2:49:07
+0200
short:
5c83368
commit:
0880284bf715b4916cc735e19b76d1062c2bfdc
f
date: 2015-05-0
8
1
7:06:35
+0
3
00
build-date: 2015-05-0
8
1
6:37:53
+0200
short:
0880284
branch: HEAD
MySQL source 10.0.1
8
MySQL source 10.0.1
9
VERSION
View file @
9e48a920
MYSQL_VERSION_MAJOR=10
MYSQL_VERSION_MINOR=0
MYSQL_VERSION_PATCH=1
8
MYSQL_VERSION_PATCH=1
9
mysql-test/r/repair.result
View file @
9e48a920
...
...
@@ -207,3 +207,10 @@ check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
drop table t1;
create table t1 (a blob);
create view v1 as select * from t1;
repair view v1;
Table Op Msg_type Msg_text
test.v1 repair status OK
drop view v1;
drop table t1;
mysql-test/t/repair.test
View file @
9e48a920
...
...
@@ -210,3 +210,12 @@ repair table t1 use_frm;
select
count
(
*
)
from
t1
;
check
table
t1
;
drop
table
t1
;
#
# MDEV-8115 mysql_upgrade crashes the server with REPAIR VIEW
#
create
table
t1
(
a
blob
);
create
view
v1
as
select
*
from
t1
;
repair
view
v1
;
drop
view
v1
;
drop
table
t1
;
sql/sql_admin.cc
View file @
9e48a920
...
...
@@ -1012,7 +1012,7 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables,
break
;
}
}
if
(
table
->
table
)
if
(
table
->
table
&&
!
table
->
view
)
{
if
(
table
->
table
->
s
->
tmp_table
)
{
...
...
storage/connect/colblk.cpp
View file @
9e48a920
This diff is collapsed.
Click to expand it.
storage/connect/filamdbf.cpp
View file @
9e48a920
...
...
@@ -74,16 +74,28 @@ typedef struct _dbfheader {
//uchar Dbfox :4; /* FoxPro if equal to 3 */
uchar
Version
;
/* Version information flags */
char
Filedate
[
3
];
/* date, YYMMDD, binary. YY=year-1900 */
uint
Records
;
/* records in the file */
ushort
Headlen
;
/* bytes in the header */
ushort
Reclen
;
/* bytes in a record */
ushort
Fields
;
/* Reserved but used to store fields */
private:
/* The following four members are stored in little-endian format on disk */
char
m_RecordsBuf
[
4
];
/* records in the file */
char
m_HeadlenBuf
[
2
];
/* bytes in the header */
char
m_ReclenBuf
[
2
];
/* bytes in a record */
char
m_FieldsBuf
[
2
];
/* Reserved but used to store fields */
public:
char
Incompleteflag
;
/* 01 if incomplete, else 00 */
char
Encryptflag
;
/* 01 if encrypted, else 00 */
char
Reserved2
[
12
];
/* for LAN use */
char
Mdxflag
;
/* 01 if production .mdx, else 00 */
char
Language
;
/* Codepage */
char
Reserved3
[
2
];
uint
Records
()
const
{
return
uint4korr
(
m_RecordsBuf
);
}
ushort
Headlen
()
const
{
return
uint2korr
(
m_HeadlenBuf
);
}
ushort
Reclen
()
const
{
return
uint2korr
(
m_ReclenBuf
);
}
ushort
Fields
()
const
{
return
uint2korr
(
m_FieldsBuf
);
}
void
SetHeadlen
(
ushort
num
)
{
int2store
(
m_HeadlenBuf
,
num
);
}
void
SetReclen
(
ushort
num
)
{
int2store
(
m_ReclenBuf
,
num
);
}
void
SetFields
(
ushort
num
)
{
int2store
(
m_FieldsBuf
,
num
);
}
}
DBFHEADER
;
/****************************************************************************/
...
...
@@ -143,7 +155,7 @@ static int dbfhead(PGLOBAL g, FILE *file, PSZ fn, DBFHEADER *buf)
strcpy
(
g
->
Message
,
MSG
(
DBASE_FILE
));
// Check last byte(s) of header
if
(
fseek
(
file
,
buf
->
Headlen
-
dbc
,
SEEK_SET
)
!=
0
)
{
if
(
fseek
(
file
,
buf
->
Headlen
()
-
dbc
,
SEEK_SET
)
!=
0
)
{
sprintf
(
g
->
Message
,
MSG
(
BAD_HEADER
),
fn
);
return
RC_FX
;
}
// endif fseek
...
...
@@ -163,7 +175,7 @@ static int dbfhead(PGLOBAL g, FILE *file, PSZ fn, DBFHEADER *buf)
}
// endif endmark
// Calculate here the number of fields while we have the dbc info
buf
->
Fields
=
(
buf
->
Headlen
-
dbc
-
1
)
/
32
;
buf
->
Set
Fields
(
(
buf
->
Headlen
()
-
dbc
-
1
)
/
32
)
;
fseek
(
file
,
HEADLEN
,
SEEK_SET
);
return
rc
;
}
// end of dbfhead
...
...
@@ -219,7 +231,7 @@ PQRYRES DBFColumns(PGLOBAL g, char *dp, const char *fn, bool info)
/************************************************************************/
/* Allocate the structures used to refer to the result set. */
/************************************************************************/
fields
=
mainhead
.
Fields
;
fields
=
mainhead
.
Fields
()
;
}
else
fields
=
0
;
...
...
@@ -236,11 +248,11 @@ PQRYRES DBFColumns(PGLOBAL g, char *dp, const char *fn, bool info)
if
(
trace
)
{
htrc
(
"Structure of %s
\n
"
,
filename
);
htrc
(
"headlen=%hd reclen=%hd degree=%d
\n
"
,
mainhead
.
Headlen
,
mainhead
.
Reclen
,
fields
);
mainhead
.
Headlen
()
,
mainhead
.
Reclen
()
,
fields
);
htrc
(
"flags(iem)=%d,%d,%d cp=%d
\n
"
,
mainhead
.
Incompleteflag
,
mainhead
.
Encryptflag
,
mainhead
.
Mdxflag
,
mainhead
.
Language
);
htrc
(
"%hd records, last changed %02d/%02d/%d
\n
"
,
mainhead
.
Records
,
mainhead
.
Filedate
[
1
],
mainhead
.
Filedate
[
2
],
mainhead
.
Records
()
,
mainhead
.
Filedate
[
1
],
mainhead
.
Filedate
[
2
],
mainhead
.
Filedate
[
0
]
+
(
mainhead
.
Filedate
[
0
]
<=
30
)
?
2000
:
1900
);
htrc
(
"Field Type Offset Len Dec Set Mdx
\n
"
);
}
// endif trace
...
...
@@ -398,13 +410,13 @@ int DBFBASE::ScanHeader(PGLOBAL g, PSZ fname, int lrecl, char *defpath)
}
else
if
(
rc
==
RC_FX
)
return
-
1
;
if
((
int
)
header
.
Reclen
!=
lrecl
)
{
sprintf
(
g
->
Message
,
MSG
(
BAD_LRECL
),
lrecl
,
header
.
Reclen
);
if
((
int
)
header
.
Reclen
()
!=
lrecl
)
{
sprintf
(
g
->
Message
,
MSG
(
BAD_LRECL
),
lrecl
,
header
.
Reclen
()
);
return
-
1
;
}
// endif Lrecl
Records
=
(
int
)
header
.
Records
;
return
(
int
)
header
.
Headlen
;
Records
=
(
int
)
header
.
Records
()
;
return
(
int
)
header
.
Headlen
()
;
}
// end of ScanHeader
/* ---------------------------- Class DBFFAM ------------------------------ */
...
...
@@ -565,8 +577,8 @@ bool DBFFAM::AllocateBuffer(PGLOBAL g)
header
->
Filedate
[
0
]
=
datm
->
tm_year
-
100
;
header
->
Filedate
[
1
]
=
datm
->
tm_mon
+
1
;
header
->
Filedate
[
2
]
=
datm
->
tm_mday
;
header
->
Headlen
=
(
ushort
)
hlen
;
header
->
Reclen
=
(
ushort
)
reclen
;
header
->
Set
Headlen
(
(
ushort
)
hlen
)
;
header
->
Set
Reclen
(
(
ushort
)
reclen
)
;
descp
=
(
DESCRIPTOR
*
)
header
;
// Currently only standard Xbase types are supported
...
...
@@ -627,13 +639,13 @@ bool DBFFAM::AllocateBuffer(PGLOBAL g)
DBFHEADER
header
;
if
((
rc
=
dbfhead
(
g
,
Stream
,
Tdbp
->
GetFile
(
g
),
&
header
))
==
RC_OK
)
{
if
(
Lrecl
!=
(
int
)
header
.
Reclen
)
{
sprintf
(
g
->
Message
,
MSG
(
BAD_LRECL
),
Lrecl
,
header
.
Reclen
);
if
(
Lrecl
!=
(
int
)
header
.
Reclen
()
)
{
sprintf
(
g
->
Message
,
MSG
(
BAD_LRECL
),
Lrecl
,
header
.
Reclen
()
);
return
true
;
}
// endif Lrecl
Records
=
(
int
)
header
.
Records
;
Headlen
=
(
int
)
header
.
Headlen
;
Records
=
(
int
)
header
.
Records
()
;
Headlen
=
(
int
)
header
.
Headlen
()
;
}
else
if
(
rc
==
RC_NF
)
{
Records
=
0
;
Headlen
=
0
;
...
...
@@ -868,8 +880,10 @@ void DBFFAM::CloseTableFile(PGLOBAL g, bool abort)
PlugSetPath
(
filename
,
To_File
,
Tdbp
->
GetPath
());
if
((
Stream
=
global_fopen
(
g
,
MSGID_OPEN_MODE_STRERROR
,
filename
,
"r+b"
)))
{
char
nRecords
[
4
];
int4store
(
&
nRecords
,
n
);
fseek
(
Stream
,
4
,
SEEK_SET
);
// Get header.Records position
fwrite
(
&
n
,
sizeof
(
int
),
1
,
Stream
);
fwrite
(
&
n
Records
,
sizeof
(
nRecords
),
1
,
Stream
);
fclose
(
Stream
);
Stream
=
NULL
;
Records
=
n
;
// Update Records value
...
...
@@ -944,13 +958,13 @@ bool DBMFAM::AllocateBuffer(PGLOBAL g)
/************************************************************************/
DBFHEADER
*
hp
=
(
DBFHEADER
*
)
Memory
;
if
(
Lrecl
!=
(
int
)
hp
->
Reclen
)
{
sprintf
(
g
->
Message
,
MSG
(
BAD_LRECL
),
Lrecl
,
hp
->
Reclen
);
if
(
Lrecl
!=
(
int
)
hp
->
Reclen
()
)
{
sprintf
(
g
->
Message
,
MSG
(
BAD_LRECL
),
Lrecl
,
hp
->
Reclen
()
);
return
true
;
}
// endif Lrecl
Records
=
(
int
)
hp
->
Records
;
Headlen
=
(
int
)
hp
->
Headlen
;
Records
=
(
int
)
hp
->
Records
()
;
Headlen
=
(
int
)
hp
->
Headlen
()
;
}
// endif Headlen
/**************************************************************************/
...
...
storage/connect/mysql-test/connect/my.cnf
View file @
9e48a920
# Use default setting for mysqld processes
!include include/default_mysqld.cnf
!include include/default_client.cnf
[mysqld.1]
#log-bin= master-bin
[mysqld.2]
[ENV]
MASTER_MYPORT= @mysqld.1.port
MASTER_MYSOCK= @mysqld.1.socket
SLAVE_MYPORT= @mysqld.2.port
SLAVE_MYSOCK= @mysqld.2.socket
PGCLIENTENCODING= UTF8
# Use default setting for mysqld processes
!include include/default_mysqld.cnf
!include include/default_client.cnf
[mysqld.1]
#log-bin= master-bin
[mysqld.2]
[ENV]
MASTER_MYPORT= @mysqld.1.port
MASTER_MYSOCK= @mysqld.1.socket
SLAVE_MYPORT= @mysqld.2.port
SLAVE_MYSOCK= @mysqld.2.socket
PGCLIENTENCODING= UTF8
storage/connect/mysql-test/connect/std_data/biblio.json
View file @
9e48a920
[
{
"ISBN"
:
"9782212090819"
,
"LANG"
:
"fr"
,
"SUBJECT"
:
"applications"
,
"AUTHOR"
:
[
{
"FIRSTNAME"
:
"Jean-Christophe"
,
"LASTNAME"
:
"Bernadac"
},
{
"FIRSTNAME"
:
"François"
,
"LASTNAME"
:
"Knab"
}
],
"TITLE"
:
"Construire une application XML"
,
"PUBLISHER"
:
{
"NAME"
:
"Eyrolles"
,
"PLACE"
:
"Paris"
},
"DATEPUB"
:
1999
},
{
"ISBN"
:
"9782840825685"
,
"LANG"
:
"fr"
,
"SUBJECT"
:
"applications"
,
"AUTHOR"
:
[
{
"FIRSTNAME"
:
"William J."
,
"LASTNAME"
:
"Pardi"
}
],
"TITLE"
:
"XML en Action"
,
"TRANSLATION"
:
"adapté de l'anglais par"
,
"TRANSLATOR"
:
{
"FIRSTNAME"
:
"James"
,
"LASTNAME"
:
"Guerin"
},
"PUBLISHER"
:
{
"NAME"
:
"Microsoft Press"
,
"PLACE"
:
"Paris"
},
"DATEPUB"
:
1999
}
]
[
{
"ISBN"
:
"9782212090819"
,
"LANG"
:
"fr"
,
"SUBJECT"
:
"applications"
,
"AUTHOR"
:
[
{
"FIRSTNAME"
:
"Jean-Christophe"
,
"LASTNAME"
:
"Bernadac"
},
{
"FIRSTNAME"
:
"François"
,
"LASTNAME"
:
"Knab"
}
],
"TITLE"
:
"Construire une application XML"
,
"PUBLISHER"
:
{
"NAME"
:
"Eyrolles"
,
"PLACE"
:
"Paris"
},
"DATEPUB"
:
1999
},
{
"ISBN"
:
"9782840825685"
,
"LANG"
:
"fr"
,
"SUBJECT"
:
"applications"
,
"AUTHOR"
:
[
{
"FIRSTNAME"
:
"William J."
,
"LASTNAME"
:
"Pardi"
}
],
"TITLE"
:
"XML en Action"
,
"TRANSLATION"
:
"adapté de l'anglais par"
,
"TRANSLATOR"
:
{
"FIRSTNAME"
:
"James"
,
"LASTNAME"
:
"Guerin"
},
"PUBLISHER"
:
{
"NAME"
:
"Microsoft Press"
,
"PLACE"
:
"Paris"
},
"DATEPUB"
:
1999
}
]
storage/connect/mysql-test/connect/std_data/bookstore.xml
View file @
9e48a920
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book
category=
"COOKING"
>
<title
lang=
"en"
>
Everyday Italian
</title>
<author>
Giada De Laurentiis
</author>
<year>
2005
</year>
<price>
30.00
</price>
</book>
<book
category=
"CHILDREN"
>
<title
lang=
"en"
>
Harry Potter
</title>
<author>
J K. Rowling
</author>
<year>
2005
</year>
<price>
29.99
</price>
</book>
<book
category=
"WEB"
>
<title
lang=
"en"
>
XQuery Kick Start
</title>
<author>
James McGovern
</author>
<author>
Per Bothner
</author>
<author>
Kurt Cagle
</author>
<author>
James Linn
</author>
<author>
Vaidyanathan Nagarajan
</author>
<year>
2003
</year>
<price>
49.99
</price>
</book>
<book
category=
"WEB"
>
<title
lang=
"en"
>
Learning XML
</title>
<author>
Erik T. Ray
</author>
<year>
2003
</year>
<price>
39.95
</price>
</book>
</bookstore>
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book
category=
"COOKING"
>
<title
lang=
"en"
>
Everyday Italian
</title>
<author>
Giada De Laurentiis
</author>
<year>
2005
</year>
<price>
30.00
</price>
</book>
<book
category=
"CHILDREN"
>
<title
lang=
"en"
>
Harry Potter
</title>
<author>
J K. Rowling
</author>
<year>
2005
</year>
<price>
29.99
</price>
</book>
<book
category=
"WEB"
>
<title
lang=
"en"
>
XQuery Kick Start
</title>
<author>
James McGovern
</author>
<author>
Per Bothner
</author>
<author>
Kurt Cagle
</author>
<author>
James Linn
</author>
<author>
Vaidyanathan Nagarajan
</author>
<year>
2003
</year>
<price>
49.99
</price>
</book>
<book
category=
"WEB"
>
<title
lang=
"en"
>
Learning XML
</title>
<author>
Erik T. Ray
</author>
<year>
2003
</year>
<price>
39.95
</price>
</book>
</bookstore>
storage/connect/mysql-test/connect/std_data/expense.json
View file @
9e48a920
[
{
"WHO"
:
"Joe"
,
"WEEK"
:
[
{
"NUMBER"
:
3
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
18.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
12.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
19.00
},
{
"WHAT"
:
"Car"
,
"AMOUNT"
:
20.00
}
]
},
{
"NUMBER"
:
4
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
19.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
16.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
17.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
17.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
14.00
}
]
},
{
"NUMBER"
:
5
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
14.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
12.00
}
]
}
]
},
{
"WHO"
:
"Beth"
,
"WEEK"
:
[
{
"NUMBER"
:
3
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
16.00
}
]
},
{
"NUMBER"
:
4
,
"EXPENSE"
:
[
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
17.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
15.00
}
]
},
{
"NUMBER"
:
5
,
"EXPENSE"
:
[
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
12.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
20.00
}
]
}
]
},
{
"WHO"
:
"Janet"
,
"WEEK"
:
[
{
"NUMBER"
:
3
,
"EXPENSE"
:
[
{
"WHAT"
:
"Car"
,
"AMOUNT"
:
19.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
18.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
18.00
}
]
},
{
"NUMBER"
:
4
,
"EXPENSE"
:
[
{
"WHAT"
:
"Car"
,
"AMOUNT"
:
17.00
}
]
},
{
"NUMBER"
:
5
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
14.00
},
{
"WHAT"
:
"Car"
,
"AMOUNT"
:
12.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
19.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
12.00
}
]
}
]
}
]
[
{
"WHO"
:
"Joe"
,
"WEEK"
:
[
{
"NUMBER"
:
3
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
18.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
12.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
19.00
},
{
"WHAT"
:
"Car"
,
"AMOUNT"
:
20.00
}
]
},
{
"NUMBER"
:
4
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
19.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
16.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
17.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
17.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
14.00
}
]
},
{
"NUMBER"
:
5
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
14.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
12.00
}
]
}
]
},
{
"WHO"
:
"Beth"
,
"WEEK"
:
[
{
"NUMBER"
:
3
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
16.00
}
]
},
{
"NUMBER"
:
4
,
"EXPENSE"
:
[
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
17.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
15.00
}
]
},
{
"NUMBER"
:
5
,
"EXPENSE"
:
[
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
12.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
20.00
}
]
}
]
},
{
"WHO"
:
"Janet"
,
"WEEK"
:
[
{
"NUMBER"
:
3
,
"EXPENSE"
:
[
{
"WHAT"
:
"Car"
,
"AMOUNT"
:
19.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
18.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
18.00
}
]
},
{
"NUMBER"
:
4
,
"EXPENSE"
:
[
{
"WHAT"
:
"Car"
,
"AMOUNT"
:
17.00
}
]
},
{
"NUMBER"
:
5
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
14.00
},
{
"WHAT"
:
"Car"
,
"AMOUNT"
:
12.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
19.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
12.00
}
]
}
]
}
]
storage/connect/mysql-test/connect/std_data/mulexp3.json
View file @
9e48a920
[
{
"WHO"
:
"Joe"
,
"WEEK"
:
3
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
18.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
12.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
19.00
},
{
"WHAT"
:
"Car"
,
"AMOUNT"
:
20.00
}
]
},
{
"WHO"
:
"Beth"
,
"WEEK"
:
3
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
16.00
}
]
},
{
"WHO"
:
"Janet"
,
"WEEK"
:
3
,
"EXPENSE"
:
[
{
"WHAT"
:
"Car"
,
"AMOUNT"
:
19.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
18.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
18.00
}
]
}
]
[
{
"WHO"
:
"Joe"
,
"WEEK"
:
3
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
18.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
12.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
19.00
},
{
"WHAT"
:
"Car"
,
"AMOUNT"
:
20.00
}
]
},
{
"WHO"
:
"Beth"
,
"WEEK"
:
3
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
16.00
}
]
},
{
"WHO"
:
"Janet"
,
"WEEK"
:
3
,
"EXPENSE"
:
[
{
"WHAT"
:
"Car"
,
"AMOUNT"
:
19.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
18.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
18.00
}
]
}
]
storage/connect/mysql-test/connect/std_data/mulexp4.json
View file @
9e48a920
[
{
"WHO"
:
"Joe"
,
"WEEK"
:
4
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
19.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
16.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
17.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
17.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
14.00
}
]
},
{
"WHO"
:
"Beth"
,
"WEEK"
:
4
,
"EXPENSE"
:
[
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
17.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
15.00
}
]
},
{
"WHO"
:
"Janet"
,
"WEEK"
:
4
,
"EXPENSE"
:
[
{
"WHAT"
:
"Car"
,
"AMOUNT"
:
17.00
}
]
}
]
[
{
"WHO"
:
"Joe"
,
"WEEK"
:
4
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
19.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
16.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
17.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
17.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
14.00
}
]
},
{
"WHO"
:
"Beth"
,
"WEEK"
:
4
,
"EXPENSE"
:
[
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
17.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
15.00
}
]
},
{
"WHO"
:
"Janet"
,
"WEEK"
:
4
,
"EXPENSE"
:
[
{
"WHAT"
:
"Car"
,
"AMOUNT"
:
17.00
}
]
}
]
storage/connect/mysql-test/connect/std_data/mulexp5.json
View file @
9e48a920
[
{
"WHO"
:
"Joe"
,
"WEEK"
:
5
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
14.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
12.00
}
]
},
{
"WHO"
:
"Beth"
,
"WEEK"
:
5
,
"EXPENSE"
:
[
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
12.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
20.00
}
]
},
{
"WHO"
:
"Janet"
,
"WEEK"
:
5
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
14.00
},
{
"WHAT"
:
"Car"
,
"AMOUNT"
:
12.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
19.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
12.00
}
]
}
]
[
{
"WHO"
:
"Joe"
,
"WEEK"
:
5
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
14.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
12.00
}
]
},
{
"WHO"
:
"Beth"
,
"WEEK"
:
5
,
"EXPENSE"
:
[
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
12.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
20.00
}
]
},
{
"WHO"
:
"Janet"
,
"WEEK"
:
5
,
"EXPENSE"
:
[
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
14.00
},
{
"WHAT"
:
"Car"
,
"AMOUNT"
:
12.00
},
{
"WHAT"
:
"Beer"
,
"AMOUNT"
:
19.00
},
{
"WHAT"
:
"Food"
,
"AMOUNT"
:
12.00
}
]
}
]
storage/connect/mysql-test/connect/std_data/sexe.csv
View file @
9e48a920
0;Inconnu
1;Masculin
2;Feminin
0;Inconnu
1;Masculin
2;Feminin
storage/connect/mysql-test/connect/std_data/sitmat.csv
View file @
9e48a920
.;Inconnu
C;Celibataire
D;Divorce
L;Union libre
M;Marie
S;Separe
V;Veuf
.;Inconnu
C;Celibataire
D;Divorce
L;Union libre
M;Marie
S;Separe
V;Veuf
storage/connect/mysql-test/connect/t/alter.test
View file @
9e48a920
let
$MYSQLD_DATADIR
=
`select @@datadir`
;
--
echo
#
--
echo
# Testing indexing with ALTER on inward table (in-place)
--
echo
#
CREATE
TABLE
t1
(
c
INT
NOT
NULL
,
d
CHAR
(
10
)
NOT
NULL
)
ENGINE
=
CONNECT
;
INSERT
INTO
t1
VALUES
(
1
,
'One'
),
(
2
,
'Two'
),
(
3
,
'Three'
);
SELECT
*
FROM
t1
;
CREATE
INDEX
xc
ON
t1
(
c
);
DESCRIBE
SELECT
*
FROM
t1
WHERE
c
=
2
;
DROP
INDEX
xc
ON
t1
;
CREATE
INDEX
xd
ON
t1
(
d
);
DROP
INDEX
xd
ON
t1
;
ALTER
TABLE
t1
ADD
INDEX
xc
(
c
),
ADD
INDEX
xd
(
d
);
SHOW
INDEX
FROM
t1
;
ALTER
TABLE
t1
DROP
INDEX
xc
,
DROP
INDEX
xd
;
SHOW
INDEX
FROM
t1
;
--
echo
#
--
echo
# Testing modifying columns inward table (not in-place)
--
echo
#
ALTER
TABLE
t1
MODIFY
COLUMN
c
CHAR
(
5
)
NOT
NULL
;
SHOW
CREATE
TABLE
t1
;
SELECT
*
FROM
t1
;
ALTER
TABLE
t1
MODIFY
COLUMN
c
INT
NOT
NULL
;
--
echo
#
--
echo
# Fails because indexing must be in-place
--
echo
#
--
error
ER_ALTER_OPERATION_NOT_SUPPORTED
ALTER
TABLE
t1
MODIFY
COLUMN
c
CHAR
(
10
)
NOT
NULL
,
ADD
INDEX
xd
(
d
);
--
echo
#
--
echo
# Testing changing table type (not in-place)
--
echo
#
ALTER
TABLE
t1
TABLE_TYPE
=
CSV
HEADER
=
1
QUOTED
=
1
;
SELECT
*
FROM
t1
;
SHOW
CREATE
TABLE
t1
;
--
echo
# create an outward table used to see the t1 file
CREATE
TABLE
t2
(
line
VARCHAR
(
100
)
NOT
NULL
)
ENGINE
=
CONNECT
FILE_NAME
=
't1.csv'
;
SELECT
*
FROM
t2
;
--
echo
#
--
echo
# Testing changing engine
--
echo
#
DROP
TABLE
t1
;
CREATE
TABLE
t1
(
c
INT
NOT
NULL
,
d
CHAR
(
10
)
NOT
NULL
)
ENGINE
=
CONNECT
;
INSERT
INTO
t1
VALUES
(
1
,
'One'
),
(
2
,
'Two'
),
(
3
,
'Three'
);
ALTER
TABLE
t1
ADD
INDEX
xc
(
c
),
ADD
INDEX
xd
(
d
);
ALTER
TABLE
t1
ENGINE
=
MYISAM
;
SHOW
CREATE
TABLE
t1
;
SHOW
INDEX
FROM
t1
;
SELECT
*
FROM
t1
;
ALTER
TABLE
t1
ENGINE
=
CONNECT
TABLE_TYPE
=
DBF
;
SHOW
CREATE
TABLE
t1
;
SHOW
INDEX
FROM
t1
;
SELECT
*
FROM
t1
;
DROP
TABLE
t1
,
t2
;
--
echo
#
--
echo
# Testing ALTER on outward tables
--
echo
#
CREATE
TABLE
t1
(
c
INT
NOT
NULL
,
d
CHAR
(
10
)
NOT
NULL
)
ENGINE
=
CONNECT
TABLE_TYPE
=
fix
FILE_NAME
=
'tf1.txt'
ENDING
=
1
;
INSERT
INTO
t1
VALUES
(
1
,
'One'
),
(
2
,
'Two'
),
(
3
,
'Three'
);
SELECT
*
FROM
t1
;
CREATE
TABLE
t2
(
line
VARCHAR
(
100
)
NOT
NULL
)
ENGINE
=
CONNECT
FILE_NAME
=
'tf1.txt'
;
SELECT
*
FROM
t2
;
--
echo
#
--
echo
# Indexing works the same
--
echo
#
ALTER
TABLE
t1
ADD
INDEX
xc
(
c
),
ADD
INDEX
xd
(
d
);
SHOW
INDEX
FROM
t1
;
SELECT
d
FROM
t1
WHERE
c
=
2
;
ALTER
TABLE
t1
DROP
INDEX
xc
,
DROP
INDEX
xd
;
SHOW
INDEX
FROM
t1
;
--
echo
#
--
echo
# Other alterations do not modify the file
--
echo
#
ALTER
TABLE
t1
MODIFY
COLUMN
c
CHAR
(
5
)
NOT
NULL
;
SELECT
*
FROM
t2
;
SHOW
CREATE
TABLE
t1
;
#Wrong result
--
error
ER_GET_ERRMSG
SELECT
*
FROM
t1
;
ALTER
TABLE
t1
MODIFY
COLUMN
c
INT
NOT
NULL
;
--
echo
#
--
echo
# Changing column order
--
echo
#
ALTER
TABLE
t1
MODIFY
COLUMN
c
INT
NOT
NULL
AFTER
d
;
SELECT
*
FROM
t2
;
SHOW
CREATE
TABLE
t1
;
--
echo
# Wrong result
SELECT
*
FROM
t1
;
ALTER
TABLE
t1
MODIFY
COLUMN
c
INT
NOT
NULL
FIRST
;
--
echo
# What should have been done
ALTER
TABLE
t1
MODIFY
c
INT
NOT
NULL
FLAG
=
0
AFTER
d
,
MODIFY
d
CHAR
(
10
)
NOT
NULL
FLAG
=
11
;
SHOW
CREATE
TABLE
t1
;
SELECT
*
FROM
t1
;
--
echo
#
--
echo
# Changing to another engine is Ok
--
echo
# However, the data file is not deleted.
--
echo
#
ALTER
TABLE
t1
ENGINE
=
ARIA
;
SHOW
CREATE
TABLE
t1
;
set
@
old_sql_mode
=@@
sql_mode
;
set
sql_mode
=
ignore_bad_table_options
;
SHOW
CREATE
TABLE
t1
;
set
sql_mode
=@
old_sql_mode
;
SELECT
*
from
t1
;
SELECT
*
from
t2
;
--
echo
#
--
echo
# Changing back to CONNECT fails
--
echo
# Sure enough, the data file was not deleted.
--
echo
#
--
error
ER_UNKNOWN_ERROR
ALTER
TABLE
t1
ENGINE
=
CONNECT
;
--
echo
#
--
echo
# But changing back to CONNECT succeed
--
echo
# if the data file does not exist.
--
echo
#
--
remove_file
$MYSQLD_DATADIR
/
test
/
tf1
.
txt
ALTER
TABLE
t1
ENGINE
=
CONNECT
;
SHOW
CREATE
TABLE
t1
;
SELECT
*
from
t1
;
SELECT
*
from
t2
;
DROP
TABLE
t1
,
t2
;
#
# Clean up
#
--
remove_file
$MYSQLD_DATADIR
/
test
/
tf1
.
txt
let
$MYSQLD_DATADIR
=
`select @@datadir`
;
--
echo
#
--
echo
# Testing indexing with ALTER on inward table (in-place)
--
echo
#
CREATE
TABLE
t1
(
c
INT
NOT
NULL
,
d
CHAR
(
10
)
NOT
NULL
)
ENGINE
=
CONNECT
;
INSERT
INTO
t1
VALUES
(
1
,
'One'
),
(
2
,
'Two'
),
(
3
,
'Three'
);
SELECT
*
FROM
t1
;
CREATE
INDEX
xc
ON
t1
(
c
);
DESCRIBE
SELECT
*
FROM
t1
WHERE
c
=
2
;
DROP
INDEX
xc
ON
t1
;
CREATE
INDEX
xd
ON
t1
(
d
);
DROP
INDEX
xd
ON
t1
;
ALTER
TABLE
t1
ADD
INDEX
xc
(
c
),
ADD
INDEX
xd
(
d
);
SHOW
INDEX
FROM
t1
;
ALTER
TABLE
t1
DROP
INDEX
xc
,
DROP
INDEX
xd
;
SHOW
INDEX
FROM
t1
;
--
echo
#
--
echo
# Testing modifying columns inward table (not in-place)
--
echo
#
ALTER
TABLE
t1
MODIFY
COLUMN
c
CHAR
(
5
)
NOT
NULL
;
SHOW
CREATE
TABLE
t1
;
SELECT
*
FROM
t1
;
ALTER
TABLE
t1
MODIFY
COLUMN
c
INT
NOT
NULL
;
--
echo
#
--
echo
# Fails because indexing must be in-place
--
echo
#
--
error
ER_ALTER_OPERATION_NOT_SUPPORTED
ALTER
TABLE
t1
MODIFY
COLUMN
c
CHAR
(
10
)
NOT
NULL
,
ADD
INDEX
xd
(
d
);
--
echo
#
--
echo
# Testing changing table type (not in-place)
--
echo
#
ALTER
TABLE
t1
TABLE_TYPE
=
CSV
HEADER
=
1
QUOTED
=
1
;
SELECT
*
FROM
t1
;
SHOW
CREATE
TABLE
t1
;
--
echo
# create an outward table used to see the t1 file
CREATE
TABLE
t2
(
line
VARCHAR
(
100
)
NOT
NULL
)
ENGINE
=
CONNECT
FILE_NAME
=
't1.csv'
;
SELECT
*
FROM
t2
;
--
echo
#
--
echo
# Testing changing engine
--
echo
#
DROP
TABLE
t1
;
CREATE
TABLE
t1
(
c
INT
NOT
NULL
,
d
CHAR
(
10
)
NOT
NULL
)
ENGINE
=
CONNECT
;
INSERT
INTO
t1
VALUES
(
1
,
'One'
),
(
2
,
'Two'
),
(
3
,
'Three'
);
ALTER
TABLE
t1
ADD
INDEX
xc
(
c
),
ADD
INDEX
xd
(
d
);
ALTER
TABLE
t1
ENGINE
=
MYISAM
;
SHOW
CREATE
TABLE
t1
;
SHOW
INDEX
FROM
t1
;
SELECT
*
FROM
t1
;
ALTER
TABLE
t1
ENGINE
=
CONNECT
TABLE_TYPE
=
DBF
;
SHOW
CREATE
TABLE
t1
;
SHOW
INDEX
FROM
t1
;
SELECT
*
FROM
t1
;
DROP
TABLE
t1
,
t2
;
--
echo
#
--
echo
# Testing ALTER on outward tables
--
echo
#
CREATE
TABLE
t1
(
c
INT
NOT
NULL
,
d
CHAR
(
10
)
NOT
NULL
)
ENGINE
=
CONNECT
TABLE_TYPE
=
fix
FILE_NAME
=
'tf1.txt'
ENDING
=
1
;
INSERT
INTO
t1
VALUES
(
1
,
'One'
),
(
2
,
'Two'
),
(
3
,
'Three'
);
SELECT
*
FROM
t1
;
CREATE
TABLE
t2
(
line
VARCHAR
(
100
)
NOT
NULL
)
ENGINE
=
CONNECT
FILE_NAME
=
'tf1.txt'
;
SELECT
*
FROM
t2
;
--
echo
#
--
echo
# Indexing works the same
--
echo
#
ALTER
TABLE
t1
ADD
INDEX
xc
(
c
),
ADD
INDEX
xd
(
d
);
SHOW
INDEX
FROM
t1
;
SELECT
d
FROM
t1
WHERE
c
=
2
;
ALTER
TABLE
t1
DROP
INDEX
xc
,
DROP
INDEX
xd
;
SHOW
INDEX
FROM
t1
;
--
echo
#
--
echo
# Other alterations do not modify the file
--
echo
#
ALTER
TABLE
t1
MODIFY
COLUMN
c
CHAR
(
5
)
NOT
NULL
;
SELECT
*
FROM
t2
;
SHOW
CREATE
TABLE
t1
;
#Wrong result
--
error
ER_GET_ERRMSG
SELECT
*
FROM
t1
;
ALTER
TABLE
t1
MODIFY
COLUMN
c
INT
NOT
NULL
;
--
echo
#
--
echo
# Changing column order
--
echo
#
ALTER
TABLE
t1
MODIFY
COLUMN
c
INT
NOT
NULL
AFTER
d
;
SELECT
*
FROM
t2
;
SHOW
CREATE
TABLE
t1
;
--
echo
# Wrong result
SELECT
*
FROM
t1
;
ALTER
TABLE
t1
MODIFY
COLUMN
c
INT
NOT
NULL
FIRST
;
--
echo
# What should have been done
ALTER
TABLE
t1
MODIFY
c
INT
NOT
NULL
FLAG
=
0
AFTER
d
,
MODIFY
d
CHAR
(
10
)
NOT
NULL
FLAG
=
11
;
SHOW
CREATE
TABLE
t1
;
SELECT
*
FROM
t1
;
--
echo
#
--
echo
# Changing to another engine is Ok
--
echo
# However, the data file is not deleted.
--
echo
#
ALTER
TABLE
t1
ENGINE
=
ARIA
;
SHOW
CREATE
TABLE
t1
;
set
@
old_sql_mode
=@@
sql_mode
;
set
sql_mode
=
ignore_bad_table_options
;
SHOW
CREATE
TABLE
t1
;
set
sql_mode
=@
old_sql_mode
;
SELECT
*
from
t1
;
SELECT
*
from
t2
;
--
echo
#
--
echo
# Changing back to CONNECT fails
--
echo
# Sure enough, the data file was not deleted.
--
echo
#
--
error
ER_UNKNOWN_ERROR
ALTER
TABLE
t1
ENGINE
=
CONNECT
;
--
echo
#
--
echo
# But changing back to CONNECT succeed
--
echo
# if the data file does not exist.
--
echo
#
--
remove_file
$MYSQLD_DATADIR
/
test
/
tf1
.
txt
ALTER
TABLE
t1
ENGINE
=
CONNECT
;
SHOW
CREATE
TABLE
t1
;
SELECT
*
from
t1
;
SELECT
*
from
t2
;
DROP
TABLE
t1
,
t2
;
#
# Clean up
#
--
remove_file
$MYSQLD_DATADIR
/
test
/
tf1
.
txt
storage/connect/mysql-test/connect/t/alter_xml.test
View file @
9e48a920
--
source
have_libxml2
.
inc
--
echo
#
--
echo
# Testing changing table type (not in-place)
--
echo
#
CREATE
TABLE
t1
(
c
INT
NOT
NULL
,
d
CHAR
(
10
)
NOT
NULL
)
ENGINE
=
CONNECT
TABLE_TYPE
=
CSV
HEADER
=
1
QUOTED
=
1
;
INSERT
INTO
t1
VALUES
(
1
,
'One'
),
(
2
,
'Two'
),
(
3
,
'Three'
);
SELECT
*
FROM
t1
;
--
echo
# This would fail if the top node name is not specified.
--
echo
# This is because the XML top node name defaults to the table name.
--
echo
# Sure enough the temporary table name begins with '#' and is rejected by XML.
--
echo
# Therefore the top node name must be specified (along with the row nodes name).
ALTER
TABLE
t1
TABLE_TYPE
=
XML
TABNAME
=
t1
OPTION_LIST
=
'rownode=row'
;
SELECT
*
FROM
t1
;
SHOW
CREATE
TABLE
t1
;
--
echo
# Let us see the XML file
CREATE
TABLE
t2
(
line
VARCHAR
(
100
)
NOT
NULL
)
ENGINE
=
CONNECT
FILE_NAME
=
't1.xml'
;
SELECT
*
FROM
t2
;
--
echo
# NOTE: The first (ignored) row is due to the remaining HEADER=1 option.
--
echo
# Testing field option modification
ALTER
TABLE
t1
MODIFY
d
CHAR
(
10
)
NOT
NULL
FIELD_FORMAT
=
'@'
,
HEADER
=
0
;
SELECT
*
FROM
t1
;
SHOW
CREATE
TABLE
t1
;
SELECT
*
FROM
t2
;
DROP
TABLE
t1
,
t2
;
--
source
have_libxml2
.
inc
--
echo
#
--
echo
# Testing changing table type (not in-place)
--
echo
#
CREATE
TABLE
t1
(
c
INT
NOT
NULL
,
d
CHAR
(
10
)
NOT
NULL
)
ENGINE
=
CONNECT
TABLE_TYPE
=
CSV
HEADER
=
1
QUOTED
=
1
;
INSERT
INTO
t1
VALUES
(
1
,
'One'
),
(
2
,
'Two'
),
(
3
,
'Three'
);
SELECT
*
FROM
t1
;
--
echo
# This would fail if the top node name is not specified.
--
echo
# This is because the XML top node name defaults to the table name.
--
echo
# Sure enough the temporary table name begins with '#' and is rejected by XML.
--
echo
# Therefore the top node name must be specified (along with the row nodes name).
ALTER
TABLE
t1
TABLE_TYPE
=
XML
TABNAME
=
t1
OPTION_LIST
=
'rownode=row'
;
SELECT
*
FROM
t1
;
SHOW
CREATE
TABLE
t1
;
--
echo
# Let us see the XML file
CREATE
TABLE
t2
(
line
VARCHAR
(
100
)
NOT
NULL
)
ENGINE
=
CONNECT
FILE_NAME
=
't1.xml'
;
SELECT
*
FROM
t2
;
--
echo
# NOTE: The first (ignored) row is due to the remaining HEADER=1 option.
--
echo
# Testing field option modification
ALTER
TABLE
t1
MODIFY
d
CHAR
(
10
)
NOT
NULL
FIELD_FORMAT
=
'@'
,
HEADER
=
0
;
SELECT
*
FROM
t1
;
SHOW
CREATE
TABLE
t1
;
SELECT
*
FROM
t2
;
DROP
TABLE
t1
,
t2
;
storage/connect/mysql-test/connect/t/bin.test
View file @
9e48a920
let
$MYSQLD_DATADIR
=
`select @@datadir`
;
--
copy_file
$MTR_SUITE_DIR
/
std_data
/
Testbal
.
dat
$MYSQLD_DATADIR
/
test
/
Testbal
.
dat
--
echo
#
--
echo
# Testing errors
--
echo
#
CREATE
TABLE
t1
(
ID
INT
NOT
NULL
)
Engine
=
CONNECT
TABLE_TYPE
=
BIN
FILE_NAME
=
'nonexistent.txt'
;
--
replace_regex
/
on
.
*
test
.
nonexistent
.
txt
/
on
DATADIR
\
/
test
\
/
nonexistent
.
txt
/
# TODO: check why this is needed for Windows
--
replace_result
Open
(
rt
)
Open
(
rb
)
SELECT
*
FROM
t1
;
DROP
TABLE
t1
;
SET
time_zone
=
'+00:00'
;
CREATE
TABLE
t1
(
fig
INT
(
4
)
NOT
NULL
FIELD_FORMAT
=
'C'
,
name
CHAR
(
10
)
not
null
,
birth
DATE
NOT
NULL
,
id
CHAR
(
5
)
NOT
NULL
FIELD_FORMAT
=
'S'
,
salary
DOUBLE
(
9
,
2
)
NOT
NULL
DEFAULT
0.00
FIELD_FORMAT
=
'F'
,
dept
INT
(
4
)
NOT
NULL
FIELD_FORMAT
=
'S'
)
ENGINE
=
CONNECT
TABLE_TYPE
=
BIN
BLOCK_SIZE
=
5
FILE_NAME
=
'Testbal.dat'
;
SELECT
*
FROM
t1
;
--
error
ER_GET_ERRMSG
INSERT
INTO
t1
VALUES
(
55555
,
'RONALD'
,
'1980-02-26'
,
'3333'
,
4444.44
,
555
);
INSERT
INTO
t1
VALUES
(
5555
,
'RONALD'
,
'1980-02-26'
,
'3333'
,
4444.44
,
555
);
SELECT
*
FROM
t1
;
DROP
TABLE
t1
;
--
echo
#
--
echo
# Testing READONLY tables
--
echo
#
CREATE
TABLE
t1
(
fig
INT
(
4
)
NOT
NULL
FIELD_FORMAT
=
'C'
,
name
CHAR
(
10
)
not
null
,
birth
DATE
NOT
NULL
,
id
CHAR
(
5
)
NOT
NULL
FIELD_FORMAT
=
'S'
,
salary
DOUBLE
(
9
,
2
)
NOT
NULL
DEFAULT
0.00
FIELD_FORMAT
=
'F'
,
dept
INT
(
4
)
NOT
NULL
FIELD_FORMAT
=
'S'
)
ENGINE
=
CONNECT
TABLE_TYPE
=
BIN
READONLY
=
Yes
FILE_NAME
=
'Testbal.dat'
;
--
error
ER_OPEN_AS_READONLY
INSERT
INTO
t1
VALUES
(
7777
,
'BILL'
,
'1973-06-30'
,
4444
,
5555.555
,
777
);
ALTER
TABLE
t1
READONLY
=
NO
;
SHOW
CREATE
TABLE
t1
;
INSERT
INTO
t1
VALUES
(
7777
,
'BILL'
,
'1973-06-30'
,
4444
,
5555.555
,
777
);
SELECT
*
FROM
t1
;
ALTER
TABLE
t1
READONLY
=
YES
;
SHOW
CREATE
TABLE
t1
;
--
error
ER_OPEN_AS_READONLY
INSERT
INTO
t1
VALUES
(
7777
,
'BILL'
,
'1973-06-30'
,
4444
,
5555.555
,
777
);
DROP
TABLE
t1
;
--
echo
#
--
echo
# Testing that the underlying file is created
--
echo
#
CREATE
TABLE
t1
(
c
CHAR
(
4
)
NOT
NULL
FIELD_FORMAT
=
'C'
)
ENGINE
=
CONNECT
TABLE_TYPE
=
BIN
FILE_NAME
=
'bin2.dat'
;
INSERT
INTO
t1
VALUES
(
10
),(
20
),(
300
),(
4000
);
SELECT
*
FROM
t1
;
DROP
TABLE
t1
;
#
# Clean up
#
--
remove_file
$MYSQLD_DATADIR
/
test
/
Testbal
.
dat
--
remove_file
$MYSQLD_DATADIR
/
test
/
bin2
.
dat
let
$MYSQLD_DATADIR
=
`select @@datadir`
;
--
copy_file
$MTR_SUITE_DIR
/
std_data
/
Testbal
.
dat
$MYSQLD_DATADIR
/
test
/
Testbal
.
dat
--
echo
#
--
echo
# Testing errors
--
echo
#
CREATE
TABLE
t1
(
ID
INT
NOT
NULL
)
Engine
=
CONNECT
TABLE_TYPE
=
BIN
FILE_NAME
=
'nonexistent.txt'
;
--
replace_regex
/
on
.
*
test
.
nonexistent
.
txt
/
on
DATADIR
\
/
test
\
/
nonexistent
.
txt
/
# TODO: check why this is needed for Windows
--
replace_result
Open
(
rt
)
Open
(
rb
)
SELECT
*
FROM
t1
;
DROP
TABLE
t1
;
SET
time_zone
=
'+00:00'
;
CREATE
TABLE
t1
(
fig
INT
(
4
)
NOT
NULL
FIELD_FORMAT
=
'C'
,
name
CHAR
(
10
)
not
null
,
birth
DATE
NOT
NULL
,
id
CHAR
(
5
)
NOT
NULL
FIELD_FORMAT
=
'S'
,
salary
DOUBLE
(
9
,
2
)
NOT
NULL
DEFAULT
0.00
FIELD_FORMAT
=
'F'
,
dept
INT
(
4
)
NOT
NULL
FIELD_FORMAT
=
'S'
)
ENGINE
=
CONNECT
TABLE_TYPE
=
BIN
BLOCK_SIZE
=
5
FILE_NAME
=
'Testbal.dat'
;
SELECT
*
FROM
t1
;
--
error
ER_GET_ERRMSG
INSERT
INTO
t1
VALUES
(
55555
,
'RONALD'
,
'1980-02-26'
,
'3333'
,
4444.44
,
555
);
INSERT
INTO
t1
VALUES
(
5555
,
'RONALD'
,
'1980-02-26'
,
'3333'
,
4444.44
,
555
);
SELECT
*
FROM
t1
;
DROP
TABLE
t1
;
--
echo
#
--
echo
# Testing READONLY tables
--
echo
#
CREATE
TABLE
t1
(
fig
INT
(
4
)
NOT
NULL
FIELD_FORMAT
=
'C'
,
name
CHAR
(
10
)
not
null
,
birth
DATE
NOT
NULL
,
id
CHAR
(
5
)
NOT
NULL
FIELD_FORMAT
=
'S'
,
salary
DOUBLE
(
9
,
2
)
NOT
NULL
DEFAULT
0.00
FIELD_FORMAT
=
'F'
,
dept
INT
(
4
)
NOT
NULL
FIELD_FORMAT
=
'S'
)
ENGINE
=
CONNECT
TABLE_TYPE
=
BIN
READONLY
=
Yes
FILE_NAME
=
'Testbal.dat'
;
--
error
ER_OPEN_AS_READONLY
INSERT
INTO
t1
VALUES
(
7777
,
'BILL'
,
'1973-06-30'
,
4444
,
5555.555
,
777
);
ALTER
TABLE
t1
READONLY
=
NO
;
SHOW
CREATE
TABLE
t1
;
INSERT
INTO
t1
VALUES
(
7777
,
'BILL'
,
'1973-06-30'
,
4444
,
5555.555
,
777
);
SELECT
*
FROM
t1
;
ALTER
TABLE
t1
READONLY
=
YES
;
SHOW
CREATE
TABLE
t1
;
--
error
ER_OPEN_AS_READONLY
INSERT
INTO
t1
VALUES
(
7777
,
'BILL'
,
'1973-06-30'
,
4444
,
5555.555
,
777
);
DROP
TABLE
t1
;
--
echo
#
--
echo
# Testing that the underlying file is created
--
echo
#
CREATE
TABLE
t1
(
c
CHAR
(
4
)
NOT
NULL
FIELD_FORMAT
=
'C'
)
ENGINE
=
CONNECT
TABLE_TYPE
=
BIN
FILE_NAME
=
'bin2.dat'
;
INSERT
INTO
t1
VALUES
(
10
),(
20
),(
300
),(
4000
);
SELECT
*
FROM
t1
;
DROP
TABLE
t1
;
#
# Clean up
#
--
remove_file
$MYSQLD_DATADIR
/
test
/
Testbal
.
dat
--
remove_file
$MYSQLD_DATADIR
/
test
/
bin2
.
dat
Prev
1
2
3
4
5
…
10
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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