亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? conditioninselect.java

?? 非常棒的java數據庫
?? JAVA
字號:
/*
 * Copyright 2004-2008 H2 Group. Licensed under the H2 License, Version 1.0
 * (http://h2database.com/html/license.html).
 * Initial Developer: H2 Group
 */
package org.h2.expression;

import java.sql.SQLException;

import org.h2.command.dml.Query;
import org.h2.command.dml.Select;
import org.h2.constant.ErrorCode;
import org.h2.engine.Database;
import org.h2.engine.Session;
import org.h2.message.Message;
import org.h2.result.LocalResult;
import org.h2.table.ColumnResolver;
import org.h2.table.TableFilter;
import org.h2.table.TableView;
import org.h2.value.Value;
import org.h2.value.ValueBoolean;
import org.h2.value.ValueNull;

/**
 * An 'in' condition with a subquery, as in WHERE ID IN(SELECT ...)
 */
public class ConditionInSelect extends Condition {
    private Database database;
    private Expression left;
    private Query query;
    private boolean all;
    private int compareType;
    private int queryLevel;

    public ConditionInSelect(Database database, Expression left, Query query, boolean all, int compareType) {
        this.database = database;
        this.left = left;
        this.query = query;
        this.all = all;
        this.compareType = compareType;
    }

    public Value getValue(Session session) throws SQLException {
        Value l = left.getValue(session);
        if (l == ValueNull.INSTANCE) {
            return l;
        }
        query.setSession(session);
        LocalResult rows = query.query(0);
        session.addTemporaryResult(rows);
        boolean hasNull = false;
        boolean result = all;
        while (rows.next()) {
            boolean value;
            Value r = rows.currentRow()[0];
            if (r == ValueNull.INSTANCE) {
                value = false;
                hasNull = true;
            } else {
                value = Comparison.compareNotNull(database, l, r, compareType);
            }
            if (!value && all) {
                result = false;
                break;
            } else if (value && !all) {
                result = true;
                break;
            }
        }
        if (!result && hasNull) {
            return ValueNull.INSTANCE;
        }
        return ValueBoolean.get(result);
    }

    public void mapColumns(ColumnResolver resolver, int queryLevel) throws SQLException {
        left.mapColumns(resolver, queryLevel);
        query.mapColumns(resolver, queryLevel + 1);
        this.queryLevel = Math.max(queryLevel, this.queryLevel);
    }

    public Expression optimize(Session session) throws SQLException {
        left = left.optimize(session);
        if (left == ValueExpression.NULL) {
            return left;
        }
        query.prepare();
        if (query.getColumnCount() != 1) {
            throw Message.getSQLException(ErrorCode.SUBQUERY_IS_NOT_SINGLE_COLUMN);
        }
        // Can not optimize IN(SELECT...): the data may change
        // However, could transform to an inner join
        return this;
    }

    public void setEvaluatable(TableFilter tableFilter, boolean b) {
        left.setEvaluatable(tableFilter, b);
        query.setEvaluatable(tableFilter, b);
    }

    public String getSQL() {
        StringBuffer buff = new StringBuffer("(");
        buff.append(left.getSQL());
        buff.append(" IN(");
        buff.append(query.getPlanSQL());
        buff.append("))");
        return buff.toString();
    }

    public void updateAggregate(Session session) {
        // TODO exists: is it allowed that the subquery contains aggregates?
        // probably not
        // select id from test group by id having 1 in (select * from test2
        // where id=count(test.id))
    }

    public boolean isEverything(ExpressionVisitor visitor) {
        return left.isEverything(visitor) && query.isEverything(visitor);
    }

    public int getCost() {
        return left.getCost() + 10 + (int) (10 * query.getCost());
    }

