compare bug in temporary tables#64
Conversation
| if (result.has_value()) { | ||
| return result.value(); | ||
| } | ||
| return const_cast<Field *>(m_mysql_field)->key_cmp(lhs_data, rhs_data); |
There was a problem hiding this comment.
So the call WAS going through sql/field.cc Line 6757, which was trying to use the length prefix. But if it is NOT a custom type, it is doing the same thing below on Line 6764. Why is that not problematic? Do we have a different representation than other varstring?
There was a problem hiding this comment.
We had a discussion offline, it is because we aren't using an encoding, which is not something that other binary varchars would use. I am not sure if there is a simplification, that would get rid of these special cases, but let's unblock for now.
79a1a5e to
5660f35
Compare
| int cmp_complex(const unsigned char *data1, size_t len1, | ||
| const unsigned char *data2, size_t len2) { | ||
| if (len1 < kComplexSize || len2 < kComplexSize) { | ||
| assert(len1 != 0); |
There was a problem hiding this comment.
Do we want this, or len1 != kComplexSize and len2 as well?
There was a problem hiding this comment.
I replace this assert in a follow up PR, with a warning, so I don't think it is worth changing here.
No description provided.