You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by sz...@apache.org on 2014/08/13 23:55:56 UTC

svn commit: r1617844 - in /hive/trunk: ql/src/test/queries/clientpositive/ ql/src/test/results/clientpositive/ serde/src/java/org/apache/hadoop/hive/serde2/avro/ serde/src/test/org/apache/hadoop/hive/serde2/avro/ serde/src/test/resources/

Author: szehon
Date: Wed Aug 13 21:55:56 2014
New Revision: 1617844

URL: http://svn.apache.org/r1617844
Log:
HIVE-7446 : Add support to ALTER TABLE .. ADD COLUMN to Avro backed tables (Ashish Kumar Singh via Szehon)

Added:
    hive/trunk/ql/src/test/queries/clientpositive/avro_add_column.q
    hive/trunk/ql/src/test/queries/clientpositive/avro_add_column2.q
    hive/trunk/ql/src/test/queries/clientpositive/avro_add_column3.q
    hive/trunk/ql/src/test/results/clientpositive/avro_add_column.q.out
    hive/trunk/ql/src/test/results/clientpositive/avro_add_column2.q.out
    hive/trunk/ql/src/test/results/clientpositive/avro_add_column3.q.out
Modified:
    hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/avro/TypeInfoToSchema.java
    hive/trunk/serde/src/test/org/apache/hadoop/hive/serde2/avro/TestTypeInfoToSchema.java
    hive/trunk/serde/src/test/resources/avro-nested-struct.avsc
    hive/trunk/serde/src/test/resources/avro-struct.avsc

Added: hive/trunk/ql/src/test/queries/clientpositive/avro_add_column.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/avro_add_column.q?rev=1617844&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/avro_add_column.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/avro_add_column.q Wed Aug 13 21:55:56 2014
@@ -0,0 +1,17 @@
+-- SORT_QUERY_RESULTS
+
+-- verify that we can actually read avro files
+CREATE TABLE doctors (
+  number int,
+  first_name string)
+STORED AS AVRO;
+
+DESCRIBE doctors;
+
+ALTER TABLE doctors ADD COLUMNS (last_name string);
+
+DESCRIBE doctors;
+
+LOAD DATA LOCAL INPATH '../../data/files/doctors.avro' INTO TABLE doctors;
+
+SELECT * FROM doctors;
\ No newline at end of file

Added: hive/trunk/ql/src/test/queries/clientpositive/avro_add_column2.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/avro_add_column2.q?rev=1617844&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/avro_add_column2.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/avro_add_column2.q Wed Aug 13 21:55:56 2014
@@ -0,0 +1,25 @@
+-- SORT_QUERY_RESULTS
+
+-- verify that we can actually read avro files
+CREATE TABLE doctors (
+  number int,
+  first_name string,
+  last_name string)
+STORED AS AVRO;
+
+LOAD DATA LOCAL INPATH '../../data/files/doctors.avro' INTO TABLE doctors;
+
+CREATE TABLE doctors_copy (
+  number int,
+  first_name string)
+STORED AS AVRO;
+
+INSERT INTO TABLE doctors_copy SELECT number, first_name FROM doctors;
+
+ALTER TABLE doctors_copy ADD COLUMNS (last_name string);
+
+LOAD DATA LOCAL INPATH '../../data/files/doctors.avro' INTO TABLE doctors_copy;
+
+DESCRIBE doctors_copy;
+
+SELECT * FROM doctors_copy;
\ No newline at end of file

Added: hive/trunk/ql/src/test/queries/clientpositive/avro_add_column3.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/avro_add_column3.q?rev=1617844&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/avro_add_column3.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/avro_add_column3.q Wed Aug 13 21:55:56 2014
@@ -0,0 +1,24 @@
+-- SORT_QUERY_RESULTS
+
+-- verify that we can actually read avro files
+CREATE TABLE doctors (
+  number int,
+  first_name string,
+  last_name string)
+STORED AS AVRO;
+
+LOAD DATA LOCAL INPATH '../../data/files/doctors.avro' INTO TABLE doctors;
+
+CREATE TABLE doctors_copy (
+  number int,
+  first_name string)
+PARTITIONED BY (part int)
+STORED AS AVRO;
+
+INSERT INTO TABLE doctors_copy PARTITION(part=1) SELECT number, first_name FROM doctors;
+
+ALTER TABLE doctors_copy ADD COLUMNS (last_name string);
+
+DESCRIBE doctors_copy;
+
+SELECT * FROM doctors_copy;
\ No newline at end of file

