Query::Condition PartTypeHelper::conditionFromFqNames(const QStringList &fqNames) { Query::Condition c; c.setSubQueryMode(Query::Or); Q_FOREACH (const QString &fqName, fqNames) { c.addCondition(conditionFromFqName(fqName)); }
bool RelationFetch::parseStream() { Protocol::FetchRelationsCommand cmd(m_command); SelectQueryBuilder<Relation> relationQuery; if (cmd.side() > 0) { Query::Condition c; c.setSubQueryMode(Query::Or); c.addValueCondition(Relation::leftIdFullColumnName(), Query::Equals, cmd.side()); c.addValueCondition(Relation::rightIdFullColumnName(), Query::Equals, cmd.side()); relationQuery.addCondition(c); } else { if (cmd.left() > 0) { relationQuery.addValueCondition(Relation::leftIdFullColumnName(), Query::Equals, cmd.left()); } if (cmd.right() > 0) { relationQuery.addValueCondition(Relation::rightIdFullColumnName(), Query::Equals, cmd.right()); } } if (!cmd.types().isEmpty()) { relationQuery.addJoin(QueryBuilder::InnerJoin, RelationType::tableName(), Relation::typeIdFullColumnName(), RelationType::idFullColumnName()); QStringList types; types.reserve(cmd.types().size()); Q_FOREACH (const QByteArray &type, cmd.types()) { types << QString::fromUtf8(type); } relationQuery.addValueCondition(RelationType::nameFullColumnName(), Query::In, types); }
Query::Condition PartTypeHelper::conditionFromFqName(const QString &fqName) { const QPair<QString, QString> p = parseFqName(fqName); Query::Condition c; c.setSubQueryMode(Query::And); c.addValueCondition(PartType::nsFullColumnName(), Query::Equals, p.first); c.addValueCondition(PartType::nameFullColumnName(), Query::Equals, p.second); return c; }