diff options
author | unknown <pekka@sama.ndb.mysql.com> | 2007-10-04 18:37:49 +0200 |
---|---|---|
committer | unknown <pekka@sama.ndb.mysql.com> | 2007-10-04 18:37:49 +0200 |
commit | a4d767cbabbe88afce29575b3fe88743e1341054 (patch) | |
tree | 1a9987cddd83d89d690c94781c4b1791b4b53c56 /sql/ha_ndbcluster_cond.cc | |
parent | 060588696e5fcad6039a9145661e1a9cccf9d2d3 (diff) | |
parent | d0d6fb96a634fcb894522d13a366edf073f1e67f (diff) | |
download | mariadb-git-a4d767cbabbe88afce29575b3fe88743e1341054.tar.gz |
Merge sama.ndb.mysql.com:/export/space/pekka/ndb/version/my50-ndb
into sama.ndb.mysql.com:/export/space/pekka/ndb/version/my51-bug29390
sql/ha_ndbcluster_cond.cc:
Auto merged
mysql-test/suite/ndb/r/ndb_condition_pushdown.result:
Auto merged
mysql-test/suite/ndb/t/ndb_condition_pushdown.test:
Auto merged
storage/ndb/include/kernel/signaldata/ScanTab.hpp:
Auto merged
storage/ndb/include/ndbapi/NdbScanFilter.hpp:
Auto merged
storage/ndb/include/ndbapi/ndbapi_limits.h:
Auto merged
storage/ndb/src/ndbapi/NdbScanFilter.cpp:
Auto merged
storage/ndb/src/ndbapi/NdbScanOperation.cpp:
Auto merged
storage/ndb/src/ndbapi/ndberror.c:
ul, add code (4294) in post-merge
storage/ndb/include/ndbapi/Ndb.hpp:
SCCS merged
Diffstat (limited to 'sql/ha_ndbcluster_cond.cc')
-rw-r--r-- | sql/ha_ndbcluster_cond.cc | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/sql/ha_ndbcluster_cond.cc b/sql/ha_ndbcluster_cond.cc index 94342c6d2ad..d8dff3c7e2f 100644 --- a/sql/ha_ndbcluster_cond.cc +++ b/sql/ha_ndbcluster_cond.cc @@ -1338,9 +1338,23 @@ ha_ndbcluster_cond::generate_scan_filter(NdbScanOperation *op) if (m_cond_stack) { - NdbScanFilter filter(op); + NdbScanFilter filter(op, false); // don't abort on too large - DBUG_RETURN(generate_scan_filter_from_cond(filter)); + int ret=generate_scan_filter_from_cond(filter); + if (ret != 0) + { + const NdbError& err=filter.getNdbError(); + if (err.code == NdbScanFilter::FilterTooLarge) + { + // err.message has static storage + DBUG_PRINT("info", ("%s", err.message)); + push_warning(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, + err.code, err.message); + ret=0; + } + } + if (ret != 0) + DBUG_RETURN(ret); } else { @@ -1391,7 +1405,7 @@ int ha_ndbcluster_cond::generate_scan_filter_from_key(NdbScanOperation *op, { KEY_PART_INFO* key_part= key_info->key_part; KEY_PART_INFO* end= key_part+key_info->key_parts; - NdbScanFilter filter(op); + NdbScanFilter filter(op, true); // abort on too large int res; DBUG_ENTER("generate_scan_filter_from_key"); |