Added: hive/trunk/ql/src/test/results/clientpositive/avro_add_column.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/avro_add_column.q.out?rev=1617844&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/avro_add_column.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/avro_add_column.q.out Wed Aug 13 21:55:56 2014
@@ -0,0 +1,71 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+
+-- verify that we can actually read avro files
+CREATE TABLE doctors (
+  number int,
+  first_name string)
+STORED AS AVRO
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+
+-- verify that we can actually read avro files
+CREATE TABLE doctors (
+  number int,
+  first_name string)
+STORED AS AVRO
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@doctors
+PREHOOK: query: DESCRIBE doctors
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@doctors
+POSTHOOK: query: DESCRIBE doctors
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@doctors
+number              	int                 	from deserializer   
+first_name          	string              	from deserializer   
+PREHOOK: query: ALTER TABLE doctors ADD COLUMNS (last_name string)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@doctors
+PREHOOK: Output: default@doctors
+POSTHOOK: query: ALTER TABLE doctors ADD COLUMNS (last_name string)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@doctors
+POSTHOOK: Output: default@doctors
+PREHOOK: query: DESCRIBE doctors
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@doctors
+POSTHOOK: query: DESCRIBE doctors
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@doctors
+number              	int                 	from deserializer   
+first_name          	string              	from deserializer   
+last_name           	string              	from deserializer   
+PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/doctors.avro' INTO TABLE doctors
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@doctors
+POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/doctors.avro' INTO TABLE doctors
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@doctors
+PREHOOK: query: SELECT * FROM doctors
+PREHOOK: type: QUERY
+PREHOOK: Input: default@doctors
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM doctors
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@doctors
+#### A masked pattern was here ####
+1	William	Hartnell
+10	David	Tennant
+11	Matt	Smith
+2	Patrick	Troughton
+3	Jon	Pertwee
+4	Tom	Baker
+5	Peter	Davison
+6	Colin	Baker
+7	Sylvester	McCoy
+8	Paul	McGann
+9	Christopher	Eccleston

