@@ -118,6 +118,7 @@ private static final class Column {
118
118
private final Integer charOctetLength ;
119
119
private final boolean computed ;
120
120
private final String defaultValue ;
121
+ private final boolean autoIncrement ;
121
122
122
123
private Column (
123
124
String name ,
@@ -138,7 +139,8 @@ private Column(
138
139
nullable ,
139
140
charOctetLength ,
140
141
false ,
141
- null );
142
+ null ,
143
+ false );
142
144
}
143
145
144
146
private Column (
@@ -151,7 +153,8 @@ private Column(
151
153
boolean nullable ,
152
154
Integer charOctetLength ,
153
155
boolean computed ,
154
- String defaultValue ) {
156
+ String defaultValue ,
157
+ boolean autoIncrement ) {
155
158
this .name = name ;
156
159
this .type = type ;
157
160
this .typeName = typeName ;
@@ -162,14 +165,17 @@ private Column(
162
165
this .charOctetLength = charOctetLength ;
163
166
this .computed = computed ;
164
167
this .defaultValue = defaultValue ;
168
+ this .autoIncrement = autoIncrement ;
165
169
}
166
170
}
167
171
168
172
private static final List <Column > EXPECTED_COLUMNS =
169
173
Arrays .asList (
170
174
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 ),
173
179
new Column ("ColBool" , Types .BOOLEAN , "BOOL" , null , null , null , false , null ),
174
180
new Column (
175
181
"ColString" ,
@@ -181,7 +187,8 @@ private Column(
181
187
false ,
182
188
100 ,
183
189
false ,
184
- "'Hello World!'" ),
190
+ "'Hello World!'" ,
191
+ false ),
185
192
new Column (
186
193
"ColStringMax" , Types .NVARCHAR , "STRING(MAX)" , 2621440 , null , null , false , 2621440 ),
187
194
new Column ("ColBytes" , Types .BINARY , "BYTES(100)" , 100 , null , null , false , null ),
@@ -196,7 +203,8 @@ private Column(
196
203
false ,
197
204
null ,
198
205
false ,
199
- "DATE '2000-01-01'" ),
206
+ "DATE '2000-01-01'" ,
207
+ false ),
200
208
new Column ("ColTimestamp" , Types .TIMESTAMP , "TIMESTAMP" , 35 , null , null , false , null ),
201
209
new Column ("ColCommitTS" , Types .TIMESTAMP , "TIMESTAMP" , 35 , null , null , false , null ),
202
210
new Column ("ColNumeric" , Types .NUMERIC , "NUMERIC" , 15 , null , 10 , false , null ),
@@ -243,7 +251,10 @@ private Column(
243
251
true ,
244
252
2621440 ,
245
253
true ,
246
- null ));
254
+ null ,
255
+ false ),
256
+ new Column (
257
+ "ColIdentity" , Types .BIGINT , "INT64" , 19 , null , 10 , true , null , false , null , true ));
247
258
248
259
@ Test
249
260
public void testGetColumns () throws SQLException {
@@ -301,8 +312,11 @@ public void testGetColumns() throws SQLException {
301
312
assertNull (rs .getString ("SCOPE_TABLE" ));
302
313
assertEquals (0 , rs .getShort ("SOURCE_DATA_TYPE" ));
303
314
assertTrue (rs .wasNull ());
304
- assertEquals ("NO" , rs .getString ("IS_AUTOINCREMENT" ));
305
315
assertEquals (col .computed ? "YES" : "NO" , rs .getString ("IS_GENERATEDCOLUMN" ));
316
+ // TODO: Remove check when the emulator correctly returns IS_IDENTITY
317
+ if (!EmulatorSpannerHelper .isUsingEmulator ()) {
318
+ assertEquals (col .autoIncrement ? "YES" : "NO" , rs .getString ("IS_AUTOINCREMENT" ));
319
+ }
306
320
assertEquals (24 , rs .getMetaData ().getColumnCount ());
307
321
}
308
322
assertFalse (rs .next ());
0 commit comments