/
MIndexInfo.scala
26 lines (22 loc) · 1016 Bytes
/
MIndexInfo.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package scala.slick.jdbc.meta
import scala.slick.jdbc.{ResultSetInvoker, UnitInvoker}
/**
* A wrapper for a row in the ResultSet returned by DatabaseMetaData.getIndexInfo().
*/
case class MIndexInfo(table: MQName, nonUnique: Boolean, indexQualifier: Option[String],
indexName: Option[String], indexType: Short, ordinalPosition: Short,
column: Option[String], ascending: Option[Boolean],
cardinality: Int, pages: Int, filterCondition: Option[String]){
@deprecated("Use column instead.","2.0.0")
def columnName = column
}
object MIndexInfo {
def getIndexInfo(table: MQName, unique: Boolean = false, approximate: Boolean = false) = ResultSetInvoker[MIndexInfo](
_.metaData.getIndexInfo(table.catalog_?, table.schema_?, table.name, unique, approximate)) { r =>
MIndexInfo(MQName.from(r), r.<<, r.<<, r.<<, r.<<, r.<<, r.<<, r.nextStringOption match {
case Some("A") => Some(true)
case Some("D") => Some(false)
case _ => None
}, r.<<, r.<<, r.<<)
}
}