From 23dbc300a170c5ce5f3e00a75f99d6e26129eb0d Mon Sep 17 00:00:00 2001 From: Zhangmei Li Date: Thu, 7 Jul 2022 15:45:21 +0800 Subject: [PATCH 1/3] fix: possible extra comma before where statement fix #1923 Change-Id: I095311942c3633a5978930e35fecd9fd47b08796 --- .../backend/store/mysql/MysqlTable.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/hugegraph-mysql/src/main/java/com/baidu/hugegraph/backend/store/mysql/MysqlTable.java b/hugegraph-mysql/src/main/java/com/baidu/hugegraph/backend/store/mysql/MysqlTable.java index 69efd96bda..71cc158dd7 100644 --- a/hugegraph-mysql/src/main/java/com/baidu/hugegraph/backend/store/mysql/MysqlTable.java +++ b/hugegraph-mysql/src/main/java/com/baidu/hugegraph/backend/store/mysql/MysqlTable.java @@ -27,6 +27,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.function.BiFunction; import org.apache.logging.log4j.util.Strings; @@ -52,6 +53,7 @@ import com.baidu.hugegraph.iterator.WrappedIterator; import com.baidu.hugegraph.type.HugeType; import com.baidu.hugegraph.type.define.HugeKeys; +import com.baidu.hugegraph.util.CollectionUtil; import com.baidu.hugegraph.util.E; import com.baidu.hugegraph.util.Log; import com.google.common.collect.ImmutableList; @@ -235,18 +237,18 @@ protected String buildInsertKeys(StringBuilder insert, insert.append(" ("); int i = 0; - int n = entry.columns().size(); + int size = entry.columns().size(); for (HugeKeys key : entry.columns().keySet()) { insert.append(formatKey(key)); - if (++i != n) { + if (++i != size) { insert.append(", "); } } insert.append(") VALUES ("); // Fill with '?' as a placeholder - for (i = 0; i < n; i++) { + for (i = 0; i < size; i++) { insert.append("?"); - if (i != n - 1) { + if (i != size - 1) { insert.append(", "); } } @@ -286,18 +288,18 @@ protected List buildColumnsParams(MysqlBackendEntry.Row entry, } protected String buildUpdateIfPresentTemplate(MysqlBackendEntry.Row entry) { - StringBuilder update = new StringBuilder(); update.append("UPDATE ").append(this.table()); update.append(" SET "); List idNames = this.idColumnName(); + Set columns = entry.columns().keySet(); + int idColumnsSize = CollectionUtil.intersect(columns, idNames).size(); int i = 0; - int size = entry.columns().size(); - for (HugeKeys key : entry.columns().keySet()) { + int size = columns.size() - idColumnsSize; + for (HugeKeys key : columns) { if (idNames.contains(key)) { - size--; continue; } update.append(formatKey(key)); From f44b5bc3a28e9bef1924933967f3cf822851ed6d Mon Sep 17 00:00:00 2001 From: Zhangmei Li Date: Thu, 7 Jul 2022 16:18:51 +0800 Subject: [PATCH 2/3] resume Change-Id: Ic36ee61dbeb420abbd7881196e323a3997c3385b --- .../baidu/hugegraph/backend/store/mysql/MysqlTable.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/hugegraph-mysql/src/main/java/com/baidu/hugegraph/backend/store/mysql/MysqlTable.java b/hugegraph-mysql/src/main/java/com/baidu/hugegraph/backend/store/mysql/MysqlTable.java index 71cc158dd7..1de121a11f 100644 --- a/hugegraph-mysql/src/main/java/com/baidu/hugegraph/backend/store/mysql/MysqlTable.java +++ b/hugegraph-mysql/src/main/java/com/baidu/hugegraph/backend/store/mysql/MysqlTable.java @@ -27,7 +27,6 @@ import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Set; import java.util.function.BiFunction; import org.apache.logging.log4j.util.Strings; @@ -53,7 +52,6 @@ import com.baidu.hugegraph.iterator.WrappedIterator; import com.baidu.hugegraph.type.HugeType; import com.baidu.hugegraph.type.define.HugeKeys; -import com.baidu.hugegraph.util.CollectionUtil; import com.baidu.hugegraph.util.E; import com.baidu.hugegraph.util.Log; import com.google.common.collect.ImmutableList; @@ -293,13 +291,12 @@ protected String buildUpdateIfPresentTemplate(MysqlBackendEntry.Row entry) { update.append(" SET "); List idNames = this.idColumnName(); - Set columns = entry.columns().keySet(); - int idColumnsSize = CollectionUtil.intersect(columns, idNames).size(); int i = 0; - int size = columns.size() - idColumnsSize; - for (HugeKeys key : columns) { + int size = entry.columns().size(); + for (HugeKeys key : entry.columns().keySet()) { if (idNames.contains(key)) { + size--; continue; } update.append(formatKey(key)); From 30c76182552699f645eb2bdd79111e7753dc084d Mon Sep 17 00:00:00 2001 From: Zhangmei Li Date: Thu, 7 Jul 2022 19:13:32 +0800 Subject: [PATCH 3/3] add ',' before the next key construct & just skip thr first key Change-Id: I6ece79c77dde6f1e514f9a3475f6d4b59c3e0de6 --- .../baidu/hugegraph/backend/store/mysql/MysqlTable.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/hugegraph-mysql/src/main/java/com/baidu/hugegraph/backend/store/mysql/MysqlTable.java b/hugegraph-mysql/src/main/java/com/baidu/hugegraph/backend/store/mysql/MysqlTable.java index 1de121a11f..c9ab719c21 100644 --- a/hugegraph-mysql/src/main/java/com/baidu/hugegraph/backend/store/mysql/MysqlTable.java +++ b/hugegraph-mysql/src/main/java/com/baidu/hugegraph/backend/store/mysql/MysqlTable.java @@ -293,17 +293,15 @@ protected String buildUpdateIfPresentTemplate(MysqlBackendEntry.Row entry) { List idNames = this.idColumnName(); int i = 0; - int size = entry.columns().size(); for (HugeKeys key : entry.columns().keySet()) { if (idNames.contains(key)) { - size--; continue; } - update.append(formatKey(key)); - update.append("=?"); - if (++i != size) { + if (i++ > 0) { update.append(", "); } + update.append(formatKey(key)); + update.append("=?"); } WhereBuilder where = this.newWhereBuilder();