@@ -118,6 +118,7 @@ private static final class Column {
118118 private final Integer charOctetLength ;
119119 private final boolean computed ;
120120 private final String defaultValue ;
121+ private final boolean autoIncrement ;
121122
122123 private Column (
123124 String name ,
@@ -138,7 +139,8 @@ private Column(
138139 nullable ,
139140 charOctetLength ,
140141 false ,
141- null );
142+ null ,
143+ false );
142144 }
143145
144146 private Column (
@@ -151,7 +153,8 @@ private Column(
151153 boolean nullable ,
152154 Integer charOctetLength ,
153155 boolean computed ,
154- String defaultValue ) {
156+ String defaultValue ,
157+ boolean autoIncrement ) {
155158 this .name = name ;
156159 this .type = type ;
157160 this .typeName = typeName ;
@@ -162,14 +165,17 @@ private Column(
162165 this .charOctetLength = charOctetLength ;
163166 this .computed = computed ;
164167 this .defaultValue = defaultValue ;
168+ this .autoIncrement = autoIncrement ;
165169 }
166170 }
167171
168172 private static final List <Column > EXPECTED_COLUMNS =
169173 Arrays .asList (
170174 new Column ("ColInt64" , Types .BIGINT , "INT64" , 19 , null , 10 , false , null ),
171- new Column ("ColFloat64" , Types .DOUBLE , "FLOAT64" , 15 , 16 , 2 , false , null , false , "0.0" ),
172- new Column ("ColFloat32" , Types .REAL , "FLOAT32" , 15 , 16 , 2 , false , null , false , "0.0" ),
175+ new Column (
176+ "ColFloat64" , Types .DOUBLE , "FLOAT64" , 15 , 16 , 2 , false , null , false , "0.0" , false ),
177+ new Column (
178+ "ColFloat32" , Types .REAL , "FLOAT32" , 15 , 16 , 2 , false , null , false , "0.0" , false ),
173179 new Column ("ColBool" , Types .BOOLEAN , "BOOL" , null , null , null , false , null ),
174180 new Column (
175181 "ColString" ,
@@ -181,7 +187,8 @@ private Column(
181187 false ,
182188 100 ,
183189 false ,
184- "'Hello World!'" ),
190+ "'Hello World!'" ,
191+ false ),
185192 new Column (
186193 "ColStringMax" , Types .NVARCHAR , "STRING(MAX)" , 2621440 , null , null , false , 2621440 ),
187194 new Column ("ColBytes" , Types .BINARY , "BYTES(100)" , 100 , null , null , false , null ),
@@ -196,7 +203,8 @@ private Column(
196203 false ,
197204 null ,
198205 false ,
199- "DATE '2000-01-01'" ),
206+ "DATE '2000-01-01'" ,
207+ false ),
200208 new Column ("ColTimestamp" , Types .TIMESTAMP , "TIMESTAMP" , 35 , null , null , false , null ),
201209 new Column ("ColCommitTS" , Types .TIMESTAMP , "TIMESTAMP" , 35 , null , null , false , null ),
202210 new Column ("ColNumeric" , Types .NUMERIC , "NUMERIC" , 15 , null , 10 , false , null ),
@@ -243,7 +251,10 @@ private Column(
243251 true ,
244252 2621440 ,
245253 true ,
246- null ));
254+ null ,
255+ false ),
256+ new Column (
257+ "ColIdentity" , Types .BIGINT , "INT64" , 19 , null , 10 , true , null , false , null , true ));
247258
248259 @ Test
249260 public void testGetColumns () throws SQLException {
@@ -303,6 +314,10 @@ public void testGetColumns() throws SQLException {
303314 assertTrue (rs .wasNull ());
304315 assertEquals ("NO" , rs .getString ("IS_AUTOINCREMENT" ));
305316 assertEquals (col .computed ? "YES" : "NO" , rs .getString ("IS_GENERATEDCOLUMN" ));
317+ // TODO: Remove check when the emulator correctly returns IS_IDENTITY
318+ if (!EmulatorSpannerHelper .isUsingEmulator ()) {
319+ assertEquals (col .autoIncrement ? "YES" : "NO" , rs .getString ("IS_AUTOINCREMENT" ));
320+ }
306321 assertEquals (24 , rs .getMetaData ().getColumnCount ());
307322 }
308323 assertFalse (rs .next ());
0 commit comments