@@ -485,7 +485,7 @@ private static BigQueryTableFieldSchema generateTableFieldSchema(Schema.Field fi
485485 BigQueryTableFieldSchema fieldSchema = new BigQueryTableFieldSchema ();
486486 fieldSchema .setName (field .getName ());
487487 fieldSchema .setMode (getMode (field .getSchema ()).name ());
488- LegacySQLTypeName type = getTableDataType (field .getSchema ());
488+ LegacySQLTypeName type = getTableDataType (field , field .getSchema ());
489489 fieldSchema .setType (type .name ());
490490 if (type == LegacySQLTypeName .RECORD ) {
491491 List <Schema .Field > schemaFields ;
@@ -518,7 +518,7 @@ public static com.google.cloud.bigquery.Schema convertCdapSchemaToBigQuerySchema
518518
519519 private static Field convertCdapFieldToBigQueryField (Schema .Field field ) {
520520 String name = field .getName ();
521- LegacySQLTypeName type = getTableDataType (field .getSchema ());
521+ LegacySQLTypeName type = getTableDataType (field , field .getSchema ());
522522 Field .Mode mode = getMode (field .getSchema ());
523523
524524 Field .Builder fieldBuilder ;
@@ -574,7 +574,7 @@ private static Field.Mode getMode(Schema schema) {
574574 * This function returns the LegacySQLTypeName that maps to the given CDAP Schema.
575575 * If the CDAP Schema is an Array it will return the LegacySQLTypename of the components.
576576 */
577- private static LegacySQLTypeName getTableDataType (Schema schema ) {
577+ private static LegacySQLTypeName getTableDataType (Schema . Field field , Schema schema ) {
578578 schema = BigQueryUtil .getNonNullableSchema (schema );
579579 Schema .LogicalType logicalType = schema .getLogicalType ();
580580
@@ -599,7 +599,9 @@ private static LegacySQLTypeName getTableDataType(Schema schema) {
599599 case DATETIME :
600600 return LegacySQLTypeName .DATETIME ;
601601 default :
602- throw new IllegalStateException ("Unsupported type " + logicalType .getToken ());
602+ throw new IllegalStateException (
603+ String .format ("Unsupported type %s for field %s" , logicalType .getToken (),
604+ field .toString ()));
603605 }
604606 }
605607
@@ -618,11 +620,12 @@ private static LegacySQLTypeName getTableDataType(Schema schema) {
618620 case BYTES :
619621 return LegacySQLTypeName .BYTES ;
620622 case ARRAY :
621- return getTableDataType (schema .getComponentSchema ());
623+ return getTableDataType (field , schema .getComponentSchema ());
622624 case RECORD :
623625 return LegacySQLTypeName .RECORD ;
624626 default :
625- throw new IllegalStateException ("Unsupported type " + type );
627+ throw new IllegalStateException (String .format ("Unsupported type %s for field %s" , type ,
628+ field .toString ()));
626629 }
627630 }
628631
0 commit comments