Commit e2f23fb8 authored by pekka@sama.ndb.mysql.com's avatar pekka@sama.ndb.mysql.com
Browse files

Merge sama.ndb.mysql.com:/export/space/pekka/ndb/version/my50-ndb

into  sama.ndb.mysql.com:/export/space/pekka/ndb/version/my50-bug34107
parents f16b8a19 2b789578
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1904,6 +1904,12 @@ a b d
10	1	4369
20	2	8738
50	5	21845
-- big filter just below limit
a	b	d
10	1	4369
20	2	8738
50	5	21845
-- big filter just above limit
a	b	d
10	1	4369
20	2	8738
+12 −739

File changed.

Preview size limit exceeded, changes collapsed.

+2 −1
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
#define NDB_MAX_TUPLE_SIZE (NDB_MAX_TUPLE_SIZE_IN_WORDS*4)
#define NDB_MAX_ACTIVE_EVENTS 100

#define NDB_MAX_SCANFILTER_SIZE_IN_WORDS 50000
/* TUP ZATTR_BUFFER_SIZE 16384 (minus 1) minus place for getValue()s */
#define NDB_MAX_SCANFILTER_SIZE_IN_WORDS (16384 - 1 - 1024)

#endif
+3 −1
Original line number Diff line number Diff line
@@ -198,6 +198,7 @@
#define ZUNSUPPORTED_BRANCH 892

#define ZSTORED_SEIZE_ATTRINBUFREC_ERROR 873 // Part of Scan
#define ZSTORED_TOO_MUCH_ATTRINFO_ERROR 874

#define ZREAD_ONLY_CONSTRAINT_VIOLATION 893
#define ZVAR_SIZED_NOT_SUPPORTED 894
@@ -2173,7 +2174,8 @@ private:
                     Operationrec* regOperPtr,
                     Uint32 lenAttrInfo);
  void storedSeizeAttrinbufrecErrorLab(Signal* signal,
                                       Operationrec* regOperPtr);
                                       Operationrec* regOperPtr,
                                       Uint32 errorCode);
  bool storedProcedureAttrInfo(Signal* signal,
                               Operationrec* regOperPtr,
                               Uint32 length,
+8 −0
Original line number Diff line number Diff line
@@ -77,6 +77,14 @@ void Dbtup::copyAttrinfo(Signal* signal,
    RbufLen = copyAttrBufPtr.p->attrbuf[ZBUF_DATA_LEN];
    Rnext = copyAttrBufPtr.p->attrbuf[ZBUF_NEXT];
    Rfirst = cfirstfreeAttrbufrec;
    /*
     * ATTRINFO comes from 2 mutually exclusive places:
     * 1) TUPKEYREQ (also interpreted part)
     * 2) STORED_PROCREQ before scan start
     * Assert here that both have a check for overflow.
     * The "<" instead of "<=" is intentional.
     */
    ndbrequire(RinBufIndex + RbufLen < ZATTR_BUFFER_SIZE);
    MEMCOPY_NO_WORDS(&inBuffer[RinBufIndex],
                     &copyAttrBufPtr.p->attrbuf[0],
                     RbufLen);
Loading