--- a/src/Pure/Tools/sql.scala Sun Sep 04 21:41:08 2016 +0200
+++ b/src/Pure/Tools/sql.scala Sun Sep 04 22:04:07 2016 +0200
@@ -125,7 +125,9 @@
/* tables */
- sealed case class Table(name: String, columns: List[Column[Any]])
+ def table(name: String, columns: Column[Any]*): Table = new Table(name, columns.toList)
+
+ class Table private[SQL](name: String, columns: List[Column[Any]])
{
Library.duplicates(columns.map(_.name)) match {
case Nil =>
@@ -145,5 +147,8 @@
def sql_drop(strict: Boolean): String =
"DROP TABLE " + (if (strict) "" else " IF EXISTS ") + quote_ident(name)
+
+ override def toString: String =
+ "TABLE " + quote_ident(name) + " " + columns.map(_.toString).mkString("(", ", ", ")")
}
}