Added: hive/trunk/ql/src/test/results/clientpositive/avro_add_column2.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/avro_add_column2.q.out?rev=1617844&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/avro_add_column2.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/avro_add_column2.q.out Wed Aug 13 21:55:56 2014
@@ -0,0 +1,107 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+
+-- verify that we can actually read avro files
+CREATE TABLE doctors (
+  number int,
+  first_name string,
+  last_name string)
+STORED AS AVRO
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+
+-- verify that we can actually read avro files
+CREATE TABLE doctors (
+  number int,
+  first_name string,
+  last_name string)
+STORED AS AVRO
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@doctors
+PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/doctors.avro' INTO TABLE doctors
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@doctors
+POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/doctors.avro' INTO TABLE doctors
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@doctors
+PREHOOK: query: CREATE TABLE doctors_copy (
+  number int,
+  first_name string)
+STORED AS AVRO
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+POSTHOOK: query: CREATE TABLE doctors_copy (
+  number int,
+  first_name string)
+STORED AS AVRO
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@doctors_copy
+PREHOOK: query: INSERT INTO TABLE doctors_copy SELECT number, first_name FROM doctors
+PREHOOK: type: QUERY
+PREHOOK: Input: default@doctors
+PREHOOK: Output: default@doctors_copy
+POSTHOOK: query: INSERT INTO TABLE doctors_copy SELECT number, first_name FROM doctors
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@doctors
+POSTHOOK: Output: default@doctors_copy
+POSTHOOK: Lineage: doctors_copy.first_name SIMPLE [(doctors)doctors.FieldSchema(name:first_name, type:string, comment:from deserializer), ]
+POSTHOOK: Lineage: doctors_copy.number SIMPLE [(doctors)doctors.FieldSchema(name:number, type:int, comment:from deserializer), ]
+PREHOOK: query: ALTER TABLE doctors_copy ADD COLUMNS (last_name string)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@doctors_copy
+PREHOOK: Output: default@doctors_copy
+POSTHOOK: query: ALTER TABLE doctors_copy ADD COLUMNS (last_name string)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@doctors_copy
+POSTHOOK: Output: default@doctors_copy
+PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/doctors.avro' INTO TABLE doctors_copy
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@doctors_copy
+POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/doctors.avro' INTO TABLE doctors_copy
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@doctors_copy
+PREHOOK: query: DESCRIBE doctors_copy
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@doctors_copy
+POSTHOOK: query: DESCRIBE doctors_copy
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@doctors_copy
+number              	int                 	from deserializer   
+first_name          	string              	from deserializer   
+last_name           	string              	from deserializer   
+PREHOOK: query: SELECT * FROM doctors_copy
+PREHOOK: type: QUERY
+PREHOOK: Input: default@doctors_copy
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM doctors_copy
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@doctors_copy
+#### A masked pattern was here ####
+1	William	Hartnell
+1	William	NULL
+10	David	NULL
+10	David	Tennant
+11	Matt	NULL
+11	Matt	Smith
+2	Patrick	NULL
+2	Patrick	Troughton
+3	Jon	NULL
+3	Jon	Pertwee
+4	Tom	Baker
+4	Tom	NULL
+5	Peter	Davison
+5	Peter	NULL
+6	Colin	Baker
+6	Colin	NULL
+7	Sylvester	McCoy
+7	Sylvester	NULL
+8	Paul	McGann
+8	Paul	NULL
+9	Christopher	Eccleston
+9	Christopher	NULL

