diff --git a/src/libmdb/props.c b/src/libmdb/props.c index b647d87..4d39468 100644 --- a/src/libmdb/props.c +++ b/src/libmdb/props.c @@ -196,6 +196,7 @@ mdb_kkd_to_props(MdbHandle *mdb, void *buffer, size_t len) { break; case 0x00: case 0x01: + case 0x02: if (!names) { fprintf(stderr,"sequence error!\n"); break; diff --git a/src/libmdb/sargs.c b/src/libmdb/sargs.c index fcf9557..ef1456b 100644 --- a/src/libmdb/sargs.c +++ b/src/libmdb/sargs.c @@ -212,6 +212,8 @@ int mdb_test_sarg(MdbHandle *mdb, MdbColumn *col, MdbSargNode *node, MdbField *field) { char tmpbuf[256]; + char* val; + int ret; if (node->op == MDB_ISNULL) return field->is_null?1:0; @@ -233,6 +235,13 @@ mdb_test_sarg(MdbHandle *mdb, MdbColumn *col, MdbSargNode *node, MdbField *field case MDB_TEXT: mdb_unicode2ascii(mdb, field->value, field->siz, tmpbuf, 256); return mdb_test_string(node, tmpbuf); + case MDB_MEMO: + val = mdb_col_to_string(mdb, mdb->pg_buf, field->start, col->col_type, (gint32)mdb_get_int32(field->value, 0)); + //printf("%s\n",val); + ret = mdb_test_string(node, val); + g_free(val); + return ret; + break; case MDB_DATETIME: return mdb_test_double(node->op, poor_mans_trunc(node->value.d), poor_mans_trunc(mdb_get_double(field->value, 0))); default: