Skip to content

Commit cef85dd

Browse files
committed
Factor out helper for extracting pk names
1 parent 3fc91af commit cef85dd

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

src/main/java/io/confluent/connect/jdbc/sink/dialect/DbDialect.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,22 +59,17 @@ public final String getInsert(final String tableName, final Collection<String> k
5959
public abstract String getUpsertQuery(final String table, final Collection<String> keyColumns, final Collection<String> columns);
6060

6161
public String getCreateQuery(String tableName, Collection<SinkRecordField> fields) {
62-
final List<String> pks = new ArrayList<>();
63-
for (SinkRecordField f : fields) {
64-
if (f.isPrimaryKey) {
65-
pks.add(f.name);
66-
}
67-
}
62+
final List<String> pkFieldNames = extractPrimaryKeyFieldNames(fields);
6863
final StringBuilder builder = new StringBuilder();
6964
builder.append("CREATE TABLE ");
7065
builder.append(escapeTableName(tableName));
7166
builder.append(" (");
7267
writeColumnsSpec(builder, fields);
73-
if (!pks.isEmpty()) {
68+
if (!pkFieldNames.isEmpty()) {
7469
builder.append(",");
7570
builder.append(lineSeparator);
7671
builder.append("PRIMARY KEY(");
77-
joinToBuilder(builder, ",", pks, stringSurroundTransform(escapeColumnNamesStart, escapeColumnNamesEnd));
72+
joinToBuilder(builder, ",", pkFieldNames, stringSurroundTransform(escapeColumnNamesStart, escapeColumnNamesEnd));
7873
builder.append(")");
7974
}
8075
builder.append(")");
@@ -133,6 +128,16 @@ protected String escapeTableName(String tableName) {
133128
return escapeColumnNamesStart + tableName + escapeColumnNamesEnd;
134129
}
135130

131+
static List<String> extractPrimaryKeyFieldNames(Collection<SinkRecordField> fields) {
132+
final List<String> pks = new ArrayList<>();
133+
for (SinkRecordField f : fields) {
134+
if (f.isPrimaryKey) {
135+
pks.add(f.name);
136+
}
137+
}
138+
return pks;
139+
}
140+
136141
public static DbDialect fromConnectionString(final String url) {
137142
if (!url.startsWith("jdbc:")) {
138143
throw new ConnectException(String.format("Not a valid JDBC URL: %s", url));

0 commit comments

Comments
 (0)