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
27a2d1b6
Commit
27a2d1b6
authored
Apr 20, 2006
by
mskold@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge mysql.com:/usr/local/home/marty/MySQL/mysql-5.0
into mysql.com:/usr/local/home/marty/MySQL/mysql-5.1-new
parents
15ca6daf
22d345bf
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
47 additions
and
37 deletions
+47
-37
storage/ndb/include/kernel/signaldata/TupFrag.hpp
storage/ndb/include/kernel/signaldata/TupFrag.hpp
+2
-1
storage/ndb/include/util/NdbSqlUtil.hpp
storage/ndb/include/util/NdbSqlUtil.hpp
+3
-3
storage/ndb/src/common/util/NdbSqlUtil.cpp
storage/ndb/src/common/util/NdbSqlUtil.cpp
+28
-24
storage/ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp
storage/ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp
+3
-2
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp
+11
-7
No files found.
storage/ndb/include/kernel/signaldata/TupFrag.hpp
View file @
27a2d1b6
...
...
@@ -147,7 +147,8 @@ public:
enum
ErrorCode
{
NoError
=
0
,
InvalidCharset
=
743
,
TooManyBitsUsed
=
831
TooManyBitsUsed
=
831
,
UnsupportedType
=
906
};
private:
Uint32
userPtr
;
...
...
storage/ndb/include/util/NdbSqlUtil.hpp
View file @
27a2d1b6
...
...
@@ -117,9 +117,9 @@ public:
/**
* Check character set.
*/
static
bool
usable_in
_pk
(
Uint32
typeId
,
const
void
*
info
);
static
bool
usable_in
_hash_index
(
Uint32
typeId
,
const
void
*
info
);
static
bool
usable_in
_ordered_index
(
Uint32
typeId
,
const
void
*
info
);
static
uint
check_column_for
_pk
(
Uint32
typeId
,
const
void
*
info
);
static
uint
check_column_for
_hash_index
(
Uint32
typeId
,
const
void
*
info
);
static
uint
check_column_for
_ordered_index
(
Uint32
typeId
,
const
void
*
info
);
/**
* Get number of length bytes and length from variable length string.
...
...
storage/ndb/src/common/util/NdbSqlUtil.cpp
View file @
27a2d1b6
...
...
@@ -872,8 +872,8 @@ NdbSqlUtil::likeLongvarbinary(const void* info, const void* p1, unsigned n1, con
// check charset
bool
NdbSqlUtil
::
usable_in
_pk
(
Uint32
typeId
,
const
void
*
info
)
uint
NdbSqlUtil
::
check_column_for
_pk
(
Uint32
typeId
,
const
void
*
info
)
{
const
Type
&
type
=
getType
(
typeId
);
switch
(
type
.
m_typeId
)
{
...
...
@@ -882,12 +882,14 @@ NdbSqlUtil::usable_in_pk(Uint32 typeId, const void* info)
case
Type
:
:
Longvarchar
:
{
const
CHARSET_INFO
*
cs
=
(
const
CHARSET_INFO
*
)
info
;
return
cs
!=
0
&&
if
(
cs
!=
0
&&
cs
->
cset
!=
0
&&
cs
->
coll
!=
0
&&
cs
->
coll
->
strnxfrm
!=
0
&&
cs
->
strxfrm_multiply
<=
MAX_XFRM_MULTIPLY
;
cs
->
strxfrm_multiply
<=
MAX_XFRM_MULTIPLY
)
return
0
;
else
return
743
;
}
break
;
case
Type
:
:
Undefined
:
...
...
@@ -896,19 +898,19 @@ NdbSqlUtil::usable_in_pk(Uint32 typeId, const void* info)
case
Type
:
:
Bit
:
break
;
default:
return
true
;
return
0
;
}
return
false
;
return
906
;
}
bool
NdbSqlUtil
::
usable_in
_hash_index
(
Uint32
typeId
,
const
void
*
info
)
uint
NdbSqlUtil
::
check_column_for
_hash_index
(
Uint32
typeId
,
const
void
*
info
)
{
return
usable_in
_pk
(
typeId
,
info
);
return
check_column_for
_pk
(
typeId
,
info
);
}
bool
NdbSqlUtil
::
usable_in
_ordered_index
(
Uint32
typeId
,
const
void
*
info
)
uint
NdbSqlUtil
::
check_column_for
_ordered_index
(
Uint32
typeId
,
const
void
*
info
)
{
const
Type
&
type
=
getType
(
typeId
);
if
(
type
.
m_cmp
==
NULL
)
...
...
@@ -919,13 +921,15 @@ NdbSqlUtil::usable_in_ordered_index(Uint32 typeId, const void* info)
case
Type
:
:
Longvarchar
:
{
const
CHARSET_INFO
*
cs
=
(
const
CHARSET_INFO
*
)
info
;
return
cs
!=
0
&&
if
(
cs
!=
0
&&
cs
->
cset
!=
0
&&
cs
->
coll
!=
0
&&
cs
->
coll
->
strnxfrm
!=
0
&&
cs
->
coll
->
strnncollsp
!=
0
&&
cs
->
strxfrm_multiply
<=
MAX_XFRM_MULTIPLY
;
cs
->
strxfrm_multiply
<=
MAX_XFRM_MULTIPLY
)
return
0
;
else
return
743
;
}
break
;
case
Type
:
:
Undefined
:
...
...
@@ -934,9 +938,9 @@ NdbSqlUtil::usable_in_ordered_index(Uint32 typeId, const void* info)
case
Type
:
:
Bit
:
// can be fixed
break
;
default:
return
true
;
return
0
;
}
return
false
;
return
906
;
}
// utilities
...
...
storage/ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp
View file @
27a2d1b6
...
...
@@ -215,11 +215,12 @@ Dbtux::execTUX_ADD_ATTRREQ(Signal* signal)
break
;
}
if
(
descAttr
.
m_charset
!=
0
)
{
uint
err
;
CHARSET_INFO
*
cs
=
all_charsets
[
descAttr
.
m_charset
];
ndbrequire
(
cs
!=
0
);
if
(
!
NdbSqlUtil
::
usable_in_ordered_index
(
descAttr
.
m_typeId
,
cs
))
{
if
(
(
err
=
NdbSqlUtil
::
check_column_for_ordered_index
(
descAttr
.
m_typeId
,
cs
)
))
{
jam
();
errorCode
=
TuxAddAttrRef
::
InvalidCharset
;
errorCode
=
(
TuxAddAttrRef
::
ErrorCode
)
err
;
break
;
}
}
...
...
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp
View file @
27a2d1b6
...
...
@@ -2292,7 +2292,7 @@ NdbDictInterface::createOrAlterTable(Ndb & ndb,
NdbTableImpl
&
impl
,
bool
alter
)
{
unsigned
i
;
unsigned
i
,
err
;
char
*
ts_names
[
MAX_NDB_PARTITIONS
];
DBUG_ENTER
(
"NdbDictInterface::createOrAlterTable"
);
...
...
@@ -2593,8 +2593,10 @@ loop:
DBUG_RETURN
(
-
1
);
}
// primary key type check
if
(
col
->
m_pk
&&
!
NdbSqlUtil
::
usable_in_pk
(
col
->
m_type
,
col
->
m_cs
))
{
m_error
.
code
=
(
col
->
m_cs
!=
0
?
743
:
739
);
if
(
col
->
m_pk
&&
(
err
=
NdbSqlUtil
::
check_column_for_pk
(
col
->
m_type
,
col
->
m_cs
)))
{
m_error
.
code
=
err
;
DBUG_RETURN
(
-
1
);
}
// distribution key not supported for Char attribute
...
...
@@ -3025,7 +3027,7 @@ NdbDictInterface::createIndex(Ndb & ndb,
{
//validate();
//aggregate();
unsigned
i
;
unsigned
i
,
err
;
UtilBufferWriter
w
(
m_buffer
);
const
size_t
len
=
strlen
(
impl
.
m_externalName
.
c_str
())
+
1
;
if
(
len
>
MAX_TAB_NAME_SIZE
)
{
...
...
@@ -3074,10 +3076,12 @@ NdbDictInterface::createIndex(Ndb & ndb,
// index key type check
if
(
it
==
DictTabInfo
::
UniqueHashIndex
&&
!
NdbSqlUtil
::
usable_in_hash_index
(
col
->
m_type
,
col
->
m_cs
)
||
(
err
=
NdbSqlUtil
::
check_column_for_hash_index
(
col
->
m_type
,
col
->
m_cs
))
||
it
==
DictTabInfo
::
OrderedIndex
&&
!
NdbSqlUtil
::
usable_in_ordered_index
(
col
->
m_type
,
col
->
m_cs
))
{
m_error
.
code
=
743
;
(
err
=
NdbSqlUtil
::
check_column_for_ordered_index
(
col
->
m_type
,
col
->
m_cs
)))
{
m_error
.
code
=
err
;
return
-
1
;
}
// API uses external column number to talk to DICT
...
...
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