Added: hive/trunk/ql/src/test/results/clientpositive/avro_add_column3.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/avro_add_column3.q.out?rev=1617844&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/avro_add_column3.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/avro_add_column3.q.out Wed Aug 13 21:55:56 2014
@@ -0,0 +1,98 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+
+-- verify that we can actually read avro files
+CREATE TABLE doctors (
+  number int,
+  first_name string,
+  last_name string)
+STORED AS AVRO
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+
+-- verify that we can actually read avro files
+CREATE TABLE doctors (
+  number int,
+  first_name string,
+  last_name string)
+STORED AS AVRO
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@doctors
+PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/doctors.avro' INTO TABLE doctors
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@doctors
+POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/doctors.avro' INTO TABLE doctors
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@doctors
+PREHOOK: query: CREATE TABLE doctors_copy (
+  number int,
+  first_name string)
+PARTITIONED BY (part int)
+STORED AS AVRO
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+POSTHOOK: query: CREATE TABLE doctors_copy (
+  number int,
+  first_name string)
+PARTITIONED BY (part int)
+STORED AS AVRO
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@doctors_copy
+PREHOOK: query: INSERT INTO TABLE doctors_copy PARTITION(part=1) SELECT number, first_name FROM doctors
+PREHOOK: type: QUERY
+PREHOOK: Input: default@doctors
+PREHOOK: Output: default@doctors_copy@part=1
+POSTHOOK: query: INSERT INTO TABLE doctors_copy PARTITION(part=1) SELECT number, first_name FROM doctors
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@doctors
+POSTHOOK: Output: default@doctors_copy@part=1
+POSTHOOK: Lineage: doctors_copy PARTITION(part=1).first_name SIMPLE [(doctors)doctors.FieldSchema(name:first_name, type:string, comment:from deserializer), ]
+POSTHOOK: Lineage: doctors_copy PARTITION(part=1).number SIMPLE [(doctors)doctors.FieldSchema(name:number, type:int, comment:from deserializer), ]
+PREHOOK: query: ALTER TABLE doctors_copy ADD COLUMNS (last_name string)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@doctors_copy
+PREHOOK: Output: default@doctors_copy
+POSTHOOK: query: ALTER TABLE doctors_copy ADD COLUMNS (last_name string)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@doctors_copy
+POSTHOOK: Output: default@doctors_copy
+PREHOOK: query: DESCRIBE doctors_copy
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@doctors_copy
+POSTHOOK: query: DESCRIBE doctors_copy
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@doctors_copy
+number              	int                 	from deserializer   
+first_name          	string              	from deserializer   
+last_name           	string              	from deserializer   
+part                	int                 	                    
+	 	 
+# Partition Information	 	 
+# col_name            	data_type           	comment             
+	 	 
+part                	int                 	                    
+PREHOOK: query: SELECT * FROM doctors_copy
+PREHOOK: type: QUERY
+PREHOOK: Input: default@doctors_copy
+PREHOOK: Input: default@doctors_copy@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM doctors_copy
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@doctors_copy
+POSTHOOK: Input: default@doctors_copy@part=1
+#### A masked pattern was here ####
+1	William	NULL	1
+10	David	NULL	1
+11	Matt	NULL	1
+2	Patrick	NULL	1
+3	Jon	NULL	1
+4	Tom	NULL	1
+5	Peter	NULL	1
+6	Colin	NULL	1
+7	Sylvester	NULL	1
+8	Paul	NULL	1
+9	Christopher	NULL	1

Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/avro/TypeInfoToSchema.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/avro/TypeInfoToSchema.java?rev=1617844&r1=1617843&r2=1617844&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/avro/TypeInfoToSchema.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/avro/TypeInfoToSchema.java Wed Aug 13 21:55:56 2014
@@ -26,6 +26,8 @@ import org.apache.hadoop.hive.serde2.typ
 import org.apache.hadoop.hive.serde2.typeinfo.StructTypeInfo;
 import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
 import org.apache.hadoop.hive.serde2.typeinfo.UnionTypeInfo;
+import org.codehaus.jackson.JsonNode;
+import org.codehaus.jackson.node.JsonNodeFactory;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -216,13 +218,14 @@ public class TypeInfoToSchema {
   private List<Schema.Field> getFields(Schema.Field schemaField) {
     List<Schema.Field> fields = new ArrayList<Schema.Field>();
 
+    JsonNode nullDefault = JsonNodeFactory.instance.nullNode();
     if (schemaField.schema().getType() == Schema.Type.RECORD) {
       for (Schema.Field field : schemaField.schema().getFields()) {
-        fields.add(new Schema.Field(field.name(), field.schema(), field.doc(), null));
+        fields.add(new Schema.Field(field.name(), field.schema(), field.doc(), nullDefault));
       }
     } else {
       fields.add(new Schema.Field(schemaField.name(), schemaField.schema(), schemaField.doc(),
-          null));
+          nullDefault));
     }
 
     return fields;

Modified: hive/trunk/serde/src/test/org/apache/hadoop/hive/serde2/avro/TestTypeInfoToSchema.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/test/org/apache/hadoop/hive/serde2/avro/TestTypeInfoToSchema.java?rev=1617844&r1=1617843&r2=1617844&view=diff
==============================================================================
--- hive/trunk/serde/src/test/org/apache/hadoop/hive/serde2/avro/TestTypeInfoToSchema.java (original)
+++ hive/trunk/serde/src/test/org/apache/hadoop/hive/serde2/avro/TestTypeInfoToSchema.java Wed Aug 13 21:55:56 2014
@@ -86,7 +86,8 @@ public class TestTypeInfoToSchema {
         "\"fields\":[" +
         "{\"name\":\"testCol\"," +
         "\"type\":" + specificSchema + "," +
-        "\"doc\":\"\"}" +
+        "\"doc\":\"\"," +
+        "\"default\":null}" +
         "]}";
   }
 

