Skip to content

Commit 872891e

Browse files
agrawalreetikaaditi-pandit
authored andcommitted
Refactor to use ColumnMetadata builder
1 parent 7dc32b4 commit 872891e

File tree

94 files changed

+673
-497
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+673
-497
lines changed

Diff for: presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/AccumuloColumnHandle.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,12 @@ public String getComment()
9898
@JsonIgnore
9999
public ColumnMetadata getColumnMetadata()
100100
{
101-
return new ColumnMetadata(name, type, comment, false);
101+
return ColumnMetadata.builder()
102+
.setName(name)
103+
.setType(type)
104+
.setComment(comment)
105+
.setHidden(false)
106+
.build();
102107
}
103108

104109
@JsonProperty

Diff for: presto-accumulo/src/test/java/com/facebook/presto/accumulo/TestAccumuloClient.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,11 @@ public void testCreateTableEmptyAccumuloColumn()
5959

6060
try {
6161
List<ColumnMetadata> columns = ImmutableList.of(
62-
new ColumnMetadata("id", BIGINT),
63-
new ColumnMetadata("a", BIGINT),
64-
new ColumnMetadata("b", BIGINT),
65-
new ColumnMetadata("c", BIGINT),
66-
new ColumnMetadata("d", BIGINT));
62+
ColumnMetadata.builder().setName("id").setType(BIGINT).build(),
63+
ColumnMetadata.builder().setName("a").setType(BIGINT).build(),
64+
ColumnMetadata.builder().setName("b").setType(BIGINT).build(),
65+
ColumnMetadata.builder().setName("c").setType(BIGINT).build(),
66+
ColumnMetadata.builder().setName("d").setType(BIGINT).build());
6767

6868
Map<String, Object> properties = new HashMap<>();
6969
new AccumuloTableProperties().getTableProperties().forEach(meta -> properties.put(meta.getName(), meta.getDefaultValue()));

Diff for: presto-atop/src/main/java/com/facebook/presto/atop/AtopMetadata.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,10 @@ public ConnectorTableMetadata getTableMetadata(ConnectorSession session, Connect
120120
AtopTableHandle atopTableHandle = (AtopTableHandle) tableHandle;
121121
ImmutableList.Builder<ColumnMetadata> columns = ImmutableList.builder();
122122
for (AtopColumn column : atopTableHandle.getTable().getColumns()) {
123-
columns.add(new ColumnMetadata(column.getName(), typeManager.getType(column.getType())));
123+
columns.add(ColumnMetadata.builder()
124+
.setName(column.getName())
125+
.setType(typeManager.getType(column.getType()))
126+
.build());
124127
}
125128
SchemaTableName schemaTableName = new SchemaTableName(atopTableHandle.getSchema(), atopTableHandle.getTable().getName());
126129
return new ConnectorTableMetadata(schemaTableName, columns.build());

Diff for: presto-base-arrow-flight/src/main/java/com/facebook/plugin/arrow/ArrowColumnHandle.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,10 @@ public Type getColumnType()
5050

5151
public ColumnMetadata getColumnMetadata()
5252
{
53-
return new ColumnMetadata(columnName, columnType);
53+
return ColumnMetadata.builder()
54+
.setName(columnName)
55+
.setType(columnType)
56+
.build();
5457
}
5558

5659
@Override

Diff for: presto-base-arrow-flight/src/main/java/com/facebook/plugin/arrow/ArrowMetadata.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public ConnectorTableMetadata getTableMetadata(ConnectorSession session, Connect
148148
for (Field field : columnList) {
149149
String columnName = field.getName();
150150
Type fieldType = getPrestoTypeFromArrowField(field);
151-
meta.add(new ColumnMetadata(columnName, fieldType));
151+
meta.add(ColumnMetadata.builder().setName(columnName).setType(fieldType).build());
152152
}
153153
return new ConnectorTableMetadata(new SchemaTableName(((ArrowTableHandle) table).getSchema(), ((ArrowTableHandle) table).getTable()), meta);
154154
}

Diff for: presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcColumnHandle.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public ColumnMetadata getColumnMetadata()
9494
.setName(columnName)
9595
.setType(columnType)
9696
.setNullable(nullable)
97-
.setComment(comment)
97+
.setComment(comment.orElse(null))
9898
.build();
9999
}
100100

Diff for: presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcClient.java

+16-8
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
package com.facebook.presto.plugin.jdbc;
1515

