Skip to content

Commit

Permalink
fix overwrite parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
Nicole00 committed Apr 18, 2023
1 parent e59ecca commit 8ecc822
Show file tree
Hide file tree
Showing 9 changed files with 30 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -216,9 +216,7 @@ object NebulaExecutor {
/**
* construct insert statement for vertex
*/
def toExecuteSentence(tagName: String,
vertices: NebulaVertices,
overwrite: Boolean = true): String = {
def toExecuteSentence(tagName: String, vertices: NebulaVertices, overwrite: Boolean): String = {
(if (overwrite) BATCH_INSERT_TEMPLATE else BATCH_INSERT_NO_OVERWRITE_TEMPLATE).format(
DataTypeEnum.VERTEX.toString,
tagName,
Expand Down Expand Up @@ -247,7 +245,7 @@ object NebulaExecutor {
/**
* construct insert statement for edge
*/
def toExecuteSentence(edgeName: String, edges: NebulaEdges, overwrite: Boolean = true): String = {
def toExecuteSentence(edgeName: String, edges: NebulaEdges, overwrite: Boolean): String = {
val values = edges.values
.map { edge =>
val source = edges.getSourcePolicy match {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,8 @@ class NebulaEdgeWriter(nebulaOptions: NebulaOptions,
def execute(): Unit = {
val nebulaEdges = NebulaEdges(propNames, edges.toList, srcPolicy, dstPolicy)
val exec = nebulaOptions.writeMode match {
case WriteMode.INSERT => NebulaExecutor.toExecuteSentence(nebulaOptions.label, nebulaEdges)
case WriteMode.INSERT =>
NebulaExecutor.toExecuteSentence(nebulaOptions.label, nebulaEdges, nebulaOptions.overwrite)
case WriteMode.UPDATE =>
NebulaExecutor.toUpdateExecuteStatement(nebulaOptions.label, nebulaEdges)
case WriteMode.DELETE =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,10 @@ class NebulaVertexWriter(nebulaOptions: NebulaOptions, vertexIndex: Int, schema:
def execute(): Unit = {
val nebulaVertices = NebulaVertices(propNames, vertices.toList, policy)
val exec = nebulaOptions.writeMode match {
case WriteMode.INSERT => NebulaExecutor.toExecuteSentence(nebulaOptions.label, nebulaVertices)
case WriteMode.INSERT =>
NebulaExecutor.toExecuteSentence(nebulaOptions.label,
nebulaVertices,
nebulaOptions.overwrite)
case WriteMode.UPDATE =>
NebulaExecutor.toUpdateExecuteStatement(nebulaOptions.label, nebulaVertices)
case WriteMode.DELETE =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ class NebulaExecutorSuite extends AnyFunSuite with BeforeAndAfterAll {
vertices.append(NebulaVertex("\"vid2\"", props2))

val nebulaVertices = NebulaVertices(propNames, vertices.toList, None)
val vertexStatement = NebulaExecutor.toExecuteSentence(tagName, nebulaVertices)
val vertexStatement = NebulaExecutor.toExecuteSentence(tagName, nebulaVertices, true)

val expectStatement = "INSERT vertex `person`(`col_string`,`col_fixed_string`,`col_bool`," +
"`col_int`,`col_int64`,`col_double`,`col_date`,`col_geo`) VALUES \"vid1\": (" + props1
Expand Down Expand Up @@ -174,7 +174,7 @@ class NebulaExecutorSuite extends AnyFunSuite with BeforeAndAfterAll {
vertices.append(NebulaVertex("vid2", props2))

val nebulaVertices = NebulaVertices(propNames, vertices.toList, Some(KeyPolicy.HASH))
val vertexStatement = NebulaExecutor.toExecuteSentence(tagName, nebulaVertices)
val vertexStatement = NebulaExecutor.toExecuteSentence(tagName, nebulaVertices, true)

val expectStatement = "INSERT vertex `person`(`col_string`,`col_fixed_string`,`col_bool`," +
"`col_int`,`col_int64`,`col_double`,`col_date`,`col_geo`) VALUES hash(\"vid1\"): (" + props1
Expand Down Expand Up @@ -208,14 +208,15 @@ class NebulaExecutorSuite extends AnyFunSuite with BeforeAndAfterAll {
edges.append(NebulaEdge("\"vid2\"", "\"vid1\"", Some(2L), props2))

val nebulaEdges = NebulaEdges(propNames, edges.toList, None, None)
val edgeStatement = NebulaExecutor.toExecuteSentence(edgeName, nebulaEdges)
val edgeStatement = NebulaExecutor.toExecuteSentence(edgeName, nebulaEdges, true)

val expectStatement = "INSERT edge `friend`(`col_string`,`col_fixed_string`,`col_bool`,`col_int`" +
",`col_int64`,`col_double`,`col_date`,`col_geo`) VALUES \"vid1\"->\"vid2\"@1: (" +
props1.mkString(", ") + "), \"vid2\"->\"vid1\"@2: (" + props2.mkString(", ") + ")"
assert(expectStatement.equals(edgeStatement))

val edgeWithoutOverwriteStatement = NebulaExecutor.toExecuteSentence(edgeName, nebulaEdges)
val edgeWithoutOverwriteStatement =
NebulaExecutor.toExecuteSentence(edgeName, nebulaEdges, true)
val expectWithoutOverwriteStatement = "INSERT edge IF NOT EXISTS `friend`(`col_string`," +
"`col_fixed_string`,`col_bool`,`col_int`,`col_int64`,`col_double`,`col_date`,`col_geo`) " +
"VALUES \"vid1\"->\"vid2\"@1: (" + props1.mkString(", ") + "), \"vid2\"->\"vid1\"@2: (" +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,8 @@ class NebulaEdgeWriter(nebulaOptions: NebulaOptions,
def execute(): Unit = {
val nebulaEdges = NebulaEdges(propNames, edges.toList, srcPolicy, dstPolicy)
val exec = nebulaOptions.writeMode match {
case WriteMode.INSERT => NebulaExecutor.toExecuteSentence(nebulaOptions.label, nebulaEdges)
case WriteMode.INSERT =>
NebulaExecutor.toExecuteSentence(nebulaOptions.label, nebulaEdges, nebulaOptions.overwrite)
case WriteMode.UPDATE =>
NebulaExecutor.toUpdateExecuteStatement(nebulaOptions.label, nebulaEdges)
case WriteMode.DELETE =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,10 @@ class NebulaVertexWriter(nebulaOptions: NebulaOptions, vertexIndex: Int, schema:
private def execute(): Unit = {
val nebulaVertices = NebulaVertices(propNames, vertices.toList, policy)
val exec = nebulaOptions.writeMode match {
case WriteMode.INSERT => NebulaExecutor.toExecuteSentence(nebulaOptions.label, nebulaVertices)
case WriteMode.INSERT =>
NebulaExecutor.toExecuteSentence(nebulaOptions.label,
nebulaVertices,
nebulaOptions.overwrite)
case WriteMode.UPDATE =>
NebulaExecutor.toUpdateExecuteStatement(nebulaOptions.label, nebulaVertices)
case WriteMode.DELETE =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,8 @@ class NebulaEdgeWriter(nebulaOptions: NebulaOptions,
def execute(): Unit = {
val nebulaEdges = NebulaEdges(propNames, edges.toList, srcPolicy, dstPolicy)
val exec = nebulaOptions.writeMode match {
case WriteMode.INSERT => NebulaExecutor.toExecuteSentence(nebulaOptions.label, nebulaEdges)
case WriteMode.INSERT =>
NebulaExecutor.toExecuteSentence(nebulaOptions.label, nebulaEdges, nebulaOptions.overwrite)
case WriteMode.UPDATE =>
NebulaExecutor.toUpdateExecuteStatement(nebulaOptions.label, nebulaEdges)
case WriteMode.DELETE =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,10 @@ class NebulaVertexWriter(nebulaOptions: NebulaOptions, vertexIndex: Int, schema:
def execute(): Unit = {
val nebulaVertices = NebulaVertices(propNames, vertices.toList, policy)
val exec = nebulaOptions.writeMode match {
case WriteMode.INSERT => NebulaExecutor.toExecuteSentence(nebulaOptions.label, nebulaVertices)
case WriteMode.INSERT =>
NebulaExecutor.toExecuteSentence(nebulaOptions.label,
nebulaVertices,
nebulaOptions.overwrite)
case WriteMode.UPDATE =>
NebulaExecutor.toUpdateExecuteStatement(nebulaOptions.label, nebulaVertices)
case WriteMode.DELETE =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ class NebulaExecutorSuite extends AnyFunSuite with BeforeAndAfterAll {
vertices.append(NebulaVertex("\"vid2\"", props2))

val nebulaVertices = NebulaVertices(propNames, vertices.toList, None)
val vertexStatement = NebulaExecutor.toExecuteSentence(tagName, nebulaVertices)
val vertexStatement = NebulaExecutor.toExecuteSentence(tagName, nebulaVertices, true)

val expectStatement = "INSERT vertex `person`(`col_string`,`col_fixed_string`,`col_bool`," +
"`col_int`,`col_int64`,`col_double`,`col_date`,`col_geo`) VALUES \"vid1\": (" + props1
Expand Down Expand Up @@ -174,7 +174,7 @@ class NebulaExecutorSuite extends AnyFunSuite with BeforeAndAfterAll {
vertices.append(NebulaVertex("vid2", props2))

val nebulaVertices = NebulaVertices(propNames, vertices.toList, Some(KeyPolicy.HASH))
val vertexStatement = NebulaExecutor.toExecuteSentence(tagName, nebulaVertices)
val vertexStatement = NebulaExecutor.toExecuteSentence(tagName, nebulaVertices, true)

val expectStatement = "INSERT vertex `person`(`col_string`,`col_fixed_string`,`col_bool`," +
"`col_int`,`col_int64`,`col_double`,`col_date`,`col_geo`) VALUES hash(\"vid1\"): (" + props1
Expand Down Expand Up @@ -208,14 +208,15 @@ class NebulaExecutorSuite extends AnyFunSuite with BeforeAndAfterAll {
edges.append(NebulaEdge("\"vid2\"", "\"vid1\"", Some(2L), props2))

val nebulaEdges = NebulaEdges(propNames, edges.toList, None, None)
val edgeStatement = NebulaExecutor.toExecuteSentence(edgeName, nebulaEdges)
val edgeStatement = NebulaExecutor.toExecuteSentence(edgeName, nebulaEdges, true)

val expectStatement = "INSERT edge `friend`(`col_string`,`col_fixed_string`,`col_bool`,`col_int`" +
",`col_int64`,`col_double`,`col_date`,`col_geo`) VALUES \"vid1\"->\"vid2\"@1: (" +
props1.mkString(", ") + "), \"vid2\"->\"vid1\"@2: (" + props2.mkString(", ") + ")"
assert(expectStatement.equals(edgeStatement))

val edgeWithoutOverwriteStatement = NebulaExecutor.toExecuteSentence(edgeName, nebulaEdges)
val edgeWithoutOverwriteStatement =
NebulaExecutor.toExecuteSentence(edgeName, nebulaEdges, true)
val expectWithoutOverwriteStatement = "INSERT edge IF NOT EXISTS `friend`(`col_string`," +
"`col_fixed_string`,`col_bool`,`col_int`,`col_int64`,`col_double`,`col_date`,`col_geo`) " +
"VALUES \"vid1\"->\"vid2\"@1: (" + props1.mkString(", ") + "), \"vid2\"->\"vid1\"@2: (" +
Expand Down

0 comments on commit 8ecc822

Please sign in to comment.