private ColumnReference createTempColumn(int i, Expression ex) { if (ex instanceof ColumnReference) { ColumnReference left = (ColumnReference)ex; return new ColumnReference(null, COL_PREFIX + i, left.getMetadataObject(), ex.getType()); } //just an expression - there's a lot of metadata lost here return new ColumnReference(null, COL_PREFIX + i, null, ex.getType()); }
/** * Helper method for getting runtime {@link org.teiid.connector.metadata.runtime.Element} from a * {@link org.teiid.language.DerivedColumn}. * @param symbol Input ISelectSymbol * @return Element returned metadata runtime Element */ private Column getElementFromSymbol(DerivedColumn symbol) { ColumnReference expr = (ColumnReference) symbol.getExpression(); return expr.getMetadataObject(); }
public static void convertCrossJoinToInner(LanguageObject obj, LanguageFactory lf) { if (obj instanceof Join) { Join join = (Join)obj; if (join.getJoinType() == JoinType.CROSS_JOIN) { Literal one = lf.createLiteral(1, TypeFacility.RUNTIME_TYPES.INTEGER); join.setCondition(lf.createCompareCriteria(Operator.EQ, one, one)); join.setJoinType(JoinType.INNER_JOIN); } } }
@Override public Class<?> getType() { return query.getProjectedQuery().getDerivedColumns().get(0).getExpression().getType(); }
private void setProjected(QueryExpression qe) { if (qe instanceof Select) { Select select = (Select)qe; for (DerivedColumn dc : select.getDerivedColumns()) { dc.setProjected(true); } } else { org.teiid.language.SetQuery sq = (org.teiid.language.SetQuery)qe; setProjected(sq.getLeftQuery()); setProjected(sq.getRightQuery()); } }
@Override public List<?> translate(Function function) { Expression trueValue = function.getParameters().get(0); Expression falseValue = trueValue; falseValue = new IsNull(falseValue, true); if (!(trueValue instanceof Predicate)) { trueValue = new Comparison(trueValue, new Literal(Boolean.TRUE, TypeFacility.RUNTIME_TYPES.BOOLEAN), Comparison.Operator.EQ); } return Arrays.asList("CASE WHEN ", trueValue, " THEN 'true' WHEN ", falseValue, " THEN 'false' END"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } });
@Override public Expression translateGeographySelect(Expression expr) { return new Function(SourceSystemFunctions.ST_ASEWKB, Arrays.asList( new Function("CAST", //$NON-NLS-1$ Arrays.asList(expr, new Literal("geometry", TypeFacility.RUNTIME_TYPES.STRING)), //$NON-NLS-1$ TypeFacility.RUNTIME_TYPES.GEOMETRY)), TypeFacility.RUNTIME_TYPES.VARBINARY); }
public static DerivedColumn example(String symbolName, String alias) throws Exception { DerivedColumn selectSymbol = new DerivedColumn(alias, new ColumnReference(null, symbolName, null, DataTypeManager.DefaultDataClasses.INTEGER)); return selectSymbol; }
@Override public List<?> translate(Function function) { ((Literal)function.getParameters().get(1)).setValue(INTEGER_TYPE); return null; } }, FunctionModifier.BOOLEAN);
@Override public WindowFrame clone() { WindowFrame clone = new WindowFrame(this.mode); if (start != null) { clone.setStart(start.clone()); } if (end != null) { clone.setEnd(end.clone()); } return clone; }
public SwaggerProcedureExecution(Call command, SwaggerExecutionFactory translator, ExecutionContext executionContext, RuntimeMetadata metadata, WSConnection connection) throws TranslatorException { super(translator, executionContext, metadata, connection); this.command = command; this.expectedColumnTypes = command.getResultSetColumnTypes(); }
public Comparison createCompareCriteria( Comparison.Operator operator, Expression leftExpression, Expression rightExpression) { return new Comparison(leftExpression, rightExpression, operator); }
private TableReference unwrap(TableReference table) { if (table instanceof DerivedTable) { return table; } else if (table instanceof NamedProcedureCall) { NamedProcedureCall npc = (NamedProcedureCall) table; return npc.getCall(); } return null; }
public SubqueryComparison createSubqueryCompareCriteria( Expression leftExpression, Comparison.Operator operator, SubqueryComparison.Quantifier quantifier, Select subquery) { return new SubqueryComparison(leftExpression, operator, quantifier, subquery); }
/** * Check whether a string is considered a reserved word or not. Subclasses may override to change definition of reserved word. * * @param string String to check * @return True if reserved word */ static boolean isReservedWord( String string ) { if (string == null) { return false; } return SQLConstants.isReservedWord(string); }
/** * @see org.teiid.language.QueryExpression#getProjectedQuery() */ public Select getProjectedQuery() { if (leftQuery instanceof Select) { return (Select)leftQuery; } return leftQuery.getProjectedQuery(); }
private void setProjected(QueryExpression qe) { if (qe instanceof Select) { Select select = (Select)qe; for (DerivedColumn dc : select.getDerivedColumns()) { dc.setProjected(true); } } else { org.teiid.language.SetQuery sq = (org.teiid.language.SetQuery)qe; setProjected(sq.getLeftQuery()); setProjected(sq.getRightQuery()); } }
public ODataProcedureExecution(Call command, ODataExecutionFactory translator, ExecutionContext executionContext, RuntimeMetadata metadata, WSConnection connection) throws TranslatorException { super(translator, executionContext, metadata, connection); this.command = command; this.expectedColumnTypes = command.getResultSetColumnTypes(); }
private void setProjected(QueryExpression qe) { if (qe instanceof Select) { Select select = (Select)qe; for (DerivedColumn dc : select.getDerivedColumns()) { dc.setProjected(true); } } else { org.teiid.language.SetQuery sq = (org.teiid.language.SetQuery)qe; setProjected(sq.getLeftQuery()); setProjected(sq.getRightQuery()); } }