override def multiGet[K1 <: MySqlValue]()

in storehaus-mysql/src/main/scala/com/twitter/storehaus/mysql/MySqlStore.scala [148:168]


  override def multiGet[K1 <: MySqlValue](ks: Set[K1]): Map[K1, Future[Option[MySqlValue]]] = {
    if (ks.isEmpty) {
      Map.empty
    } else {
      // build preparedstatement based on keyset size
      val selectSql = MULTI_SELECT_SQL_PREFIX + buildPlaceholders("?", ks.size, ",", "(", ")")

      val params = toTwitterFuture(
        ks.map(String2MySqlValueInjection.invert(_).map(s => Parameter.wrap(s.getBytes))).toSeq)
      val mysqlResult = params.flatMap { ps =>
        client.prepare(selectSql).select(ps: _*) { row =>
          (row(kCol).map(MySqlValue(_)), row(vCol).map(MySqlValue(_)))
        }
      }
      FutureOps.liftValues(
        ks,
        mysqlResult.map(rows => rows.iterator.collect { case (Some(k), v) => (k, v) }.toMap),
        (k: K1) => Future.None
      )
    }
  }