Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
CJSmith-0141 committed Jul 30, 2023
1 parent a5e5ca3 commit 5b96b5b
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 2 deletions.
33 changes: 33 additions & 0 deletions core/src/main/scala/net/tazato/absurd/ql/statements/Create.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package net.tazato.absurd.ql.statements

import net.tazato.absurd.ql.traits.*
import net.tazato.absurd.ql.types.*

sealed trait Create

object Create extends Render[Create]:
enum ReturnMode(val value: String, val projections: Option[Seq[String]]) extends LazyRender:
case NONE extends ReturnMode("NONE", None)
case BEFORE extends ReturnMode("BEFORE", None)
case AFTER extends ReturnMode("AFTER", None)
case DIFF extends ReturnMode("DIFF", None)
case PROJECTIONS(x: Seq[String]) extends ReturnMode("", Some(x))

override lazy val render: String =
this match
case NONE | BEFORE | AFTER | DIFF => s"RETURN ${this.value}"
case PROJECTIONS(x) => s"RETURN ${x.mkString(", ")}"

end ReturnMode


case class CREATE(
createTargets: Seq[Target],
content: Option[String] = None,
fields: Seq[(Field, String)],
returnMode: Option[ReturnMode] = None,
timeout: Option[Duration] = None,
isParallel: Boolean = false
) extends Create

override def render(x: Create): String = ???
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,5 @@ object Info extends Render[Info]:
x match
case KV | NS | NAMESPACE | DB | DATABASE =>
s"INFO FOR ${x.info};"
case Info.SCOPE(_) | Info.TABLE(_) =>
case SCOPE(_) | TABLE(_) =>
s"INFO FOR ${x.info} ${x.ident.get};"
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ object Select extends Render[Select]:

case class Limit(lmt: String)
case class Start(strt: String)
case class Duration(dur: String)
case class OrderClause(
fields: Seq[Field],
isRand: Boolean = false,
Expand Down
3 changes: 3 additions & 0 deletions core/src/main/scala/net/tazato/absurd/ql/types/Duration.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package net.tazato.absurd.ql.types

case class Duration(dur: String)

0 comments on commit 5b96b5b

Please sign in to comment.