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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
3bf308a1
Commit
3bf308a1
authored
Apr 20, 2006
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/usr/local/home/marty/MySQL/mysql-5.0
parents
27b40827
986d3fc0
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
49 additions
and
39 deletions
+49
-39
mysql-test/r/ndb_bitfield.result
mysql-test/r/ndb_bitfield.result
+2
-2
ndb/include/kernel/signaldata/TupFrag.hpp
ndb/include/kernel/signaldata/TupFrag.hpp
+2
-1
ndb/include/util/NdbSqlUtil.hpp
ndb/include/util/NdbSqlUtil.hpp
+3
-3
ndb/src/common/util/NdbSqlUtil.cpp
ndb/src/common/util/NdbSqlUtil.cpp
+28
-24
ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp
ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp
+3
-2
ndb/src/ndbapi/NdbDictionaryImpl.cpp
ndb/src/ndbapi/NdbDictionaryImpl.cpp
+11
-7
No files found.
mysql-test/r/ndb_bitfield.result
View file @
3bf308a1
...
...
@@ -201,13 +201,13 @@ create table t1 (
pk1 bit(9) not null primary key,
b int
) engine=ndbcluster;
ERROR HY000: Can't create table './test/t1.frm' (errno:
739
)
ERROR HY000: Can't create table './test/t1.frm' (errno:
906
)
create table t1 (
pk1 int not null primary key,
b bit(9),
key(b)
) engine=ndbcluster;
ERROR HY000: Can't create table './test/t1.frm' (errno:
743
)
ERROR HY000: Can't create table './test/t1.frm' (errno:
906
)
create table t1 (
pk1 int primary key,
b bit(32) not null
...
...
ndb/include/kernel/signaldata/TupFrag.hpp
View file @
3bf308a1
...
...
@@ -146,7 +146,8 @@ public:
enum
ErrorCode
{
NoError
=
0
,
InvalidCharset
=
743
,
TooManyBitsUsed
=
831
TooManyBitsUsed
=
831
,
UnsupportedType
=
906
};
private:
Uint32
userPtr
;
...
...
ndb/include/util/NdbSqlUtil.hpp
View file @
3bf308a1
...
...
@@ -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.
...
...
ndb/src/common/util/NdbSqlUtil.cpp
View file @
3bf308a1
...
...
@@ -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
&&
cs
->
cset
!=
0
&&
cs
->
coll
!=
0
&&
cs
->
coll
->
strnxfrm
!=
0
&&
cs
->
strxfrm_multiply
<=
MAX_XFRM_MULTIPLY
;
if
(
cs
!=
0
&&
cs
->
cset
!=
0
&&
cs
->
coll
!=
0
&&
cs
->
coll
->
strnxfrm
!=
0
&&
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
&&
cs
->
cset
!=
0
&&
cs
->
coll
!=
0
&&
cs
->
coll
->
strnxfrm
!=
0
&&
cs
->
coll
->
strnncollsp
!=
0
&&
cs
->
strxfrm_multiply
<=
MAX_XFRM_MULTIPLY
;
if
(
cs
!=
0
&&
cs
->
cset
!=
0
&&
cs
->
coll
!=
0
&&
cs
->
coll
->
strnxfrm
!=
0
&&
cs
->
coll
->
strnncollsp
!=
0
&&
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
...
...
ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp
View file @
3bf308a1
...
...
@@ -217,11 +217,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
;
}
}
...
...
ndb/src/ndbapi/NdbDictionaryImpl.cpp
View file @
3bf308a1
...
...
@@ -1573,7 +1573,7 @@ NdbDictInterface::createOrAlterTable(Ndb & ndb,
bool
alter
)
{
DBUG_ENTER
(
"NdbDictInterface::createOrAlterTable"
);
unsigned
i
;
unsigned
i
,
err
;
if
((
unsigned
)
impl
.
getNoOfPrimaryKeys
()
>
NDB_MAX_NO_OF_ATTRIBUTES_IN_KEY
){
m_error
.
code
=
4317
;
DBUG_RETURN
(
-
1
);
...
...
@@ -1683,8 +1683,10 @@ NdbDictInterface::createOrAlterTable(Ndb & ndb,
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
...
...
@@ -2157,7 +2159,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
)
{
...
...
@@ -2208,10 +2210,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
;
}
attributeList
.
id
[
i
]
=
col
->
m_attrId
;
...
...
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