diff options
author | unknown <jonas@perch.ndb.mysql.com> | 2006-11-22 15:42:03 +0100 |
---|---|---|
committer | unknown <jonas@perch.ndb.mysql.com> | 2006-11-22 15:42:03 +0100 |
commit | 1ca32bbc29064db2f36da47a63e720da99d1b55b (patch) | |
tree | 1c0d35ee0e986df61616d14b9b857b3c4ff22e49 /ndb/src/kernel | |
parent | bb4c84e69e6a9d83a5b3398d0614aad01a358e29 (diff) | |
download | mariadb-git-1ca32bbc29064db2f36da47a63e720da99d1b55b.tar.gz |
ndb - bug#24503
Fix scan filter on bit types
(note should probably be enabled in condition pushdown aswell)
ndb/src/common/util/NdbSqlUtil.cpp:
Add support for comparing bit types
ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
Add new error code
ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp:
Add new error code
ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
Add correct handling of unsupported type
ndb/src/ndbapi/ndberror.c:
Add new error code
Diffstat (limited to 'ndb/src/kernel')
-rw-r--r-- | ndb/src/kernel/blocks/dbtup/Dbtup.hpp | 1 | ||||
-rw-r--r-- | ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp | 5 | ||||
-rw-r--r-- | ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp | 10 |
3 files changed, 16 insertions, 0 deletions
diff --git a/ndb/src/kernel/blocks/dbtup/Dbtup.hpp b/ndb/src/kernel/blocks/dbtup/Dbtup.hpp index 0b66d9a45bb..c068a993792 100644 --- a/ndb/src/kernel/blocks/dbtup/Dbtup.hpp +++ b/ndb/src/kernel/blocks/dbtup/Dbtup.hpp @@ -196,6 +196,7 @@ #define ZTRY_TO_UPDATE_ERROR 888 #define ZCALL_ERROR 890 #define ZTEMPORARY_RESOURCE_FAILURE 891 +#define ZUNSUPPORTED_BRANCH 892 #define ZSTORED_SEIZE_ATTRINBUFREC_ERROR 873 // Part of Scan diff --git a/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp b/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp index e9043a8b52d..07babd72ce1 100644 --- a/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp +++ b/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp @@ -444,6 +444,11 @@ int Dbtup::TUPKEY_abort(Signal* signal, int error_type) }//if break; + case 40: + ljam(); + terrorCode = ZUNSUPPORTED_BRANCH; + break; + default: ndbrequire(false); break; diff --git a/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp b/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp index 13c0bad9c7a..9917ac4e340 100644 --- a/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp +++ b/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp @@ -1876,6 +1876,11 @@ int Dbtup::interpreterNextLab(Signal* signal, // NULL==NULL and NULL<not-NULL res1 = r1_null && r2_null ? 0 : r1_null ? -1 : 1; } else { + jam(); + if (unlikely(sqlType.m_cmp == 0)) + { + return TUPKEY_abort(signal, 40); + } res1 = (*sqlType.m_cmp)(cs, s1, attrLen, s2, argLen, true); } } else { @@ -1883,6 +1888,11 @@ int Dbtup::interpreterNextLab(Signal* signal, // NULL like NULL is true (has no practical use) res1 = r1_null && r2_null ? 0 : -1; } else { + jam(); + if (unlikely(sqlType.m_like == 0)) + { + return TUPKEY_abort(signal, 40); + } res1 = (*sqlType.m_like)(cs, s1, attrLen, s2, argLen); } } |