database example using boost::variant