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
d894e304
Commit
d894e304
authored
Jan 19, 2006
by
pem@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge mysql.com:/extern/mysql/bk/mysql-5.0
into mysql.com:/extern/mysql/work/bug15658/mysql-5.0
parents
74fc0bbb
a091b7b7
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
82 additions
and
4 deletions
+82
-4
mysql-test/ndb/ndbcluster.sh
mysql-test/ndb/ndbcluster.sh
+1
-1
ndb/tools/ndb_size.pl
ndb/tools/ndb_size.pl
+1
-1
sql/protocol.cc
sql/protocol.cc
+16
-2
tests/mysql_client_test.c
tests/mysql_client_test.c
+64
-0
No files found.
mysql-test/ndb/ndbcluster.sh
View file @
d894e304
...
@@ -134,7 +134,7 @@ if [ ! -x "$exec_waiter" ]; then
...
@@ -134,7 +134,7 @@ if [ ! -x "$exec_waiter" ]; then
fi
fi
exec_mgmtclient
=
"
$exec_mgmtclient
--no-defaults
$NDB_MGM_EXTRA_OPTS
"
exec_mgmtclient
=
"
$exec_mgmtclient
--no-defaults
$NDB_MGM_EXTRA_OPTS
"
exec_mgmtsrvr
=
"
$exec_mgmtsrvr
--no-defaults
$NDB_MGMD_EXTRA_OPTS
"
exec_mgmtsrvr
=
"
$exec_mgmtsrvr
$NDB_MGMD_EXTRA_OPTS
"
exec_ndb
=
"
$exec_ndb
--no-defaults
$NDBD_EXTRA_OPTS
"
exec_ndb
=
"
$exec_ndb
--no-defaults
$NDBD_EXTRA_OPTS
"
exec_waiter
=
"
$exec_waiter
--no-defaults"
exec_waiter
=
"
$exec_waiter
--no-defaults"
...
...
ndb/tools/ndb_size.pl
View file @
d894e304
...
@@ -147,7 +147,7 @@ foreach(@{$tables})
...
@@ -147,7 +147,7 @@ foreach(@{$tables})
{
{
my
$fixed
=
1
+
$size
;
my
$fixed
=
1
+
$size
;
my
@dynamic
=
$dbh
->
selectrow_array
("
select avg(length(`
"
my
@dynamic
=
$dbh
->
selectrow_array
("
select avg(length(`
"
.
$name
.
.
$name
.
"
`)) from `
"
.
$table
.
'
`
');
.
"
`)) from `
"
.
$table
.
'
`
');
$dynamic
[
0
]
=
0
if
!
$dynamic
[
0
];
$dynamic
[
0
]
=
0
if
!
$dynamic
[
0
];
@realsize
=
(
$fixed
,
$fixed
,
ceil
(
$dynamic
[
0
]));
@realsize
=
(
$fixed
,
$fixed
,
ceil
(
$dynamic
[
0
]));
...
...
sql/protocol.cc
View file @
d894e304
...
@@ -597,9 +597,23 @@ bool Protocol::send_fields(List<Item> *list, uint flags)
...
@@ -597,9 +597,23 @@ bool Protocol::send_fields(List<Item> *list, uint flags)
else
else
{
{
/* With conversion */
/* With conversion */
uint
max_char_len
;
int2store
(
pos
,
thd_charset
->
number
);
int2store
(
pos
,
thd_charset
->
number
);
uint
char_len
=
field
.
length
/
item
->
collation
.
collation
->
mbmaxlen
;
/*
int4store
(
pos
+
2
,
char_len
*
thd_charset
->
mbmaxlen
);
For TEXT/BLOB columns, field_length describes the maximum data
length in bytes. There is no limit to the number of characters
that a TEXT column can store, as long as the data fits into
the designated space.
For the rest of textual columns, field_length is evaluated as
char_count * mbmaxlen, where character count is taken from the
definition of the column. In other words, the maximum number
of characters here is limited by the column definition.
*/
max_char_len
=
(
field
.
type
>=
(
int
)
MYSQL_TYPE_TINY_BLOB
&&
field
.
type
<=
(
int
)
MYSQL_TYPE_BLOB
)
?
field
.
length
/
item
->
collation
.
collation
->
mbminlen
:
field
.
length
/
item
->
collation
.
collation
->
mbmaxlen
;
int4store
(
pos
+
2
,
max_char_len
*
thd_charset
->
mbmaxlen
);
}
}
pos
[
6
]
=
field
.
type
;
pos
[
6
]
=
field
.
type
;
int2store
(
pos
+
7
,
field
.
flags
);
int2store
(
pos
+
7
,
field
.
flags
);
...
...
tests/mysql_client_test.c
View file @
d894e304
...
@@ -14638,7 +14638,70 @@ static void test_bug16144()
...
@@ -14638,7 +14638,70 @@ static void test_bug16144()
mysql_stmt_attr_set
(
stmt
,
STMT_ATTR_UPDATE_MAX_LENGTH
,
(
const
void
*
)
&
flag
);
mysql_stmt_attr_set
(
stmt
,
STMT_ATTR_UPDATE_MAX_LENGTH
,
(
const
void
*
)
&
flag
);
mysql_stmt_attr_get
(
stmt
,
STMT_ATTR_UPDATE_MAX_LENGTH
,
(
void
*
)
&
flag
);
mysql_stmt_attr_get
(
stmt
,
STMT_ATTR_UPDATE_MAX_LENGTH
,
(
void
*
)
&
flag
);
DIE_UNLESS
(
flag
==
flag_orig
);
DIE_UNLESS
(
flag
==
flag_orig
);
mysql_stmt_close
(
stmt
);
}
/*
Bug #15613: "libmysqlclient API function mysql_stmt_prepare returns wrong
field length"
*/
static
void
test_bug15613
()
{
MYSQL_STMT
*
stmt
;
const
char
*
stmt_text
;
MYSQL_RES
*
metadata
;
MYSQL_FIELD
*
field
;
int
rc
;
myheader
(
"test_bug15613"
);
/* I. Prepare the table */
rc
=
mysql_query
(
mysql
,
"set names latin1"
);
myquery
(
rc
);
mysql_query
(
mysql
,
"drop table if exists t1"
);
rc
=
mysql_query
(
mysql
,
"create table t1 (t text character set utf8, "
"tt tinytext character set utf8, "
"mt mediumtext character set utf8, "
"lt longtext character set utf8, "
"vl varchar(255) character set latin1,"
"vb varchar(255) character set binary,"
"vu varchar(255) character set utf8)"
);
myquery
(
rc
);
stmt
=
mysql_stmt_init
(
mysql
);
/* II. Check SELECT metadata */
stmt_text
=
(
"select t, tt, mt, lt, vl, vb, vu from t1"
);
rc
=
mysql_stmt_prepare
(
stmt
,
stmt_text
,
strlen
(
stmt_text
));
metadata
=
mysql_stmt_result_metadata
(
stmt
);
field
=
mysql_fetch_fields
(
metadata
);
if
(
!
opt_silent
)
{
printf
(
"Field lengths (client character set is latin1):
\n
"
"text character set utf8:
\t\t
%lu
\n
"
"tinytext character set utf8:
\t\t
%lu
\n
"
"mediumtext character set utf8:
\t\t
%lu
\n
"
"longtext character set utf8:
\t\t
%lu
\n
"
"varchar(255) character set latin1:
\t
%lu
\n
"
"varchar(255) character set binary:
\t
%lu
\n
"
"varchar(255) character set utf8:
\t
%lu
\n
"
,
field
[
0
].
length
,
field
[
1
].
length
,
field
[
2
].
length
,
field
[
3
].
length
,
field
[
4
].
length
,
field
[
5
].
length
,
field
[
6
].
length
);
}
DIE_UNLESS
(
field
[
0
].
length
==
65535
);
DIE_UNLESS
(
field
[
1
].
length
==
255
);
DIE_UNLESS
(
field
[
2
].
length
==
16777215
);
DIE_UNLESS
(
field
[
3
].
length
==
4294967295UL
);
DIE_UNLESS
(
field
[
4
].
length
==
255
);
DIE_UNLESS
(
field
[
5
].
length
==
255
);
DIE_UNLESS
(
field
[
6
].
length
==
255
);
/* III. Cleanup */
rc
=
mysql_query
(
mysql
,
"drop table t1"
);
myquery
(
rc
);
rc
=
mysql_query
(
mysql
,
"set names default"
);
myquery
(
rc
);
mysql_stmt_close
(
stmt
);
mysql_stmt_close
(
stmt
);
}
}
...
@@ -14903,6 +14966,7 @@ static struct my_tests_st my_tests[]= {
...
@@ -14903,6 +14966,7 @@ static struct my_tests_st my_tests[]= {
{
"test_bug14845"
,
test_bug14845
},
{
"test_bug14845"
,
test_bug14845
},
{
"test_bug15510"
,
test_bug15510
},
{
"test_bug15510"
,
test_bug15510
},
{
"test_bug16144"
,
test_bug16144
},
{
"test_bug16144"
,
test_bug16144
},
{
"test_bug15613"
,
test_bug15613
},
{
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