Skip to content

Commit f317d33

Browse files
committed
fix: Put constraintName on the table, not column
1 parent 70f3bf8 commit f317d33

File tree

4 files changed

+37
-9
lines changed

4 files changed

+37
-9
lines changed

lib/src/main/java/io/cloudquery/helper/ArrowHelper.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -171,9 +171,6 @@ public static Schema toArrowSchema(Table table) {
171171
Map<String, String> metadata = new HashMap<>();
172172
metadata.put(CQ_EXTENSION_UNIQUE, column.isUnique() ? "true" : "false");
173173
metadata.put(CQ_EXTENSION_PRIMARY_KEY, column.isPrimaryKey() ? "true" : "false");
174-
if (column.getConstraintName() != null) {
175-
metadata.put(CQ_EXTENSION_CONSTRAINT_NAME, column.getConstraintName());
176-
}
177174
metadata.put(CQ_EXTENSION_INCREMENTAL, column.isIncrementalKey() ? "true" : "false");
178175
Field field =
179176
new Field(
@@ -193,6 +190,7 @@ public static Schema toArrowSchema(Table table) {
193190
if (table.getParent() != null) {
194191
metadata.put(CQ_TABLE_DEPENDS_ON, table.getParent().getName());
195192
}
193+
metadata.put(CQ_EXTENSION_CONSTRAINT_NAME, table.getConstraintName());
196194
return new Schema(asList(fields), metadata);
197195
}
198196

@@ -201,7 +199,6 @@ public static Table fromArrowSchema(Schema schema) {
201199
for (Field field : schema.getFields()) {
202200
boolean isUnique = field.getMetadata().get(CQ_EXTENSION_UNIQUE) == "true";
203201
boolean isPrimaryKey = field.getMetadata().get(CQ_EXTENSION_PRIMARY_KEY) == "true";
204-
String constraintName = field.getMetadata().get(CQ_EXTENSION_CONSTRAINT_NAME);
205202
boolean isIncrementalKey = field.getMetadata().get(CQ_EXTENSION_INCREMENTAL) == "true";
206203

207204
columns.add(
@@ -210,7 +207,6 @@ public static Table fromArrowSchema(Schema schema) {
210207
.unique(isUnique)
211208
.primaryKey(isPrimaryKey)
212209
.incrementalKey(isIncrementalKey)
213-
.constraintName(constraintName)
214210
.type(field.getType())
215211
.build());
216212
}
@@ -220,8 +216,11 @@ public static Table fromArrowSchema(Schema schema) {
220216
String title = metaData.get(CQ_TABLE_TITLE);
221217
String description = metaData.get(CQ_TABLE_DESCRIPTION);
222218
String parent = metaData.get(CQ_TABLE_DEPENDS_ON);
219+
String constraintName = metaData.get(CQ_EXTENSION_CONSTRAINT_NAME);
220+
221+
TableBuilder tableBuilder =
222+
Table.builder().name(name).constraintName(constraintName).columns(columns);
223223

224-
TableBuilder tableBuilder = Table.builder().name(name).columns(columns);
225224
if (title != null) {
226225
tableBuilder.title(title);
227226
}

lib/src/main/java/io/cloudquery/schema/Column.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
public class Column {
1111
private String name;
1212
private String description;
13-
private String constraintName;
1413
private ArrowType type;
1514
private ColumnResolver resolver;
1615
private boolean primaryKey;

lib/src/main/java/io/cloudquery/schema/Table.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ public static int maxDepth(List<Table> tables) {
126126
}
127127

128128
@NonNull private String name;
129+
@Builder.Default private String constraintName = "";
129130
private TableResolver resolver;
130131
private String title;
131132
private String description;

lib/src/test/java/io/cloudquery/helper/ArrowHelperTest.java

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
package io.cloudquery.helper;
22

3+
import static io.cloudquery.helper.ArrowHelper.CQ_EXTENSION_CONSTRAINT_NAME;
4+
import static io.cloudquery.helper.ArrowHelper.CQ_EXTENSION_INCREMENTAL;
5+
import static io.cloudquery.helper.ArrowHelper.CQ_EXTENSION_PRIMARY_KEY;
6+
import static io.cloudquery.helper.ArrowHelper.CQ_EXTENSION_UNIQUE;
37
import static io.cloudquery.helper.ArrowHelper.CQ_TABLE_DEPENDS_ON;
48
import static io.cloudquery.helper.ArrowHelper.CQ_TABLE_DESCRIPTION;
59
import static io.cloudquery.helper.ArrowHelper.CQ_TABLE_NAME;
@@ -27,7 +31,13 @@ public class ArrowHelperTest {
2731
.parent(Table.builder().name("parent").build())
2832
.columns(
2933
List.of(
30-
Column.builder().name("column1").type(ArrowType.Utf8.INSTANCE).build(),
34+
Column.builder()
35+
.name("column1")
36+
.type(ArrowType.Utf8.INSTANCE)
37+
.unique(true)
38+
.incrementalKey(true)
39+
.primaryKey(true)
40+
.build(),
3141
Column.builder().name("column2").type(ArrowType.Utf8.INSTANCE).build()))
3242
.build();
3343

@@ -36,15 +46,34 @@ public void testToArrowSchema() {
3646
Schema arrowSchema = ArrowHelper.toArrowSchema(TEST_TABLE);
3747

3848
assertEquals(arrowSchema.getFields().get(0).getName(), "column1");
49+
assertEquals(
50+
arrowSchema.getFields().get(0).getMetadata(),
51+
Map.of(
52+
CQ_EXTENSION_UNIQUE,
53+
"true",
54+
CQ_EXTENSION_INCREMENTAL,
55+
"true",
56+
CQ_EXTENSION_PRIMARY_KEY,
57+
"true"));
3958
assertEquals(arrowSchema.getFields().get(1).getName(), "column2");
59+
assertEquals(
60+
arrowSchema.getFields().get(1).getMetadata(),
61+
Map.of(
62+
CQ_EXTENSION_UNIQUE,
63+
"false",
64+
CQ_EXTENSION_INCREMENTAL,
65+
"false",
66+
CQ_EXTENSION_PRIMARY_KEY,
67+
"false"));
4068

4169
assertEquals(
4270
arrowSchema.getCustomMetadata(),
4371
Map.of(
4472
CQ_TABLE_NAME, "table1",
4573
CQ_TABLE_DESCRIPTION, "A simple test table",
4674
CQ_TABLE_TITLE, "Test table title",
47-
CQ_TABLE_DEPENDS_ON, "parent"));
75+
CQ_TABLE_DEPENDS_ON, "parent",
76+
CQ_EXTENSION_CONSTRAINT_NAME, ""));
4877
}
4978

5079
@Test

0 commit comments

Comments
 (0)