Search in sources :

Example 1 with ModelClause

use of com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause in project druid by alibaba.

the class OracleASTVisitorAdapterTest method test_adapter.

public void test_adapter() throws Exception {
    OracleASTVisitorAdapter adapter = new OracleASTVisitorAdapter();
    new SQLScriptCommitStatement().accept(adapter);
    new OracleAnalytic().accept(adapter);
    new OracleAnalyticWindowing().accept(adapter);
    new SQLDateExpr().accept(adapter);
    new SQLDbLinkExpr().accept(adapter);
    new OracleSelectPivot.Item().accept(adapter);
    new OracleSelectPivot().accept(adapter);
    new CheckOption().accept(adapter);
    new ReadOnly().accept(adapter);
    new OracleSelectUnPivot().accept(adapter);
    new SQLTimestampExpr().accept(adapter);
    new PartitionExtensionClause().accept(adapter);
    new SQLGroupingSetExpr().accept(adapter);
    new OracleWithSubqueryEntry().accept(adapter);
    new OracleFileSpecification().accept(adapter);
    new OracleAlterTablespaceAddDataFile().accept(adapter);
    new OracleAlterTablespaceStatement().accept(adapter);
    new SQLCreateSequenceStatement().accept(adapter);
    new SQLLoopStatement().accept(adapter);
    new OracleIntervalExpr().accept(adapter);
    new OracleDeleteStatement().accept(adapter);
    new OracleUpdateStatement().accept(adapter);
    new SampleClause().accept(adapter);
    new OracleSelectTableReference().accept(adapter);
    new SearchClause().accept(adapter);
    new CycleClause().accept(adapter);
    new OracleBinaryFloatExpr().accept(adapter);
    new OracleBinaryDoubleExpr().accept(adapter);
    new OracleCursorExpr().accept(adapter);
    new OracleIsSetExpr().accept(adapter);
    new ReturnRowsClause().accept(adapter);
    new ModelClause().accept(adapter);
    new MainModelClause().accept(adapter);
    new ModelColumnClause().accept(adapter);
    new QueryPartitionClause().accept(adapter);
    new ModelColumn().accept(adapter);
    new ModelRulesClause().accept(adapter);
    new CellAssignmentItem().accept(adapter);
    new CellAssignment().accept(adapter);
    new SQLMergeStatement().accept(adapter);
    new MergeUpdateClause().accept(adapter);
    new MergeInsertClause().accept(adapter);
    new SQLErrorLoggingClause().accept(adapter);
    new OracleReturningClause().accept(adapter);
    new OracleInsertStatement().accept(adapter);
    new InsertIntoClause().accept(adapter);
    new OracleMultiInsertStatement().accept(adapter);
    new ConditionalInsertClause().accept(adapter);
    new ConditionalInsertClauseItem().accept(adapter);
    new OracleSelectQueryBlock().accept(adapter);
    new SQLBlockStatement().accept(adapter);
    new OracleLockTableStatement().accept(adapter);
    new OracleAlterSessionStatement().accept(adapter);
    new SQLExprStatement().accept(adapter);
    new OracleDatetimeExpr().accept(adapter);
    new OracleExceptionStatement().accept(adapter);
    new OracleExceptionStatement.Item().accept(adapter);
    new OracleArgumentExpr().accept(adapter);
    new OracleSetTransactionStatement().accept(adapter);
    new SQLDropSequenceStatement().accept(adapter);
    new OracleDataTypeIntervalDay().accept(adapter);
    new OracleDataTypeIntervalYear().accept(adapter);
    new OracleDropDbLinkStatement().accept(adapter);
    new OracleCreateDatabaseDbLinkStatement().accept(adapter);
    new SQLCreateProcedureStatement().accept(adapter);
    new SQLFetchStatement().accept(adapter);
    new OracleExitStatement().accept(adapter);
    new OracleExplainStatement().accept(adapter);
    new SQLAlterProcedureStatement().accept(adapter);
    new OracleAlterTableDropPartition().accept(adapter);
    new OracleAlterTableTruncatePartition().accept(adapter);
    new OracleAlterTableSplitPartition.TableSpaceItem().accept(adapter);
    new OracleAlterTableSplitPartition.UpdateIndexesClause().accept(adapter);
    new OracleAlterTableSplitPartition.NestedTablePartitionSpec().accept(adapter);
    new OracleAlterTableSplitPartition().accept(adapter);
    new OracleAlterTableModify().accept(adapter);
    new OracleCreateIndexStatement().accept(adapter);
    new SQLAlterIndexStatement().accept(adapter);
    new OracleForStatement().accept(adapter);
    new SQLAlterIndexStatement().accept(adapter);
    new OracleRangeExpr().accept(adapter);
    new OraclePrimaryKey().accept(adapter);
    new OracleCreateTableStatement().accept(adapter);
    new SQLAlterTableRename().accept(adapter);
    new OracleStorageClause().accept(adapter);
    new OracleGotoStatement().accept(adapter);
    new OracleLabelStatement().accept(adapter);
    new SQLParameter().accept(adapter);
    new SQLCommitStatement().accept(adapter);
    new OracleAlterTriggerStatement().accept(adapter);
    new OracleAlterSynonymStatement().accept(adapter);
    new OracleAlterViewStatement().accept(adapter);
    new OracleAlterTableMoveTablespace().accept(adapter);
    new SQLSizeExpr().accept(adapter);
}
Also used : ModelClause(com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause) MergeUpdateClause(com.alibaba.druid.sql.ast.statement.SQLMergeStatement.MergeUpdateClause) ConditionalInsertClauseItem(com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMultiInsertStatement.ConditionalInsertClauseItem) ReadOnly(com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSelectRestriction.ReadOnly) OracleDataTypeIntervalYear(com.alibaba.druid.sql.dialect.oracle.ast.OracleDataTypeIntervalYear) SQLParameter(com.alibaba.druid.sql.ast.SQLParameter) InsertIntoClause(com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMultiInsertStatement.InsertIntoClause) ConditionalInsertClause(com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMultiInsertStatement.ConditionalInsertClause) CheckOption(com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSelectRestriction.CheckOption) OracleASTVisitorAdapter(com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitorAdapter) OracleDataTypeIntervalDay(com.alibaba.druid.sql.dialect.oracle.ast.OracleDataTypeIntervalDay) MergeInsertClause(com.alibaba.druid.sql.ast.statement.SQLMergeStatement.MergeInsertClause)

