@@ -38,6 +38,9 @@ import org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName
3838
3939object FromIcebergShaded {
4040 def unshade (columnOrder : ShadedColumnOrder ): ColumnOrder = {
41+ if (columnOrder == null ) {
42+ return null
43+ }
4144 columnOrder.getColumnOrderName match {
4245 case ShadedColumnOrder .ColumnOrderName .UNDEFINED => ColumnOrder .undefined()
4346 case ShadedColumnOrder .ColumnOrderName .TYPE_DEFINED_ORDER => ColumnOrder .typeDefined()
@@ -46,18 +49,30 @@ object FromIcebergShaded {
4649 }
4750
4851 def unshade (typeName : ShadedPrimitiveTypeName ): PrimitiveTypeName = {
52+ if (typeName == null ) {
53+ return null
54+ }
4955 PrimitiveTypeName .valueOf(typeName.name())
5056 }
5157
5258 def unshade (repetition : ShadedType .Repetition ): Type .Repetition = {
59+ if (repetition == null ) {
60+ return null
61+ }
5362 Type .Repetition .valueOf(repetition.name())
5463 }
5564
5665 def unshade (inner : ShadedTimeUnit ): TimeUnit = {
66+ if (inner == null ) {
67+ return null
68+ }
5769 TimeUnit .valueOf(inner.name())
5870 }
5971
6072 def unshade (inner : ShadedLogicalTypeAnnotation ): LogicalTypeAnnotation = {
73+ if (inner == null ) {
74+ return null
75+ }
6176 inner.accept(new ShadedLogicalTypeAnnotationVisitor [LogicalTypeAnnotation ] {
6277 override def visit (stringLogicalType : ShadedLogicalTypeAnnotation
6378 .StringLogicalTypeAnnotation ): Optional [LogicalTypeAnnotation ] = {
@@ -143,6 +158,9 @@ object FromIcebergShaded {
143158
144159
145160 def unshade (inner : ShadedType ): Type = {
161+ if (inner == null ) {
162+ return null
163+ }
146164 inner match {
147165 case t : ShadedPrimitiveType => unshade(t)
148166 case t : ShadedMessageType => unshade(t)
@@ -152,6 +170,9 @@ object FromIcebergShaded {
152170 }
153171
154172 def unshade (inner : ShadedMessageType ): MessageType = {
173+ if (inner == null ) {
174+ return null
175+ }
155176 val builder = Types .buildMessage()
156177 inner.getFields.forEach { field =>
157178 builder.addField(unshade(field))
@@ -165,6 +186,9 @@ object FromIcebergShaded {
165186 }
166187
167188 def unshade (inner : ShadedGroupType ): GroupType = {
189+ if (inner == null ) {
190+ return null
191+ }
168192 val builder = Types .buildGroup(unshade(inner.getRepetition))
169193
170194 inner.getFields.forEach { field =>
@@ -180,6 +204,9 @@ object FromIcebergShaded {
180204
181205
182206 def unshade (inner : ShadedPrimitiveType ): PrimitiveType = {
207+ if (inner == null ) {
208+ return null
209+ }
183210 var builder = Types .primitive(unshade(inner.getPrimitiveTypeName),
184211 unshade(inner.getRepetition))
185212 .columnOrder(unshade(inner.columnOrder()))
@@ -197,18 +224,30 @@ object FromIcebergShaded {
197224 }
198225
199226 def unshade (inner : ShadedEncoding ): Encoding = {
227+ if (inner == null ) {
228+ return null
229+ }
200230 Encoding .valueOf(inner.name())
201231 }
202232
203233 def unshade (inner : ShadedColumnPath ): ColumnPath = {
234+ if (inner == null ) {
235+ return null
236+ }
204237 ColumnPath .get(inner.toArray: _* )
205238 }
206239
207240 def unshade (inner : ShadedCompressionCodecName ): CompressionCodecName = {
241+ if (inner == null ) {
242+ return null
243+ }
208244 CompressionCodecName .valueOf(inner.name())
209245 }
210246
211247 def unshade (inner : ShadedColumnChunkProperties ): ColumnChunkProperties = {
248+ if (inner == null ) {
249+ return null
250+ }
212251 ColumnChunkProperties .get(
213252 unshade(inner.getPath),
214253 unshade(inner.getPrimitiveType),
@@ -218,6 +257,10 @@ object FromIcebergShaded {
218257 }
219258
220259 def unshade (inner : ShadedEncodingStats ): EncodingStats = {
260+ if (inner == null ) {
261+ return null
262+ }
263+
221264 val builder = new EncodingStats .Builder ()
222265
223266 if (inner.usesV2Pages()) {
@@ -236,10 +279,16 @@ object FromIcebergShaded {
236279 }
237280
238281 def unshade (inner : ShadedIndexReference ): IndexReference = {
282+ if (inner == null ) {
283+ return null
284+ }
239285 new IndexReference (inner.getOffset, inner.getLength)
240286 }
241287
242288 def unshade (inner : ShadedStatistics [_]): Statistics [_] = {
289+ if (inner == null ) {
290+ return null
291+ }
243292 Statistics .getBuilderForReading(unshade(inner.`type`()))
244293 .withMin(inner.getMinBytes)
245294 .withMax(inner.getMaxBytes)
@@ -248,6 +297,9 @@ object FromIcebergShaded {
248297 }
249298
250299 def unshade (inner : ShadedColumnChunkMetaData ): ColumnChunkMetaData = {
300+ if (inner == null ) {
301+ return null
302+ }
251303 if (inner.isEncrypted) {
252304 throw new UnsupportedOperationException (" Encrypted column chunks are not supported" )
253305 }
@@ -267,6 +319,9 @@ object FromIcebergShaded {
267319 }
268320
269321 def unshade (inner : ShadedBlockMetaData ): BlockMetaData = {
322+ if (inner == null ) {
323+ return null
324+ }
270325 val ret = new BlockMetaData
271326 ret.setRowCount(inner.getRowCount)
272327 ret.setTotalByteSize(inner.getTotalByteSize)
0 commit comments