1616
import com.facebook.presto.common.type.BigintType;
17-
import com.facebook.presto.common.type.DateType;
1817
import com.facebook.presto.common.type.DoubleType;
1918
import com.facebook.presto.spi.ColumnMetadata;
2019
import com.facebook.presto.spi.ConnectorSession;
@@ -30,6 +29,7 @@
3029
import java.util.Optional;
3130

3231
import static com.facebook.presto.common.type.BigintType.BIGINT;
32+
import static com.facebook.presto.common.type.DateType.DATE;
3333
import static com.facebook.presto.common.type.DoubleType.DOUBLE;
3434
import static com.facebook.presto.common.type.RealType.REAL;
3535
import static com.facebook.presto.common.type.VarcharType.VARCHAR;
@@ -129,10 +129,10 @@ public void testCreateWithNullableColumns()
129129
String tableName = randomUUID().toString().toUpperCase(ENGLISH);
130130
SchemaTableName schemaTableName = new SchemaTableName("schema_for_create_table_tests", tableName);
131131
List<ColumnMetadata> expectedColumns = ImmutableList.of(
132-
new ColumnMetadata("columnA", BigintType.BIGINT, null, null, false),
133-
new ColumnMetadata("columnB", BigintType.BIGINT, true, null, null, false, emptyMap()),
134-
new ColumnMetadata("columnC", BigintType.BIGINT, false, null, null, false, emptyMap()),
135-
new ColumnMetadata("columnD", DateType.DATE, false, null, null, false, emptyMap()));
132+
ColumnMetadata.builder().setName("columnA").setType(BIGINT).setHidden(false).build(),
133+
ColumnMetadata.builder().setName("columnB").setType(BIGINT).setNullable(true).setHidden(false).setProperties(emptyMap()).build(),
134+
ColumnMetadata.builder().setName("columnC").setType(BIGINT).setNullable(false).setHidden(false).setProperties(emptyMap()).build(),
135+
ColumnMetadata.builder().setName("columnD").setType(DATE).setNullable(false).setHidden(false).setProperties(emptyMap()).build());
136136

137137
jdbcClient.createTable(session, new ConnectorTableMetadata(schemaTableName, expectedColumns));
138138

@@ -144,7 +144,7 @@ public void testCreateWithNullableColumns()
144144
new JdbcColumnHandle(CONNECTOR_ID, "COLUMNA", JDBC_BIGINT, BigintType.BIGINT, true, Optional.empty()),
145145
new JdbcColumnHandle(CONNECTOR_ID, "COLUMNB", JDBC_BIGINT, BigintType.BIGINT, true, Optional.empty()),
146146
new JdbcColumnHandle(CONNECTOR_ID, "COLUMNC", JDBC_BIGINT, BigintType.BIGINT, false, Optional.empty()),
147-
new JdbcColumnHandle(CONNECTOR_ID, "COLUMND", JDBC_DATE, DateType.DATE, false, Optional.empty())));
147+
new JdbcColumnHandle(CONNECTOR_ID, "COLUMND", JDBC_DATE, DATE, false, Optional.empty())));
148148
}
149149
finally {
150150
jdbcClient.dropTable(session, JdbcIdentity.from(session), tableHandle);
@@ -157,7 +157,11 @@ public void testAlterColumns()
157157
String tableName = randomUUID().toString().toUpperCase(ENGLISH);
158158
SchemaTableName schemaTableName = new SchemaTableName("schema_for_create_table_tests", tableName);
159159
List<ColumnMetadata> expectedColumns = ImmutableList.of(
160-
new ColumnMetadata("columnA", BigintType.BIGINT, null, null, false));
160+
ColumnMetadata.builder()
161+
.setName("columnA")
162+
.setType(BIGINT)
163+
.setHidden(false)
164+
.build());
161165

162166
jdbcClient.createTable(session, new ConnectorTableMetadata(schemaTableName, expectedColumns));
163167

@@ -168,7 +172,11 @@ public void testAlterColumns()
168172
assertEquals(jdbcClient.getColumns(session, tableHandle), ImmutableList.of(
169173
new JdbcColumnHandle(CONNECTOR_ID, "COLUMNA", JDBC_BIGINT, BigintType.BIGINT, true, Optional.empty())));
170174

