当前位置: 首页>>代码示例>>Java>>正文


Java Type.getAggregateType方法代码示例

本文整理汇总了Java中org.hsqldb.types.Type.getAggregateType方法的典型用法代码示例。如果您正苦于以下问题:Java Type.getAggregateType方法的具体用法?Java Type.getAggregateType怎么用?Java Type.getAggregateType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.hsqldb.types.Type的用法示例。


在下文中一共展示了Type.getAggregateType方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: resolveTypes

import org.hsqldb.types.Type; //导入方法依赖的package包/类
public void resolveTypes(Session session, Expression parent) {

        switch (opType) {

            case OpTypes.DEFAULT :
                if (parent != null && parent.opType != OpTypes.ROW) {
                    throw Error.error(ErrorCode.X_42544);
                }
                break;

            case OpTypes.COALESCE : {
                Type type = null;

                nullability = SchemaObject.Nullability.NO_NULLS;

                for (int i = 0; i < nodes.length; i++) {
                    type = Type.getAggregateType(nodes[i].dataType, type);
                }

                dataType = type;

                break;
            }
        }
    }
 
开发者ID:tiweGH,项目名称:OpenDiabetes,代码行数:26,代码来源:ExpressionColumn.java

示例2: resolveTypesPartOne

import org.hsqldb.types.Type; //导入方法依赖的package包/类
void resolveTypesPartOne(Session session) {

        if (isPartOneResolved) {
            return;
        }

        resolveExpressionTypes(session);
        resolveAggregates();

        for (int i = 0; i < unionColumnTypes.length; i++) {
            unionColumnTypes[i] = Type.getAggregateType(unionColumnTypes[i],
                    exprColumns[i].getDataType());
        }

        isPartOneResolved = true;
    }
 
开发者ID:tiweGH,项目名称:OpenDiabetes,代码行数:17,代码来源:QuerySpecification.java

示例3: resolveTypes

import org.hsqldb.types.Type; //导入方法依赖的package包/类
public void resolveTypes(Session session, Expression parent) {

        switch (opType) {

            case OpTypes.DEFAULT :
                if (parent != null && parent.opType != OpTypes.ROW) {
                    throw Error.error(ErrorCode.X_42544);
                }
                break;

            case OpTypes.COALESCE : {
                Type type = null;

                for (int i = 0; i < nodes.length; i++) {
                    type = Type.getAggregateType(nodes[i].dataType, type);
                }

                dataType = type;

                break;
            }
        }
    }
 
开发者ID:s-store,项目名称:sstore-soft,代码行数:24,代码来源:ExpressionColumn.java

示例4: resolveTypesForAlternative

import org.hsqldb.types.Type; //导入方法依赖的package包/类
void resolveTypesForAlternative(Session session) {

        if (nodes[LEFT].dataType == null) {
            nodes[LEFT].dataType = nodes[RIGHT].dataType;
        }

        if (nodes[RIGHT].dataType == null) {
            nodes[RIGHT].dataType = nodes[LEFT].dataType;
        }

        if (exprSubType == OpTypes.CAST) {
            if (nodes[RIGHT].dataType == null) {
                nodes[RIGHT].dataType = nodes[LEFT].dataType =
                    Type.SQL_VARCHAR_DEFAULT;;
            }

            dataType = nodes[RIGHT].dataType;

            if (!nodes[RIGHT].dataType.equals(nodes[LEFT].dataType)) {
                if (dataType.isCharacterType()) {
                    dataType = Type.SQL_VARCHAR_DEFAULT;
                }

                nodes[LEFT] = new ExpressionOp(nodes[LEFT], dataType);
            }
        } else {
            dataType = Type.getAggregateType(nodes[LEFT].dataType, dataType);
            dataType = Type.getAggregateType(nodes[RIGHT].dataType, dataType);
        }
    }
 
开发者ID:tiweGH,项目名称:OpenDiabetes,代码行数:31,代码来源:ExpressionOp.java

示例5: resolveTypesPartOne

import org.hsqldb.types.Type; //导入方法依赖的package包/类
void resolveTypesPartOne(Session session) {

        resolveExpressionTypes(session);
        setRangeVariableConditions();
        resolveAggregates();

        for (int i = 0; i < unionColumnMap.length; i++) {
            unionColumnTypes[i] = Type.getAggregateType(unionColumnTypes[i],
                    exprColumns[i].getDataType());
        }
    }
 
开发者ID:s-store,项目名称:sstore-soft,代码行数:12,代码来源:QuerySpecification.java

示例6: resolveTypesForCaseWhen

import org.hsqldb.types.Type; //导入方法依赖的package包/类
/**
 * For CASE WHEN and its special cases section 9.3 of the SQL standard
 * on type aggregation is implemented.
 */
