public ResultsMessage createResultsMessage(List<? extends List<?>> batch, List<? extends Expression> columnSymbols) { String[] columnNames = new String[columnSymbols.size()]; String[] dataTypes = new String[columnSymbols.size()]; byte clientSerializationVersion = this.dqpWorkContext.getClientVersion().getClientSerializationVersion(); for(int i=0; i<columnSymbols.size(); i++) { Expression symbol = columnSymbols.get(i); columnNames[i] = Symbol.getShortName(Symbol.getOutputName(symbol)); dataTypes[i] = DataTypeManager.getDataTypeName(symbol.getType()); if (dataTypes[i].equals(DataTypeManager.DefaultDataTypes.GEOMETRY) && !this.dqpWorkContext.getSession().isEmbedded() && clientSerializationVersion < BatchSerializer.VERSION_GEOMETRY) { dataTypes[i] = DataTypeManager.DefaultDataTypes.BLOB; } } ResultsMessage result = new ResultsMessage(batch, columnNames, dataTypes); result.setClientSerializationVersion(clientSerializationVersion); result.setDelayDeserialization(this.requestMsg.isDelaySerialization() && this.originalCommand.returnsResultSet()); return result; }
public ResultsMessage createResultsMessage(List<? extends List<?>> batch, List<? extends Expression> columnSymbols) { String[] columnNames = new String[columnSymbols.size()]; String[] dataTypes = new String[columnSymbols.size()]; byte clientSerializationVersion = this.dqpWorkContext.getClientVersion().getClientSerializationVersion(); for(int i=0; i<columnSymbols.size(); i++) { Expression symbol = columnSymbols.get(i); columnNames[i] = Symbol.getShortName(Symbol.getOutputName(symbol)); dataTypes[i] = DataTypeManager.getDataTypeName(symbol.getType()); if (!this.dqpWorkContext.getSession().isEmbedded()) { dataTypes[i] = BatchSerializer.getClientSafeType(dataTypes[i], clientSerializationVersion); } } ResultsMessage result = new ResultsMessage(batch, columnNames, dataTypes); result.setClientSerializationVersion(clientSerializationVersion); result.setDelayDeserialization(this.requestMsg.isDelaySerialization() && this.originalCommand.returnsResultSet()); return result; }
public ResultsMessage createResultsMessage(List<? extends List<?>> batch, List<? extends Expression> columnSymbols) { String[] columnNames = new String[columnSymbols.size()]; String[] dataTypes = new String[columnSymbols.size()]; byte clientSerializationVersion = this.dqpWorkContext.getClientVersion().getClientSerializationVersion(); for(int i=0; i<columnSymbols.size(); i++) { Expression symbol = columnSymbols.get(i); columnNames[i] = Symbol.getShortName(Symbol.getOutputName(symbol)); dataTypes[i] = DataTypeManager.getDataTypeName(symbol.getType()); if (!this.dqpWorkContext.getSession().isEmbedded()) { dataTypes[i] = BatchSerializer.getClientSafeType(dataTypes[i], clientSerializationVersion); } } ResultsMessage result = new ResultsMessage(batch, columnNames, dataTypes); result.setClientSerializationVersion(clientSerializationVersion); result.setDelayDeserialization(this.requestMsg.isDelaySerialization() && this.originalCommand.returnsResultSet()); return result; }
@Test public void testVersion() { assertEquals(4, DQPWorkContext.Version.getVersion("11.0").getClientSerializationVersion()); assertEquals(5, DQPWorkContext.Version.getVersion("11.2").getClientSerializationVersion()); } }