171-
jdbcClient.addColumn(session, JdbcIdentity.from(session), tableHandle, new ColumnMetadata("columnB", DoubleType.DOUBLE, null, null, false));
175+
jdbcClient.addColumn(session, JdbcIdentity.from(session), tableHandle, ColumnMetadata.builder()
176+
.setName("columnB")
177+
.setType(DOUBLE)
178+
.setHidden(false)
179+
.build());
172180
assertEquals(jdbcClient.getColumns(session, tableHandle), ImmutableList.of(
173181
new JdbcColumnHandle(CONNECTOR_ID, "COLUMNA", JDBC_BIGINT, BigintType.BIGINT, true, Optional.empty()),
174182
new JdbcColumnHandle(CONNECTOR_ID, "COLUMNB", JDBC_DOUBLE, DoubleType.DOUBLE, true, Optional.empty())));

Diff for: presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcMetadata.java

+13-14
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
import static com.facebook.presto.spi.StandardErrorCode.PERMISSION_DENIED;
4444
import static com.facebook.presto.testing.TestingConnectorSession.SESSION;
4545
import static com.google.common.util.concurrent.MoreExecutors.listeningDecorator;
46-
import static java.util.Collections.emptyMap;
4746
import static java.util.concurrent.Executors.newCachedThreadPool;
4847
import static org.assertj.core.api.Assertions.assertThat;
4948
import static org.assertj.core.data.MapEntry.entry;
@@ -125,17 +124,17 @@ public void getTableMetadata()
125124
ConnectorTableMetadata tableMetadata = metadata.getTableMetadata(SESSION, tableHandle);
126125
assertEquals(tableMetadata.getTable(), new SchemaTableName("example", "numbers"));
127126
assertEquals(tableMetadata.getColumns(), ImmutableList.of(
128-
new ColumnMetadata("text", VARCHAR, false, null, null, false, emptyMap()), // primary key is not null in H2
129-
new ColumnMetadata("text_short", createVarcharType(32)),
130-
new ColumnMetadata("value", BIGINT)));
127+
ColumnMetadata.builder().setName("text").setType(VARCHAR).setNullable(false).build(),
128+
ColumnMetadata.builder().setName("text_short").setType(createVarcharType(32)).build(),
129+
ColumnMetadata.builder().setName("value").setType(BIGINT).build()));
131130

132131
// escaping name patterns
133132
JdbcTableHandle specialTableHandle = metadata.getTableHandle(SESSION, new SchemaTableName("exa_ple", "num_ers"));
134133
ConnectorTableMetadata specialTableMetadata = metadata.getTableMetadata(SESSION, specialTableHandle);
135134
assertEquals(specialTableMetadata.getTable(), new SchemaTableName("exa_ple", "num_ers"));
136135
assertEquals(specialTableMetadata.getColumns(), ImmutableList.of(
137-
new ColumnMetadata("te_t", VARCHAR, false, null, null, false, emptyMap()), // primary key is not null in H2
138-
new ColumnMetadata("va%ue", BIGINT)));
136+
ColumnMetadata.builder().setName("te_t").setType(VARCHAR).setNullable(false).build(),
137+
ColumnMetadata.builder().setName("va%ue").setType(BIGINT).build()));
139138

140139
// unknown tables should produce null
141140
unknownTableMetadata(new JdbcTableHandle(CONNECTOR_ID, new SchemaTableName("u", "numbers"), null, "unknown", "unknown"));
@@ -214,41 +213,41 @@ public void getColumnMetadata()
214213
{
215214
assertEquals(
216215
metadata.getColumnMetadata(SESSION, tableHandle, new JdbcColumnHandle(CONNECTOR_ID, "text", JDBC_VARCHAR, VARCHAR, true, Optional.empty())),
217-
new ColumnMetadata("text", VARCHAR));
216+
ColumnMetadata.builder().setName("text").setType(VARCHAR).build());
218217
}
219218

