Package net.sf.jsqlparser.expression

Examples of net.sf.jsqlparser.expression.Expression


    return INVALID_SELECTIVITY;
  }

  // no constants on both sides; columns within a single table are compared
  private static double estimate(String queryName, MinorThan mt) {
    final Expression leftExp = mt.getLeftExpression();
    final Expression rightExp = mt.getRightExpression();

    if (leftExp instanceof Column && rightExp instanceof Column) {
      final String rightname = ((Column) rightExp).getColumnName();
      final String leftname = ((Column) leftExp).getColumnName();
      if (queryName.equalsIgnoreCase("TPCH4") || queryName.equalsIgnoreCase("TPCH12"))
View Full Code Here


  /*************************************************************************************
   * WHERE clause - SelectOperator
   *************************************************************************************/
  private void addSelectOperator(Component component) {
    final Expression whereCompExpr = createWhereForComponent(component);

    processWhereForComponent(component, whereCompExpr);
    if (_costEst != null)
      _costEst.processWhereCost(component, whereCompExpr);
  }
View Full Code Here

  /*
   * Merging atomicExpr and orExpressions corresponding to this component
   */
  private Expression createWhereForComponent(Component component) {
    Expression expr = _compNamesAndExprs.get(component.getName());

    for (final Map.Entry<Set<String>, Expression> orEntry : _compNamesOrExprs.entrySet()) {
      final Set<String> orCompNames = orEntry.getKey();

      // TODO-PRIO: the full solution would be that OrExpressions are
      // split into subexpressions
      // which might be executed on their LCM
      // Not implemented because it's quite rare - only TPCH7
      // Even in TPCH7 there is no need for multiple LCM.
      // TODO-PRIO: selectivityEstimation for pushing OR need to be
      // improved
      final Expression orExpr = orEntry.getValue();
      if (HierarchyExtractor.isLCM(component, orCompNames))
        expr = appendAnd(expr, orExpr);
      else if (component instanceof DataSourceComponent) {
        final DataSourceComponent source = (DataSourceComponent) component;
        final Expression addedExpr = getMineSubset(source, orExpr);
        expr = appendAnd(expr, addedExpr);
      }
    }
    return expr;
  }
View Full Code Here

      }

    if (mine)
      return expr;

    Expression result = null;
    if (expr instanceof OrExpression || expr instanceof AndExpression) {
      final BinaryExpression be = (BinaryExpression) expr;
      result = appendOr(result, getMineSubset(source, be.getLeftExpression()));
      result = appendOr(result, getMineSubset(source, be.getRightExpression()));
    } else if (expr instanceof Parenthesis) {
View Full Code Here

   * SELECT clause - Final aggregation
   */
  private void processSelectClause(List<SelectItem> selectItems) {
    for (final SelectItem si : selectItems)
      if (si instanceof SelectExpressionItem) {
        final Expression selectExpr = ((SelectExpressionItem) si).getExpression();
        if (!(selectExpr instanceof Function))
          _exprList.add(selectExpr);
        else {
          final Function fun = (Function) selectExpr;
          if (fun.getName().equalsIgnoreCase("SUM"))
View Full Code Here

    for (final Map.Entry<Set<String>, Expression> orEntry : collocatedOrs.entrySet()) {
      final List<String> compNames = new ArrayList<String>(orEntry.getKey());
      final List<Component> compList = ParserUtil.getComponents(compNames, _cg);
      final Component affectedComponent = HierarchyExtractor.getLCM(compList);

      final Expression orExpr = orEntry.getValue();
      ParserUtil.addAndExprToComp(collocatedExprs, orExpr, affectedComponent.getName());
    }

    return collocatedExprs;
  }
View Full Code Here

    // Each component process its own part of JSQL whereExpression
    for (final Map.Entry<String, Expression> whereCompExprPair : whereCompExprPairs.entrySet()) {
      final Component affectedComponent = _cg.getQueryPlan().getComponent(
          whereCompExprPair.getKey());
      final Expression whereCompExpr = whereCompExprPair.getValue();
      processWhereForComponent(affectedComponent, whereCompExpr);
    }

  }
View Full Code Here

  }

  final public Update Update() throws ParseException {
        Update update = new Update();
        Table table = null;
        Expression where = null;
        Column tableColumn = null;
        List expList = new ArrayList();
        List columns = new ArrayList();
        Expression value = null;
    jj_consume_token(K_UPDATE);
    table = TableWithAlias();
    jj_consume_token(K_SET);
    tableColumn = Column();
    jj_consume_token(77);
View Full Code Here

  final public Replace Replace() throws ParseException {
        Replace replace = new Replace();
        Table table = null;
        Column tableColumn = null;
        Expression value = null;

        List columns = new ArrayList();
        List expList = new ArrayList();
        ItemsList itemsList = null;
        Expression exp = null;
    jj_consume_token(K_REPLACE);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case K_INTO:
      jj_consume_token(K_INTO);
      break;
View Full Code Here

        Table table = null;
        Column tableColumn = null;
        List columns = new ArrayList();
        List primaryExpList = new ArrayList();
        ItemsList itemsList = null;
        Expression exp = null;
    jj_consume_token(K_INSERT);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case K_INTO:
      jj_consume_token(K_INTO);
      break;
View Full Code Here

TOP

Related Classes of net.sf.jsqlparser.expression.Expression

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.