Example 2 with ModelClause

use of com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause in project druid by alibaba.

the class OracleSelectParser method parseModelClause.

private void parseModelClause(OracleSelectQueryBlock queryBlock) {
    Lexer.SavePoint savePoint = lexer.mark();
    if (!lexer.identifierEquals(FnvHash.Constants.MODEL)) {
        return;
    }
    lexer.nextToken();
    ModelClause model = new ModelClause();
    parseCellReferenceOptions(model.getCellReferenceOptions());
    if (lexer.identifierEquals(FnvHash.Constants.RETURN)) {
        lexer.nextToken();
        ReturnRowsClause returnRowsClause = new ReturnRowsClause();
        if (lexer.token() == Token.ALL) {
            lexer.nextToken();
            returnRowsClause.setAll(true);
        } else {
            acceptIdentifier("UPDATED");
        }
        acceptIdentifier("ROWS");
        model.setReturnRowsClause(returnRowsClause);
    }
    while (lexer.identifierEquals(FnvHash.Constants.REFERENCE)) {
        ReferenceModelClause referenceModelClause = new ReferenceModelClause();
        lexer.nextToken();
        SQLExpr name = expr();
        referenceModelClause.setName(name);
        accept(Token.ON);
        accept(Token.LPAREN);
        SQLSelect subQuery = this.select();
        accept(Token.RPAREN);
        referenceModelClause.setSubQuery(subQuery);
        parseModelColumnClause(referenceModelClause);
        parseCellReferenceOptions(referenceModelClause.getCellReferenceOptions());
        model.getReferenceModelClauses().add(referenceModelClause);
    }
    parseMainModelClause(model);
    queryBlock.setModelClause(model);
}
Also used : ModelClause(com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause)

Aggregations

ModelClause (com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause)2 SQLParameter (com.alibaba.druid.sql.ast.SQLParameter)1 MergeInsertClause (com.alibaba.druid.sql.ast.statement.SQLMergeStatement.MergeInsertClause)1 MergeUpdateClause (com.alibaba.druid.sql.ast.statement.SQLMergeStatement.MergeUpdateClause)1 OracleDataTypeIntervalDay (com.alibaba.druid.sql.dialect.oracle.ast.OracleDataTypeIntervalDay)1 OracleDataTypeIntervalYear (com.alibaba.druid.sql.dialect.oracle.ast.OracleDataTypeIntervalYear)1 ConditionalInsertClause (com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMultiInsertStatement.ConditionalInsertClause)1 ConditionalInsertClauseItem (com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMultiInsertStatement.ConditionalInsertClauseItem)1 InsertIntoClause (com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMultiInsertStatement.InsertIntoClause)1 CheckOption (com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSelectRestriction.CheckOption)1 ReadOnly (com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSelectRestriction.ReadOnly)1 OracleASTVisitorAdapter (com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitorAdapter)1