    public Expression optimizeInJoin(Session session, Select select) throws SQLException {
        if (all || compareType != Comparison.EQUAL) {
            return this;
        }
        if (!query.isEverything(ExpressionVisitor.EVALUATABLE)) {
            return this;
        }
        String alias = query.getFirstColumnAlias(session);
        query.setDistinct(true);
        if (alias == null) {
            return this;
        }
        TableView view = TableView.createTempView(session, session.getUser(), query);
        TableFilter filter = new TableFilter(session, view, view.getName(), false, select);
        select.addTableFilter(filter, true);
        ExpressionColumn column = new ExpressionColumn(session.getDatabase(), null, view.getName(), alias);
        Comparison on = new Comparison(session, Comparison.EQUAL, left, column);
        on.mapColumns(filter, 0);
        filter.addFilterCondition(on, true);
        return ValueExpression.get(ValueBoolean.get(true));
    }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品一区二区三区在线观看| 国产盗摄一区二区三区| 久久精品国产亚洲5555| 亚洲国产成人av| 亚洲综合区在线| 一区二区三区日本| 亚洲午夜激情网页| 日韩成人dvd| 久久99最新地址| 国产福利电影一区二区三区| 丰满放荡岳乱妇91ww| av亚洲精华国产精华精华| 99久久精品99国产精品| 一本到不卡免费一区二区| 色婷婷精品久久二区二区蜜臀av| 在线国产亚洲欧美| 宅男在线国产精品| 久久综合九色欧美综合狠狠| 亚洲一区二区3| 免费成人在线视频观看| 国模少妇一区二区三区| 99久久精品免费| 欧美精品九九99久久| 2020国产精品久久精品美国| 国产精品毛片久久久久久久| 一区二区理论电影在线观看| 久久精品久久精品| 99视频一区二区三区| 欧美军同video69gay| 久久精品亚洲一区二区三区浴池| 亚洲乱码国产乱码精品精可以看| 天堂av在线一区| 国产成人福利片| 欧美日韩精品欧美日韩精品| 久久久久久99久久久精品网站| 亚洲精品视频在线| 国产一区二区三区在线看麻豆| 99久久99久久综合| 欧美一级淫片007| 亚洲欧美日韩中文字幕一区二区三区| 日本vs亚洲vs韩国一区三区二区| 成人99免费视频| 欧美一区二区免费观在线| 国产精品嫩草99a| 美日韩黄色大片| 日本韩国欧美在线| 久久久久久久综合日本| 日韩激情av在线| 色噜噜狠狠色综合中国| 国产日本欧美一区二区| 久久精品国产免费看久久精品| 91网站黄www| 中文字幕二三区不卡| 老鸭窝一区二区久久精品| 亚洲精品一区在线观看| 一个色在线综合| av在线一区二区| 国产香蕉久久精品综合网| 日本亚洲电影天堂| 欧美性色黄大片手机版| 亚洲三级视频在线观看| 国产成人av影院| 精品国产凹凸成av人导航| 午夜精品久久久久久| 色欧美88888久久久久久影院| 欧美激情综合在线| 国产精品一区二区91| 欧美大胆一级视频| 日韩av电影一区| 在线不卡a资源高清| 亚洲最大色网站| 色av综合在线| 亚洲午夜三级在线| 欧美亚洲动漫制服丝袜| 亚洲午夜激情网站| 欧美情侣在线播放| 午夜精品福利在线| 欧美亚洲一区二区三区四区| 亚洲一区二区影院| 欧美日韩亚州综合| 日韩福利电影在线| 日韩女优毛片在线| 国内精品免费**视频| 久久久久久麻豆| 成人动漫精品一区二区| 中文字幕亚洲一区二区va在线| 国产风韵犹存在线视精品| 国产精品视频yy9299一区| av在线免费不卡| 亚洲一本大道在线| 日韩欧美激情在线| 成人精品视频一区二区三区尤物| 国产精品久久久久久久久晋中| 91年精品国产| 青青草成人在线观看| 欧美精品一区二区久久婷婷| 成人永久aaa| 亚洲精品视频在线观看网站| 777午夜精品视频在线播放| 精品一区二区成人精品| 中文子幕无线码一区tr| 欧美午夜精品免费| 狠狠色伊人亚洲综合成人| 中文字幕免费不卡| 在线观看91视频| 精品一区二区三区av| 亚洲欧洲在线观看av| 在线不卡一区二区| 成人黄色小视频在线观看| 亚洲成人一区二区| 欧美国产欧美亚州国产日韩mv天天看完整| 99re热这里只有精品免费视频| 日本成人在线视频网站| 国产精品私人影院| 日韩一二三区不卡| 99r国产精品| 九九在线精品视频| 亚洲一区精品在线| 国产人伦精品一区二区| 精品视频999| 99re这里都是精品| 国内国产精品久久| 亚洲成人在线观看视频| 最新国产精品久久精品| 精品国产免费人成在线观看| 日本韩国欧美国产| 国产成人精品综合在线观看| 亚洲地区一二三色| 亚洲人成网站影音先锋播放| 精品久久久久av影院| 欧美影院精品一区| 99久久精品免费看国产免费软件| 精一区二区三区| 亚洲v中文字幕| 一区二区三区在线免费播放| 亚洲国产岛国毛片在线| 日韩女优电影在线观看| 91麻豆精品国产91久久久使用方法| 成人app网站| 国产白丝精品91爽爽久久| 韩国女主播一区二区三区| 午夜精品一区二区三区三上悠亚| 亚洲婷婷在线视频| 国产精品久久久久婷婷二区次| 国产亚洲精品久| 久久网站最新地址| 26uuu亚洲综合色| 欧美一级久久久久久久大片| 欧美日韩免费一区二区三区视频| 91蜜桃免费观看视频| 97久久人人超碰| av在线免费不卡| 99国产精品视频免费观看| 99热这里都是精品| 91一区在线观看| 日本高清不卡在线观看| 日本久久精品电影| 欧美三级欧美一级| 欧美午夜精品理论片a级按摩| 欧美中文字幕一区| 欧美日韩精品欧美日韩精品| 欧美一区日韩一区| 久久综合资源网| 国产精品丝袜在线| 亚洲女爱视频在线| 亚洲第一主播视频| 麻豆极品一区二区三区| 国产美女一区二区三区| 成人av动漫网站| 在线一区二区三区| 91精品国产一区二区人妖| 日韩欧美中文字幕公布| 国产欧美精品一区二区色综合朱莉| 欧美极品少妇xxxxⅹ高跟鞋 | 久久综合国产精品| 精品国产电影一区二区| 欧美激情在线免费观看| 亚洲四区在线观看| 日欧美一区二区| 国产精品一区二区三区四区| 成人av一区二区三区| 欧美日韩久久不卡| 久久综合色一综合色88| 亚洲欧洲av在线| 日韩激情一二三区| 成人激情小说乱人伦| 欧美丝袜丝交足nylons图片| 欧美一区二区在线视频| 亚洲国产精品成人综合色在线婷婷| 一区二区三区中文字幕| 精品亚洲免费视频| www.色综合.com| 日韩三级高清在线| 中文字幕一区二区视频| 麻豆国产精品777777在线| 99久久伊人久久99| 欧美精品一区二区三区蜜桃| 亚洲另类一区二区| 国产精一区二区三区| 欧美日韩精品免费观看视频|