Skip to content

Commit

Permalink
Regen sources used in typo
Browse files Browse the repository at this point in the history
  • Loading branch information
oyvindberg committed Mar 21, 2024
1 parent be18e48 commit 47bcaca
Show file tree
Hide file tree
Showing 36 changed files with 449 additions and 239 deletions.
14 changes: 7 additions & 7 deletions tests/src/scala/typo/DbTest.scala
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ class DbTest extends AnyFunSuite with TypeCheckedTripleEquals {
"jdbc:postgresql://localhost:6432/postgres?user=postgres&password=password"
)

println(information_schema.columns.ColumnsViewRepoImpl.selectAll.take(1))
println(information_schema.key_column_usage.KeyColumnUsageViewRepoImpl.selectAll.take(1))
println(information_schema.referential_constraints.ReferentialConstraintsViewRepoImpl.selectAll.take(1))
println(information_schema.table_constraints.TableConstraintsViewRepoImpl.selectAll.take(1))
println(information_schema.tables.TablesViewRepoImpl.selectAll.take(1))
println(ViewFindAllSqlRepoImpl().take(1))
println(DomainsSqlRepoImpl().take(1))
println((new information_schema.columns.ColumnsViewRepoImpl).selectAll.take(1))
println((new information_schema.key_column_usage.KeyColumnUsageViewRepoImpl).selectAll.take(1))
println((new information_schema.referential_constraints.ReferentialConstraintsViewRepoImpl).selectAll.take(1))
println((new information_schema.table_constraints.TableConstraintsViewRepoImpl).selectAll.take(1))
println((new information_schema.tables.TablesViewRepoImpl).selectAll.take(1))
println((new ViewFindAllSqlRepoImpl)().take(1))
println((new DomainsSqlRepoImpl)().take(1))
}
}
111 changes: 111 additions & 0 deletions typo/generated-and-checked-in/typo/generated/Text.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
/**
* File has been automatically generated by `typo` for internal use.
*
* IF YOU CHANGE THIS FILE YOUR CHANGES WILL BE OVERWRITTEN.
*
* (If you're developing `typo` and want to change it: run `bleep generate-sources`)
*/
package typo
package generated



/** This is `Text` ported from doobie.
*
* It is used to encode rows in string format for the COPY command.
*
* The generic derivation part of the code is stripped, along with comments.
*/
trait Text[A] { outer =>
def unsafeEncode(a: A, sb: StringBuilder): Unit
def unsafeArrayEncode(a: A, sb: StringBuilder): Unit = unsafeEncode(a, sb)

final def contramap[B](f: B => A): Text[B] =
new Text[B] {
override def unsafeArrayEncode(a: B, sb: StringBuilder): Unit = outer.unsafeArrayEncode(f(a), sb)
override def unsafeEncode(a: B, sb: StringBuilder): Unit = outer.unsafeEncode(f(a), sb)
}
}

