@@ -183,51 +183,47 @@ public Stream<Object[]> query(@Nonnull final String query,
183183 @ Nonnull final Map <String , Object > parameters ,
184184 @ Nonnull final QueryOptions options ) {
185185 return queryData (query , parameters , options )
186- .flatMap (vector -> {
187- List <FieldVector > fieldVectors = vector .getFieldVectors ();
188- var fields = vector .getSchema ().getFields ();
189- return IntStream .range (0 , vector .getRowCount ())
190- .mapToObj (rowNumber -> {
191- ArrayList <Object > row = new ArrayList <>();
192- for (int i = 0 ; i < fieldVectors .size (); i ++) {
193- var schema = fields .get (i );
194- var metaType = schema .getMetadata ().get ("iox::column::type" );
195- String valueType = metaType != null ? metaType .split ("::" )[2 ] : null ;
196-
197- Object value = fieldVectors .get (i ).getObject (rowNumber );
198- if ("field" .equals (valueType )) {
199- switch (metaType ) {
200- case "iox::column_type::field::integer" :
201- case "iox::column_type::field::uinteger" :
202- var intValue = (Long ) value ;
203- row .add (intValue );
204- break ;
205- case "iox::column_type::field::float" :
206- var doubleValue = (Double ) value ;
207- row .add (doubleValue );
208- break ;
209- case "iox::column_type::field::string" :
210- var textValue = (Text ) value ;
211- row .add (textValue .toString ());
212- break ;
213- case "iox::column_type::field::boolean" :
214- var boolValue = (Boolean ) value ;
215- row .add (boolValue );
216- break ;
217- default :
218- }
219- } else if ("timestamp" .equals (valueType )
220- || Objects .equals (schema .getName (), "time" )) {
221- BigInteger time = NanosecondConverter .getTimestampNano (value , schema );
222- row .add (time );
223- } else {
224- row .add (value );
186+ .flatMap (vector -> IntStream .range (0 , vector .getRowCount ())
187+ .mapToObj (rowNumber -> {
188+ ArrayList <Object > row = new ArrayList <>();
189+ for (FieldVector fieldVector : vector .getFieldVectors ()) {
190+ var field = fieldVector .getField ();
191+ var metaType = field .getMetadata ().get ("iox::column::type" );
192+ String valueType = metaType != null ? metaType .split ("::" )[2 ] : null ;
193+
194+ Object value = fieldVector .getObject (rowNumber );
195+ if ("field" .equals (valueType )) {
196+ switch (metaType ) {
197+ case "iox::column_type::field::integer" :
198+ case "iox::column_type::field::uinteger" :
199+ var intValue = (Long ) value ;
200+ row .add (intValue );
201+ break ;
202+ case "iox::column_type::field::float" :
203+ var doubleValue = (Double ) value ;
204+ row .add (doubleValue );
205+ break ;
206+ case "iox::column_type::field::string" :
207+ var textValue = (Text ) value ;
208+ row .add (textValue .toString ());
209+ break ;
210+ case "iox::column_type::field::boolean" :
211+ var boolValue = (Boolean ) value ;
212+ row .add (boolValue );
213+ break ;
214+ default :
225215 }
216+ } else if ("timestamp" .equals (valueType )
217+ || Objects .equals (field .getName (), "time" )) {
218+ BigInteger time = NanosecondConverter .getTimestampNano (value , field );
219+ row .add (time );
220+ } else {
221+ row .add (value );
226222 }
223+ }
227224
228- return row .toArray ();
229- });
230- });
225+ return row .toArray ();
226+ }));
231227 }
232228
233229 @ Nonnull
0 commit comments