220219
@Test
221220
public void testCreateAndAlterTable()
222221
{
223222
SchemaTableName table = new SchemaTableName("example", "foo");
224-
metadata.createTable(SESSION, new ConnectorTableMetadata(table, ImmutableList.of(new ColumnMetadata("text", VARCHAR))), false);
223+
metadata.createTable(SESSION, new ConnectorTableMetadata(table, ImmutableList.of(ColumnMetadata.builder().setName("text").setType(VARCHAR).build())), false);
225224

226225
JdbcTableHandle handle = metadata.getTableHandle(SESSION, table);
227226

228227
ConnectorTableMetadata layout = metadata.getTableMetadata(SESSION, handle);
229228
assertEquals(layout.getTable(), table);
230229
assertEquals(layout.getColumns().size(), 1);
231-
assertEquals(layout.getColumns().get(0), new ColumnMetadata("text", VARCHAR));
230+
assertEquals(layout.getColumns().get(0), ColumnMetadata.builder().setName("text").setType(VARCHAR).build());
232231

233-
metadata.addColumn(SESSION, handle, new ColumnMetadata("x", VARCHAR));
232+
metadata.addColumn(SESSION, handle, ColumnMetadata.builder().setName("x").setType(VARCHAR).build());
234233
layout = metadata.getTableMetadata(SESSION, handle);
235234
assertEquals(layout.getColumns().size(), 2);
236-
assertEquals(layout.getColumns().get(0), new ColumnMetadata("text", VARCHAR));
237-
assertEquals(layout.getColumns().get(1), new ColumnMetadata("x", VARCHAR));
235+
assertEquals(layout.getColumns().get(0), ColumnMetadata.builder().setName("text").setType(VARCHAR).build());
236+
assertEquals(layout.getColumns().get(1), ColumnMetadata.builder().setName("x").setType(VARCHAR).build());
238237

239238
JdbcColumnHandle columnHandle = new JdbcColumnHandle(CONNECTOR_ID, "x", JDBC_VARCHAR, VARCHAR, true, Optional.empty());
240239
metadata.dropColumn(SESSION, handle, columnHandle);
241240
layout = metadata.getTableMetadata(SESSION, handle);
242241
assertEquals(layout.getColumns().size(), 1);
243-
assertEquals(layout.getColumns().get(0), new ColumnMetadata("text", VARCHAR));
242+
assertEquals(layout.getColumns().get(0), ColumnMetadata.builder().setName("text").setType(VARCHAR).build());
244243

245244
SchemaTableName newTableName = new SchemaTableName("example", "bar");
246245
metadata.renameTable(SESSION, handle, newTableName);
247246
handle = metadata.getTableHandle(SESSION, newTableName);
248247
layout = metadata.getTableMetadata(SESSION, handle);
249248
assertEquals(layout.getTable(), newTableName);
250249
assertEquals(layout.getColumns().size(), 1);
251-
assertEquals(layout.getColumns().get(0), new ColumnMetadata("text", VARCHAR));
250+
assertEquals(layout.getColumns().get(0), ColumnMetadata.builder().setName("text").setType(VARCHAR).build());
252251
}
253252

254253
@Test

Diff for: presto-bigquery/src/main/java/com/facebook/presto/plugin/bigquery/BigQueryColumnHandle.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -96,14 +96,14 @@ public String description()
9696

9797
public ColumnMetadata getColumnMetadata()
9898
{
99-
return new ColumnMetadata(
100-
name,
101-
getPrestoType(),
102-
mode == NULLABLE,
103-
description,
104-
null,
105-
false,
106-
ImmutableMap.of());
99+
return ColumnMetadata.builder()
100+
.setName(name)
101+
.setType(getPrestoType())
102+
.setNullable(mode == NULLABLE)
103+
.setComment(description)
104+
.setHidden(false)
105+
.setProperties(ImmutableMap.of())
106+
.build();
107107
}
108108

109109
@Override

Diff for: presto-bigquery/src/main/java/com/facebook/presto/plugin/bigquery/Conversions.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,14 @@ static BigQueryColumnHandle toColumnHandle(Field field)
4949

5050
static ColumnMetadata toColumnMetadata(Field field)
5151
{
52-
return new ColumnMetadata(
53-
field.getName(), // name
54-
adapt(field).getPrestoType(),
55-
getMode(field) == NULLABLE, //nullable
56-
field.getDescription(), // comment
57-
null, // extraInfo
58-
false, // hidden
59-
ImmutableMap.of()); // properties
52+
return ColumnMetadata.builder()
53+
.setName(field.getName())
54+
.setType(adapt(field).getPrestoType())
55+
.setNullable(getMode(field) == NULLABLE)
56+
.setComment(field.getDescription())
57+
.setHidden(false)
58+
.setProperties(ImmutableMap.of())
59+
.build();
6060
}
6161

6262
static BigQueryType.Adaptor adapt(Field field)

Diff for: presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHoleColumnHandle.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,10 @@ public Type getColumnType()
5555

5656
public ColumnMetadata toColumnMetadata()
5757
{
58-
return new ColumnMetadata(name, columnType);
58+
return ColumnMetadata.builder()
59+
.setName(name)
60+
.setType(columnType)
61+
.build();
5962
}
6063

6164
@Override

Diff for: presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraColumnHandle.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,11 @@ public boolean isHidden()
131131

