throw a better error message for row size errors. addresses #1766

git-svn-id: file:///svn/toku/tokudb@12659 c7de825b-a66e-492c-adef-691d508d4ae1
This commit is contained in:
Rich Prohaska 2013-04-16 23:57:54 -04:00 committed by Yoni Fogel
parent 30d18a7eaa
commit d9e71a1691

View file

@ -3115,11 +3115,13 @@ db_put_check_size_constraints(DB *db, DBT *key, DBT *val) {
if (dupsort) {
limit = nodesize / BRT_FANOUT;
if (key->size + val->size > limit)
r = toku_ydb_do_error(db->dbenv, EINVAL, "The largest (key + val) item allowed is %u bytes", limit-1);
r = toku_ydb_do_error(db->dbenv, EINVAL, "The largest row (key + val) allowed is %u bytes", limit);
} else {
limit = nodesize / BRT_FANOUT;
if (key->size > limit || val->size > nodesize)
r = toku_ydb_do_error(db->dbenv, EINVAL, "The largest key or val item allowed is %u bytes", limit-1);
if (key->size > limit)
r = toku_ydb_do_error(db->dbenv, EINVAL, "The largest key allowed is %u bytes", limit);
else if (val->size > nodesize)
r = toku_ydb_do_error(db->dbenv, EINVAL, "The largest value allowed is %u bytes", nodesize);
}
return r;
}