Skip to content

Commit dd827e7

Browse files
authored
Merge pull request #497 from tapdata/TAP-5866-dev
TAP-5866 fix(pg):pg connector support nullsort
2 parents d40c6c6 + 0b0e9ed commit dd827e7

File tree

4 files changed

+18
-4
lines changed

4 files changed

+18
-4
lines changed

connectors-common/postgres-core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<sql.core.version>1.0-SNAPSHOT</sql.core.version>
2222
<debezium.version>1.5.4.Final</debezium.version>
2323
<postgres.core.version>1.0-SNAPSHOT</postgres.core.version>
24-
<tapdata.pdk.api.verison>1.4.4-SNAPSHOT</tapdata.pdk.api.verison>
24+
<tapdata.pdk.api.verison>1.4.5-SNAPSHOT</tapdata.pdk.api.verison>
2525

2626
</properties>
2727
<dependencyManagement>

connectors-common/postgres-core/src/main/java/io/tapdata/connector/postgres/PostgresSqlMaker.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,17 +139,31 @@ public void buildOrderClause(StringBuilder builder, TapAdvanceFilter filter) {
139139
if (null != collate) {
140140
return getOrderByFieldClauseWithCollate(v, collate);
141141
} else {
142-
return v.toString(String.valueOf(escapeChar));
142+
StringBuilder sb = new StringBuilder();
143+
sb.append(escapeChar).append(v.getKey()).append(escapeChar).append(" ").append(v.getSort() == ASCENDING ? "ASC" : "DESC");
144+
sb.append(buildNullSortClause(v));
145+
return sb.toString();
143146
}
144147
}).collect(Collectors.joining(", "))).append(' ');
145148
}
146149
}
147150

151+
private static String buildNullSortClause(SortOn v) {
152+
if (v.getNullSort() == 1) {
153+
return ' ' + "NULLS" + ' ' + "FIRST";
154+
} else if (v.getNullSort() == 2) {
155+
return ' ' + "NULLS" + ' ' + "LAST";
156+
} else {
157+
return "";
158+
}
159+
}
160+
148161
protected String getOrderByFieldClauseWithCollate(SortOn sortOn, Collate collate) {
149162
StringBuilder sb = new StringBuilder();
150163
sb.append(escapeChar).append(sortOn.getKey()).append(escapeChar);
151164
sb.append(' ').append(buildCollate(collate.getCollateName())).append(' ');
152165
sb.append((sortOn.getSort() == ASCENDING ? "ASC" : "DESC"));
166+
sb.append(buildNullSortClause(sortOn));
153167
return sb.toString();
154168
}
155169

connectors/postgres-connector/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<properties>
1717
<java.version>8</java.version>
1818
<postgres.driver.version>42.3.4</postgres.driver.version>
19-
<tapdata.pdk.api.version>1.4.4-SNAPSHOT</tapdata.pdk.api.version>
19+
<tapdata.pdk.api.version>1.4.5-SNAPSHOT</tapdata.pdk.api.version>
2020
</properties>
2121

2222
<dependencies>

connectors/postgres-connector/src/main/resources/spec_postgres.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"icon": "icons/postgres.png",
55
"doc" : "${doc}",
66
"id": "postgres",
7-
"tags": ["Database", "ssl", "doubleActive", "disableForeignKey"]
7+
"tags": ["Database", "ssl", "doubleActive", "disableForeignKey","NullsLast"]
88
},
99
"configOptions": {
1010
"capabilities":[

0 commit comments

Comments
 (0)