132132
public ColumnMetadata getColumnMetadata()
133133
{
134-
return new ColumnMetadata(CassandraCqlUtils.cqlNameToSqlName(name), cassandraType.getNativeType(), null, hidden);
134+
return ColumnMetadata.builder()
135+
.setName(CassandraCqlUtils.cqlNameToSqlName(name))
136+
.setType(cassandraType.getNativeType())
137+
.setHidden(hidden)
138+
.build();
135139
}
136140

137141
public Type getType()

Diff for: presto-clickhouse/src/main/java/com/facebook/presto/plugin/clickhouse/ClickHouseColumnHandle.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,13 @@ public boolean isNullable()
133133

134134
public ColumnMetadata getColumnMetadata()
135135
{
136-
return new ColumnMetadata(columnName, columnType, nullable, null, null, false, emptyMap());
136+
return ColumnMetadata.builder()
137+
.setName(columnName)
138+
.setType(columnType)
139+
.setNullable(nullable)
140+
.setHidden(false)
141+
.setProperties(emptyMap())
142+
.build();
137143
}
138144

139145
@Override

Diff for: presto-delta/src/main/java/com/facebook/presto/delta/DeltaMetadata.java

+8-2
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,10 @@ public ColumnMetadata getColumnMetadata(ConnectorSession session, ConnectorTable
348348
private ColumnMetadata getColumnMetadata(ColumnHandle columnHandle)
349349
{
350350
DeltaColumnHandle deltaColumnHandle = (DeltaColumnHandle) columnHandle;
351-
return new ColumnMetadata(deltaColumnHandle.getName(), typeManager.getType(deltaColumnHandle.getDataType()));
351+
return ColumnMetadata.builder()
352+
.setName(deltaColumnHandle.getName())
353+
.setType(typeManager.getType(deltaColumnHandle.getDataType()))
354+
.build();
352355
}
353356

354357
private List<SchemaTableName> listTables(ConnectorSession session, SchemaTablePrefix prefix)
@@ -361,7 +364,10 @@ private List<SchemaTableName> listTables(ConnectorSession session, SchemaTablePr
361364

362365
private ColumnMetadata getColumnMetadata(DeltaColumn deltaColumn)
363366
{
364-
return new ColumnMetadata(deltaColumn.getName(), typeManager.getType(deltaColumn.getType()));
367+
return ColumnMetadata.builder()
368+
.setName(deltaColumn.getName())
369+
.setType(typeManager.getType(deltaColumn.getType()))
370+
.build();
365371
}
366372

367373
private MetastoreContext metastoreContext(ConnectorSession session)

Diff for: presto-druid/src/main/java/com/facebook/presto/druid/DruidColumnHandle.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,10 @@ public DruidColumnType getType()
7777

7878
public ColumnMetadata getColumnMetadata()
7979
{
80-
return new ColumnMetadata(getColumnName(), getColumnType());
80+
return ColumnMetadata.builder()
81+
.setName(getColumnName())
82+
.setType(getColumnType())
83+
.build();
8184
}
8285

8386
@Override

Diff for: presto-druid/src/main/java/com/facebook/presto/druid/DruidMetadata.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,10 @@ private List<SchemaTableName> listTables(ConnectorSession session, SchemaTablePr
200200

201201
private static ColumnMetadata toColumnMetadata(DruidColumnInfo column)
202202
{
203-
return new ColumnMetadata(column.getColumnName(), column.getDataType().getPrestoType());
203+
return ColumnMetadata.builder()
204+
.setName(column.getColumnName())
205+
.setType(column.getDataType().getPrestoType())
206+
.build();
204207
}
205208

206209
private static ColumnHandle toColumnHandle(DruidColumnInfo column)

Diff for: presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/BuiltinColumns.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,12 @@ public Type getType()
5757

5858
public ColumnMetadata getMetadata()
5959
{
60-
return new ColumnMetadata(name, type, "", null, true);
60+
return ColumnMetadata.builder()
61+
.setName(name)
62+
.setType(type)
63+
.setComment("")
64+
.setHidden(true)
65+
.build();
6166
}
6267

6368
public ColumnHandle getColumnHandle()

Diff for: presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchMetadata.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ private List<ColumnMetadata> makeColumnMetadata(List<IndexMetadata.Field> fields
231231
}
232232

233233
for (IndexMetadata.Field field : fields) {
234-
result.add(new ColumnMetadata(field.getName(), toPrestoType(field)));
234+
result.add(ColumnMetadata.builder().setName(field.getName()).setType(toPrestoType(field)).build());
235235
}
236236
return result.build();
237237
}

0 commit comments

Comments
 (0)