aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/Metadata.java19
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetGroupScan.java6
2 files changed, 21 insertions, 4 deletions
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/Metadata.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/Metadata.java
index 25b93b731..952f37905 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/Metadata.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/Metadata.java
@@ -493,6 +493,8 @@ public class Metadata {
@JsonIgnore public abstract PrimitiveTypeName getPrimitiveType(String[] columnName);
@JsonIgnore public abstract OriginalType getOriginalType(String[] columnName);
+
+ @JsonIgnore public abstract ParquetTableMetadataBase clone();
}
public static abstract class ParquetFileMetadata {
@@ -542,8 +544,7 @@ public class Metadata {
super();
}
- public ParquetTableMetadata_v1(ParquetTableMetadataBase p, List<ParquetFileMetadata_v1> files,
- List<String> directories) {
+ public ParquetTableMetadata_v1(List<ParquetFileMetadata_v1> files, List<String> directories) {
this.files = files;
this.directories = directories;
}
@@ -571,6 +572,10 @@ public class Metadata {
@JsonIgnore @Override public OriginalType getOriginalType(String[] columnName) {
return null;
}
+
+ @JsonIgnore @Override public ParquetTableMetadataBase clone() {
+ return new ParquetTableMetadata_v1(files, directories);
+ }
}
@@ -787,6 +792,13 @@ public class Metadata {
this.columnTypeInfo = ((ParquetTableMetadata_v2) parquetTable).columnTypeInfo;
}
+ public ParquetTableMetadata_v2(List<ParquetFileMetadata_v2> files, List<String> directories,
+ ConcurrentHashMap<ColumnTypeMetadata_v2.Key, ColumnTypeMetadata_v2> columnTypeInfo) {
+ this.files = files;
+ this.directories = directories;
+ this.columnTypeInfo = columnTypeInfo;
+ }
+
public ColumnTypeMetadata_v2 getColumnTypeInfo(String[] name) {
return columnTypeInfo.get(new ColumnTypeMetadata_v2.Key(name));
}
@@ -815,6 +827,9 @@ public class Metadata {
return getColumnTypeInfo(columnName).originalType;
}
+ @JsonIgnore @Override public ParquetTableMetadataBase clone() {
+ return new ParquetTableMetadata_v2(files, directories, columnTypeInfo);
+ }
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetGroupScan.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetGroupScan.java
index b8ae92c9d..ccfca4157 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetGroupScan.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetGroupScan.java
@@ -712,8 +712,10 @@ public class ParquetGroupScan extends AbstractFileGroupScan {
newFileMetadataList.add(file);
}
}
- parquetTableMetadata.assignFiles(newFileMetadataList);
- return parquetTableMetadata;
+
+ ParquetTableMetadataBase metadata = parquetTableMetadata.clone();
+ metadata.assignFiles(newFileMetadataList);
+ return metadata;
}
/**