void WhatsappDatabase::validate() { if (!hasTable("message_thumbnails") || !hasTable("messages_quotes") || !hasTable("messages_links") || !hasColumn("messages", "quoted_row_id") || !hasColumn("messages", "media_caption")) { throw Exception("It seems like you tried to open an older WhatsApp database. Please try to use an older version of WhatsApp Viewer."); } }
DSExprParser::Selector fieldNameToSeries(const string &name) { if (prefixequal(name, "in.") && hasColumn(input_series, name.substr(3))) { return make_pair(&input_series, name.substr(3)); } else if (prefixequal(name, "out.") && hasColumn(output_series, name.substr(4))) { return make_pair(&output_series, name.substr(4)); } else if (prefixequal(name, "prev.") && hasColumn(previous_row_series, name.substr(5))) { return make_pair(&previous_row_series, name.substr(5)); } else if (hasColumn(input_series, name)) { return make_pair(&input_series, name); } else if (hasColumn(output_series, name)) { return make_pair(&output_series, name); } else { return DSExprParser::Selector(); } }
void GlobalRegister::addProjectedColumn(const string& identifier, const harriet::VariableType& type) { if(hasColumn(identifier)) throw harriet::Exception("Provided name '" + identifier + "' for projection is not unique."); values.emplace_back(harriet::Value::createDefault(type)); types.emplace_back(RegisterSlotInfo(nullptr, identifier, types.size(), type)); }
string ResultEntity::getColumn(string col) { if(hasColumn(col)) { return record[col]; } return ""; }
bool ResultEntity::addColumn(string col, string value) { if(hasColumn(col)) { return false; } record.insert(make_pair(col, value)); return true; }
bool StorageMerge::hasColumn(const String & column_name) const { if (column_name == "_table") return true; if (IStorage::hasColumn(column_name)) return true; auto first_table = getFirstTable([](auto &&) { return true; }); if (first_table) return first_table->hasColumn(column_name); return false; }