void resolveTypesForCaseWhen(Session session, Expression parent) {

    nodes[RIGHT].resolveTypes(session, this);

    Expression expr = this;

    while (expr.opType == OpTypes.CASEWHEN) {
        if (expr.exprSubType == OpTypes.CAST) {
            dataType = expr.nodes[RIGHT].dataType;
        } else {
            dataType = Type.getAggregateType(expr.nodes[RIGHT].dataType,
                                             dataType);
        }

        if (expr.nodes[RIGHT].nodes[RIGHT].opType == OpTypes.CASEWHEN) {
            expr = expr.nodes[RIGHT].nodes[RIGHT];
        } else {
            expr = expr.nodes[RIGHT].nodes[LEFT];
        }
    }

    expr = this;

    while (expr.opType == OpTypes.CASEWHEN) {
        if (expr.nodes[RIGHT].dataType == null) {
            expr.nodes[RIGHT].dataType = dataType;
        }

        if (expr.nodes[RIGHT].nodes[RIGHT].dataType == null) {
            expr.nodes[RIGHT].nodes[RIGHT].dataType = dataType;
        }

        if (expr.nodes[RIGHT].nodes[LEFT].dataType == null) {
            expr.nodes[RIGHT].nodes[LEFT].dataType = dataType;
        }

        if (expr.nodes[RIGHT].nodes[RIGHT].opType == OpTypes.CASEWHEN) {
            expr = expr.nodes[RIGHT].nodes[RIGHT];
        } else {
            expr = expr.nodes[RIGHT].nodes[LEFT];
        }
    }

    expr = this;

    while (expr.opType == OpTypes.CASEWHEN) {
        expr.nodes[LEFT].resolveTypes(session, expr);

        if (expr.nodes[LEFT].isUnresolvedParam()) {
            expr.nodes[LEFT].dataType = Type.SQL_BOOLEAN;
        }

        expr.nodes[RIGHT].nodes[LEFT].resolveTypes(session,
                expr.nodes[RIGHT]);

        if (expr.nodes[RIGHT].nodes[RIGHT].opType != OpTypes.CASEWHEN) {
            expr.nodes[RIGHT].nodes[RIGHT].resolveTypes(session,
                    expr.nodes[RIGHT]);
        }

        expr = expr.nodes[RIGHT].nodes[RIGHT];
    }

    if (parent == null || parent.opType != OpTypes.ALTERNATIVE) {
        if (dataType == null || dataType.typeCode == Types.SQL_ALL_TYPES) {
            throw Error.error(ErrorCode.X_42567);
        }
    }
}
 
开发者ID:tiweGH,项目名称:OpenDiabetes,代码行数:74,代码来源:ExpressionOp.java

示例7: resolveTypesForCaseWhen

import org.hsqldb.types.Type; //导入方法依赖的package包/类
/**
 * For CASE WHEN and its special cases section 9.3 of the SQL standard
 * on type aggregation is implemented.
 */
void resolveTypesForCaseWhen(Session session) {

    if (dataType != null) {
        return;
    }

    Expression expr = this;

    while (expr.opType == OpTypes.CASEWHEN) {
        expr.nodes[LEFT].resolveTypes(session, expr);

        if (expr.nodes[LEFT].isParam) {
            expr.nodes[LEFT].dataType = Type.SQL_BOOLEAN;
        }

        expr.nodes[RIGHT].nodes[LEFT].resolveTypes(session, nodes[RIGHT]);
        expr.nodes[RIGHT].nodes[RIGHT].resolveTypes(session, nodes[RIGHT]);

        expr = expr.nodes[RIGHT].nodes[RIGHT];
    }

    expr = this;

    while (expr.opType == OpTypes.CASEWHEN) {
        dataType =
            Type.getAggregateType(expr.nodes[RIGHT].nodes[LEFT].dataType,
                                  dataType);
        dataType =
            Type.getAggregateType(expr.nodes[RIGHT].nodes[RIGHT].dataType,
                                  dataType);
        expr = expr.nodes[RIGHT].nodes[RIGHT];
    }

    expr = this;

    while (expr.opType == OpTypes.CASEWHEN) {
        if (expr.nodes[RIGHT].nodes[LEFT].dataType == null) {
            expr.nodes[RIGHT].nodes[LEFT].dataType = dataType;
        }

        if (expr.nodes[RIGHT].nodes[RIGHT].dataType == null) {
            expr.nodes[RIGHT].nodes[RIGHT].dataType = dataType;
        }

        if (expr.nodes[RIGHT].dataType == null) {
            expr.nodes[RIGHT].dataType = dataType;
        }

        expr = expr.nodes[RIGHT].nodes[RIGHT];
    }

    if (dataType == null) {
        throw Error.error(ErrorCode.X_42567);
    }
}
 
开发者ID:s-store,项目名称:sstore-soft,代码行数:60,代码来源:ExpressionOp.java

示例8: prepareTable

