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

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

?? tablefunction.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.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.Column;
import org.h2.tools.SimpleResultSet;
import org.h2.util.MathUtils;
import org.h2.util.ObjectArray;
import org.h2.value.DataType;
import org.h2.value.Value;
import org.h2.value.ValueArray;
import org.h2.value.ValueNull;
import org.h2.value.ValueResultSet;

/**
 * Implementation of the functions TABLE(..) and TABLE_DISTINCT(..).
 */
public class TableFunction extends Function implements FunctionCall {
    private boolean distinct;
    private Column[] columnList;

    TableFunction(Database database, FunctionInfo info) {
        super(database, info);
        distinct = info.type == Function.TABLE_DISTINCT;
    }

    public Value getValue(Session session) throws SQLException {
        return getTable(session, args, false, distinct);
    }

    protected void checkParameterCount(int len) throws SQLException {
        if (len < 1) {
            throw Message.getSQLException(ErrorCode.INVALID_PARAMETER_COUNT_2, new String[] { getName(),
                    ">0" });
        }
    }

    public String getSQL() {
        StringBuffer buff = new StringBuffer();
        buff.append(getName());
        buff.append('(');
        for (int i = 0; i < args.length; i++) {
            if (i > 0) {
                buff.append(", ");
            }
            buff.append(columnList[i].getCreateSQL());
            buff.append("=");
            Expression e = args[i];
            buff.append(e.getSQL());
        }
        buff.append(')');
        return buff.toString();
    }


    public String getName() {
        return distinct ? "TABLE_DISTINCT" : "TABLE";
    }

    public int getRowCount(Session session) throws SQLException {
        int len = columnList.length;
        int rowCount = 0;
        for (int i = 0; i < len; i++) {
            Expression expr = args[i];
            if (expr.isConstant()) {
                Value v = expr.getValue(session);
                if (v != ValueNull.INSTANCE) {
                    ValueArray array = (ValueArray) v.convertTo(Value.ARRAY);
                    Value[] l = array.getList();
                    rowCount = Math.max(rowCount, l.length);
                }
            }
        }
        return rowCount;
    }

    public ValueResultSet getValueForColumnList(Session session, Expression[] nullArgs) throws SQLException {
        return getTable(session, args, true, false);
    }

    public void setColumns(ObjectArray columns) {
        this.columnList = new Column[columns.size()];
        columns.toArray(columnList);
    }

    private ValueResultSet getTable(Session session, Expression[] args, boolean onlyColumnList, boolean distinct) throws SQLException {
        int len = columnList.length;
        Expression[] header = new Expression[len];
        Database db = session.getDatabase();
        for (int i = 0; i < len; i++) {
            Column c = columnList[i];
            ExpressionColumn col = new ExpressionColumn(db, c);
            header[i] = col;
        }
        LocalResult result = new LocalResult(session, header, len);
        if (distinct) {
            result.setDistinct();
        }
        if (!onlyColumnList) {
            Value[][] list = new Value[len][];
            int rowCount = 0;
            for (int i = 0; i < len; i++) {
                Value v = args[i].getValue(session);
                if (v == ValueNull.INSTANCE) {
                    list[i] = new Value[0];
                } else {
                    ValueArray array = (ValueArray) v.convertTo(Value.ARRAY);
                    Value[] l = array.getList();
                    list[i] = l;
                    rowCount = Math.max(rowCount, l.length);
                }
            }
            for (int row = 0; row < rowCount; row++) {
                Value[] r = new Value[len];
                for (int j = 0; j < len; j++) {
                    Value[] l = list[j];
                    Value v;
                    if (l.length <= row) {
                        v = ValueNull.INSTANCE;
                    } else {
                        Column c = columnList[j];
                        v = l[row];
                        v = v.convertTo(c.getType());
                        v = v.convertPrecision(c.getPrecision());
                        v = v.convertScale(true, c.getScale());
                    }
                    r[j] = v;
                }
                result.addRow(r);
            }
        }
        result.done();
        ValueResultSet vr = ValueResultSet.get(getSimpleResultSet(result, Integer.MAX_VALUE));
        return vr;
    }

