public static Frame fromProto(Common.Frame proto) { List<Object> parsedRows = new ArrayList<>(proto.getRowsCount()); for (Common.Row protoRow : proto.getRowsList()) { ArrayList<Object> row = new ArrayList<>(protoRow.getValueCount()); for (Common.ColumnValue protoColumn : protoRow.getValueList()) { final Object value; if (!isNewStyleColumn(protoColumn)) { // Backward compatibility value = parseOldStyleColumn(protoColumn); } else { // Current style parsing (separate scalar and array values) value = parseColumn(protoColumn); } row.add(value); } parsedRows.add(row); } return new Frame(proto.getOffset(), proto.getDone(), parsedRows); }
@java.lang.Override public org.apache.calcite.avatica.proto.Common.Row buildPartial() { org.apache.calcite.avatica.proto.Common.Row result = new org.apache.calcite.avatica.proto.Common.Row(this); int from_bitField0_ = bitField0_; if (valueBuilder_ == null) { if (((bitField0_ & 0x00000001) == 0x00000001)) { value_ = java.util.Collections.unmodifiableList(value_); bitField0_ = (bitField0_ & ~0x00000001); } result.value_ = value_; } else { result.value_ = valueBuilder_.build(); } onBuilt(); return result; }
public Builder mergeFrom(org.apache.calcite.avatica.proto.Common.Row other) { if (other == org.apache.calcite.avatica.proto.Common.Row.getDefaultInstance()) return this; if (valueBuilder_ == null) { if (!other.value_.isEmpty()) {
input.readMessage(org.apache.calcite.avatica.proto.Common.Row.parser(), extensionRegistry)); break;
assertEquals(1, rows.size()); Common.Row row = rows.get(0); List<Common.ColumnValue> columnValues = row.getValueList(); assertEquals(2, columnValues.size());
input.readMessage(org.apache.calcite.avatica.proto.Common.Row.parser(), extensionRegistry)); break;
assertEquals(1, rows.size()); Common.Row row = rows.get(0); List<Common.ColumnValue> columnValues = row.getValueList(); assertEquals(2, columnValues.size());
if (!parseUnknownFieldProto3( input, unknownFields, extensionRegistry, tag)) { done = true; makeExtensionsImmutable();
if (!parseUnknownFieldProto3( input, unknownFields, extensionRegistry, tag)) { done = true; makeExtensionsImmutable();
assertEquals(1, rows.size()); Common.Row row = rows.get(0); List<Common.ColumnValue> columnValues = row.getValueList(); assertEquals(2, columnValues.size());
mutable_bitField0_ |= 0x00000004; rows_.add(input.readMessage(org.apache.calcite.avatica.proto.Common.Row.parser(), extensionRegistry)); break;
final Common.Row.Builder rowBuilder = Common.Row.newBuilder();
value_ = java.util.Collections.unmodifiableList(value_); makeExtensionsImmutable();
public Builder mergeFrom(org.apache.calcite.avatica.proto.Common.Row other) { if (other == org.apache.calcite.avatica.proto.Common.Row.getDefaultInstance()) return this; if (valueBuilder_ == null) { if (!other.value_.isEmpty()) {
public Builder mergeFrom(org.apache.calcite.avatica.proto.Common.Row other) { if (other == org.apache.calcite.avatica.proto.Common.Row.getDefaultInstance()) return this; if (valueBuilder_ == null) { if (!other.value_.isEmpty()) {
@Test public void testDeprecatedValueAttributeForArrays() { // Create a row with schema: [VARCHAR, ARRAY] List<Object> rows = Collections.<Object>singletonList(new Object[] {"string", Arrays.asList(1, 2, 3)}); Meta.Frame frame = Meta.Frame.create(0, true, rows); // Convert it to a protobuf Common.Frame protoFrame = frame.toProto(); assertEquals(1, protoFrame.getRowsCount()); // Get that row we created Common.Row protoRow = protoFrame.getRows(0); // One row has many columns List<Common.ColumnValue> protoColumns = protoRow.getValueList(); // We should have two columns assertEquals(2, protoColumns.size()); // Fetch the ARRAY column Common.ColumnValue protoColumn = protoColumns.get(1); // We should have the 3 ARRAY elements in the array_values attribute as well as the deprecated // values attribute. List<Common.TypedValue> deprecatedValues = protoColumn.getValueList(); assertEquals(3, deprecatedValues.size()); assertTrue("Column 2 should have an array_value", protoColumns.get(1).getHasArrayValue()); List<Common.TypedValue> arrayValues = protoColumns.get(1).getArrayValueList(); assertEquals(arrayValues, deprecatedValues); }
public Common.Frame toProto() { Common.Frame.Builder builder = Common.Frame.newBuilder(); builder.setDone(done).setOffset(offset); for (Object row : this.rows) { if (null == row) { // Does this need to be persisted for some reason? continue; } final Common.Row.Builder rowBuilder = Common.Row.newBuilder(); if (row instanceof Object[]) { // If only Object[] was also Iterable. for (Object element : (Object[]) row) { parseColumn(rowBuilder, element); } } else if (row instanceof Iterable) { for (Object element : (Iterable<?>) row) { parseColumn(rowBuilder, element); } } else { // Can a "row" be a primitive? A struct? Only an Array? throw new RuntimeException("Only arrays are supported"); } // Collect all rows builder.addRows(rowBuilder.build()); } return builder.build(); }
public Common.Frame toProto() { Common.Frame.Builder builder = Common.Frame.newBuilder(); builder.setDone(done).setOffset(offset); for (Object row : this.rows) { if (null == row) { // Does this need to be persisted for some reason? continue; } final Common.Row.Builder rowBuilder = Common.Row.newBuilder(); if (row instanceof Object[]) { // If only Object[] was also Iterable. for (Object element : (Object[]) row) { parseColumn(rowBuilder, element); } } else if (row instanceof Iterable) { for (Object element : (Iterable<?>) row) { parseColumn(rowBuilder, element); } } else { // Can a "row" be a primitive? A struct? Only an Array? throw new RuntimeException("Only arrays are supported"); } // Collect all rows builder.addRows(rowBuilder.build()); } return builder.build(); }
@Test public void testDeprecatedValueAttributeForScalars() { // Create a row with schema: [VARCHAR, INTEGER, DATE] List<Object> rows = Collections.<Object>singletonList(new Object[] {"string", Integer.MAX_VALUE, new Date().getTime()}); Meta.Frame frame = Meta.Frame.create(0, true, rows); // Convert it to a protobuf Common.Frame protoFrame = frame.toProto(); assertEquals(1, protoFrame.getRowsCount()); // Get that row we created Common.Row protoRow = protoFrame.getRows(0); // One row has many columns List<Common.ColumnValue> protoColumns = protoRow.getValueList(); assertEquals(3, protoColumns.size()); // Verify that the scalar value is also present in the deprecated values attributes. List<Common.TypedValue> deprecatedValues = protoColumns.get(0).getValueList(); assertEquals(1, deprecatedValues.size()); Common.TypedValue scalarValue = protoColumns.get(0).getScalarValue(); assertEquals(deprecatedValues.get(0), scalarValue); }
@Test public void testDeprecatedValueAttributeForArrays() { // Create a row with schema: [VARCHAR, ARRAY] List<Object> rows = Collections.<Object>singletonList(new Object[] {"string", Arrays.asList(1, 2, 3)}); Meta.Frame frame = Meta.Frame.create(0, true, rows); // Convert it to a protobuf Common.Frame protoFrame = frame.toProto(); assertEquals(1, protoFrame.getRowsCount()); // Get that row we created Common.Row protoRow = protoFrame.getRows(0); // One row has many columns List<Common.ColumnValue> protoColumns = protoRow.getValueList(); // We should have two columns assertEquals(2, protoColumns.size()); // Fetch the ARRAY column Common.ColumnValue protoColumn = protoColumns.get(1); // We should have the 3 ARRAY elements in the array_values attribute as well as the deprecated // values attribute. List<Common.TypedValue> deprecatedValues = protoColumn.getValueList(); assertEquals(3, deprecatedValues.size()); assertTrue("Column 2 should have an array_value", protoColumns.get(1).getHasArrayValue()); List<Common.TypedValue> arrayValues = protoColumns.get(1).getArrayValueList(); assertEquals(arrayValues, deprecatedValues); }