import org.hsqldb.types.Type; //导入方法依赖的package包/类
void prepareTable(Session session, Expression row, int degree) {

        if (nodeDataTypes != null) {
            return;
        }

        for (int i = 0; i < nodes.length; i++) {
            Expression e = nodes[i];

            if (e.opType == OpTypes.ROW) {
                if (degree != e.nodes.length) {
                    throw Error.error(ErrorCode.X_42564);
                }
            } else if (degree == 1) {
                nodes[i]       = new Expression(OpTypes.ROW);
                nodes[i].nodes = new Expression[]{ e };
            } else {
                throw Error.error(ErrorCode.X_42564);
            }
        }

        nodeDataTypes = new Type[degree];

        for (int j = 0; j < degree; j++) {
            Type type = row == null ? null
                                    : row.nodes[j].dataType;

            for (int i = 0; i < nodes.length; i++) {
                type = Type.getAggregateType(nodes[i].nodes[j].dataType, type);
            }

            if (type == null) {
                throw Error.error(ErrorCode.X_42567);
            }

            nodeDataTypes[j] = type;

            if (row != null && row.nodes[j].isParam) {
                row.nodes[j].dataType = type;
            }

            for (int i = 0; i < nodes.length; i++) {
                if (nodes[i].nodes[j].isParam) {
                    nodes[i].nodes[j].dataType = nodeDataTypes[j];

                    continue;
                }

                if (nodes[i].nodes[j].opType == OpTypes.VALUE) {
                    if (nodes[i].nodes[j].valueData == null) {
                        nodes[i].nodes[j].dataType = nodeDataTypes[j];
                    }
                }
            }

            if (nodeDataTypes[j].isCharacterType()
                    && !((CharacterType) nodeDataTypes[j])
                        .isEqualIdentical()) {

                // collation issues
            }
        }
    }
 
开发者ID:s-store,项目名称:sstore-soft,代码行数:64,代码来源:Expression.java

示例9: resolveTypesForCaseWhen

import org.hsqldb.types.Type; //导入方法依赖的package包/类
/**
 * For CASE WHEN and its special cases section 9.3 of the SQL standard
 * on type aggregation is implemented.
 */
void resolveTypesForCaseWhen(Session session) {

    if (dataType != null) {
        return;
    }

    Expression expr = this;

    while (expr.opType == OpTypes.CASEWHEN) {
        expr.nodes[LEFT].resolveTypes(session, expr);

        if (expr.nodes[LEFT].isUnresolvedParam()) {
            expr.nodes[LEFT].dataType = Type.SQL_BOOLEAN;
        }

        expr.nodes[RIGHT].nodes[LEFT].resolveTypes(session,
                expr.nodes[RIGHT]);

        if (expr.nodes[RIGHT].nodes[RIGHT].opType != OpTypes.CASEWHEN) {
            expr.nodes[RIGHT].nodes[RIGHT].resolveTypes(session,
                    expr.nodes[RIGHT]);
        }

        expr = expr.nodes[RIGHT].nodes[RIGHT];
    }

    if (exprSubType == OpTypes.CAST) {
        if (nodes[RIGHT].nodes[RIGHT].dataType != null
                && nodes[RIGHT].nodes[RIGHT].dataType
                   != nodes[RIGHT].nodes[LEFT].dataType) {
            Type castType = nodes[RIGHT].nodes[RIGHT].dataType;

            if (castType.isCharacterType()) {
                castType = Type.SQL_VARCHAR_DEFAULT;
            }

            nodes[RIGHT].nodes[LEFT] =
                new ExpressionOp(nodes[RIGHT].nodes[LEFT], castType);
        }
    }

    expr = this;

    while (expr.opType == OpTypes.CASEWHEN) {
        dataType =
            Type.getAggregateType(expr.nodes[RIGHT].nodes[LEFT].dataType,
                                  dataType);
        dataType =
            Type.getAggregateType(expr.nodes[RIGHT].nodes[RIGHT].dataType,
                                  dataType);
        expr = expr.nodes[RIGHT].nodes[RIGHT];
    }

    expr = this;

    while (expr.opType == OpTypes.CASEWHEN) {
        if (expr.nodes[RIGHT].nodes[LEFT].dataType == null) {
            expr.nodes[RIGHT].nodes[LEFT].dataType = dataType;
        }

        if (expr.nodes[RIGHT].nodes[RIGHT].dataType == null) {
            expr.nodes[RIGHT].nodes[RIGHT].dataType = dataType;
        }

        if (expr.nodes[RIGHT].dataType == null) {
            expr.nodes[RIGHT].dataType = dataType;
        }

        expr = expr.nodes[RIGHT].nodes[RIGHT];
    }

    if (dataType == null || dataType.typeCode == Types.SQL_ALL_TYPES) {
        throw Error.error(ErrorCode.X_42567);
    }
}
 
开发者ID:Julien35,项目名称:dev-courses,代码行数:80,代码来源:ExpressionOp.java


注:本文中的org.hsqldb.types.Type.getAggregateType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。