Skip to content

Commit

Permalink
Merge aa9755e into c7a14c5
Browse files Browse the repository at this point in the history
  • Loading branch information
alexflav23 committed May 24, 2016
2 parents c7a14c5 + aa9755e commit e22bf7f
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,12 @@ abstract class CassandraTable[T <: CassandraTable[T, R], R] extends SelectTable[

final def delete()(implicit keySpace: KeySpace): DeleteQuery.Default[T, R] = DeleteQuery[T, R](this.asInstanceOf[T])

final def delete(condition: T => DeleteClause.Condition)(implicit keySpace: KeySpace): DeleteQuery.Default[T, R] = {
DeleteQuery[T, R](this.asInstanceOf[T], condition(this.asInstanceOf[T]).qb)
final def delete(conditions: (T => DeleteClause.Condition)*)(implicit keySpace: KeySpace): DeleteQuery.Default[T, R] = {
val tb = this.asInstanceOf[T]

val queries = conditions.map(_(tb).qb)

DeleteQuery[T, R](tb, queries: _*)
}

final def truncate()(implicit keySpace: KeySpace): TruncateQuery.Default[T, R] = TruncateQuery[T, R](this.asInstanceOf[T])
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -225,8 +225,8 @@ object DeleteQuery {
new DeleteQuery(table, QueryBuilder.Delete.delete(QueryBuilder.keyspace(keySpace.name, table.tableName).queryString))
}

def apply[T <: CassandraTable[T, _], R](table: T, cond: CQLQuery)(implicit keySpace: KeySpace): DeleteQuery.Default[T, R] = {
new DeleteQuery(table, QueryBuilder.Delete.delete(QueryBuilder.keyspace(keySpace.name, table.tableName).queryString, cond))
def apply[T <: CassandraTable[T, _], R](table: T, conds: CQLQuery*)(implicit keySpace: KeySpace): DeleteQuery.Default[T, R] = {
new DeleteQuery(table, QueryBuilder.Delete.delete(QueryBuilder.keyspace(keySpace.name, table.tableName).queryString, conds))
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,13 @@ private[builder] class DeleteQueryBuilder {
.forcePad.append(table)
}

def delete(table: String, conds: Seq[CQLQuery]): CQLQuery = {
CQLQuery(CQLSyntax.delete)
.forcePad.append(conds.map(_.queryString))
.forcePad.append(CQLSyntax.from)
.forcePad.append(table)
}

def deleteColumn(table: String, column: String): CQLQuery = {
CQLQuery(CQLSyntax.delete)
.forcePad.append(column)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ class DeleteQuerySerialisationTest extends QueryBuilderTest {
qb shouldEqual s"DELETE placeholder FROM $keySpace.${BasicTable.tableName} WHERE id = ${id.toString} IF placeholder = 'test'"
}


"should serialize a delete map column query" in {
val url = gen[String]

Expand All @@ -85,6 +84,16 @@ class DeleteQuerySerialisationTest extends QueryBuilderTest {
qb shouldEqual s"DELETE props['test'] FROM phantom.recipes WHERE url = '$url';"
}

"should serialize a delete query for multiple map properties" in {
val url = gen[String]

val qb = TestDatabase.recipes
.delete(_.props("test"), _.props("test2"))
.where(_.url eqs url).queryString

qb shouldEqual s"DELETE props['test'], props['test2'] FROM phantom.recipes WHERE url = '$url';"
}

}
}
}
2 changes: 1 addition & 1 deletion project/PublishTasks.scala
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import sbt._
object PublishTasks {

val defaultPublishingSettings = Seq(
version := "1.26.2"
version := "1.26.3"
)

val bintrayPublishSettings: Seq[Def.Setting[_]] = Seq(
Expand Down

0 comments on commit e22bf7f

Please sign in to comment.