object Text {
def apply[A](implicit ev: Text[A]): ev.type = ev

val DELIMETER: Char = '\t'
val NULL: String = "\\N"

def instance[A](f: (A, StringBuilder) => Unit): Text[A] = (sb, a) => f(sb, a)

// String encoder escapes any embedded `QUOTE` characters.
implicit val stringInstance: Text[String] =
new Text[String] {
// Standard char encodings that don't differ in array context
def stdChar(c: Char, sb: StringBuilder): StringBuilder =
c match {
case '\b' => sb.append("\\b")
case '\f' => sb.append("\\f")
case '\n' => sb.append("\\n")
case '\r' => sb.append("\\r")
case '\t' => sb.append("\\t")
case 0x0b => sb.append("\\v")
case c => sb.append(c)
}

def unsafeEncode(s: String, sb: StringBuilder): Unit =
s.foreach {
case '\\' => sb.append("\\\\") // backslash must be doubled
case c => stdChar(c, sb)
}

// I am not confident about this encoder. Postgres seems not to be able to cope with low
// control characters or high whitespace characters so these are simply filtered out in the
// tests. It should accommodate arrays of non-pathological strings but it would be nice to
// have a complete specification of what's actually happening.
override def unsafeArrayEncode(s: String, sb: StringBuilder): Unit = {
sb.append('"')
s.foreach {
case '\"' => sb.append("\\\\\"")
case '\\' => sb.append("\\\\\\\\") // srsly
case c => stdChar(c, sb)
}
sb.append('"')
()
}
}

implicit val charInstance: Text[Char] = instance { (n, sb) => sb.append(n.toString); () }
implicit val intInstance: Text[Int] = instance { (n, sb) => sb.append(n); () }
implicit val shortInstance: Text[Short] = instance { (n, sb) => sb.append(n); () }
implicit val longInstance: Text[Long] = instance { (n, sb) => sb.append(n); () }
implicit val floatInstance: Text[Float] = instance { (n, sb) => sb.append(n); () }
implicit val doubleInstance: Text[Double] = instance { (n, sb) => sb.append(n); () }
implicit val bigDecimalInstance: Text[BigDecimal] = instance { (n, sb) => sb.append(n); () }
implicit val booleanInstance: Text[Boolean] = instance { (n, sb) => sb.append(n); () }
implicit val byteArrayInstance: Text[Array[Byte]] = instance { (bs, sb) =>
sb.append("\\\\x")
if (bs.length > 0) {
val hex = BigInt(1, bs).toString(16)
val pad = bs.length * 2 - hex.length
0.until(pad).foreach { _ => sb.append("0") }
sb.append(hex)
()
}
}

implicit def option[A](implicit A: Text[A]): Text[Option[A]] = instance {
case (Some(a), sb) => A.unsafeEncode(a, sb)
case (None, sb) =>
sb.append(Text.NULL)
()
}
implicit def iterableInstance[F[_], A](implicit ev: Text[A], f: F[A] => Iterable[A]): Text[F[A]] = instance { (as, sb) =>
var first = true
sb.append("{")
f(as).foreach { a =>
if (first) first = false
else sb.append(',')
ev.unsafeArrayEncode(a, sb)
}
sb.append('}')
()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ package comments
import anorm.SqlStringInterpolation
import java.sql.Connection

object CommentsSqlRepoImpl extends CommentsSqlRepo {
class CommentsSqlRepoImpl extends CommentsSqlRepo {
override def apply()(implicit c: Connection): List[CommentsSqlRow] = {
val sql =
SQL"""select c.table_schema,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,16 @@ import scala.util.Try

case class CommentsSqlRow(
/** Points to [[information_schema.columns.ColumnsViewRow.tableSchema]]
debug: {"baseColumnName":"table_schema","baseRelationName":"information_schema.columns","columnClassName":"java.lang.String","columnDisplaySize":2147483647,"parsedColumnName":{"name":"table_schema"},"columnName":"table_schema","columnType":"VarChar","columnTypeName":"name","format":0,"isAutoIncrement":false,"isCaseSensitive":true,"isCurrency":false,"isDefinitelyWritable":false,"isNullable":"Nullable","isReadOnly":false,"isSearchable":true,"isSigned":false,"isWritable":true,"precision":2147483647,"scale":0,"tableName":"columns"} */
debug: {"baseColumnName":"table_schema","baseRelationName":"information_schema.columns","columnClassName":"java.lang.String","columnDisplaySize":2147483647,"parsedColumnName":{"name":"table_schema","originalName":"table_schema"},"columnName":"table_schema","columnType":"VarChar","columnTypeName":"name","format":0,"isAutoIncrement":false,"isCaseSensitive":true,"isCurrency":false,"isDefinitelyWritable":false,"isNullable":"Nullable","isReadOnly":false,"isSearchable":true,"isSigned":false,"isWritable":true,"precision":2147483647,"scale":0,"tableName":"columns"} */
tableSchema: Option[/* nullability unknown */ String],
/** Points to [[information_schema.columns.ColumnsViewRow.tableName]]
debug: {"baseColumnName":"table_name","baseRelationName":"information_schema.columns","columnClassName":"java.lang.String","columnDisplaySize":2147483647,"parsedColumnName":{"name":"table_name"},"columnName":"table_name","columnType":"VarChar","columnTypeName":"name","format":0,"isAutoIncrement":false,"isCaseSensitive":true,"isCurrency":false,"isDefinitelyWritable":false,"isNullable":"Nullable","isReadOnly":false,"isSearchable":true,"isSigned":false,"isWritable":true,"precision":2147483647,"scale":0,"tableName":"columns"} */
debug: {"baseColumnName":"table_name","baseRelationName":"information_schema.columns","columnClassName":"java.lang.String","columnDisplaySize":2147483647,"parsedColumnName":{"name":"table_name","originalName":"table_name"},"columnName":"table_name","columnType":"VarChar","columnTypeName":"name","format":0,"isAutoIncrement":false,"isCaseSensitive":true,"isCurrency":false,"isDefinitelyWritable":false,"isNullable":"Nullable","isReadOnly":false,"isSearchable":true,"isSigned":false,"isWritable":true,"precision":2147483647,"scale":0,"tableName":"columns"} */
tableName: Option[/* nullability unknown */ String],
/** Points to [[information_schema.columns.ColumnsViewRow.columnName]]
debug: {"baseColumnName":"column_name","baseRelationName":"information_schema.columns","columnClassName":"java.lang.String","columnDisplaySize":2147483647,"parsedColumnName":{"name":"column_name"},"columnName":"column_name","columnType":"VarChar","columnTypeName":"name","format":0,"isAutoIncrement":false,"isCaseSensitive":true,"isCurrency":false,"isDefinitelyWritable":false,"isNullable":"Nullable","isReadOnly":false,"isSearchable":true,"isSigned":false,"isWritable":true,"precision":2147483647,"scale":0,"tableName":"columns"} */
debug: {"baseColumnName":"column_name","baseRelationName":"information_schema.columns","columnClassName":"java.lang.String","columnDisplaySize":2147483647,"parsedColumnName":{"name":"column_name","originalName":"column_name"},"columnName":"column_name","columnType":"VarChar","columnTypeName":"name","format":0,"isAutoIncrement":false,"isCaseSensitive":true,"isCurrency":false,"isDefinitelyWritable":false,"isNullable":"Nullable","isReadOnly":false,"isSearchable":true,"isSigned":false,"isWritable":true,"precision":2147483647,"scale":0,"tableName":"columns"} */
columnName: Option[/* nullability unknown */ String],
/** Points to [[pg_catalog.pg_description.PgDescriptionRow.description]]
debug: {"baseColumnName":"description","baseRelationName":"pg_catalog.pg_description","columnClassName":"java.lang.String","columnDisplaySize":2147483647,"parsedColumnName":{"name":"description"},"columnName":"description","columnType":"VarChar","columnTypeName":"text","format":0,"isAutoIncrement":false,"isCaseSensitive":true,"isCurrency":false,"isDefinitelyWritable":false,"isNullable":"NoNulls","isReadOnly":false,"isSearchable":true,"isSigned":false,"isWritable":true,"precision":2147483647,"scale":0,"tableName":"pg_description"} */
debug: {"baseColumnName":"description","baseRelationName":"pg_catalog.pg_description","columnClassName":"java.lang.String","columnDisplaySize":2147483647,"parsedColumnName":{"name":"description","originalName":"description"},"columnName":"description","columnType":"VarChar","columnTypeName":"text","format":0,"isAutoIncrement":false,"isCaseSensitive":true,"isCurrency":false,"isDefinitelyWritable":false,"isNullable":"NoNulls","isReadOnly":false,"isSearchable":true,"isSigned":false,"isWritable":true,"precision":2147483647,"scale":0,"tableName":"pg_description"} */
description: String
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ package constraints
import anorm.SqlStringInterpolation
import java.sql.Connection

object ConstraintsSqlRepoImpl extends ConstraintsSqlRepo {
class ConstraintsSqlRepoImpl extends ConstraintsSqlRepo {
override def apply()(implicit c: Connection): List[ConstraintsSqlRow] = {
val sql =
SQL"""with cols as (SELECT nc.nspname AS table_schema,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,18 @@ import scala.util.Try

case class ConstraintsSqlRow(
/** Points to [[information_schema.table_constraints.TableConstraintsViewRow.tableSchema]]
debug: {"baseColumnName":"table_schema","baseRelationName":"information_schema.table_constraints","columnClassName":"java.lang.String","columnDisplaySize":2147483647,"parsedColumnName":{"name":"table_schema"},"columnName":"table_schema","columnType":"VarChar","columnTypeName":"name","format":0,"isAutoIncrement":false,"isCaseSensitive":true,"isCurrency":false,"isDefinitelyWritable":false,"isNullable":"Nullable","isReadOnly":false,"isSearchable":true,"isSigned":false,"isWritable":true,"precision":2147483647,"scale":0,"tableName":"table_constraints"} */
debug: {"baseColumnName":"table_schema","baseRelationName":"information_schema.table_constraints","columnClassName":"java.lang.String","columnDisplaySize":2147483647,"parsedColumnName":{"name":"table_schema","originalName":"table_schema"},"columnName":"table_schema","columnType":"VarChar","columnTypeName":"name","format":0,"isAutoIncrement":false,"isCaseSensitive":true,"isCurrency":false,"isDefinitelyWritable":false,"isNullable":"Nullable","isReadOnly":false,"isSearchable":true,"isSigned":false,"isWritable":true,"precision":2147483647,"scale":0,"tableName":"table_constraints"} */
tableSchema: Option[/* nullability unknown */ String],
/** Points to [[information_schema.table_constraints.TableConstraintsViewRow.tableName]]
debug: {"baseColumnName":"table_name","baseRelationName":"information_schema.table_constraints","columnClassName":"java.lang.String","columnDisplaySize":2147483647,"parsedColumnName":{"name":"table_name"},"columnName":"table_name","columnType":"VarChar","columnTypeName":"name","format":0,"isAutoIncrement":false,"isCaseSensitive":true,"isCurrency":false,"isDefinitelyWritable":false,"isNullable":"Nullable","isReadOnly":false,"isSearchable":true,"isSigned":false,"isWritable":true,"precision":2147483647,"scale":0,"tableName":"table_constraints"} */
debug: {"baseColumnName":"table_name","baseRelationName":"information_schema.table_constraints","columnClassName":"java.lang.String","columnDisplaySize":2147483647,"parsedColumnName":{"name":"table_name","originalName":"table_name"},"columnName":"table_name","columnType":"VarChar","columnTypeName":"name","format":0,"isAutoIncrement":false,"isCaseSensitive":true,"isCurrency":false,"isDefinitelyWritable":false,"isNullable":"Nullable","isReadOnly":false,"isSearchable":true,"isSigned":false,"isWritable":true,"precision":2147483647,"scale":0,"tableName":"table_constraints"} */
tableName: Option[/* nullability unknown */ String],
/** debug: {"columnClassName":"java.sql.Array","columnDisplaySize":2147483647,"parsedColumnName":{"name":"columns"},"columnName":"columns","columnType":"Array","columnTypeName":"_name","format":0,"isAutoIncrement":false,"isCaseSensitive":true,"isCurrency":false,"isDefinitelyWritable":false,"isNullable":"NullableUnknown","isReadOnly":false,"isSearchable":true,"isSigned":false,"isWritable":true,"precision":2147483647,"scale":0} */
/** debug: {"columnClassName":"java.sql.Array","columnDisplaySize":2147483647,"parsedColumnName":{"name":"columns","originalName":"columns"},"columnName":"columns","columnType":"Array","columnTypeName":"_name","format":0,"isAutoIncrement":false,"isCaseSensitive":true,"isCurrency":false,"isDefinitelyWritable":false,"isNullable":"NullableUnknown","isReadOnly":false,"isSearchable":true,"isSigned":false,"isWritable":true,"precision":2147483647,"scale":0} */
columns: /* nullability unknown */ Option[Array[String]],
/** Points to [[information_schema.table_constraints.TableConstraintsViewRow.constraintName]]
debug: {"baseColumnName":"constraint_name","baseRelationName":"information_schema.table_constraints","columnClassName":"java.lang.String","columnDisplaySize":2147483647,"parsedColumnName":{"name":"constraint_name"},"columnName":"constraint_name","columnType":"VarChar","columnTypeName":"name","format":0,"isAutoIncrement":false,"isCaseSensitive":true,"isCurrency":false,"isDefinitelyWritable":false,"isNullable":"Nullable","isReadOnly":false,"isSearchable":true,"isSigned":false,"isWritable":true,"precision":2147483647,"scale":0,"tableName":"table_constraints"} */
debug: {"baseColumnName":"constraint_name","baseRelationName":"information_schema.table_constraints","columnClassName":"java.lang.String","columnDisplaySize":2147483647,"parsedColumnName":{"name":"constraint_name","originalName":"constraint_name"},"columnName":"constraint_name","columnType":"VarChar","columnTypeName":"name","format":0,"isAutoIncrement":false,"isCaseSensitive":true,"isCurrency":false,"isDefinitelyWritable":false,"isNullable":"Nullable","isReadOnly":false,"isSearchable":true,"isSigned":false,"isWritable":true,"precision":2147483647,"scale":0,"tableName":"table_constraints"} */
constraintName: Option[/* nullability unknown */ String],
/** Points to [[information_schema.check_constraints.CheckConstraintsViewRow.checkClause]]
debug: {"baseColumnName":"check_clause","baseRelationName":"information_schema.check_constraints","columnClassName":"java.lang.String","columnDisplaySize":2147483647,"parsedColumnName":{"name":"check_clause"},"columnName":"check_clause","columnType":"VarChar","columnTypeName":"varchar","format":0,"isAutoIncrement":false,"isCaseSensitive":true,"isCurrency":false,"isDefinitelyWritable":false,"isNullable":"Nullable","isReadOnly":false,"isSearchable":true,"isSigned":false,"isWritable":true,"precision":2147483647,"scale":0,"tableName":"check_constraints"} */
debug: {"baseColumnName":"check_clause","baseRelationName":"information_schema.check_constraints","columnClassName":"java.lang.String","columnDisplaySize":2147483647,"parsedColumnName":{"name":"check_clause","originalName":"check_clause"},"columnName":"check_clause","columnType":"VarChar","columnTypeName":"varchar","format":0,"isAutoIncrement":false,"isCaseSensitive":true,"isCurrency":false,"isDefinitelyWritable":false,"isNullable":"Nullable","isReadOnly":false,"isSearchable":true,"isSigned":false,"isWritable":true,"precision":2147483647,"scale":0,"tableName":"check_constraints"} */
checkClause: Option[/* nullability unknown */ String]
)

Expand Down Expand Up @@ -67,7 +67,7 @@ object ConstraintsSqlRow {
new JsObject(ListMap[String, JsValue](
"table_schema" -> Writes.OptionWrites(Writes.StringWrites).writes(o.tableSchema),
"table_name" -> Writes.OptionWrites(Writes.StringWrites).writes(o.tableName),
"columns" -> Writes.OptionWrites(using Writes.arrayWrites[String](using implicitly, Writes.StringWrites)).writes(o.columns),
"columns" -> Writes.OptionWrites(Writes.arrayWrites[String](using implicitly, Writes.StringWrites)).writes(o.columns),
"constraint_name" -> Writes.OptionWrites(Writes.StringWrites).writes(o.constraintName),
"check_clause" -> Writes.OptionWrites(Writes.StringWrites).writes(o.checkClause)
))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ package domains
import anorm.SqlStringInterpolation
import java.sql.Connection

object DomainsSqlRepoImpl extends DomainsSqlRepo {
class DomainsSqlRepoImpl extends DomainsSqlRepo {
override def apply()(implicit c: Connection): List[DomainsSqlRow] = {
val sql =
SQL"""SELECT nsp.nspname as "schema",
Expand Down
Loading

0 comments on commit 47bcaca

Please sign in to comment.