common::Error SsdbDriver::commandCreateImpl(CommandCreateKey* command, std::string* cmdstring) const { if (!command || !cmdstring) { return common::make_error_value("Invalid input argument", common::ErrorValue::E_ERROR); } char patternResult[1024] = {0}; NDbKValue key = command->key(); NValue val = command->value(); common::Value* rval = val.get(); std::string key_str = key.keyString(); std::string value_str = common::convertToString(rval, " "); common::Value::Type t = key.type(); if (t == common::Value::TYPE_ARRAY) { common::SNPrintf(patternResult, sizeof(patternResult), SET_KEY_LIST_PATTERN_2ARGS_SS, key_str, value_str); } else if (t == common::Value::TYPE_SET) { common::SNPrintf(patternResult, sizeof(patternResult), SET_KEY_SET_PATTERN_2ARGS_SS, key_str, value_str); } else if (t == common::Value::TYPE_ZSET) { common::SNPrintf(patternResult, sizeof(patternResult), SET_KEY_ZSET_PATTERN_2ARGS_SS, key_str, value_str); } else if (t == common::Value::TYPE_HASH) { common::SNPrintf(patternResult, sizeof(patternResult), SET_KEY_HASH_PATTERN_2ARGS_SS, key_str, value_str); } else { common::SNPrintf(patternResult, sizeof(patternResult), SET_KEY_PATTERN_2ARGS_SS, key_str, value_str); } *cmdstring = patternResult; return common::Error(); }