Modified: hive/trunk/serde/src/test/resources/avro-nested-struct.avsc
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/test/resources/avro-nested-struct.avsc?rev=1617844&r1=1617843&r2=1617844&view=diff
==============================================================================
--- hive/trunk/serde/src/test/resources/avro-nested-struct.avsc (original)
+++ hive/trunk/serde/src/test/resources/avro-nested-struct.avsc Wed Aug 13 21:55:56 2014
@@ -5,15 +5,15 @@
 "doc":"struct<superfield1:string,superfield2:struct<field1:string,field2:int>>",
 "fields":
 [
-{"name":"superfield1","type":["null","string"],"doc":"string"},
+{"name":"superfield1","type":["null","string"],"doc":"string","default":null},
 {"name":"superfield2","type":["null",{"type":"record","name":"record_0",
 "doc":"struct<field1:string,field2:int>",
 "fields":
 [
-{"name":"field1","type":["null","string"],"doc":"string"},
-{"name":"field2","type":["null","int"],"doc":"int"}
+{"name":"field1","type":["null","string"],"doc":"string","default":null},
+{"name":"field2","type":["null","int"],"doc":"int","default":null}
 ]
 }
 ],
-"doc":"struct<field1:string,field2:int>"}]
+"doc":"struct<field1:string,field2:int>","default":null}]
 }
\ No newline at end of file

Modified: hive/trunk/serde/src/test/resources/avro-struct.avsc
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/test/resources/avro-struct.avsc?rev=1617844&r1=1617843&r2=1617844&view=diff
==============================================================================
--- hive/trunk/serde/src/test/resources/avro-struct.avsc (original)
+++ hive/trunk/serde/src/test/resources/avro-struct.avsc Wed Aug 13 21:55:56 2014
@@ -6,19 +6,19 @@
 field6:smallint,field7:int,field8:bigint,field9:float,field10:double,field11:boolean,
 field12:decimal(4,2),field13:void>",
 "fields":[
-{"name":"field1","type":["null","string"],"doc":"string"},
-{"name":"field2","type":["null","string"],"doc":"char(5)"},
-{"name":"field3","type":["null","string"],"doc":"varchar(5)"},
-{"name":"field4","type":["null","bytes"],"doc":"binary"},
-{"name":"field5","type":["null","int"],"doc":"tinyint"},
-{"name":"field6","type":["null","int"],"doc":"smallint"},
-{"name":"field7","type":["null","int"],"doc":"int"},
-{"name":"field8","type":["null","long"],"doc":"bigint"},
-{"name":"field9","type":["null","float"],"doc":"float"},
-{"name":"field10","type":["null","double"],"doc":"double"},
-{"name":"field11","type":["null","boolean"],"doc":"boolean"},
+{"name":"field1","type":["null","string"],"doc":"string","default":null},
+{"name":"field2","type":["null","string"],"doc":"char(5)","default":null},
+{"name":"field3","type":["null","string"],"doc":"varchar(5)","default":null},
+{"name":"field4","type":["null","bytes"],"doc":"binary","default":null},
+{"name":"field5","type":["null","int"],"doc":"tinyint","default":null},
+{"name":"field6","type":["null","int"],"doc":"smallint","default":null},
+{"name":"field7","type":["null","int"],"doc":"int","default":null},
+{"name":"field8","type":["null","long"],"doc":"bigint","default":null},
+{"name":"field9","type":["null","float"],"doc":"float","default":null},
+{"name":"field10","type":["null","double"],"doc":"double","default":null},
+{"name":"field11","type":["null","boolean"],"doc":"boolean","default":null},
 {"name":"field12","type":["null",{"type":"bytes","logicalType":"decimal","precision":4,
-"scale":2}],"doc":"decimal(4,2)"},
-{"name":"field13","type":"null","doc":"void"}
+"scale":2}],"doc":"decimal(4,2)","default":null},
+{"name":"field13","type":"null","doc":"void","default":null}
 ]
 }
\ No newline at end of file