    SimpleResultSet getSimpleResultSet(LocalResult rs,  int maxrows) throws SQLException {
        int columnCount = rs.getVisibleColumnCount();
        SimpleResultSet simple = new SimpleResultSet();
        for (int i = 0; i < columnCount; i++) {
            String name = rs.getColumnName(i);
            int sqlType = DataType.convertTypeToSQLType(rs.getColumnType(i));
            int precision = MathUtils.convertLongToInt(rs.getColumnPrecision(i));
            int scale = rs.getColumnScale(i);
            simple.addColumn(name, sqlType, precision, scale);
        }
        rs.reset();
        for (int i = 0; i < maxrows && rs.next(); i++) {
            Object[] list = new Object[columnCount];
            for (int j = 0; j < columnCount; j++) {
                list[j] = rs.currentRow()[j].getObject();
            }
            simple.addRow(list);
        }
        return simple;
    }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久91精品国产一区二区精品 | 久久综合99re88久久爱| 国产成人av电影| 亚洲成av人片在线观看无码| 亚洲午夜精品久久久久久久久| 国产蜜臀av在线一区二区三区| 日韩精品中午字幕| 久久久久久久久久久久久女国产乱| 一本到高清视频免费精品| 欧美日韩mp4| 免费在线观看不卡| 久久精品网站免费观看| 欧美大黄免费观看| 亚洲日本在线观看| 欧美四级电影网| 美腿丝袜一区二区三区| 69久久99精品久久久久婷婷| 欧美一区二区三区播放老司机| 欧美人狂配大交3d怪物一区 | 欧美v国产在线一区二区三区| 欧美一区二区大片| 久久久91精品国产一区二区精品| 男人操女人的视频在线观看欧美| 亚洲国产精品一区二区久久恐怖片| 亚洲精品v日韩精品| 蜜臀av性久久久久蜜臀aⅴ四虎| 另类综合日韩欧美亚洲| 麻豆精品在线播放| 91精品国产麻豆国产自产在线| 五月天精品一区二区三区| 欧美成人乱码一区二区三区| 国产日韩欧美精品电影三级在线| 日韩理论电影院| 五月婷婷激情综合| 粉嫩蜜臀av国产精品网站| 91在线一区二区| 欧美mv日韩mv国产网站app| 欧美国产乱子伦| 视频一区二区三区中文字幕| 国产剧情一区二区| 欧美午夜精品一区二区三区 | 91精品福利视频| 26uuu另类欧美| 亚洲一区在线观看免费观看电影高清 | 免费在线观看视频一区| 99久久综合狠狠综合久久| 欧美日韩国产123区| 久久久久久久精| 亚洲成人av一区| 9色porny自拍视频一区二区| 日韩精品在线网站| 亚洲美女屁股眼交3| 国产91在线看| 欧美色图免费看| 国产精品嫩草99a| 久久99国内精品| 欧美一区二区美女| 亚洲素人一区二区| 国产成人aaa| 久久久不卡网国产精品二区| 日韩中文字幕不卡| 欧美性受xxxx黑人xyx性爽| 亚洲国产岛国毛片在线| 国产麻豆一精品一av一免费| 欧美一区二区黄| 一区二区三区国产精品| 成人黄色a**站在线观看| 欧美精品一区二区久久久| 视频一区欧美精品| 色欧美乱欧美15图片| 国产精品福利电影一区二区三区四区| 久久99久久精品| 精品欧美一区二区久久| 日本美女一区二区| 欧美一区二区三区视频免费| 日韩电影在线观看电影| 欧美中文字幕一区二区三区| 一区二区三区视频在线看| 91猫先生在线| 亚洲国产一区在线观看| 欧美三级日本三级少妇99| 亚洲第一二三四区| 日韩美女视频在线| 亚洲国产日韩一区二区| 麻豆一区二区在线| 国产成人午夜99999| 国产农村妇女精品| 亚洲综合免费观看高清完整版 | 久久久久久免费网| 国产精品一卡二| 中文字幕一区二区三区四区不卡 | 午夜精品在线看| 欧美精品aⅴ在线视频| 天堂影院一区二区| 91精品国产91热久久久做人人| 麻豆精品一区二区三区| 久久香蕉国产线看观看99| 东方欧美亚洲色图在线| 亚洲精品美国一| 91精品欧美久久久久久动漫 | 日本乱人伦aⅴ精品| 亚洲国产日韩a在线播放性色| 欧美日韩dvd在线观看| 久草精品在线观看| 国产欧美1区2区3区| 欧美在线观看一区| 看电影不卡的网站| 亚洲人午夜精品天堂一二香蕉| 欧美日韩一区二区不卡| 韩国在线一区二区| 一区二区三区自拍| 精品免费视频一区二区| 色婷婷av一区| 人妖欧美一区二区| 国产精品国产三级国产aⅴ中文| 欧美日韩一二三区| 国产v综合v亚洲欧| 日韩成人伦理电影在线观看| 中文字幕二三区不卡| 欧美精品乱码久久久久久| 国产不卡视频在线播放| 日韩黄色免费电影| 日韩一区在线看| 精品国产凹凸成av人导航| 欧美午夜一区二区三区免费大片| 国产成人自拍高清视频在线免费播放| 亚洲欧美国产三级| 精品国产91洋老外米糕| 欧美日韩国产一二三| 波多野结衣欧美| 国内精品不卡在线| 日韩成人av影视| 樱桃国产成人精品视频| 中文字幕av一区二区三区免费看 | 国产激情精品久久久第一区二区 | 91在线国产福利| 激情综合网激情| 日韩av二区在线播放| 亚洲激情第一区| 中文字幕中文字幕在线一区 | 成人av在线电影| 国产精品一二三在| 精品亚洲porn| 狠狠色狠狠色综合| 免费在线视频一区| 日本欧美加勒比视频| 亚洲图片有声小说| 亚洲国产欧美在线| 一区二区激情小说| 一区二区三区四区乱视频| 亚洲天堂免费在线观看视频| 亚洲欧美怡红院| 亚洲日本青草视频在线怡红院| 国产精品少妇自拍| 中文字幕亚洲精品在线观看| 国产精品乱人伦一区二区| 国产精品你懂的在线欣赏| 亚洲国产精品高清| 亚洲欧洲精品一区二区三区| 日韩毛片精品高清免费| 亚洲免费在线电影| 亚洲综合另类小说| 午夜电影网一区| 久久99久久久久久久久久久| 九色综合国产一区二区三区| 久久99国产精品久久99| 国产精品一区免费在线观看| 国产成人精品免费一区二区| 成人网在线免费视频| 91免费在线播放| 欧美日韩精品欧美日韩精品一| 欧美剧情片在线观看| 欧美videossexotv100| 久久亚区不卡日本| ...xxx性欧美| 日韩精品免费专区| 国产一区二区精品在线观看| 99精品视频一区二区三区| 91精品国产乱| 日韩精品中文字幕在线不卡尤物| 久久久午夜精品理论片中文字幕| 国产女主播一区| 亚洲一区在线看| 国产一区免费电影| 91亚洲永久精品| 日韩一级大片在线观看| 久久久电影一区二区三区| 亚洲日韩欧美一区二区在线| 日韩福利视频导航| 成人免费观看av| 欧美日韩国产欧美日美国产精品| 欧美r级在线观看| 一区二区高清视频在线观看| 免费在线一区观看| 91黄色免费版| 国产偷国产偷精品高清尤物| 亚洲国产精品久久一线不卡| 国产成人激情av| 制服丝袜日韩国产| 亚洲狼人国产精品|