Commit 48429203 authored by unknown's avatar unknown
Browse files

Merge pnousiainen@bk-internal.mysql.com:/home/bk/mysql-5.0-ndb

into mysql.com:/space/pekka/ndb/version/my50-ndb

parents 3341bb3a 161a4349
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -235,13 +235,17 @@ auto
4
select auto from t1 where 
string like "b%" and
vstring like "b%"
vstring like "b%" and
bin like concat(0xBB, '%') and
vbin like concat(0xBB, '%')
order by auto;
auto
2
select auto from t1 where 
string not like "b%" and
vstring not like "b%"
vstring not like "b%" and
bin not like concat(0xBB, '%') and
vbin not like concat(0xBB, '%')
order by auto;
auto
1
+6 −2
Original line number Diff line number Diff line
@@ -236,12 +236,16 @@ order by auto;
# Test LIKE/NOT LIKE
select auto from t1 where 
string like "b%" and
vstring like "b%"
vstring like "b%" and
bin like concat(0xBB, '%') and
vbin like concat(0xBB, '%')
order by auto;

select auto from t1 where 
string not like "b%" and
vstring not like "b%"
vstring not like "b%" and
bin not like concat(0xBB, '%') and
vbin not like concat(0xBB, '%')
order by auto;

# Various tests 
+13 −0
Original line number Diff line number Diff line
@@ -76,8 +76,10 @@ public:
  Uint32 m_attrSize;            // element size (size when arraySize==1)
  Uint32 m_arraySize;           // length or length+2 for Var* types
  Uint32 m_keyInfoPos;
  // TODO: use bits in attr desc 2
  bool getInterpretableType() const ;
  bool getCharType() const;
  bool getStringType() const;
  bool getBlobType() const;

  /**
@@ -469,6 +471,17 @@ NdbColumnImpl::getCharType() const {
          m_type == NdbDictionary::Column::Longvarchar);
}

inline
bool 
NdbColumnImpl::getStringType() const {
  return (m_type == NdbDictionary::Column::Char ||
          m_type == NdbDictionary::Column::Varchar ||
          m_type == NdbDictionary::Column::Longvarchar ||
          m_type == NdbDictionary::Column::Binary ||
          m_type == NdbDictionary::Column::Varbinary ||
          m_type == NdbDictionary::Column::Longvarbinary);
}
   
inline
bool 
NdbColumnImpl::getBlobType() const {
+13 −7
Original line number Diff line number Diff line
@@ -1014,8 +1014,14 @@ NdbOperation::branch_col(Uint32 type,
			 Uint32 ColId, const void * val, Uint32 len, 
			 bool nopad, Uint32 Label){

  DBUG_ENTER("NdbOperation::branch_col");
  DBUG_PRINT("enter", ("type=%u col=%u val=0x%x len=%u label=%u",
                       type, ColId, val, len, Label));
  if (val != NULL)
    DBUG_DUMP("value", (char*)val, len);

  if (initial_interpreterCheck() == -1)
    return -1;
    DBUG_RETURN(-1);

  Interpreter::BinaryCondition c = (Interpreter::BinaryCondition)type;
  
@@ -1029,26 +1035,26 @@ NdbOperation::branch_col(Uint32 type,
  if (val == NULL)
    len = 0;
  else {
    if (! col->getCharType()) {
    if (! col->getStringType()) {
      // prevent assert in NdbSqlUtil on length error
      Uint32 sizeInBytes = col->m_attrSize * col->m_arraySize;
      if (len != 0 && len != sizeInBytes)
      {
        setErrorCodeAbort(4209);
        return -1;
        DBUG_RETURN(-1);
      }
      len = sizeInBytes;
    }
  }

  if (insertATTRINFO(Interpreter::BranchCol(c, 0, 0, false)) == -1)
    return -1;
    DBUG_RETURN(-1);
  
  if (insertBranch(Label) == -1)
    return -1;
    DBUG_RETURN(-1);
  
  if (insertATTRINFO(Interpreter::BranchCol_2(ColId, len)))
    return -1;
    DBUG_RETURN(-1);
  
  Uint32 len2 = Interpreter::mod4(len);
  if(len2 == len){
@@ -1065,7 +1071,7 @@ NdbOperation::branch_col(Uint32 type,
  }
  
  theErrorLine++;
  return 0;
  DBUG_RETURN(0);
}

int 
+2 −2
Original line number Diff line number Diff line
@@ -405,8 +405,8 @@ NdbScanFilterImpl::cond_col_const(Interpreter::BinaryCondition op,
    return -1;
  }
  
  (m_operation->* branch)(AttrId, value, len, false, m_current.m_ownLabel);
  return 0;
  int ret = (m_operation->* branch)(AttrId, value, len, false, m_current.m_ownLabel);
  return ret;
}

int