final Meta.CursorFactory cursorFactory = Meta.CursorFactory.deduce(columns, null); return new CalciteSignature<>( sql, ImmutableList.<AvaticaParameter>of(),
public <T> Enumerable<T> enumerable(Meta.StatementHandle handle, CalcitePrepare.CalciteSignature<T> signature) throws SQLException { Map<String, Object> map = new LinkedHashMap<>(); AvaticaStatement statement = lookupStatement(handle); final List<TypedValue> parameterValues = TROJAN.getParameterValues(statement); if (MetaImpl.checkParameterValueHasNull(parameterValues)) { throw new SQLException("exception while executing query: unbound parameter"); } for (Ord<TypedValue> o : Ord.zip(parameterValues)) { map.put("?" + o.i, o.e.toLocal()); } map.putAll(signature.internalParameters); final AtomicBoolean cancelFlag; try { cancelFlag = getCancelFlag(handle); } catch (NoSuchStatementException e) { throw new RuntimeException(e); } map.put(DataContext.Variable.CANCEL_FLAG.camelName, cancelFlag); final DataContext dataContext = createDataContext(map, signature.rootSchema); return signature.enumerable(dataContext); }
return CloneSchema.createCloneTable(connection.getTypeFactory(), RelDataTypeImpl.proto(calciteSignature.rowType), calciteSignature.getCollationList(), Lists.transform(calciteSignature.columns, column -> column.type.rep), new AbstractQueryable<Object>() {
executeDdl(context, sqlNode); return new CalciteSignature<>(query.sql, ImmutableList.of(), ImmutableMap.of(), null,
executeDdl(context, sqlNode); return new CalciteSignature<>(query.sql, ImmutableList.of(), ImmutableMap.of(), null,
return new CalciteSignature<>(query.sql, ImmutableList.<AvaticaParameter>of(), ImmutableMap.<String, Object>of(), null,
return CloneSchema.createCloneTable(connection.getTypeFactory(), RelDataTypeImpl.proto(calciteSignature.rowType), calciteSignature.getCollationList(), Lists.transform(calciteSignature.columns, column -> column.type.rep), new AbstractQueryable<Object>() {
/** Quickly prepares a simple SQL statement, circumventing the usual * preparation process. */ private <T> CalciteSignature<T> simplePrepare(Context context, String sql) { final JavaTypeFactory typeFactory = context.getTypeFactory(); final RelDataType x = typeFactory.builder() .add(SqlUtil.deriveAliasFromOrdinal(0), SqlTypeName.INTEGER) .build(); @SuppressWarnings("unchecked") final List<T> list = (List) ImmutableList.of(1); final List<String> origin = null; final List<List<String>> origins = Collections.nCopies(x.getFieldCount(), origin); final List<ColumnMetaData> columns = getColumnMetaDataList(typeFactory, x, x, origins); final Meta.CursorFactory cursorFactory = Meta.CursorFactory.deduce(columns, null); return new CalciteSignature<>( sql, ImmutableList.of(), ImmutableMap.of(), x, columns, cursorFactory, context.getRootSchema(), ImmutableList.of(), -1, dataContext -> Linq4j.asEnumerable(list), Meta.StatementType.SELECT); }
@Override public ResultSet create(ColumnMetaData.AvaticaType elementType, Iterable<Object> iterable) { final List<ColumnMetaData> columnMetaDataList; if (elementType instanceof ColumnMetaData.StructType) { columnMetaDataList = ((ColumnMetaData.StructType) elementType).columns; } else { columnMetaDataList = ImmutableList.of(ColumnMetaData.dummy(elementType, false)); } final CalcitePrepare.CalciteSignature signature = (CalcitePrepare.CalciteSignature) this.signature; final CalcitePrepare.CalciteSignature<Object> newSignature = new CalcitePrepare.CalciteSignature<>(signature.sql, signature.parameters, signature.internalParameters, signature.rowType, columnMetaDataList, Meta.CursorFactory.ARRAY, signature.rootSchema, ImmutableList.<RelCollation>of(), -1, null); ResultSetMetaData subResultSetMetaData = new AvaticaResultSetMetaData(statement, null, newSignature); final QuarkResultSet resultSet = new QuarkResultSet(statement, signature, subResultSetMetaData, localCalendar.getTimeZone(), new Meta.Frame(0, true, iterable)); final Cursor cursor = resultSet.createCursor(elementType, iterable); return resultSet.execute2(cursor, columnMetaDataList); }
/** Quickly prepares a simple SQL statement, circumventing the usual * preparation process. */ private <T> CalciteSignature<T> simplePrepare(Context context, String sql) { final JavaTypeFactory typeFactory = context.getTypeFactory(); final RelDataType x = typeFactory.builder() .add(SqlUtil.deriveAliasFromOrdinal(0), SqlTypeName.INTEGER) .build(); @SuppressWarnings("unchecked") final List<T> list = (List) ImmutableList.of(1); final List<String> origin = null; final List<List<String>> origins = Collections.nCopies(x.getFieldCount(), origin); final List<ColumnMetaData> columns = getColumnMetaDataList(typeFactory, x, x, origins); final Meta.CursorFactory cursorFactory = Meta.CursorFactory.deduce(columns, null); return new CalciteSignature<>( sql, ImmutableList.of(), ImmutableMap.of(), x, columns, cursorFactory, context.getRootSchema(), ImmutableList.of(), -1, dataContext -> Linq4j.asEnumerable(list), Meta.StatementType.SELECT); }
@Override public ResultSet create(ColumnMetaData.AvaticaType elementType, Iterable<Object> iterable) throws SQLException { final List<ColumnMetaData> columnMetaDataList; if (elementType instanceof ColumnMetaData.StructType) { columnMetaDataList = ((ColumnMetaData.StructType) elementType).columns; } else { columnMetaDataList = ImmutableList.of(ColumnMetaData.dummy(elementType, false)); } final CalcitePrepare.CalciteSignature signature = (CalcitePrepare.CalciteSignature) this.signature; final CalcitePrepare.CalciteSignature<Object> newSignature = new CalcitePrepare.CalciteSignature<>(signature.sql, signature.parameters, signature.internalParameters, signature.rowType, columnMetaDataList, Meta.CursorFactory.ARRAY, signature.rootSchema, ImmutableList.of(), -1, null, statement.getStatementType()); ResultSetMetaData subResultSetMetaData = new AvaticaResultSetMetaData(statement, null, newSignature); final CalciteResultSet resultSet = new CalciteResultSet(statement, signature, subResultSetMetaData, localCalendar.getTimeZone(), new Meta.Frame(0, true, iterable)); final Cursor cursor = resultSet.createCursor(elementType, iterable); return resultSet.execute2(cursor, columnMetaDataList); }
@Override public ResultSet create(ColumnMetaData.AvaticaType elementType, Iterable<Object> iterable) throws SQLException { final List<ColumnMetaData> columnMetaDataList; if (elementType instanceof ColumnMetaData.StructType) { columnMetaDataList = ((ColumnMetaData.StructType) elementType).columns; } else { columnMetaDataList = ImmutableList.of(ColumnMetaData.dummy(elementType, false)); } final CalcitePrepare.CalciteSignature signature = (CalcitePrepare.CalciteSignature) this.signature; final CalcitePrepare.CalciteSignature<Object> newSignature = new CalcitePrepare.CalciteSignature<>(signature.sql, signature.parameters, signature.internalParameters, signature.rowType, columnMetaDataList, Meta.CursorFactory.ARRAY, signature.rootSchema, ImmutableList.of(), -1, null, statement.getStatementType()); ResultSetMetaData subResultSetMetaData = new AvaticaResultSetMetaData(statement, null, newSignature); final CalciteResultSet resultSet = new CalciteResultSet(statement, signature, subResultSetMetaData, localCalendar.getTimeZone(), new Meta.Frame(0, true, iterable)); final Cursor cursor = resultSet.createCursor(elementType, iterable); return resultSet.execute2(cursor, columnMetaDataList); }
public <T> Enumerable<T> enumerable(Meta.StatementHandle handle, CalcitePrepare.CalciteSignature<T> signature) throws SQLException { Map<String, Object> map = new LinkedHashMap<>(); AvaticaStatement statement = lookupStatement(handle); final List<TypedValue> parameterValues = TROJAN.getParameterValues(statement); if (MetaImpl.checkParameterValueHasNull(parameterValues)) { throw new SQLException("exception while executing query: unbound parameter"); } for (Ord<TypedValue> o : Ord.zip(parameterValues)) { map.put("?" + o.i, o.e.toLocal()); } map.putAll(signature.internalParameters); final AtomicBoolean cancelFlag; try { cancelFlag = getCancelFlag(handle); } catch (NoSuchStatementException e) { throw new RuntimeException(e); } map.put(DataContext.Variable.CANCEL_FLAG.camelName, cancelFlag); final DataContext dataContext = createDataContext(map, signature.rootSchema); return signature.enumerable(dataContext); }
public Iterator<Object> iterator() { final DataContext dataContext = Schemas.createDataContext(connection, calciteSignature.rootSchema.plus()); return calciteSignature.enumerable(dataContext).iterator(); } });
public Enumerator<Object> enumerator() { final DataContext dataContext = Schemas.createDataContext(connection, calciteSignature.rootSchema.plus()); return calciteSignature.enumerable(dataContext).enumerator(); }
public Iterator<Object> iterator() { final DataContext dataContext = Schemas.createDataContext(connection, calciteSignature.rootSchema.plus()); return calciteSignature.enumerable(dataContext).iterator(); } });
public Enumerator<Object> enumerator() { final DataContext dataContext = Schemas.createDataContext(connection, calciteSignature.rootSchema.plus()); return calciteSignature.enumerable(dataContext).enumerator(); }