/
MTypeInfo.scala
25 lines (21 loc) · 1.04 KB
/
MTypeInfo.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
package slick.jdbc.meta
import java.sql._
import slick.jdbc.ResultSetAction
import slick.driver.JdbcTypesComponent
/** A wrapper for a row in the ResultSet returned by DatabaseMetaData.getTypeInfo(). */
case class MTypeInfo(
typeName: String, sqlType: Int, precision: Option[Int], literalPrefix: Option[String], literalSuffix: Option[String],
createParams: Option[String], nullable: Option[Boolean], caseSensitive: Boolean, searchable: Short,
unsignedAttribute: Boolean, fixedPrecScale: Boolean, autoIncrement: Boolean, localTypeName: Option[String],
minScale: Short, maxScale: Short, numPrecRadix: Int) {
def sqlTypeName = JdbcTypesComponent.typeNames.get(sqlType)
}
object MTypeInfo {
def getTypeInfo = ResultSetAction[MTypeInfo](_.metaData.getTypeInfo()) { r =>
MTypeInfo(r.<<, r.<<, r.<<, r.<<, r.<<, r.<<, r.nextInt match {
case DatabaseMetaData.columnNoNulls => Some(false)
case DatabaseMetaData.columnNullable => Some(true)
case _ => None
}, r.<<, r.<<, r.<<, r.<<, r.<<, r.<<, r.<<, r.<<, r.<<)
}
}