The following document contains the results of PMD's CPD 7.0.0.
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 210 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 210 |
public abstract class OpenGaussStatementVisitor extends OpenGaussStatementBaseVisitor<ASTNode> { private final Collection<ParameterMarkerSegment> parameterMarkerSegments = new LinkedList<>(); @Override public final ASTNode visitParameterMarker(final ParameterMarkerContext ctx) { if (null == ctx.DOLLAR_()) { return new ParameterMarkerValue(parameterMarkerSegments.size(), ParameterMarkerType.QUESTION); } return new ParameterMarkerValue(new NumberLiteralValue(ctx.NUMBER_().getText()).getValue().intValue() - 1, ParameterMarkerType.DOLLAR); } @Override public final ASTNode visitNumberLiterals(final NumberLiteralsContext ctx) { return new NumberLiteralValue(ctx.NUMBER_().getText()); } @Override public final ASTNode visitIdentifier(final IdentifierContext ctx) { UnreservedWordContext unreservedWord = ctx.unreservedWord(); return null == unreservedWord ? new IdentifierValue(ctx.getText()) : visit(unreservedWord); } @Override public final ASTNode visitUnreservedWord(final UnreservedWordContext ctx) { return new IdentifierValue(ctx.getText()); } @Override public final ASTNode visitSchemaName(final SchemaNameContext ctx) { return visit(ctx.identifier()); } @Override public final ASTNode visitTableName(final TableNameContext ctx) { SimpleTableSegment result = new SimpleTableSegment(new TableNameSegment(ctx.name().getStart().getStartIndex(), ctx.name().getStop().getStopIndex(), (IdentifierValue) visit(ctx.name()))); OwnerContext owner = ctx.owner(); if (null != owner) { result.setOwner(new OwnerSegment(owner.getStart().getStartIndex(), owner.getStop().getStopIndex(), (IdentifierValue) visit(owner.identifier()))); } return result; } @Override public final ASTNode visitColumnName(final ColumnNameContext ctx) { ColumnSegment result = new ColumnSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), (IdentifierValue) visit(ctx.name())); OwnerContext owner = ctx.owner(); if (null != owner) { result.setOwner(new OwnerSegment(owner.getStart().getStartIndex(), owner.getStop().getStopIndex(), (IdentifierValue) visit(owner.identifier()))); } return result; } @Override public final ASTNode visitIndexName(final IndexNameContext ctx) { IndexNameSegment indexName = new IndexNameSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), (IdentifierValue) visit(ctx.identifier())); return new IndexSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), indexName); } @Override public final ASTNode visitConstraintName(final ConstraintNameContext ctx) { return new ConstraintSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), (IdentifierValue) visit(ctx.identifier())); } @Override public final ASTNode visitTableNames(final TableNamesContext ctx) { CollectionValue<SimpleTableSegment> result = new CollectionValue<>(); for (TableNameContext each : ctx.tableName()) { result.getValue().add((SimpleTableSegment) visit(each)); } return result; } @Override public final ASTNode visitColumnNames(final ColumnNamesContext ctx) { CollectionValue<ColumnSegment> result = new CollectionValue<>(); for (ColumnNameContext each : ctx.columnName()) { result.getValue().add((ColumnSegment) visit(each)); } return result; } @Override public ASTNode visitAExpr(final AExprContext ctx) { if (null != ctx.cExpr()) { return visit(ctx.cExpr()); } if (null != ctx.TYPE_CAST_()) { return new TypeCastExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), ctx.getText(), (ExpressionSegment) visit(ctx.aExpr(0)), ctx.typeName().getText()); } if (null != ctx.BETWEEN()) { return createBetweenSegment(ctx); } if (null != ctx.IN()) { return createInSegment(ctx); } if (null != ctx.patternMatchingOperator()) { return createPatternMatchingOperationSegment(ctx); } Optional<String> binaryOperator = findBinaryOperator(ctx); if (binaryOperator.isPresent()) { return createBinaryOperationSegment(ctx, binaryOperator.get()); } super.visitAExpr(ctx); String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text); } private Optional<String> findBinaryOperator(final AExprContext ctx) { if (null != ctx.IS()) { return Optional.of(ctx.IS().getText()); } if (null != ctx.ISNULL()) { return Optional.of("IS"); } if (1 == ctx.aExpr().size()) { return Optional.empty(); } if (null != ctx.comparisonOperator()) { return Optional.of(ctx.comparisonOperator().getText()); } if (null != ctx.andOperator()) { return Optional.of(ctx.andOperator().getText()); } if (null != ctx.orOperator()) { return Optional.of(ctx.orOperator().getText()); } if (null != ctx.PLUS_()) { return Optional.of(ctx.PLUS_().getText()); } if (null != ctx.MINUS_()) { return Optional.of(ctx.MINUS_().getText()); } if (null != ctx.ASTERISK_()) { return Optional.of(ctx.ASTERISK_().getText()); } if (null != ctx.SLASH_()) { return Optional.of(ctx.SLASH_().getText()); } return Optional.empty(); } private BinaryOperationExpression createPatternMatchingOperationSegment(final AExprContext ctx) { String operator = getOriginalText(ctx.patternMatchingOperator()).toUpperCase(); ExpressionSegment left = (ExpressionSegment) visit(ctx.aExpr(0)); ListExpression right = new ListExpression(ctx.aExpr(1).start.getStartIndex(), ctx.aExpr().get(ctx.aExpr().size() - 1).stop.getStopIndex()); for (int i = 1; i < ctx.aExpr().size(); i++) { right.getItems().add((ExpressionSegment) visit(ctx.aExpr().get(i))); } String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } private BinaryOperationExpression createBinaryOperationSegment(final AExprContext ctx, final String operator) { if ("IS".equalsIgnoreCase(operator)) { ExpressionSegment left = (ExpressionSegment) visit(ctx.aExpr(0)); String rightText; ExpressionSegment right; if (null != ctx.IS()) { rightText = ctx.start.getInputStream().getText(new Interval(ctx.IS().getSymbol().getStopIndex() + 2, ctx.stop.getStopIndex())).trim(); right = new LiteralExpressionSegment(ctx.IS().getSymbol().getStopIndex() + 2, ctx.stop.getStopIndex(), rightText); } else { rightText = ctx.start.getInputStream().getText(new Interval(ctx.ISNULL().getSymbol().getStartIndex() + 2, ctx.stop.getStopIndex())).trim(); right = new LiteralExpressionSegment(ctx.ISNULL().getSymbol().getStartIndex() + 2, ctx.stop.getStopIndex(), rightText); } return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, "IS", ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()))); } ExpressionSegment left = (ExpressionSegment) visit(ctx.aExpr(0)); ExpressionSegment right = (ExpressionSegment) visit(ctx.aExpr(1)); String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } @Override public ASTNode visitCExpr(final CExprContext ctx) { if (null != ctx.columnref()) { return visit(ctx.columnref()); } if (null != ctx.parameterMarker()) { ParameterMarkerValue parameterMarker = (ParameterMarkerValue) visit(ctx.parameterMarker()); ParameterMarkerExpressionSegment result = new ParameterMarkerExpressionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), parameterMarker.getValue(), parameterMarker.getType()); parameterMarkerSegments.add(result); return result; } if (null != ctx.aexprConst()) { return visit(ctx.aexprConst()); } if (null != ctx.aExpr()) { return visit(ctx.aExpr()); } if (null != ctx.funcExpr()) { return visit(ctx.funcExpr()); } if (null != ctx.selectWithParens()) { return createSubqueryExpressionSegment(ctx); } if (null != ctx.caseExpr()) { return visit(ctx.caseExpr()); } super.visitCExpr(ctx); String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); return new CommonExpressionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), text); } private ExpressionSegment createSubqueryExpressionSegment(final CExprContext ctx) { SubquerySegment subquerySegment = new SubquerySegment(ctx.selectWithParens().getStart().getStartIndex(), ctx.selectWithParens().getStop().getStopIndex(), (OpenGaussSelectStatement) visit(ctx.selectWithParens()), getOriginalText(ctx.selectWithParens())); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 1008 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 975 |
result.setProjections(new ProjectionsSegment(-1, -1)); } if (null != ctx.intoClause()) { result.setIntoSegment((TableSegment) visit(ctx.intoClause())); } if (null != ctx.fromClause()) { TableSegment tableSegment = (TableSegment) visit(ctx.fromClause()); result.setFrom(tableSegment); } if (null != ctx.whereClause()) { result.setWhere((WhereSegment) visit(ctx.whereClause())); } if (null != ctx.groupClause()) { result.setGroupBy((GroupBySegment) visit(ctx.groupClause())); } if (null != ctx.havingClause()) { result.setHaving((HavingSegment) visit(ctx.havingClause())); } if (null != ctx.windowClause()) { result.setWindow((WindowSegment) visit(ctx.windowClause())); } return result; } @Override public ASTNode visitIntoClause(final IntoClauseContext ctx) { return visit(ctx.optTempTableName().qualifiedName()); } @Override public ASTNode visitHavingClause(final HavingClauseContext ctx) { ExpressionSegment expr = (ExpressionSegment) visit(ctx.aExpr()); return new HavingSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), expr); } @Override public ASTNode visitWindowClause(final WindowClauseContext ctx) { WindowSegment result = new WindowSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex()); appendWindowItems(ctx.windowDefinitionList(), result.getItemSegments()); return result; } private void appendWindowItems(final WindowDefinitionListContext ctx, final Collection<WindowItemSegment> windowItems) { if (null != ctx.windowDefinitionList()) { appendWindowItems(ctx.windowDefinitionList(), windowItems); windowItems.add((WindowItemSegment) visit(ctx.windowDefinition())); return; } windowItems.add((WindowItemSegment) visit(ctx.windowDefinition())); } @SuppressWarnings("unchecked") @Override public ASTNode visitWindowDefinition(final WindowDefinitionContext ctx) { WindowItemSegment result = new WindowItemSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex()); result.setWindowName(new IdentifierValue(ctx.colId().getText())); if (null != ctx.windowSpecification().partitionClause()) { CollectionValue<ExpressionSegment> value = (CollectionValue<ExpressionSegment>) visit(ctx.windowSpecification().partitionClause().exprList()); result.setPartitionListSegments(value.getValue()); } if (null != ctx.windowSpecification().sortClause()) { OrderBySegment orderBySegment = (OrderBySegment) visit(ctx.windowSpecification().sortClause()); result.setOrderBySegment(orderBySegment); } if (null != ctx.windowSpecification().frameClause()) { result.setFrameClause(new CommonExpressionSegment(ctx.windowSpecification().frameClause().start.getStartIndex(), ctx.windowSpecification().frameClause().stop.getStopIndex(), ctx.windowSpecification().frameClause().getText())); } return result; } @Override public ASTNode visitGroupClause(final GroupClauseContext ctx) { Collection<OrderByItemSegment> items = new LinkedList<>(); for (GroupByItemContext each : ctx.groupByList().groupByItem()) { items.add((OrderByItemSegment) visit(each)); } return new GroupBySegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), items); } @Override public ASTNode visitGroupByItem(final GroupByItemContext ctx) { if (null != ctx.aExpr()) { ASTNode astNode = visit(ctx.aExpr()); if (astNode instanceof ColumnSegment) { return new ColumnOrderByItemSegment((ColumnSegment) astNode, OrderDirection.ASC, null); } if (astNode instanceof LiteralExpressionSegment) { LiteralExpressionSegment index = (LiteralExpressionSegment) astNode; return new IndexOrderByItemSegment(index.getStartIndex(), index.getStopIndex(), Integer.parseInt(index.getLiterals().toString()), OrderDirection.ASC, null); } return new ExpressionOrderByItemSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), getOriginalText(ctx), OrderDirection.ASC, null, (ExpressionSegment) visit(ctx.aExpr())); } return new ExpressionOrderByItemSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), getOriginalText(ctx), OrderDirection.ASC, null); } @Override public ASTNode visitTargetList(final TargetListContext ctx) { ProjectionsSegment result = new ProjectionsSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex()); if (null != ctx.targetList()) { ProjectionsSegment projections = (ProjectionsSegment) visit(ctx.targetList()); result.getProjections().addAll(projections.getProjections()); } ProjectionSegment projection = (ProjectionSegment) visit(ctx.targetEl()); result.getProjections().add(projection); return result; } @Override public ASTNode visitTargetEl(final TargetElContext ctx) { ProjectionSegment result = createProjectionSegment(ctx, ctx.aExpr()); if (null != ctx.identifier()) { ((AliasAvailable) result).setAlias(new AliasSegment(ctx.identifier().start.getStartIndex(), ctx.identifier().stop.getStopIndex(), new IdentifierValue(ctx.identifier().getText()))); } return result; } private ProjectionSegment createProjectionSegment(final TargetElContext ctx, final AExprContext expr) { if (null != ctx.ASTERISK_()) { return new ShorthandProjectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex()); } if (null != ctx.DOT_ASTERISK_()) { ShorthandProjectionSegment result = new ShorthandProjectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex()); result.setOwner(new OwnerSegment(ctx.colId().start.getStartIndex(), ctx.colId().stop.getStopIndex(), new IdentifierValue(ctx.colId().getText()))); return result; } if (null != ctx.aExpr()) { ASTNode projection = visit(ctx.aExpr()); return createProjectionSegment(ctx, expr, projection); } return new ExpressionProjectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), getOriginalText(expr), null); } private ProjectionSegment createProjectionSegment(final TargetElContext ctx, final AExprContext expr, final ASTNode projection) { if (projection instanceof ColumnSegment) { return new ColumnProjectionSegment((ColumnSegment) projection); } if (projection instanceof AggregationProjectionSegment) { return (AggregationProjectionSegment) projection; } if (projection instanceof SubqueryExpressionSegment) { SubqueryExpressionSegment subqueryExpression = (SubqueryExpressionSegment) projection; String text = ctx.start.getInputStream().getText(new Interval(subqueryExpression.getStartIndex(), subqueryExpression.getStopIndex())); return new SubqueryProjectionSegment(subqueryExpression.getSubquery(), text); } if (projection instanceof ExistsSubqueryExpression) { ExistsSubqueryExpression existsSubqueryExpression = (ExistsSubqueryExpression) projection; String text = ctx.start.getInputStream().getText(new Interval(existsSubqueryExpression.getStartIndex(), existsSubqueryExpression.getStopIndex())); return new SubqueryProjectionSegment(existsSubqueryExpression.getSubquery(), text); } if (projection instanceof ExpressionSegment) { return new ExpressionProjectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), getOriginalText(expr), (ExpressionSegment) projection); } return new ExpressionProjectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), getOriginalText(expr), null); } @Override public ASTNode visitFromClause(final FromClauseContext ctx) { return visit(ctx.fromList()); } @Override public ASTNode visitFromList(final FromListContext ctx) { if (null != ctx.fromList()) { JoinTableSegment result = new JoinTableSegment(); result.setStartIndex(ctx.start.getStartIndex()); result.setStopIndex(ctx.stop.getStopIndex()); result.setLeft((TableSegment) visit(ctx.fromList())); result.setRight((TableSegment) visit(ctx.tableReference())); result.setJoinType(JoinType.COMMA.name()); return result; } return visit(ctx.tableReference()); } @Override public ASTNode visitTableReference(final TableReferenceContext ctx) { if (null != ctx.relationExpr()) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 540 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 540 |
OpenGaussSelectStatement select = (OpenGaussSelectStatement) visit(ctx.selectWithParens()); SubquerySegment subquerySegment = new SubquerySegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), select, getOriginalText(ctx.selectWithParens())); return new SubqueryExpressionSegment(subquerySegment); } ListExpression result = new ListExpression(ctx.LP_().getSymbol().getStartIndex(), ctx.RP_().getSymbol().getStopIndex()); result.getItems().addAll(((CollectionValue<ExpressionSegment>) visit(ctx.exprList())).getValue()); return result; } @SuppressWarnings("unchecked") @Override public ASTNode visitExprList(final ExprListContext ctx) { CollectionValue<ExpressionSegment> result = new CollectionValue<>(); if (null != ctx.exprList()) { result.combine((CollectionValue<ExpressionSegment>) visitExprList(ctx.exprList())); } result.getValue().add((ExpressionSegment) visit(ctx.aExpr())); return result; } private BetweenExpression createBetweenSegment(final AExprContext ctx) { ExpressionSegment left = (ExpressionSegment) visit(ctx.aExpr(0)); ExpressionSegment between = (ExpressionSegment) visit(ctx.bExpr()); ExpressionSegment and = (ExpressionSegment) visit(ctx.aExpr(1)); boolean not = null != ctx.NOT(); return new BetweenExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, between, and, not); } @Override public ASTNode visitBExpr(final BExprContext ctx) { if (null != ctx.cExpr()) { return visit(ctx.cExpr()); } if (null != ctx.TYPE_CAST_()) { return new TypeCastExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), ctx.getText(), (ExpressionSegment) visit(ctx.bExpr(0)), ctx.typeName().getText()); } if (null != ctx.qualOp()) { ExpressionSegment left = (ExpressionSegment) visit(ctx.bExpr(0)); ExpressionSegment right = (ExpressionSegment) visit(ctx.bExpr(1)); String operator = ctx.qualOp().getText(); String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } for (BExprContext each : ctx.bExpr()) { visit(each); } return new LiteralExpressionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), ctx.getText()); } private ProjectionSegment createAggregationSegment(final FuncApplicationContext ctx, final String aggregationType, final Collection<ExpressionSegment> expressionSegments) { AggregationType type = AggregationType.valueOf(aggregationType.toUpperCase()); if (null == ctx.DISTINCT()) { AggregationProjectionSegment result = new AggregationProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), type, getOriginalText(ctx)); result.getParameters().addAll(expressionSegments); return result; } AggregationDistinctProjectionSegment result = new AggregationDistinctProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), type, getOriginalText(ctx), getDistinctExpression(ctx)); result.getParameters().addAll(expressionSegments); return result; } private String getDistinctExpression(final FuncApplicationContext ctx) { StringBuilder result = new StringBuilder(); result.append(ctx.funcArgList().getText()); if (null != ctx.sortClause()) { result.append(ctx.sortClause().getText()); } return result.toString(); } @Override public final ASTNode visitDataTypeName(final DataTypeNameContext ctx) { IdentifierContext identifierContext = ctx.identifier(); if (null != identifierContext) { return new KeywordValue(identifierContext.getText()); } Collection<String> dataTypeNames = new LinkedList<>(); for (int i = 0; i < ctx.getChildCount(); i++) { dataTypeNames.add(ctx.getChild(i).getText()); } return new KeywordValue(String.join(" ", dataTypeNames)); } @Override public final ASTNode visitSortClause(final SortClauseContext ctx) { Collection<OrderByItemSegment> items = new LinkedList<>(); for (SortbyContext each : ctx.sortbyList().sortby()) { items.add((OrderByItemSegment) visit(each)); } return new OrderBySegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), items); } @Override public final ASTNode visitSortby(final SortbyContext ctx) { OrderDirection orderDirection = null == ctx.ascDesc() ? OrderDirection.ASC : generateOrderDirection(ctx.ascDesc()); NullsOrderType nullsOrderType = generateNullsOrderType(ctx.nullsOrder()); ASTNode expr = visit(ctx.aExpr()); if (expr instanceof ColumnSegment) { ColumnSegment column = (ColumnSegment) expr; return new ColumnOrderByItemSegment(column, orderDirection, nullsOrderType); } if (expr instanceof LiteralExpressionSegment) { LiteralExpressionSegment index = (LiteralExpressionSegment) expr; return new IndexOrderByItemSegment(index.getStartIndex(), index.getStopIndex(), Integer.parseInt(index.getLiterals().toString()), orderDirection, nullsOrderType); } if (expr instanceof ExpressionSegment) { return new ExpressionOrderByItemSegment(ctx.aExpr().getStart().getStartIndex(), ctx.aExpr().getStop().getStopIndex(), getOriginalText(ctx.aExpr()), orderDirection, nullsOrderType, (ExpressionSegment) expr); } return new ExpressionOrderByItemSegment(ctx.aExpr().getStart().getStartIndex(), ctx.aExpr().getStop().getStopIndex(), getOriginalText(ctx.aExpr()), orderDirection, nullsOrderType); } private NullsOrderType generateNullsOrderType(final NullsOrderContext ctx) { if (null == ctx) { return null; } return null == ctx.FIRST() ? NullsOrderType.LAST : NullsOrderType.FIRST; } private OrderDirection generateOrderDirection(final AscDescContext ctx) { return null == ctx.DESC() ? OrderDirection.ASC : OrderDirection.DESC; } @Override public final ASTNode visitDataType(final DataTypeContext ctx) { DataTypeSegment result = new DataTypeSegment(); result.setDataTypeName(((KeywordValue) visit(ctx.dataTypeName())).getValue()); result.setStartIndex(ctx.start.getStartIndex()); result.setStopIndex(ctx.stop.getStopIndex()); if (null != ctx.dataTypeLength()) { DataTypeLengthSegment dataTypeLengthSegment = (DataTypeLengthSegment) visit(ctx.dataTypeLength()); result.setDataLength(dataTypeLengthSegment); } return result; } @Override public final ASTNode visitDataTypeLength(final DataTypeLengthContext ctx) { DataTypeLengthSegment result = new DataTypeLengthSegment(); result.setStartIndex(ctx.start.getStartIndex()); result.setStopIndex(ctx.stop.getStartIndex()); List<TerminalNode> numbers = ctx.NUMBER_(); if (1 == numbers.size()) { result.setPrecision(Integer.parseInt(numbers.get(0).getText())); } if (2 == numbers.size()) { result.setPrecision(Integer.parseInt(numbers.get(0).getText())); result.setScale(Integer.parseInt(numbers.get(1).getText())); } return result; } @Override public ASTNode visitInsert(final InsertContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 417 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 417 |
ctx.selectWithParens().getStop().getStopIndex(), (OpenGaussSelectStatement) visit(ctx.selectWithParens()), getOriginalText(ctx.selectWithParens())); if (null != ctx.EXISTS()) { subquerySegment.setSubqueryType(SubqueryType.EXISTS_SUBQUERY); return new ExistsSubqueryExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), subquerySegment); } return new SubqueryExpressionSegment(subquerySegment); } @Override public ASTNode visitCaseExpr(final CaseExprContext ctx) { Collection<ExpressionSegment> whenExprs = new LinkedList<>(); Collection<ExpressionSegment> thenExprs = new LinkedList<>(); for (WhenClauseContext each : ctx.whenClauseList().whenClause()) { whenExprs.add((ExpressionSegment) visit(each.aExpr(0))); thenExprs.add((ExpressionSegment) visit(each.aExpr(1))); } ExpressionSegment caseExpr = null == ctx.caseArg() ? null : (ExpressionSegment) visit(ctx.caseArg().aExpr()); ExpressionSegment elseExpr = null == ctx.caseDefault() ? null : (ExpressionSegment) visit(ctx.caseDefault().aExpr()); return new CaseWhenExpression(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), caseExpr, whenExprs, thenExprs, elseExpr); } @Override public ASTNode visitFuncExpr(final FuncExprContext ctx) { if (null != ctx.functionExprCommonSubexpr()) { return visit(ctx.functionExprCommonSubexpr()); } Collection<ExpressionSegment> expressionSegments = getExpressionSegments(getTargetRuleContextFromParseTree(ctx, AExprContext.class)); // TODO replace aggregation segment String aggregationType = ctx.funcApplication().funcName().getText(); if (AggregationType.isAggregationType(aggregationType)) { return createAggregationSegment(ctx.funcApplication(), aggregationType, expressionSegments); } FunctionSegment result = new FunctionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.funcApplication().funcName().getText(), getOriginalText(ctx)); result.getParameters().addAll(expressionSegments); return result; } @Override public ASTNode visitFunctionExprCommonSubexpr(final FunctionExprCommonSubexprContext ctx) { if (null != ctx.CAST()) { return new TypeCastExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), ctx.getText(), (ExpressionSegment) visit(ctx.aExpr(0)), ctx.typeName().getText()); } FunctionSegment result = new FunctionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getChild(0).getText(), getOriginalText(ctx)); Collection<ExpressionSegment> expressionSegments = getExpressionSegments(getTargetRuleContextFromParseTree(ctx, AExprContext.class)); if ("EXTRACT".equalsIgnoreCase(ctx.getChild(0).getText())) { result.getParameters().add((ExpressionSegment) visit(getTargetRuleContextFromParseTree(ctx, ExtractArgContext.class).iterator().next())); } result.getParameters().addAll(expressionSegments); return result; } @Override public ASTNode visitExtractArg(final ExtractArgContext ctx) { return new ExtractArgExpression(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getChild(0).getText()); } private <T extends ParseTree> Collection<T> getTargetRuleContextFromParseTree(final ParseTree parseTree, final Class<? extends T> clazz) { Collection<T> result = new LinkedList<>(); for (int index = 0; index < parseTree.getChildCount(); index++) { ParseTree child = parseTree.getChild(index); if (clazz.isInstance(child)) { result.add(clazz.cast(child)); } else { result.addAll(getTargetRuleContextFromParseTree(child, clazz)); } } return result; } private Collection<ExpressionSegment> getExpressionSegments(final Collection<AExprContext> aExprContexts) { Collection<ExpressionSegment> result = new LinkedList<>(); for (AExprContext each : aExprContexts) { result.add((ExpressionSegment) visit(each)); } return result; } @Override public ASTNode visitAexprConst(final AexprConstContext ctx) { LiteralValue<?> value; if (null != ctx.numberConst()) { value = new NumberLiteralValue(ctx.numberConst().getText()); } else if (null != ctx.STRING_()) { value = new StringLiteralValue(ctx.STRING_().getText()); } else if (null != ctx.FALSE()) { value = new BooleanLiteralValue(ctx.FALSE().getText()); } else if (null != ctx.TRUE()) { value = new BooleanLiteralValue(ctx.TRUE().getText()); } else if (null != ctx.NULL()) { value = new NullLiteralValue(ctx.getText()); } else { value = new OtherLiteralValue(ctx.getText()); } if (null != ctx.constTypeName() || null != ctx.funcName() && null == ctx.LP_()) { LiteralExpressionSegment expression = new LiteralExpressionSegment(ctx.STRING_().getSymbol().getStartIndex(), ctx.STRING_().getSymbol().getStopIndex(), value.getValue().toString()); String dataType = null == ctx.constTypeName() ? ctx.funcName().getText() : ctx.constTypeName().getText(); return new TypeCastExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), ctx.getText(), expression, dataType); } return SQLUtils.createLiteralExpression(value, ctx.start.getStartIndex(), ctx.stop.getStopIndex(), ctx.getText()); } @Override public ASTNode visitColumnref(final ColumnrefContext ctx) { if (null != ctx.indirection()) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 1280 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 1235 |
return JoinType.INNER.name(); } private JoinTableSegment visitJoinQual(final JoinQualContext ctx, final JoinTableSegment joinTableSource) { if (null != ctx.aExpr()) { ExpressionSegment condition = (ExpressionSegment) visit(ctx.aExpr()); joinTableSource.setCondition(condition); } if (null != ctx.USING()) { joinTableSource.setUsing(generateUsingColumn(ctx.nameList())); } return joinTableSource; } private List<ColumnSegment> generateUsingColumn(final NameListContext ctx) { List<ColumnSegment> result = new ArrayList<>(); if (null != ctx.nameList()) { result.addAll(generateUsingColumn(ctx.nameList())); } if (null != ctx.name()) { result.add(new ColumnSegment(ctx.name().start.getStartIndex(), ctx.name().stop.getStopIndex(), new IdentifierValue(ctx.name().getText()))); } return result; } @Override public ASTNode visitAliasClause(final AliasClauseContext ctx) { StringBuilder aliasName = new StringBuilder(ctx.colId().getText()); if (null != ctx.nameList()) { aliasName.append(ctx.LP_().getText()); aliasName.append(ctx.nameList().getText()); aliasName.append(ctx.RP_().getText()); } return new AliasSegment(ctx.colId().start.getStartIndex(), ctx.stop.getStopIndex(), new IdentifierValue(aliasName.toString())); } private OwnerSegment createTableOwner(final IndirectionContext ctx) { AttrNameContext attrName = ctx.indirectionEl().attrName(); return new OwnerSegment(attrName.start.getStartIndex(), attrName.stop.getStopIndex(), new IdentifierValue(attrName.getText())); } @Override public ASTNode visitWhereClause(final WhereClauseContext ctx) { ExpressionSegment expr = (ExpressionSegment) visit(ctx.aExpr()); return new WhereSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), expr); } @Override public ASTNode visitSelectLimit(final SelectLimitContext ctx) { if (null != ctx.limitClause() && null != ctx.offsetClause()) { return createLimitSegmentWhenLimitAndOffset(ctx); } return createLimitSegmentWhenRowCountOrOffsetAbsent(ctx); } @Override public ASTNode visitSelectLimitValue(final SelectLimitValueContext ctx) { if (null != ctx.ALL()) { return null; } ASTNode astNode = visit(ctx.cExpr()); if (astNode instanceof ParameterMarkerExpressionSegment) { return new ParameterMarkerLimitValueSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ((ParameterMarkerExpressionSegment) astNode).getParameterMarkerIndex()); } return new NumberLiteralLimitValueSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), Long.parseLong(((LiteralExpressionSegment) astNode).getLiterals().toString())); } @Override public ASTNode visitSelectOffsetValue(final SelectOffsetValueContext ctx) { ASTNode astNode = visit(ctx.cExpr()); if (astNode instanceof ParameterMarkerExpressionSegment) { return new ParameterMarkerLimitValueSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ((ParameterMarkerExpressionSegment) astNode).getParameterMarkerIndex()); } return new NumberLiteralLimitValueSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), Long.parseLong(((LiteralExpressionSegment) astNode).getLiterals().toString())); } @Override public ASTNode visitSelectFetchValue(final SelectFetchValueContext ctx) { ASTNode astNode = visit(ctx.cExpr()); if (astNode instanceof ParameterMarkerExpressionSegment) { return new ParameterMarkerLimitValueSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ((ParameterMarkerExpressionSegment) astNode).getParameterMarkerIndex()); } return new NumberLiteralLimitValueSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), Long.parseLong(((LiteralExpressionSegment) astNode).getLiterals().toString())); } private LimitSegment createLimitSegmentWhenLimitAndOffset(final SelectLimitContext ctx) { ParseTree astNode0 = ctx.getChild(0); LimitValueSegment rowCount = null; LimitValueSegment offset = null; if (astNode0 instanceof LimitClauseContext) { rowCount = null == ctx.limitClause().selectLimitValue() ? null : (LimitValueSegment) visit(ctx.limitClause().selectLimitValue()); } else { offset = (LimitValueSegment) visit(ctx.offsetClause().selectOffsetValue()); } ParseTree astNode1 = ctx.getChild(1); if (astNode1 instanceof LimitClauseContext) { rowCount = null == ctx.limitClause().selectLimitValue() ? null : (LimitValueSegment) visit(ctx.limitClause().selectLimitValue()); } else { offset = (LimitValueSegment) visit(ctx.offsetClause().selectOffsetValue()); } return new LimitSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), offset, rowCount); } private LimitSegment createLimitSegmentWhenRowCountOrOffsetAbsent(final SelectLimitContext ctx) { if (null != ctx.limitClause()) { if (null != ctx.limitClause().selectOffsetValue()) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 241 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 440 |
return createBinaryOperationExpression(ctx, ctx.orOperator().getText()); } return new NotExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), (ExpressionSegment) visit(ctx.expr(0)), false); } private ASTNode createBinaryOperationExpression(final ExprContext ctx, final String operator) { ExpressionSegment left = (ExpressionSegment) visit(ctx.expr(0)); ExpressionSegment right = (ExpressionSegment) visit(ctx.expr(1)); String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } @Override public final ASTNode visitBooleanPrimary(final BooleanPrimaryContext ctx) { if (null != ctx.IS()) { String rightText = ""; if (null != ctx.NOT()) { rightText = rightText.concat(ctx.start.getInputStream().getText(new Interval(ctx.NOT().getSymbol().getStartIndex(), ctx.NOT().getSymbol().getStopIndex()))).concat(" "); } Token operatorToken = null; if (null != ctx.NULL()) { operatorToken = ctx.NULL().getSymbol(); } if (null != ctx.TRUE()) { operatorToken = ctx.TRUE().getSymbol(); } if (null != ctx.FALSE()) { operatorToken = ctx.FALSE().getSymbol(); } int startIndex = null == operatorToken ? ctx.IS().getSymbol().getStopIndex() + 2 : operatorToken.getStartIndex(); rightText = rightText.concat(ctx.start.getInputStream().getText(new Interval(startIndex, ctx.stop.getStopIndex()))); ExpressionSegment right = new LiteralExpressionSegment(ctx.IS().getSymbol().getStopIndex() + 2, ctx.stop.getStopIndex(), rightText); String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); ExpressionSegment left = (ExpressionSegment) visit(ctx.booleanPrimary()); String operator = "IS"; return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } if (null != ctx.comparisonOperator() || null != ctx.SAFE_EQ_()) { return createCompareSegment(ctx); } return visit(ctx.predicate()); } private ASTNode createCompareSegment(final BooleanPrimaryContext ctx) { ExpressionSegment left = (ExpressionSegment) visit(ctx.booleanPrimary()); ExpressionSegment right; if (null != ctx.predicate()) { right = (ExpressionSegment) visit(ctx.predicate()); } else { right = (ExpressionSegment) visit(ctx.subquery()); } String operator = null == ctx.SAFE_EQ_() ? ctx.comparisonOperator().getText() : ctx.SAFE_EQ_().getText(); String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } @Override public final ASTNode visitPredicate(final PredicateContext ctx) { if (null != ctx.IN()) { return createInSegment(ctx); } if (null != ctx.BETWEEN()) { return createBetweenSegment(ctx); } if (null != ctx.LIKE()) { return createBinaryOperationExpressionFromLike(ctx); } return visit(ctx.bitExpr(0)); } private BinaryOperationExpression createBinaryOperationExpressionFromLike(final PredicateContext ctx) { ExpressionSegment left = (ExpressionSegment) visit(ctx.bitExpr(0)); ListExpression right = new ListExpression(ctx.simpleExpr(0).start.getStartIndex(), ctx.simpleExpr().get(ctx.simpleExpr().size() - 1).stop.getStopIndex()); for (SimpleExprContext each : ctx.simpleExpr()) { right.getItems().add((ExpressionSegment) visit(each)); } String operator = null == ctx.NOT() ? "LIKE" : "NOT LIKE"; String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } private InExpression createInSegment(final PredicateContext ctx) { ExpressionSegment left = (ExpressionSegment) visit(ctx.bitExpr(0)); ExpressionSegment right; if (null != ctx.subquery()) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 419 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 532 |
return new OpenGaussAlterDomainStatement(); } @Override public ASTNode visitRenameTableSpecification(final RenameTableSpecificationContext ctx) { RenameTableDefinitionSegment result = new RenameTableDefinitionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex()); TableNameSegment tableName = new TableNameSegment(ctx.identifier().start.getStartIndex(), ctx.identifier().stop.getStopIndex(), (IdentifierValue) visit(ctx.identifier())); result.setRenameTable(new SimpleTableSegment(tableName)); return result; } @Override public ASTNode visitAddColumnSpecification(final AddColumnSpecificationContext ctx) { CollectionValue<AddColumnDefinitionSegment> result = new CollectionValue<>(); ColumnDefinitionContext columnDefinition = ctx.columnDefinition(); if (null != columnDefinition) { AddColumnDefinitionSegment addColumnDefinition = new AddColumnDefinitionSegment( ctx.columnDefinition().getStart().getStartIndex(), columnDefinition.getStop().getStopIndex(), Collections.singleton((ColumnDefinitionSegment) visit(columnDefinition))); result.getValue().add(addColumnDefinition); } return result; } @Override public ASTNode visitColumnDefinition(final ColumnDefinitionContext ctx) { ColumnSegment column = (ColumnSegment) visit(ctx.columnName()); DataTypeSegment dataType = (DataTypeSegment) visit(ctx.dataType()); boolean isPrimaryKey = ctx.columnConstraint().stream().anyMatch(each -> null != each.columnConstraintOption() && null != each.columnConstraintOption().primaryKey()); // TODO parse not null ColumnDefinitionSegment result = new ColumnDefinitionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), column, dataType, isPrimaryKey, false); for (ColumnConstraintContext each : ctx.columnConstraint()) { if (null != each.columnConstraintOption().tableName()) { result.getReferencedTables().add((SimpleTableSegment) visit(each.columnConstraintOption().tableName())); } } return result; } @Override public ASTNode visitTableConstraintUsingIndex(final TableConstraintUsingIndexContext ctx) { ConstraintDefinitionSegment result = new ConstraintDefinitionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex()); if (null != ctx.constraintName()) { result.setConstraintName((ConstraintSegment) visit(ctx.constraintName())); } if (null != ctx.indexName()) { result.setIndexName((IndexSegment) visit(ctx.indexName())); } return result; } @SuppressWarnings("unchecked") @Override public ASTNode visitTableConstraint(final TableConstraintContext ctx) { ConstraintDefinitionSegment result = new ConstraintDefinitionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex()); if (null != ctx.constraintClause()) { result.setConstraintName((ConstraintSegment) visit(ctx.constraintClause().constraintName())); } if (null != ctx.tableConstraintOption().primaryKey()) { result.getPrimaryKeyColumns().addAll(((CollectionValue<ColumnSegment>) visit(ctx.tableConstraintOption().columnNames(0))).getValue()); } if (null != ctx.tableConstraintOption().FOREIGN()) { result.setReferencedTable((SimpleTableSegment) visit(ctx.tableConstraintOption().tableName())); } return result; } @Override public ASTNode visitModifyColumnSpecification(final ModifyColumnSpecificationContext ctx) { // TODO visit pk and table ref ColumnSegment column = (ColumnSegment) visit(ctx.modifyColumn().columnName()); DataTypeSegment dataType = null == ctx.dataType() ? null : (DataTypeSegment) visit(ctx.dataType()); ColumnDefinitionSegment columnDefinition = new ColumnDefinitionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), column, dataType, false, false); return new ModifyColumnDefinitionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), columnDefinition); } @Override public ASTNode visitDropColumnSpecification(final DropColumnSpecificationContext ctx) { return new DropColumnDefinitionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), Collections.singleton((ColumnSegment) visit(ctx.columnName()))); } @Override public ASTNode visitRenameColumnSpecification(final RenameColumnSpecificationContext ctx) { return new RenameColumnSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), (ColumnSegment) visit(ctx.columnName(0)), (ColumnSegment) visit(ctx.columnName(1))); } @SuppressWarnings("unchecked") @Override public ASTNode visitDropTable(final DropTableContext ctx) { boolean containsCascade = null != ctx.dropTableOpt() && null != ctx.dropTableOpt().CASCADE(); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 1063 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 1259 |
} @Override public ASTNode visitNext(final NextContext ctx) { DirectionSegment result = new DirectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex()); result.setDirectionType(DirectionType.NEXT); return result; } @Override public ASTNode visitPrior(final PriorContext ctx) { DirectionSegment result = new DirectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex()); result.setDirectionType(DirectionType.PRIOR); return result; } @Override public ASTNode visitFirst(final FirstContext ctx) { DirectionSegment result = new DirectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex()); result.setDirectionType(DirectionType.FIRST); return result; } @Override public ASTNode visitLast(final LastContext ctx) { DirectionSegment result = new DirectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex()); result.setDirectionType(DirectionType.LAST); return result; } @Override public ASTNode visitAbsoluteCount(final AbsoluteCountContext ctx) { DirectionSegment result = new DirectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex()); result.setDirectionType(DirectionType.ABSOLUTE_COUNT); result.setCount(((NumberLiteralValue) visit(ctx.signedIconst())).getValue().longValue()); return result; } @Override public ASTNode visitRelativeCount(final RelativeCountContext ctx) { DirectionSegment result = new DirectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex()); result.setDirectionType(DirectionType.RELATIVE_COUNT); result.setCount(((NumberLiteralValue) visit(ctx.signedIconst())).getValue().longValue()); return result; } @Override public ASTNode visitCount(final CountContext ctx) { DirectionSegment result = new DirectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex()); result.setDirectionType(DirectionType.COUNT); result.setCount(((NumberLiteralValue) visit(ctx.signedIconst())).getValue().longValue()); return result; } @Override public ASTNode visitAll(final AllContext ctx) { DirectionSegment result = new DirectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex()); result.setDirectionType(DirectionType.ALL); return result; } @Override public ASTNode visitForward(final ForwardContext ctx) { DirectionSegment result = new DirectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex()); result.setDirectionType(DirectionType.FORWARD); return result; } @Override public ASTNode visitForwardCount(final ForwardCountContext ctx) { DirectionSegment result = new DirectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex()); result.setDirectionType(DirectionType.FORWARD_COUNT); result.setCount(((NumberLiteralValue) visit(ctx.signedIconst())).getValue().longValue()); return result; } @Override public ASTNode visitForwardAll(final ForwardAllContext ctx) { DirectionSegment result = new DirectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex()); result.setDirectionType(DirectionType.FORWARD_ALL); return result; } @Override public ASTNode visitBackward(final BackwardContext ctx) { DirectionSegment result = new DirectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex()); result.setDirectionType(DirectionType.BACKWARD); return result; } @Override public ASTNode visitBackwardCount(final BackwardCountContext ctx) { DirectionSegment result = new DirectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex()); result.setDirectionType(DirectionType.BACKWARD_COUNT); result.setCount(((NumberLiteralValue) visit(ctx.signedIconst())).getValue().longValue()); return result; } @Override public ASTNode visitBackwardAll(final BackwardAllContext ctx) { DirectionSegment result = new DirectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex()); result.setDirectionType(DirectionType.BACKWARD_ALL); return result; } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/driver/jdbc/unsupported/AbstractUnsupportedOperationResultSet.java | shardingsphere-jdbc | 31 |
org/apache/shardingsphere/sqlfederation/resultset/AbstractUnsupportedOperationResultSet.java | shardingsphere-sql-federation-core | 31 |
public abstract class AbstractUnsupportedOperationResultSet extends AbstractUnsupportedUpdateOperationResultSet { @Override public boolean previous() throws SQLException { throw new SQLFeatureNotSupportedException("previous"); } @Override public boolean isBeforeFirst() throws SQLException { throw new SQLFeatureNotSupportedException("isBeforeFirst"); } @Override public boolean isAfterLast() throws SQLException { throw new SQLFeatureNotSupportedException("isAfterLast"); } @Override public boolean isFirst() throws SQLException { throw new SQLFeatureNotSupportedException("isFirst"); } @Override public boolean isLast() throws SQLException { throw new SQLFeatureNotSupportedException("isLast"); } @Override public void beforeFirst() throws SQLException { throw new SQLFeatureNotSupportedException("beforeFirst"); } @Override public void afterLast() throws SQLException { throw new SQLFeatureNotSupportedException("afterLast"); } @Override public boolean first() throws SQLException { throw new SQLFeatureNotSupportedException("first"); } @Override public boolean last() throws SQLException { throw new SQLFeatureNotSupportedException("last"); } @Override public boolean absolute(final int row) throws SQLException { throw new SQLFeatureNotSupportedException("absolute"); } @Override public boolean relative(final int rows) throws SQLException { throw new SQLFeatureNotSupportedException("relative"); } @Override public int getRow() throws SQLException { throw new SQLFeatureNotSupportedException("getRow"); } @Override public final void insertRow() throws SQLException { throw new SQLFeatureNotSupportedException("insertRow"); } @Override public final void updateRow() throws SQLException { throw new SQLFeatureNotSupportedException("updateRow"); } @Override public final void deleteRow() throws SQLException { throw new SQLFeatureNotSupportedException("deleteRow"); } @Override public final void refreshRow() throws SQLException { throw new SQLFeatureNotSupportedException("refreshRow"); } @Override public final void cancelRowUpdates() throws SQLException { throw new SQLFeatureNotSupportedException("cancelRowUpdates"); } @Override public final void moveToInsertRow() throws SQLException { throw new SQLFeatureNotSupportedException("moveToInsertRow"); } @Override public final void moveToCurrentRow() throws SQLException { throw new SQLFeatureNotSupportedException("moveToCurrentRow"); } @Override public final boolean rowInserted() throws SQLException { throw new SQLFeatureNotSupportedException("rowInserted"); } @Override public final boolean rowUpdated() throws SQLException { throw new SQLFeatureNotSupportedException("rowUpdated"); } @Override public final boolean rowDeleted() throws SQLException { throw new SQLFeatureNotSupportedException("rowDeleted"); } @Override public final String getCursorName() throws SQLException { throw new SQLFeatureNotSupportedException("getCursorName"); } @Override public final int getHoldability() throws SQLException { throw new SQLFeatureNotSupportedException("getHoldability"); } @Override public final NClob getNClob(final int columnIndex) throws SQLException { throw new SQLFeatureNotSupportedException("getNClob"); } @Override public final NClob getNClob(final String columnLabel) throws SQLException { throw new SQLFeatureNotSupportedException("getNClob"); } @Override public final Reader getNCharacterStream(final int columnIndex) throws SQLException { throw new SQLFeatureNotSupportedException("getNCharacterStream"); } @Override public final Reader getNCharacterStream(final String columnLabel) throws SQLException { throw new SQLFeatureNotSupportedException("getNCharacterStream"); } @Override public final Ref getRef(final int columnIndex) throws SQLException { throw new SQLFeatureNotSupportedException("getRef"); } @Override public final Ref getRef(final String columnLabel) throws SQLException { throw new SQLFeatureNotSupportedException("getRef"); } @Override public final RowId getRowId(final int columnIndex) throws SQLException { throw new SQLFeatureNotSupportedException("getRowId"); } @Override public final RowId getRowId(final String columnLabel) throws SQLException { throw new SQLFeatureNotSupportedException("getRowId"); } @Override public <T> T getObject(final int columnIndex, final Class<T> type) throws SQLException { throw new SQLFeatureNotSupportedException("getObject with type"); } @Override public <T> T getObject(final String columnLabel, final Class<T> type) throws SQLException { throw new SQLFeatureNotSupportedException("getObject with type"); } @Override public final Object getObject(final String columnLabel, final Map<String, Class<?>> map) throws SQLException { throw new SQLFeatureNotSupportedException("getObject with map"); } @Override public final Object getObject(final int columnIndex, final Map<String, Class<?>> map) throws SQLException { throw new SQLFeatureNotSupportedException("getObject with map"); } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 801 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 778 |
@Override public ASTNode visitInsertColumnList(final InsertColumnListContext ctx) { CollectionValue<ColumnSegment> result = new CollectionValue<>(); if (null != ctx.insertColumnList()) { result.getValue().addAll(((CollectionValue<ColumnSegment>) visit(ctx.insertColumnList())).getValue()); } result.getValue().add((ColumnSegment) visit(ctx.insertColumnItem())); return result; } @Override public ASTNode visitInsertColumnItem(final InsertColumnItemContext ctx) { if (null == ctx.optIndirection().indirectionEl()) { return new ColumnSegment(ctx.colId().start.getStartIndex(), ctx.colId().stop.getStopIndex(), new IdentifierValue(ctx.colId().getText())); } ColumnSegment result = new ColumnSegment( ctx.colId().start.getStartIndex(), ctx.optIndirection().stop.getStopIndex(), new IdentifierValue(ctx.optIndirection().indirectionEl().attrName().getText())); result.setOwner(new OwnerSegment(ctx.colId().start.getStartIndex(), ctx.colId().stop.getStopIndex(), new IdentifierValue(ctx.colId().getText()))); return result; } private Collection<InsertValuesSegment> createInsertValuesSegments(final ValuesClauseContext ctx) { Collection<InsertValuesSegment> result = new LinkedList<>(); if (null != ctx.valuesClause()) { Collection<InsertValuesSegment> expressions = createInsertValuesSegments(ctx.valuesClause()); result.addAll(expressions); } Collection<ExpressionSegment> expressions = createInsertValuesSegments(ctx.exprList()); InsertValuesSegment insertValuesSegment = new InsertValuesSegment(ctx.LP_().getSymbol().getStartIndex(), ctx.RP_().getSymbol().getStopIndex(), (List<ExpressionSegment>) expressions); result.add(insertValuesSegment); return result; } private Collection<ExpressionSegment> createInsertValuesSegments(final ExprListContext ctx) { Collection<ExpressionSegment> result = new LinkedList<>(); if (null != ctx.exprList()) { Collection<ExpressionSegment> tmpResult = createInsertValuesSegments(ctx.exprList()); result.addAll(tmpResult); } ExpressionSegment expr = (ExpressionSegment) visit(ctx.aExpr()); result.add(expr); return result; } private Collection<ColumnAssignmentSegment> generateAssignmentSegments(final SetClauseListContext ctx) { Collection<ColumnAssignmentSegment> result = new LinkedList<>(); if (null != ctx.setClauseList()) { Collection<ColumnAssignmentSegment> tmpResult = generateAssignmentSegments(ctx.setClauseList()); result.addAll(tmpResult); } ColumnAssignmentSegment assignmentSegment = (ColumnAssignmentSegment) visit(ctx.setClause()); result.add(assignmentSegment); return result; } @Override public ASTNode visitSetClause(final SetClauseContext ctx) { ColumnSegment columnSegment = (ColumnSegment) visit(ctx.setTarget()); List<ColumnSegment> columnSegments = new LinkedList<>(); columnSegments.add(columnSegment); ExpressionSegment expressionSegment = (ExpressionSegment) visit(ctx.aExpr()); return new ColumnAssignmentSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), columnSegments, expressionSegment); } @Override public ASTNode visitSetTarget(final SetTargetContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 462 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 243 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 442 |
return new DatetimeExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, text); } private ASTNode createBinaryOperationExpression(final ExprContext ctx, final String operator) { ExpressionSegment left = (ExpressionSegment) visit(ctx.expr(0)); ExpressionSegment right = (ExpressionSegment) visit(ctx.expr(1)); String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } @Override public final ASTNode visitBooleanPrimary(final BooleanPrimaryContext ctx) { if (null != ctx.IS()) { String rightText = ""; if (null != ctx.NOT()) { rightText = rightText.concat(ctx.start.getInputStream().getText(new Interval(ctx.NOT().getSymbol().getStartIndex(), ctx.NOT().getSymbol().getStopIndex()))).concat(" "); } Token operatorToken = null; if (null != ctx.NULL()) { operatorToken = ctx.NULL().getSymbol(); } if (null != ctx.TRUE()) { operatorToken = ctx.TRUE().getSymbol(); } if (null != ctx.FALSE()) { operatorToken = ctx.FALSE().getSymbol(); } int startIndex = null == operatorToken ? ctx.IS().getSymbol().getStopIndex() + 2 : operatorToken.getStartIndex(); rightText = rightText.concat(ctx.start.getInputStream().getText(new Interval(startIndex, ctx.stop.getStopIndex()))); ExpressionSegment right = new LiteralExpressionSegment(ctx.IS().getSymbol().getStopIndex() + 2, ctx.stop.getStopIndex(), rightText); String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); ExpressionSegment left = (ExpressionSegment) visit(ctx.booleanPrimary()); String operator = "IS"; return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } if (null != ctx.comparisonOperator() || null != ctx.SAFE_EQ_()) { return createCompareSegment(ctx); } return visit(ctx.predicate()); } private ASTNode createCompareSegment(final BooleanPrimaryContext ctx) { ExpressionSegment left = (ExpressionSegment) visit(ctx.booleanPrimary()); ExpressionSegment right; if (null != ctx.predicate()) { right = (ExpressionSegment) visit(ctx.predicate()); } else { right = new SubqueryExpressionSegment( |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 335 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 534 |
} boolean not = null != ctx.NOT(); return new InExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, not); } private BetweenExpression createBetweenSegment(final PredicateContext ctx) { ExpressionSegment left = (ExpressionSegment) visit(ctx.bitExpr(0)); ExpressionSegment between = (ExpressionSegment) visit(ctx.bitExpr(1)); ExpressionSegment and = (ExpressionSegment) visit(ctx.predicate()); boolean not = null != ctx.NOT(); return new BetweenExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, between, and, not); } @Override public final ASTNode visitBitExpr(final BitExprContext ctx) { if (null != ctx.simpleExpr()) { return createExpressionSegment(visit(ctx.simpleExpr()), ctx); } ExpressionSegment left = (ExpressionSegment) visit(ctx.getChild(0)); ExpressionSegment right = (ExpressionSegment) visit(ctx.getChild(2)); String operator = ctx.getChild(1).getText(); String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } private ASTNode createExpressionSegment(final ASTNode astNode, final ParserRuleContext context) { if (astNode instanceof StringLiteralValue) { return new LiteralExpressionSegment(context.start.getStartIndex(), context.stop.getStopIndex(), ((StringLiteralValue) astNode).getValue()); } if (astNode instanceof NumberLiteralValue) { return new LiteralExpressionSegment(context.start.getStartIndex(), context.stop.getStopIndex(), ((NumberLiteralValue) astNode).getValue()); } if (astNode instanceof BooleanLiteralValue) { return new LiteralExpressionSegment(context.start.getStartIndex(), context.stop.getStopIndex(), ((BooleanLiteralValue) astNode).getValue()); } if (astNode instanceof ParameterMarkerValue) { ParameterMarkerValue parameterMarker = (ParameterMarkerValue) astNode; ParameterMarkerExpressionSegment segment = new ParameterMarkerExpressionSegment(context.start.getStartIndex(), context.stop.getStopIndex(), parameterMarker.getValue(), parameterMarker.getType()); parameterMarkerSegments.add(segment); return segment; } if (astNode instanceof SubquerySegment) { return new SubqueryExpressionSegment((SubquerySegment) astNode); } if (astNode instanceof OtherLiteralValue) { return new CommonExpressionSegment(context.getStart().getStartIndex(), context.getStop().getStopIndex(), ((OtherLiteralValue) astNode).getValue()); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/infra/database/opengauss/metadata/data/loader/OpenGaussMetaDataLoader.java | shardingsphere-infra-database-opengauss | 79 |
org/apache/shardingsphere/infra/database/postgresql/metadata/data/loader/PostgreSQLMetaDataLoader.java | shardingsphere-infra-database-postgresql | 91 |
result.add(new SchemaMetaData(each, createTableMetaDataList(tableIndexMetaDataMap, tableColumnMetaDataMap))); } return result; } } private Map<String, Multimap<String, IndexMetaData>> loadIndexMetaDataMap(final Connection connection, final Collection<String> schemaNames) throws SQLException { Map<String, Multimap<String, IndexMetaData>> result = new LinkedHashMap<>(); try (PreparedStatement preparedStatement = connection.prepareStatement(getIndexMetaDataSQL(schemaNames)); ResultSet resultSet = preparedStatement.executeQuery()) { while (resultSet.next()) { String schemaName = resultSet.getString("schemaname"); String tableName = resultSet.getString("tablename"); String indexName = resultSet.getString("indexname"); Multimap<String, IndexMetaData> indexMetaDataMap = result.computeIfAbsent(schemaName, key -> LinkedHashMultimap.create()); indexMetaDataMap.put(tableName, new IndexMetaData(indexName)); } } try (PreparedStatement preparedStatement = connection.prepareStatement(getAdvanceIndexMetaDataSQL(schemaNames)); ResultSet resultSet = preparedStatement.executeQuery()) { while (resultSet.next()) { String schemaName = resultSet.getString("index_schema"); String tableName = resultSet.getString("table_name"); String columnName = resultSet.getString("column_name"); String indexName = resultSet.getString("index_name"); boolean isUnique = resultSet.getBoolean("is_unique"); Collection<IndexMetaData> indexMetaDatas = result.getOrDefault(schemaName, LinkedHashMultimap.create()).get(tableName); if (indexMetaDatas.isEmpty()) { continue; } Optional<IndexMetaData> indexMetaData = indexMetaDatas.stream().filter(each -> each.getName().equals(indexName)).findFirst(); if (indexMetaData.isPresent()) { indexMetaData.get().setUnique(isUnique); indexMetaData.get().getColumns().add(columnName); } } } return result; } private String getIndexMetaDataSQL(final Collection<String> schemaNames) { return String.format(BASIC_INDEX_META_DATA_SQL, schemaNames.stream().map(each -> String.format("'%s'", each)).collect(Collectors.joining(","))); } private String getAdvanceIndexMetaDataSQL(final Collection<String> schemaNames) { return String.format(ADVANCE_INDEX_META_DATA_SQL, schemaNames.stream().map(each -> String.format("'%s'", each)).collect(Collectors.joining(","))); } private Map<String, Multimap<String, ColumnMetaData>> loadColumnMetaDataMap(final Connection connection, final Collection<String> tables, final Collection<String> schemaNames) throws SQLException { Map<String, Multimap<String, ColumnMetaData>> result = new LinkedHashMap<>(); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/proxy/frontend/opengauss/command/query/simple/OpenGaussComQueryExecutor.java | shardingsphere-proxy-frontend-opengauss | 70 |
org/apache/shardingsphere/proxy/frontend/postgresql/command/query/simple/PostgreSQLComQueryExecutor.java | shardingsphere-proxy-frontend-postgresql | 70 |
public OpenGaussComQueryExecutor(final PortalContext portalContext, final PostgreSQLComQueryPacket packet, final ConnectionSession connectionSession) throws SQLException { this.portalContext = portalContext; DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "openGauss"); SQLStatement sqlStatement = ProxySQLComQueryParser.parse(packet.getSQL(), databaseType, connectionSession); proxyBackendHandler = ProxyBackendHandlerFactory.newInstance(databaseType, packet.getSQL(), sqlStatement, connectionSession, packet.getHintValueContext()); } @Override public Collection<DatabasePacket> execute() throws SQLException { ResponseHeader responseHeader = proxyBackendHandler.execute(); if (responseHeader instanceof QueryResponseHeader) { return Collections.singleton(createRowDescriptionPacket((QueryResponseHeader) responseHeader)); } responseType = ResponseType.UPDATE; return createUpdatePacket((UpdateResponseHeader) responseHeader); } private PostgreSQLRowDescriptionPacket createRowDescriptionPacket(final QueryResponseHeader queryResponseHeader) { responseType = ResponseType.QUERY; return new PostgreSQLRowDescriptionPacket(createColumnDescriptions(queryResponseHeader)); } private Collection<PostgreSQLColumnDescription> createColumnDescriptions(final QueryResponseHeader queryResponseHeader) { Collection<PostgreSQLColumnDescription> result = new LinkedList<>(); int columnIndex = 0; for (QueryHeader each : queryResponseHeader.getQueryHeaders()) { result.add(new PostgreSQLColumnDescription(each.getColumnLabel(), ++columnIndex, each.getColumnType(), each.getColumnLength(), each.getColumnTypeName())); } return result; } private Collection<DatabasePacket> createUpdatePacket(final UpdateResponseHeader updateResponseHeader) throws SQLException { SQLStatement sqlStatement = updateResponseHeader.getSqlStatement(); if (sqlStatement instanceof CommitStatement || sqlStatement instanceof RollbackStatement) { portalContext.closeAll(); } if (sqlStatement instanceof SetStatement) { return createParameterStatusResponse((SetStatement) sqlStatement); } return Collections.singletonList(sqlStatement instanceof EmptyStatement ? new PostgreSQLEmptyQueryResponsePacket() : new PostgreSQLCommandCompletePacket(PostgreSQLCommand.valueOf(sqlStatement.getClass()).map(PostgreSQLCommand::getTag).orElse(""), updateResponseHeader.getUpdateCount())); } private Collection<DatabasePacket> createParameterStatusResponse(final SetStatement sqlStatement) { Collection<DatabasePacket> result = new ArrayList<>(2); result.add(new PostgreSQLCommandCompletePacket("SET", 0)); for (VariableAssignSegment each : sqlStatement.getVariableAssigns()) { result.add(new PostgreSQLParameterStatusPacket(each.getVariable().getVariable(), IdentifierValue.getQuotedContent(each.getAssignValue()))); } return result; } @Override public boolean next() throws SQLException { return proxyBackendHandler.next(); } @Override public PostgreSQLPacket getQueryRowPacket() throws SQLException { return new PostgreSQLDataRowPacket(proxyBackendHandler.getRowData().getData()); } @Override public void close() throws SQLException { proxyBackendHandler.close(); } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 430 |
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 465 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 246 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 445 |
private BinaryOperationExpression createBinaryOperationExpression(final ExprContext ctx, final String operator) { ExpressionSegment left = (ExpressionSegment) visit(ctx.expr(0)); ExpressionSegment right = (ExpressionSegment) visit(ctx.expr(1)); String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } @Override public final ASTNode visitBooleanPrimary(final BooleanPrimaryContext ctx) { if (null != ctx.IS()) { // TODO optimize operatorToken String rightText = ""; if (null != ctx.NOT()) { rightText = rightText.concat(ctx.start.getInputStream().getText(new Interval(ctx.NOT().getSymbol().getStartIndex(), ctx.NOT().getSymbol().getStopIndex()))).concat(" "); } Token operatorToken = null; if (null != ctx.NULL()) { operatorToken = ctx.NULL().getSymbol(); } if (null != ctx.TRUE()) { operatorToken = ctx.TRUE().getSymbol(); } if (null != ctx.FALSE()) { operatorToken = ctx.FALSE().getSymbol(); } int startIndex = null == operatorToken ? ctx.IS().getSymbol().getStopIndex() + 2 : operatorToken.getStartIndex(); rightText = rightText.concat(ctx.start.getInputStream().getText(new Interval(startIndex, ctx.stop.getStopIndex()))); ExpressionSegment right = new LiteralExpressionSegment(ctx.IS().getSymbol().getStopIndex() + 2, ctx.stop.getStopIndex(), rightText); String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); ExpressionSegment left = (ExpressionSegment) visit(ctx.booleanPrimary()); String operator = "IS"; return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } if (null != ctx.comparisonOperator() || null != ctx.SAFE_EQ_()) { return createCompareSegment(ctx); } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 414 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 626 |
return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), getOriginalText(ctx)); } @Override public final ASTNode visitFunctionCall(final FunctionCallContext ctx) { if (null != ctx.aggregationFunction()) { return visit(ctx.aggregationFunction()); } if (null != ctx.specialFunction()) { return visit(ctx.specialFunction()); } if (null != ctx.regularFunction()) { return visit(ctx.regularFunction()); } throw new IllegalStateException("FunctionCallContext must have aggregationFunction, regularFunction or specialFunction."); } @Override public final ASTNode visitAggregationFunction(final AggregationFunctionContext ctx) { String aggregationType = ctx.aggregationFunctionName().getText(); return AggregationType.isAggregationType(aggregationType) ? createAggregationSegment(ctx, aggregationType) : new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), getOriginalText(ctx)); } private ASTNode createAggregationSegment(final AggregationFunctionContext ctx, final String aggregationType) { AggregationType type = AggregationType.valueOf(aggregationType.toUpperCase()); if (null != ctx.distinct()) { AggregationDistinctProjectionSegment result = new AggregationDistinctProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), type, getOriginalText(ctx), getDistinctExpression(ctx)); result.getParameters().addAll(getExpressions(ctx)); return result; } AggregationProjectionSegment result = new AggregationProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), type, getOriginalText(ctx)); result.getParameters().addAll(getExpressions(ctx)); return result; } private Collection<ExpressionSegment> getExpressions(final AggregationFunctionContext ctx) { if (null == ctx.expr()) { return Collections.emptyList(); } Collection<ExpressionSegment> result = new LinkedList<>(); for (ExprContext each : ctx.expr()) { result.add((ExpressionSegment) visit(each)); } return result; } private String getDistinctExpression(final AggregationFunctionContext ctx) { StringBuilder result = new StringBuilder(); for (int i = 3; i < ctx.getChildCount() - 1; i++) { result.append(ctx.getChild(i).getText()); } return result.toString(); } @Override public final ASTNode visitSpecialFunction(final SpecialFunctionContext ctx) { if (null != ctx.castFunction()) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 556 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 337 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 536 |
return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } private BetweenExpression createBetweenSegment(final PredicateContext ctx) { ExpressionSegment left = (ExpressionSegment) visit(ctx.bitExpr(0)); ExpressionSegment between = (ExpressionSegment) visit(ctx.bitExpr(1)); ExpressionSegment and = (ExpressionSegment) visit(ctx.predicate()); boolean not = null != ctx.NOT(); return new BetweenExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, between, and, not); } @Override public final ASTNode visitBitExpr(final BitExprContext ctx) { if (null != ctx.simpleExpr()) { return createExpressionSegment(visit(ctx.simpleExpr()), ctx); } ExpressionSegment left = (ExpressionSegment) visit(ctx.getChild(0)); ExpressionSegment right = (ExpressionSegment) visit(ctx.getChild(2)); String operator = ctx.getChild(1).getText(); String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } private ASTNode createExpressionSegment(final ASTNode astNode, final ParserRuleContext context) { if (astNode instanceof StringLiteralValue) { return new LiteralExpressionSegment(context.start.getStartIndex(), context.stop.getStopIndex(), ((StringLiteralValue) astNode).getValue()); } if (astNode instanceof NumberLiteralValue) { return new LiteralExpressionSegment(context.start.getStartIndex(), context.stop.getStopIndex(), ((NumberLiteralValue) astNode).getValue()); } if (astNode instanceof BooleanLiteralValue) { return new LiteralExpressionSegment(context.start.getStartIndex(), context.stop.getStopIndex(), ((BooleanLiteralValue) astNode).getValue()); } if (astNode instanceof ParameterMarkerValue) { ParameterMarkerValue parameterMarker = (ParameterMarkerValue) astNode; ParameterMarkerExpressionSegment segment = new ParameterMarkerExpressionSegment(context.start.getStartIndex(), context.stop.getStopIndex(), parameterMarker.getValue(), parameterMarker.getType()); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 332 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 415 |
return new OpenGaussAlterDefaultPrivilegesStatement(); } @Override public ASTNode visitAlterDefinitionClause(final AlterDefinitionClauseContext ctx) { CollectionValue<AlterDefinitionSegment> result = new CollectionValue<>(); if (null != ctx.alterTableActions()) { result.getValue().addAll(ctx.alterTableActions().alterTableAction().stream().flatMap(each -> getAlterDefinitionSegments(each).stream()).collect(Collectors.toList())); } if (null != ctx.renameColumnSpecification()) { result.getValue().add((RenameColumnSegment) visit(ctx.renameColumnSpecification())); } if (null != ctx.renameTableSpecification()) { result.getValue().add((RenameTableDefinitionSegment) visit(ctx.renameTableSpecification())); } return result; } @SuppressWarnings("unchecked") private Collection<AlterDefinitionSegment> getAlterDefinitionSegments(final AlterTableActionContext ctx) { Collection<AlterDefinitionSegment> result = new LinkedList<>(); if (null != ctx.addColumnSpecification()) { result.addAll(((CollectionValue<AddColumnDefinitionSegment>) visit(ctx.addColumnSpecification())).getValue()); } if (null != ctx.addConstraintSpecification() && null != ctx.addConstraintSpecification().tableConstraint()) { result.add((AddConstraintDefinitionSegment) visit(ctx.addConstraintSpecification())); } if (null != ctx.validateConstraintSpecification()) { result.add((ValidateConstraintDefinitionSegment) visit(ctx.validateConstraintSpecification())); } if (null != ctx.modifyColumnSpecification()) { result.add((ModifyColumnDefinitionSegment) visit(ctx.modifyColumnSpecification())); } if (null != ctx.modifyConstraintSpecification()) { result.add((ModifyConstraintDefinitionSegment) visit(ctx.modifyConstraintSpecification())); } if (null != ctx.dropColumnSpecification()) { result.add((DropColumnDefinitionSegment) visit(ctx.dropColumnSpecification())); } if (null != ctx.dropConstraintSpecification()) { result.add((DropConstraintDefinitionSegment) visit(ctx.dropConstraintSpecification())); } return result; } @Override public ASTNode visitAlterForeignTable(final AlterForeignTableContext ctx) { return new OpenGaussAlterForeignTableStatement(); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 1218 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 1173 |
JoinTableSegment result = new JoinTableSegment(); result.setLeft((TableSegment) visit(ctx.tableReference())); int startIndex = null == ctx.LP_() ? ctx.tableReference().start.getStartIndex() : ctx.LP_().getSymbol().getStartIndex(); int stopIndex = 0; AliasSegment alias = null; if (null == ctx.aliasClause()) { stopIndex = null == ctx.RP_() ? ctx.tableReference().start.getStopIndex() : ctx.RP_().getSymbol().getStopIndex(); } else { alias = (AliasSegment) visit(ctx.aliasClause()); startIndex = null == ctx.RP_() ? ctx.joinedTable().stop.getStopIndex() : ctx.RP_().getSymbol().getStopIndex(); } result.setStartIndex(startIndex); result.setStopIndex(stopIndex); visitJoinedTable(ctx.joinedTable(), result); result.setAlias(alias); return result; } private JoinTableSegment visitJoinedTable(final JoinedTableContext ctx, final JoinTableSegment tableSegment) { TableSegment right = (TableSegment) visit(ctx.tableReference()); tableSegment.setRight(right); tableSegment.setJoinType(getJoinType(ctx)); tableSegment.setNatural(null != ctx.naturalJoinType()); return null == ctx.joinQual() ? tableSegment : visitJoinQual(ctx.joinQual(), tableSegment); } private String getJoinType(final JoinedTableContext ctx) { if (null != ctx.crossJoinType()) { return JoinType.CROSS.name(); } if (null != ctx.innerJoinType()) { return JoinType.INNER.name(); } if (null != ctx.outerJoinType()) { return getOutJoinType(ctx.outerJoinType()); } if (null != ctx.naturalJoinType()) { return getNaturalJoinType(ctx.naturalJoinType()); } return JoinType.COMMA.name(); } private String getOutJoinType(final OuterJoinTypeContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowFunctionStatusExecutor.java | shardingsphere-proxy-backend-mysql | 47 |
org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcedureStatusExecutor.java | shardingsphere-proxy-backend-mysql | 47 |
private QueryResultMetaData queryResultMetaData; private MergedResult mergedResult; @Override public void execute(final ConnectionSession connectionSession) { queryResultMetaData = createQueryResultMetaData(); mergedResult = new TransparentMergedResult(getQueryResult()); } private QueryResult getQueryResult() { return new RawMemoryQueryResult(queryResultMetaData, Collections.emptyList()); } private QueryResultMetaData createQueryResultMetaData() { List<RawQueryResultColumnMetaData> columns = new ArrayList<>(); columns.add(new RawQueryResultColumnMetaData("", "Db", "Db", Types.VARCHAR, "VARCHAR", 255, 0)); columns.add(new RawQueryResultColumnMetaData("", "Name", "Name", Types.VARCHAR, "VARCHAR", 255, 0)); columns.add(new RawQueryResultColumnMetaData("", "Type", "Type", Types.VARCHAR, "VARCHAR", 64, 0)); columns.add(new RawQueryResultColumnMetaData("", "Definer", "Definer", Types.VARCHAR, "VARCHAR", 64, 0)); columns.add(new RawQueryResultColumnMetaData("", "Modified", "Modified", Types.VARCHAR, "VARCHAR", 64, 0)); columns.add(new RawQueryResultColumnMetaData("", "Created", "Created", Types.VARCHAR, "VARCHAR", 64, 0)); columns.add(new RawQueryResultColumnMetaData("", "Security_type", "Security_type", Types.VARCHAR, "VARCHAR", 64, 0)); columns.add(new RawQueryResultColumnMetaData("", "Comment", "Comment", Types.VARCHAR, "VARCHAR", 120, 0)); columns.add(new RawQueryResultColumnMetaData("", "character_set_client", "character_set_client", Types.VARCHAR, "VARCHAR", 20, 0)); columns.add(new RawQueryResultColumnMetaData("", "collation_connection", "collation_connection", Types.VARCHAR, "VARCHAR", 20, 0)); columns.add(new RawQueryResultColumnMetaData("", "Database_Collation", "Database_Collation", Types.VARCHAR, "VARCHAR", 20, 0)); return new RawQueryResultMetaData(columns); } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 530 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 668 |
result.setIndex((IndexSegment) visit(ctx.indexName())); } return result; } @Override public ASTNode visitIndexParams(final IndexParamsContext ctx) { CollectionValue<ColumnSegment> result = new CollectionValue<>(); for (IndexElemContext each : ctx.indexElem()) { if (null != each.colId()) { result.getValue().add(new ColumnSegment(each.colId().start.getStartIndex(), each.colId().stop.getStopIndex(), new IdentifierValue(each.colId().getText()))); } if (null != each.functionExprWindowless()) { FunctionSegment functionSegment = (FunctionSegment) visit(each.functionExprWindowless()); functionSegment.getParameters().forEach(param -> { if (param instanceof ColumnSegment) { result.getValue().add((ColumnSegment) param); } }); } } return result; } @Override public ASTNode visitFunctionExprWindowless(final FunctionExprWindowlessContext ctx) { FunctionSegment result = new FunctionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.funcApplication().funcName().getText(), getOriginalText(ctx)); result.getParameters().addAll(getExpressions(ctx.funcApplication().funcArgList().funcArgExpr())); return result; } private Collection<ExpressionSegment> getExpressions(final Collection<FuncArgExprContext> aExprContexts) { if (null == aExprContexts) { return Collections.emptyList(); } Collection<ExpressionSegment> result = new ArrayList<>(aExprContexts.size()); for (FuncArgExprContext each : aExprContexts) { result.add((ExpressionSegment) visit(each.aExpr())); } return result; } @Override public ASTNode visitAlterIndex(final AlterIndexContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 224 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 224 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 172 |
return new NumberLiteralValue(ctx.NUMBER_().getText()); } @Override public final ASTNode visitIdentifier(final IdentifierContext ctx) { UnreservedWordContext unreservedWord = ctx.unreservedWord(); return null == unreservedWord ? new IdentifierValue(ctx.getText()) : visit(unreservedWord); } @Override public final ASTNode visitUnreservedWord(final UnreservedWordContext ctx) { return new IdentifierValue(ctx.getText()); } @Override public final ASTNode visitSchemaName(final SchemaNameContext ctx) { return visit(ctx.identifier()); } @Override public final ASTNode visitTableName(final TableNameContext ctx) { SimpleTableSegment result = new SimpleTableSegment(new TableNameSegment(ctx.name().getStart().getStartIndex(), ctx.name().getStop().getStopIndex(), (IdentifierValue) visit(ctx.name()))); OwnerContext owner = ctx.owner(); if (null != owner) { result.setOwner(new OwnerSegment(owner.getStart().getStartIndex(), owner.getStop().getStopIndex(), (IdentifierValue) visit(owner.identifier()))); } return result; } @Override public final ASTNode visitColumnName(final ColumnNameContext ctx) { ColumnSegment result = new ColumnSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), (IdentifierValue) visit(ctx.name())); OwnerContext owner = ctx.owner(); if (null != owner) { result.setOwner(new OwnerSegment(owner.getStart().getStartIndex(), owner.getStop().getStopIndex(), (IdentifierValue) visit(owner.identifier()))); } return result; } @Override public final ASTNode visitIndexName(final IndexNameContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 1119 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 726 |
public final ASTNode visitTrimFunction(final TrimFunctionContext ctx) { FunctionSegment result = new FunctionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.TRIM().getText(), getOriginalText(ctx)); if (null != ctx.BOTH()) { result.getParameters().add(new LiteralExpressionSegment(ctx.BOTH().getSymbol().getStartIndex(), ctx.BOTH().getSymbol().getStopIndex(), new OtherLiteralValue(ctx.BOTH().getSymbol().getText()).getValue())); } if (null != ctx.TRAILING()) { result.getParameters().add(new LiteralExpressionSegment(ctx.TRAILING().getSymbol().getStartIndex(), ctx.TRAILING().getSymbol().getStopIndex(), new OtherLiteralValue(ctx.TRAILING().getSymbol().getText()).getValue())); } if (null != ctx.LEADING()) { result.getParameters().add(new LiteralExpressionSegment(ctx.LEADING().getSymbol().getStartIndex(), ctx.LEADING().getSymbol().getStopIndex(), new OtherLiteralValue(ctx.LEADING().getSymbol().getText()).getValue())); } for (ExprContext each : ctx.expr()) { result.getParameters().add((ExpressionSegment) visit(each)); } return result; } @Override public final ASTNode visitWeightStringFunction(final WeightStringFunctionContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/proxy/frontend/opengauss/authentication/OpenGaussAuthenticationEngine.java | shardingsphere-proxy-frontend-opengauss | 91 |
org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationEngine.java | shardingsphere-proxy-frontend-postgresql | 79 |
private byte[] md5Salt; private AuthenticationResult currentAuthResult; @Override public int handshake(final ChannelHandlerContext context) { return ConnectionIdGenerator.getInstance().nextId(); } @Override public AuthenticationResult authenticate(final ChannelHandlerContext context, final PacketPayload payload) { if (SSL_REQUEST_PAYLOAD_LENGTH == payload.getByteBuf().markReaderIndex().readInt() && SSL_REQUEST_CODE == payload.getByteBuf().readInt()) { if (ProxySSLContext.getInstance().isSSLEnabled()) { SslHandler sslHandler = new SslHandler(ProxySSLContext.getInstance().newSSLEngine(context.alloc()), true); context.pipeline().addFirst(SslHandler.class.getSimpleName(), sslHandler); context.writeAndFlush(new PostgreSQLSSLWillingPacket()); } else { context.writeAndFlush(new PostgreSQLSSLUnwillingPacket()); } return AuthenticationResultBuilder.continued(); } payload.getByteBuf().resetReaderIndex(); AuthorityRule rule = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getSingleRule(AuthorityRule.class); return startupMessageReceived ? processPasswordMessage(context, (PostgreSQLPacketPayload) payload, rule) : processStartupMessage(context, (PostgreSQLPacketPayload) payload, rule); } private AuthenticationResult processPasswordMessage(final ChannelHandlerContext context, final PostgreSQLPacketPayload payload, final AuthorityRule rule) { char messageType = (char) payload.readInt1(); ShardingSpherePreconditions.checkState(PostgreSQLMessagePacketType.PASSWORD_MESSAGE.getValue() == messageType, () -> new ProtocolViolationException("password", Character.toString(messageType))); PostgreSQLPasswordMessagePacket passwordMessagePacket = new PostgreSQLPasswordMessagePacket(payload); login(rule, passwordMessagePacket.getDigest()); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/infra/database/opengauss/metadata/data/loader/OpenGaussMetaDataLoader.java | shardingsphere-infra-database-opengauss | 148 |
org/apache/shardingsphere/infra/database/postgresql/metadata/data/loader/PostgreSQLMetaDataLoader.java | shardingsphere-infra-database-postgresql | 179 |
Collection<String> result = new HashSet<>(); try (PreparedStatement preparedStatement = connection.prepareStatement(getPrimaryKeyMetaDataSQL(schemaNames)); ResultSet resultSet = preparedStatement.executeQuery()) { while (resultSet.next()) { String schemaName = resultSet.getString("table_schema"); String tableName = resultSet.getString("table_name"); String columnName = resultSet.getString("column_name"); result.add(schemaName + "," + tableName + "," + columnName); } } return result; } private String getPrimaryKeyMetaDataSQL(final Collection<String> schemaNames) { return String.format(PRIMARY_KEY_META_DATA_SQL, schemaNames.stream().map(each -> String.format("'%s'", each)).collect(Collectors.joining(","))); } private ColumnMetaData loadColumnMetaData(final Map<String, Integer> dataTypeMap, final Collection<String> primaryKeys, final ResultSet resultSet) throws SQLException { String schemaName = resultSet.getString("table_schema"); String tableName = resultSet.getString("table_name"); String columnName = resultSet.getString("column_name"); String dataType = resultSet.getString("udt_name"); boolean isPrimaryKey = primaryKeys.contains(schemaName + "," + tableName + "," + columnName); String columnDefault = resultSet.getString("column_default"); boolean generated = null != columnDefault && columnDefault.startsWith("nextval("); // TODO user defined collation which deterministic is false boolean caseSensitive = true; boolean isNullable = "YES".equals(resultSet.getString("is_nullable")); return new ColumnMetaData(columnName, dataTypeMap.get(dataType), isPrimaryKey, generated, caseSensitive, true, false, isNullable); } private Collection<TableMetaData> createTableMetaDataList(final Multimap<String, IndexMetaData> tableIndexMetaDataMap, final Multimap<String, ColumnMetaData> tableColumnMetaDataMap) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 1403 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 1353 |
return new OpenGaussExecuteStatement(); } /** * Get original text. * * @param ctx context * @return original text */ protected String getOriginalText(final ParserRuleContext ctx) { return ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); } @Override @SuppressWarnings("unchecked") public ASTNode visitAnyName(final AnyNameContext ctx) { CollectionValue<NameSegment> result = new CollectionValue<>(); if (null != ctx.attrs()) { result.combine((CollectionValue<NameSegment>) visit(ctx.attrs())); } result.getValue().add(new NameSegment(ctx.colId().getStart().getStartIndex(), ctx.colId().getStop().getStopIndex(), new IdentifierValue(ctx.colId().getText()))); return result; } @Override @SuppressWarnings("unchecked") public ASTNode visitAttrs(final AttrsContext ctx) { CollectionValue<NameSegment> result = new CollectionValue<>(); result.getValue().add(new NameSegment(ctx.attrName().getStart().getStartIndex(), ctx.attrName().getStop().getStopIndex(), new IdentifierValue(ctx.attrName().getText()))); if (null != ctx.attrs()) { result.combine((CollectionValue<NameSegment>) visit(ctx.attrs())); } return result; } @Override public ASTNode visitSignedIconst(final SignedIconstContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 297 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 370 |
OpenGaussAlterTableStatement result = new OpenGaussAlterTableStatement(); result.setTable((SimpleTableSegment) visit(ctx.tableNameClause().tableName())); if (null != ctx.alterDefinitionClause()) { for (AlterDefinitionSegment each : ((CollectionValue<AlterDefinitionSegment>) visit(ctx.alterDefinitionClause())).getValue()) { if (each instanceof AddColumnDefinitionSegment) { result.getAddColumnDefinitions().add((AddColumnDefinitionSegment) each); } else if (each instanceof ModifyColumnDefinitionSegment) { result.getModifyColumnDefinitions().add((ModifyColumnDefinitionSegment) each); } else if (each instanceof DropColumnDefinitionSegment) { result.getDropColumnDefinitions().add((DropColumnDefinitionSegment) each); } else if (each instanceof AddConstraintDefinitionSegment) { result.getAddConstraintDefinitions().add((AddConstraintDefinitionSegment) each); } else if (each instanceof ValidateConstraintDefinitionSegment) { result.getValidateConstraintDefinitions().add((ValidateConstraintDefinitionSegment) each); } else if (each instanceof ModifyConstraintDefinitionSegment) { result.getModifyConstraintDefinitions().add((ModifyConstraintDefinitionSegment) each); } else if (each instanceof DropConstraintDefinitionSegment) { result.getDropConstraintDefinitions().add((DropConstraintDefinitionSegment) each); } else if (each instanceof RenameTableDefinitionSegment) { result.setRenameTable(((RenameTableDefinitionSegment) each).getRenameTable()); } else if (each instanceof RenameColumnSegment) { result.getRenameColumnDefinitions().add((RenameColumnSegment) each); } } } return result; } @Override public ASTNode visitAlterAggregate(final AlterAggregateContext ctx) { return new OpenGaussAlterAggregateStatement(); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 592 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 730 |
OpenGaussDropIndexStatement result = new OpenGaussDropIndexStatement(null != ctx.ifExists()); result.getIndexes().addAll(createIndexSegments(((CollectionValue<SimpleTableSegment>) visit(ctx.qualifiedNameList())).getValue())); return result; } private Collection<IndexSegment> createIndexSegments(final Collection<SimpleTableSegment> tableSegments) { Collection<IndexSegment> result = new LinkedList<>(); for (SimpleTableSegment each : tableSegments) { result.add(createIndexSegment(each)); } return result; } @Override public ASTNode visitIndexNames(final IndexNamesContext ctx) { CollectionValue<IndexSegment> result = new CollectionValue<>(); for (IndexNameContext each : ctx.indexName()) { result.getValue().add((IndexSegment) visit(each)); } return result; } @Override public ASTNode visitTableNameClause(final TableNameClauseContext ctx) { return visit(ctx.tableName()); } @Override public ASTNode visitTableNamesClause(final TableNamesClauseContext ctx) { Collection<SimpleTableSegment> tableSegments = new LinkedList<>(); for (int i = 0; i < ctx.tableNameClause().size(); i++) { tableSegments.add((SimpleTableSegment) visit(ctx.tableNameClause(i))); } CollectionValue<SimpleTableSegment> result = new CollectionValue<>(); result.getValue().addAll(tableSegments); return result; } @Override public ASTNode visitAlterFunction(final AlterFunctionContext ctx) { return new OpenGaussAlterFunctionStatement(); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 520 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 520 |
if (null != ctx.indirection()) { AttrNameContext attrName = ctx.indirection().indirectionEl().attrName(); ColumnSegment result = new ColumnSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), new IdentifierValue(attrName.getText())); OwnerSegment owner = new OwnerSegment(ctx.colId().start.getStartIndex(), ctx.colId().stop.getStopIndex(), new IdentifierValue(ctx.colId().getText())); result.setOwner(owner); return result; } return new ColumnSegment(ctx.colId().start.getStartIndex(), ctx.colId().stop.getStopIndex(), new IdentifierValue(ctx.colId().getText())); } private InExpression createInSegment(final AExprContext ctx) { ExpressionSegment left = (ExpressionSegment) visit(ctx.aExpr(0)); ExpressionSegment right = createInExpressionSegment(ctx.inExpr()); boolean not = null != ctx.NOT(); return new InExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, not); } @SuppressWarnings("unchecked") private ExpressionSegment createInExpressionSegment(final InExprContext ctx) { if (null != ctx.selectWithParens()) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 534 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 914 |
SQLUtils.getExactlyNumber(ctx.numberLiterals().getText(), 10).intValue(), orderDirection, null); } @Override public final ASTNode visitDataType(final DataTypeContext ctx) { DataTypeSegment result = new DataTypeSegment(); result.setDataTypeName(((KeywordValue) visit(ctx.dataTypeName())).getValue()); result.setStartIndex(ctx.start.getStartIndex()); result.setStopIndex(ctx.stop.getStopIndex()); if (null != ctx.dataTypeLength()) { DataTypeLengthSegment dataTypeLengthSegment = (DataTypeLengthSegment) visit(ctx.dataTypeLength()); result.setDataLength(dataTypeLengthSegment); } return result; } @Override public final ASTNode visitDataTypeLength(final DataTypeLengthContext ctx) { DataTypeLengthSegment result = new DataTypeLengthSegment(); result.setStartIndex(ctx.start.getStartIndex()); result.setStopIndex(ctx.stop.getStartIndex()); List<TerminalNode> numbers = ctx.NUMBER_(); if (numbers.size() == 1) { result.setPrecision(Integer.parseInt(numbers.get(0).getText())); } if (numbers.size() == 2) { result.setPrecision(Integer.parseInt(numbers.get(0).getText())); result.setScale(Integer.parseInt(numbers.get(1).getText())); } return result; } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 261 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 261 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 385 |
} @Override public final ASTNode visitIndexName(final IndexNameContext ctx) { IndexNameSegment indexName = new IndexNameSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), (IdentifierValue) visit(ctx.identifier())); return new IndexSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), indexName); } @Override public final ASTNode visitConstraintName(final ConstraintNameContext ctx) { return new ConstraintSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), (IdentifierValue) visit(ctx.identifier())); } @Override public final ASTNode visitTableNames(final TableNamesContext ctx) { CollectionValue<SimpleTableSegment> result = new CollectionValue<>(); for (TableNameContext each : ctx.tableName()) { result.getValue().add((SimpleTableSegment) visit(each)); } return result; } @Override public final ASTNode visitColumnNames(final ColumnNamesContext ctx) { CollectionValue<ColumnSegment> result = new CollectionValue<>(); for (ColumnNameContext each : ctx.columnName()) { result.getValue().add((ColumnSegment) visit(each)); } return result; } @Override public ASTNode visitAExpr(final AExprContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 933 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 903 |
OpenGaussSelectStatement result = (OpenGaussSelectStatement) visit(ctx.selectClauseN()); if (null != ctx.sortClause()) { OrderBySegment orderBySegment = (OrderBySegment) visit(ctx.sortClause()); result.setOrderBy(orderBySegment); } if (null != ctx.selectLimit()) { LimitSegment limitSegment = (LimitSegment) visit(ctx.selectLimit()); result.setLimit(limitSegment); } if (null != ctx.forLockingClause()) { LockSegment lockSegment = (LockSegment) visit(ctx.forLockingClause()); result.setLock(lockSegment); } return result; } @Override public ASTNode visitForLockingClause(final ForLockingClauseContext ctx) { return new LockSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex()); } @Override public ASTNode visitSelectWithParens(final SelectWithParensContext ctx) { if (null != ctx.selectWithParens()) { return visit(ctx.selectWithParens()); } return visit(ctx.selectNoParens()); } @Override public ASTNode visitSelectClauseN(final SelectClauseNContext ctx) { if (null != ctx.simpleSelect()) { return visit(ctx.simpleSelect()); } if (null != ctx.selectClauseN() && !ctx.selectClauseN().isEmpty()) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 265 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 338 |
OpenGaussCreateTableStatement result = new OpenGaussCreateTableStatement(null != ctx.ifNotExists()); result.setTable((SimpleTableSegment) visit(ctx.tableName())); if (null != ctx.createDefinitionClause()) { CollectionValue<CreateDefinitionSegment> createDefinitions = (CollectionValue<CreateDefinitionSegment>) visit(ctx.createDefinitionClause()); for (CreateDefinitionSegment each : createDefinitions.getValue()) { if (each instanceof ColumnDefinitionSegment) { result.getColumnDefinitions().add((ColumnDefinitionSegment) each); } else if (each instanceof ConstraintDefinitionSegment) { result.getConstraintDefinitions().add((ConstraintDefinitionSegment) each); } } } return result; } @Override public ASTNode visitCreateDefinitionClause(final CreateDefinitionClauseContext ctx) { CollectionValue<CreateDefinitionSegment> result = new CollectionValue<>(); for (CreateDefinitionContext each : ctx.createDefinition()) { if (null != each.columnDefinition()) { result.getValue().add((ColumnDefinitionSegment) visit(each.columnDefinition())); } if (null != each.tableConstraint()) { result.getValue().add((ConstraintDefinitionSegment) visit(each.tableConstraint())); } } return result; } @SuppressWarnings("unchecked") @Override public ASTNode visitAlterTable(final AlterTableContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/impl/AlterShardingTableRuleStatementAssert.java | shardingsphere-test-it-parser | 63 |
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/CreateShardingTableRuleStatementAssert.java | shardingsphere-test-it-parser | 67 |
Collection<TableRuleSegment> actualTableRules = actual.getRules().stream().map(TableRuleSegment.class::cast).collect(Collectors.toList()); assertShardingTableRules(assertContext, actualTableRules, tableRuleStatementTestCase.getRules()); } } } private static void assertShardingAutoTableRules(final SQLCaseAssertContext assertContext, final Collection<AutoTableRuleSegment> actual, final List<ExpectedAutoTableRule> expected) { if (null == expected) { assertNull(actual, assertContext.getText("Actual sharding auto table rule should not exist.")); } else { assertNotNull(actual, assertContext.getText("Actual sharding auto table rule should exist.")); int count = 0; for (AutoTableRuleSegment each : actual) { AutoTableRuleAssert.assertIs(assertContext, each, expected.get(count)); count++; } } } private static void assertShardingTableRules(final SQLCaseAssertContext assertContext, final Collection<TableRuleSegment> actual, final List<ExpectedTableRule> expected) { if (null == expected) { assertNull(actual, assertContext.getText("Actual sharding table rule should not exist.")); } else { assertNotNull(actual, assertContext.getText("Actual sharding table rule should exist.")); int count = 0; for (TableRuleSegment each : actual) { TableRuleAssert.assertIs(assertContext, each, expected.get(count)); count++; } } } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/mask/algorithm/cover/KeepFromXToYMaskAlgorithm.java | shardingsphere-mask-core | 31 |
org/apache/shardingsphere/mask/algorithm/cover/MaskFromXToYMaskAlgorithm.java | shardingsphere-mask-core | 31 |
public final class KeepFromXToYMaskAlgorithm implements MaskAlgorithm<Object, String> { private static final String FROM_X = "from-x"; private static final String TO_Y = "to-y"; private static final String REPLACE_CHAR = "replace-char"; private Integer fromX; private Integer toY; private Character replaceChar; @Override public void init(final Properties props) { fromX = createFromX(props); toY = createToY(props); replaceChar = createReplaceChar(props); ShardingSpherePreconditions.checkState(fromX <= toY, () -> new AlgorithmInitializationException(this, "fromX must be less than or equal to toY")); } private Integer createFromX(final Properties props) { MaskAlgorithmPropertiesChecker.checkPositiveInteger(props, FROM_X, this); return Integer.parseInt(props.getProperty(FROM_X)); } private Integer createToY(final Properties props) { MaskAlgorithmPropertiesChecker.checkPositiveInteger(props, TO_Y, this); return Integer.parseInt(props.getProperty(TO_Y)); } private Character createReplaceChar(final Properties props) { MaskAlgorithmPropertiesChecker.checkSingleChar(props, REPLACE_CHAR, this); return props.getProperty(REPLACE_CHAR).charAt(0); } @Override public String mask(final Object plainValue) { String result = null == plainValue ? null : String.valueOf(plainValue); if (Strings.isNullOrEmpty(result)) { return result; } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/traffic/yaml/swapper/YamlTrafficDataNodeRuleConfigurationSwapper.java | shardingsphere-traffic-core | 77 |
org/apache/shardingsphere/traffic/yaml/swapper/YamlTrafficRuleConfigurationSwapper.java | shardingsphere-traffic-core | 56 |
private TrafficRuleConfiguration swapToObject(final YamlTrafficRuleConfiguration yamlConfig) { TrafficRuleConfiguration result = new TrafficRuleConfiguration(); for (Entry<String, YamlTrafficStrategyConfiguration> entry : yamlConfig.getTrafficStrategies().entrySet()) { YamlTrafficStrategyConfiguration strategyConfig = entry.getValue(); strategyConfig.setName(entry.getKey()); result.getTrafficStrategies().add(strategySwapper.swapToObject(strategyConfig)); } setAlgorithms(yamlConfig, result); return result; } private void setAlgorithms(final YamlTrafficRuleConfiguration yamlConfig, final TrafficRuleConfiguration ruleConfig) { if (null != yamlConfig.getTrafficAlgorithms()) { yamlConfig.getTrafficAlgorithms().forEach((key, value) -> ruleConfig.getTrafficAlgorithms().put(key, algorithmSwapper.swapToObject(value))); } if (null != yamlConfig.getLoadBalancers()) { yamlConfig.getLoadBalancers().forEach((key, value) -> ruleConfig.getLoadBalancers().put(key, algorithmSwapper.swapToObject(value))); } } @Override public Class<TrafficRuleConfiguration> getTypeClass() { return TrafficRuleConfiguration.class; } @Override public String getRuleTagName() { return "TRAFFIC"; } @Override public int getOrder() { return TrafficOrder.ORDER; } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 403 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 209 |
} @Override public final ASTNode visitTableNames(final TableNamesContext ctx) { CollectionValue<SimpleTableSegment> result = new CollectionValue<>(); for (TableNameContext each : ctx.tableName()) { result.getValue().add((SimpleTableSegment) visit(each)); } return result; } @Override public final ASTNode visitColumnNames(final ColumnNamesContext ctx) { CollectionValue<ColumnSegment> result = new CollectionValue<>(); for (ColumnNameContext each : ctx.columnName()) { result.getValue().add((ColumnSegment) visit(each)); } return result; } @Override public final ASTNode visitExpr(final ExprContext ctx) { if (null != ctx.booleanPrimary()) { return visit(ctx.booleanPrimary()); } if (null != ctx.LP_()) { return visit(ctx.expr(0)); } if (null != ctx.andOperator()) { return createBinaryOperationExpression(ctx, ctx.andOperator().getText()); } if (null != ctx.orOperator()) { return createBinaryOperationExpression(ctx, ctx.orOperator().getText()); } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 1012 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 1160 |
private void setTableSegment(final OpenGaussCommentStatement statement, final Iterator<NameSegment> nameSegmentIterator) { Optional<NameSegment> tableName = nameSegmentIterator.hasNext() ? Optional.of(nameSegmentIterator.next()) : Optional.empty(); tableName.ifPresent(optional -> statement.setTable(new SimpleTableSegment(new TableNameSegment(optional.getStartIndex(), optional.getStopIndex(), optional.getIdentifier())))); Optional<NameSegment> schemaName = nameSegmentIterator.hasNext() ? Optional.of(nameSegmentIterator.next()) : Optional.empty(); schemaName.ifPresent(optional -> statement.getTable().setOwner(new OwnerSegment(optional.getStartIndex(), optional.getStopIndex(), optional.getIdentifier()))); Optional<NameSegment> databaseName = nameSegmentIterator.hasNext() ? Optional.of(nameSegmentIterator.next()) : Optional.empty(); databaseName.ifPresent(optional -> statement.getTable().getOwner() .ifPresent(owner -> owner.setOwner(new OwnerSegment(optional.getStartIndex(), optional.getStopIndex(), optional.getIdentifier())))); } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/driver/jdbc/unsupported/AbstractUnsupportedDatabaseMetaDataResultSet.java | shardingsphere-jdbc | 39 |
org/apache/shardingsphere/driver/jdbc/unsupported/AbstractUnsupportedGeneratedKeysResultSet.java | shardingsphere-jdbc | 120 |
@Override public final InputStream getAsciiStream(final int columnIndex) throws SQLException { throw new SQLFeatureNotSupportedException("getAsciiStream"); } @Override public final InputStream getAsciiStream(final String columnLabel) throws SQLException { throw new SQLFeatureNotSupportedException("getAsciiStream"); } @Override public final InputStream getUnicodeStream(final int columnIndex) throws SQLException { throw new SQLFeatureNotSupportedException("getUnicodeStream"); } @Override public final InputStream getUnicodeStream(final String columnLabel) throws SQLException { throw new SQLFeatureNotSupportedException("getUnicodeStream"); } @Override public final InputStream getBinaryStream(final int columnIndex) throws SQLException { throw new SQLFeatureNotSupportedException("getBinaryStream"); } @Override public final InputStream getBinaryStream(final String columnLabel) throws SQLException { throw new SQLFeatureNotSupportedException("getBinaryStream"); } @Override public final SQLWarning getWarnings() throws SQLException { throw new SQLFeatureNotSupportedException("getWarnings"); } @Override public final void clearWarnings() throws SQLException { throw new SQLFeatureNotSupportedException("clearWarnings"); } @Override public final Reader getCharacterStream(final int columnIndex) throws SQLException { throw new SQLFeatureNotSupportedException("getCharacterStream"); } @Override public final Reader getCharacterStream(final String columnLabel) throws SQLException { throw new SQLFeatureNotSupportedException("getCharacterStream"); } @Override public final Array getArray(final int columnIndex) throws SQLException { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 394 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 482 |
return new OpenGaussAlterMaterializedViewStatement(); } @Override public ASTNode visitAddConstraintSpecification(final AddConstraintSpecificationContext ctx) { return new AddConstraintDefinitionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), (ConstraintDefinitionSegment) visit(ctx.tableConstraint())); } @Override public ASTNode visitValidateConstraintSpecification(final ValidateConstraintSpecificationContext ctx) { return new ValidateConstraintDefinitionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), (ConstraintSegment) visit(ctx.constraintName())); } @Override public ASTNode visitModifyConstraintSpecification(final ModifyConstraintSpecificationContext ctx) { return new ModifyConstraintDefinitionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), (ConstraintSegment) visit(ctx.constraintName())); } @Override public ASTNode visitDropConstraintSpecification(final DropConstraintSpecificationContext ctx) { return new DropConstraintDefinitionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), (ConstraintSegment) visit(ctx.constraintName())); } @Override public ASTNode visitAlterDomain(final AlterDomainContext ctx) { return new OpenGaussAlterDomainStatement(); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 1163 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 497 |
result.getParameters().addAll(getExpressions(ctx.expr())); return result; } @Override public final ASTNode visitDataTypeName(final DataTypeNameContext ctx) { Collection<String> dataTypeNames = new LinkedList<>(); for (int i = 0; i < ctx.getChildCount(); i++) { dataTypeNames.add(ctx.getChild(i).getText()); } return new KeywordValue(String.join(" ", dataTypeNames)); } // TODO :FIXME, sql case id: insert_with_str_to_date private void calculateParameterCount(final Collection<ExprContext> exprContexts) { for (ExprContext each : exprContexts) { visit(each); } } @Override public final ASTNode visitOrderByClause(final OrderByClauseContext ctx) { Collection<OrderByItemSegment> items = new LinkedList<>(); for (OrderByItemContext each : ctx.orderByItem()) { items.add((OrderByItemSegment) visit(each)); } return new OrderBySegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), items); } @Override public final ASTNode visitOrderByItem(final OrderByItemContext ctx) { OrderDirection orderDirection = null == ctx.DESC() ? OrderDirection.ASC : OrderDirection.DESC; |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 277 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 146 |
} @Override public final ASTNode visitNumberLiterals(final NumberLiteralsContext ctx) { return new NumberLiteralValue(ctx.getText()); } @Override public final ASTNode visitHexadecimalLiterals(final HexadecimalLiteralsContext ctx) { // TODO deal with hexadecimalLiterals return new OtherLiteralValue(ctx.getText()); } @Override public final ASTNode visitBitValueLiterals(final BitValueLiteralsContext ctx) { // TODO deal with bitValueLiterals return new OtherLiteralValue(ctx.getText()); } @Override public final ASTNode visitBooleanLiterals(final BooleanLiteralsContext ctx) { return new BooleanLiteralValue(ctx.getText()); } @Override public final ASTNode visitNullValueLiterals(final NullValueLiteralsContext ctx) { return new NullLiteralValue(ctx.getText()); } @Override public final ASTNode visitIdentifier(final IdentifierContext ctx) { UnreservedWordContext unreservedWord = ctx.unreservedWord(); return null == unreservedWord ? new IdentifierValue(ctx.getText()) : visit(unreservedWord); } @Override public final ASTNode visitUnreservedWord(final UnreservedWordContext ctx) { return new IdentifierValue(ctx.getText()); } @Override public final ASTNode visitSchemaName(final SchemaNameContext ctx) { return visit(ctx.identifier()); } @Override public final ASTNode visitSynonymName(final SynonymNameContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/mask/algorithm/cover/KeepFirstNLastMMaskAlgorithm.java | shardingsphere-mask-core | 29 |
org/apache/shardingsphere/mask/algorithm/cover/MaskFirstNLastMMaskAlgorithm.java | shardingsphere-mask-core | 29 |
public final class KeepFirstNLastMMaskAlgorithm implements MaskAlgorithm<Object, String> { private static final String FIRST_N = "first-n"; private static final String LAST_M = "last-m"; private static final String REPLACE_CHAR = "replace-char"; private Integer firstN; private Integer lastM; private Character replaceChar; @Override public void init(final Properties props) { firstN = createFirstN(props); lastM = createLastM(props); replaceChar = createReplaceChar(props); } private Integer createFirstN(final Properties props) { MaskAlgorithmPropertiesChecker.checkPositiveInteger(props, FIRST_N, this); return Integer.parseInt(props.getProperty(FIRST_N)); } private Integer createLastM(final Properties props) { MaskAlgorithmPropertiesChecker.checkPositiveInteger(props, LAST_M, this); return Integer.parseInt(props.getProperty(LAST_M)); } private Character createReplaceChar(final Properties props) { MaskAlgorithmPropertiesChecker.checkSingleChar(props, REPLACE_CHAR, this); return props.getProperty(REPLACE_CHAR).charAt(0); } @Override public String mask(final Object plainValue) { String result = null == plainValue ? null : String.valueOf(plainValue); if (Strings.isNullOrEmpty(result)) { return result; } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDALStatementVisitor.java | shardingsphere-parser-sql-opengauss | 145 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDALStatementVisitor.java | shardingsphere-parser-sql-postgresql | 152 |
OpenGaussExplainStatement result = new OpenGaussExplainStatement(); result.setStatement((SQLStatement) visit(ctx.explainableStmt())); return result; } @Override public ASTNode visitExplainableStmt(final ExplainableStmtContext ctx) { if (null != ctx.select()) { return visit(ctx.select()); } if (null != ctx.insert()) { return visit(ctx.insert()); } if (null != ctx.update()) { return visit(ctx.update()); } if (null != ctx.delete()) { return visit(ctx.delete()); } if (null != ctx.declare()) { // TODO visit declare statement return visit(ctx.declare()); } if (null != ctx.executeStmt()) { return visit(ctx.executeStmt()); } if (null != ctx.createMaterializedView()) { // TODO visit create materialized view statement return visit(ctx.createMaterializedView()); } // TODO visit refresh materialized view statement return visit(ctx.refreshMatViewStmt()); } @Override public ASTNode visitEmptyStatement(final EmptyStatementContext ctx) { return new OpenGaussEmptyStatement(); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 111 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 250 |
public abstract class SQL92StatementVisitor extends SQL92StatementBaseVisitor<ASTNode> { private final Collection<ParameterMarkerSegment> parameterMarkerSegments = new LinkedList<>(); @Override public final ASTNode visitParameterMarker(final ParameterMarkerContext ctx) { return new ParameterMarkerValue(parameterMarkerSegments.size(), ParameterMarkerType.QUESTION); } @Override public final ASTNode visitLiterals(final LiteralsContext ctx) { if (null != ctx.stringLiterals()) { return visit(ctx.stringLiterals()); } if (null != ctx.numberLiterals()) { return visit(ctx.numberLiterals()); } if (null != ctx.hexadecimalLiterals()) { return visit(ctx.hexadecimalLiterals()); } if (null != ctx.bitValueLiterals()) { return visit(ctx.bitValueLiterals()); } if (null != ctx.booleanLiterals()) { return visit(ctx.booleanLiterals()); } if (null != ctx.nullValueLiterals()) { return visit(ctx.nullValueLiterals()); } throw new IllegalStateException("Literals must have string, number, dateTime, hex, bit, boolean or null."); } @Override public final ASTNode visitStringLiterals(final StringLiteralsContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java | shardingsphere-parser-sql-sql92 | 416 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 1613 |
SimpleTableSegment result = (SimpleTableSegment) visit(ctx.tableName()); if (null != ctx.alias()) { result.setAlias((AliasSegment) visit(ctx.alias())); } return result; } return visit(ctx.tableReferences()); } private JoinTableSegment visitJoinedTable(final JoinedTableContext ctx, final TableSegment tableSegment) { JoinTableSegment result = new JoinTableSegment(); result.setLeft(tableSegment); result.setStartIndex(tableSegment.getStartIndex()); result.setStopIndex(ctx.stop.getStopIndex()); TableSegment right = (TableSegment) visit(ctx.tableFactor()); result.setRight(right); result.setJoinType(getJoinType(ctx)); if (null != ctx.joinSpecification()) { visitJoinSpecification(ctx.joinSpecification(), result); } return result; } private String getJoinType(final JoinedTableContext ctx) { if (null != ctx.LEFT()) { return JoinType.LEFT.name(); } else if (null != ctx.RIGHT()) { return JoinType.RIGHT.name(); } else if (null != ctx.INNER()) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/impl/AlterDefaultShardingStrategyStatementAssert.java | shardingsphere-test-it-parser | 45 |
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/CreateDefaultShardingStrategyStatementAssert.java | shardingsphere-test-it-parser | 46 |
assertThat(assertContext.getText(String.format("`%s`'s default sharding strategy segment assertion error: ", actual.getClass().getSimpleName())), actual.getDefaultType(), is(expected.getStrategy().getDefaultType())); assertThat(assertContext.getText(String.format("`%s`'s default sharding strategy segment assertion error: ", actual.getClass().getSimpleName())), actual.getShardingColumn(), is(expected.getStrategy().getShardingColumn())); assertThat(assertContext.getText(String.format("`%s`'s default sharding strategy segment assertion error: ", actual.getClass().getSimpleName())), actual.getStrategyType(), is(expected.getStrategy().getStrategyType())); if (!"none".equalsIgnoreCase(actual.getStrategyType())) { assertThat(assertContext.getText(String.format("`%s`'s default sharding strategy segment assertion error: ", actual.getClass().getSimpleName())), actual.getAlgorithmSegment().getName(), is(expected.getStrategy().getAlgorithmSegment().getName())); } } } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/db/protocol/opengauss/codec/OpenGaussPacketCodecEngine.java | shardingsphere-opengauss-protocol | 97 |
org/apache/shardingsphere/db/protocol/postgresql/codec/PostgreSQLPacketCodecEngine.java | shardingsphere-postgresql-protocol | 95 |
return OpenGaussCommandPacketType.isExtendedProtocolPacketType(commandPacketType) && PostgreSQLCommandPacketType.SYNC_COMMAND != commandPacketType && PostgreSQLCommandPacketType.FLUSH_COMMAND != commandPacketType; } private void handlePendingMessages(final ChannelHandlerContext context, final ByteBuf in, final List<Object> out, final int payloadLength) { CompositeByteBuf result = context.alloc().compositeBuffer(pendingMessages.size() + 1); result.addComponents(true, pendingMessages).addComponent(true, in.readRetainedSlice(MESSAGE_TYPE_LENGTH + payloadLength)); out.add(result); pendingMessages.clear(); } @Override public void encode(final ChannelHandlerContext context, final DatabasePacket message, final ByteBuf out) { boolean isIdentifierPacket = message instanceof PostgreSQLIdentifierPacket; if (isIdentifierPacket) { prepareMessageHeader(out, ((PostgreSQLIdentifierPacket) message).getIdentifier().getValue()); } PostgreSQLPacketPayload payload = new PostgreSQLPacketPayload(out, context.channel().attr(CommonConstants.CHARSET_ATTRIBUTE_KEY).get()); try { message.write(payload); // CHECKSTYLE:OFF } catch (final RuntimeException ex) { // CHECKSTYLE:ON payload.getByteBuf().resetWriterIndex(); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sqlfederation/optimizer/converter/statement/merge/MergeStatementConverter.java | shardingsphere-sql-federation-optimizer | 54 |
org/apache/shardingsphere/sqlfederation/optimizer/converter/statement/update/UpdateStatementConverter.java | shardingsphere-sql-federation-optimizer | 62 |
SqlNode table = TableConverter.convert(updateStatement.getTable()).orElse(SqlNodeList.EMPTY); SqlNode condition = updateStatement.getWhere().flatMap(WhereConverter::convert).orElse(null); SqlNodeList columns = new SqlNodeList(SqlParserPos.ZERO); SqlNodeList expressions = new SqlNodeList(SqlParserPos.ZERO); for (ColumnAssignmentSegment each : updateStatement.getAssignmentSegment().orElseThrow(IllegalStateException::new).getAssignments()) { columns.addAll(convertColumn(each.getColumns())); expressions.add(convertExpression(each.getValue())); } return new SqlUpdate(SqlParserPos.ZERO, table, columns, expressions, condition, null, null); } private List<SqlNode> convertColumn(final List<ColumnSegment> columnSegments) { return columnSegments.stream().map(each -> ColumnConverter.convert(each).orElseThrow(IllegalStateException::new)).collect(Collectors.toList()); } private SqlNode convertExpression(final ExpressionSegment expressionSegment) { return ExpressionConverter.convert(expressionSegment).orElseThrow(IllegalStateException::new); } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 757 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 762 |
OpenGaussSelectStatement selectStatement = (OpenGaussSelectStatement) visit(ctx.select()); result.setInsertSelect(new SubquerySegment(ctx.select().start.getStartIndex(), ctx.select().stop.getStopIndex(), selectStatement, getOriginalText(ctx.select()))); } else { result.getValues().addAll(createInsertValuesSegments(valuesClause)); } if (null == ctx.insertColumnList()) { result.setInsertColumns(new InsertColumnsSegment(ctx.start.getStartIndex() - 1, ctx.start.getStartIndex() - 1, Collections.emptyList())); } else { InsertColumnListContext insertColumns = ctx.insertColumnList(); CollectionValue<ColumnSegment> columns = (CollectionValue<ColumnSegment>) visit(insertColumns); InsertColumnsSegment insertColumnsSegment = new InsertColumnsSegment(insertColumns.start.getStartIndex() - 1, insertColumns.stop.getStopIndex() + 1, columns.getValue()); result.setInsertColumns(insertColumnsSegment); } return result; } @Override public ASTNode visitOptOnDuplicateKey(final OptOnDuplicateKeyContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 1511 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java | shardingsphere-parser-sql-sql92 | 144 |
result.setLimit((LimitSegment) visit(ctx.limitClause())); } result.addParameterMarkerSegments(getParameterMarkerSegments()); return result; } @Override public ASTNode visitSetAssignmentsClause(final SetAssignmentsClauseContext ctx) { Collection<ColumnAssignmentSegment> assignments = new LinkedList<>(); for (AssignmentContext each : ctx.assignment()) { assignments.add((ColumnAssignmentSegment) visit(each)); } return new SetAssignmentSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), assignments); } @Override public ASTNode visitAssignmentValues(final AssignmentValuesContext ctx) { List<ExpressionSegment> segments = new LinkedList<>(); for (AssignmentValueContext each : ctx.assignmentValue()) { segments.add((ExpressionSegment) visit(each)); } return new InsertValuesSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), segments); } @Override public ASTNode visitAssignment(final AssignmentContext ctx) { ColumnSegment column = (ColumnSegment) visit(ctx.columnRef()); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 1404 |
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 1475 |
public ASTNode visitInsertValuesClause(final InsertValuesClauseContext ctx) { MySQLInsertStatement result = new MySQLInsertStatement(); if (null != ctx.LP_()) { if (null != ctx.fields()) { result.setInsertColumns(new InsertColumnsSegment(ctx.LP_().getSymbol().getStartIndex(), ctx.RP_().getSymbol().getStopIndex(), createInsertColumns(ctx.fields()))); } else { result.setInsertColumns(new InsertColumnsSegment(ctx.LP_().getSymbol().getStartIndex(), ctx.RP_().getSymbol().getStopIndex(), Collections.emptyList())); } } else { result.setInsertColumns(new InsertColumnsSegment(ctx.start.getStartIndex() - 1, ctx.start.getStartIndex() - 1, Collections.emptyList())); } result.getValues().addAll(createInsertValuesSegments(ctx.assignmentValues())); return result; } private Collection<InsertValuesSegment> createInsertValuesSegments(final Collection<AssignmentValuesContext> assignmentValuesContexts) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 267 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 279 |
return new DateTimeLiteralValue(dateTimeType, ((StringLiteralValue) visit(ctx.stringLiterals())).getValue(), false); } @Override public final ASTNode visitStringLiterals(final StringLiteralsContext ctx) { if (null != ctx.STRING_()) { return new StringLiteralValue(ctx.getText()); } else { return new StringLiteralValue(ctx.getText().substring(1)); } } @Override public final ASTNode visitNumberLiterals(final NumberLiteralsContext ctx) { return new NumberLiteralValue(ctx.getText()); } @Override public final ASTNode visitHexadecimalLiterals(final HexadecimalLiteralsContext ctx) { // TODO deal with hexadecimalLiterals return new OtherLiteralValue(ctx.getText()); } @Override public final ASTNode visitBitValueLiterals(final BitValueLiteralsContext ctx) { // TODO deal with bitValueLiterals return new OtherLiteralValue(ctx.getText()); } @Override public final ASTNode visitBooleanLiterals(final BooleanLiteralsContext ctx) { return new BooleanLiteralValue(ctx.getText()); } @Override public final ASTNode visitNullValueLiterals(final NullValueLiteralsContext ctx) { return new NullLiteralValue(ctx.getText()); } @Override public final ASTNode visitIdentifier(final IdentifierContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 265 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 338 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DDLStatementVisitor.java | shardingsphere-parser-sql-sql92 | 68 |
OpenGaussCreateTableStatement result = new OpenGaussCreateTableStatement(null != ctx.ifNotExists()); result.setTable((SimpleTableSegment) visit(ctx.tableName())); if (null != ctx.createDefinitionClause()) { CollectionValue<CreateDefinitionSegment> createDefinitions = (CollectionValue<CreateDefinitionSegment>) visit(ctx.createDefinitionClause()); for (CreateDefinitionSegment each : createDefinitions.getValue()) { if (each instanceof ColumnDefinitionSegment) { result.getColumnDefinitions().add((ColumnDefinitionSegment) each); } else if (each instanceof ConstraintDefinitionSegment) { result.getConstraintDefinitions().add((ConstraintDefinitionSegment) each); } } } return result; } @Override public ASTNode visitCreateDefinitionClause(final CreateDefinitionClauseContext ctx) { CollectionValue<CreateDefinitionSegment> result = new CollectionValue<>(); for (CreateDefinitionContext each : ctx.createDefinition()) { if (null != each.columnDefinition()) { result.getValue().add((ColumnDefinitionSegment) visit(each.columnDefinition())); } if (null != each.tableConstraint()) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppdbDecodingPlugin.java | shardingsphere-data-pipeline-opengauss | 285 |
org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/decode/TestDecodingPlugin.java | shardingsphere-data-pipeline-postgresql | 292 |
} private byte[] decodeHex(final String hexString) { int dataLength = hexString.length(); Preconditions.checkArgument(0 == (dataLength & 1), "Illegal hex data `%s`", hexString); if (0 == dataLength) { return new byte[0]; } byte[] result = new byte[dataLength >>> 1]; for (int i = 0; i < dataLength; i += 2) { result[i >>> 1] = decodeHexByte(hexString, i); } return result; } private byte decodeHexByte(final String hexString, final int index) { int firstHexChar = Character.digit(hexString.charAt(index), 16); int secondHexChar = Character.digit(hexString.charAt(index + 1), 16); Preconditions.checkArgument(-1 != firstHexChar && -1 != secondHexChar, "Illegal hex byte `%s` in index `%d`", hexString, index); return (byte) ((firstHexChar << 4) + secondHexChar); } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/authority/yaml/swapper/YamlAuthorityDataNodeRuleConfigurationSwapper.java | shardingsphere-authority-core | 74 |
org/apache/shardingsphere/authority/yaml/swapper/YamlAuthorityRuleConfigurationSwapper.java | shardingsphere-authority-core | 54 |
private AuthorityRuleConfiguration swapToObject(final YamlAuthorityRuleConfiguration yamlConfig) { Collection<ShardingSphereUser> users = yamlConfig.getUsers().stream().map(userSwapper::swapToObject).collect(Collectors.toList()); AlgorithmConfiguration provider = algorithmSwapper.swapToObject(yamlConfig.getPrivilege()); if (null == provider) { provider = new DefaultAuthorityRuleConfigurationBuilder().build().getPrivilegeProvider(); } Map<String, AlgorithmConfiguration> authenticators = yamlConfig.getAuthenticators().entrySet().stream() .collect(Collectors.toMap(Entry::getKey, entry -> algorithmSwapper.swapToObject(entry.getValue()))); return new AuthorityRuleConfiguration(users, provider, authenticators, yamlConfig.getDefaultAuthenticator()); } @Override public Class<AuthorityRuleConfiguration> getTypeClass() { return AuthorityRuleConfiguration.class; } @Override public String getRuleTagName() { return "AUTHORITY"; } @Override public int getOrder() { return AuthorityOrder.ORDER; } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 572 |
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 555 |
String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } private BetweenExpression createBetweenSegment(final PredicateContext ctx) { ExpressionSegment left = (ExpressionSegment) visit(ctx.bitExpr(0)); ExpressionSegment between = (ExpressionSegment) visit(ctx.bitExpr(1)); ExpressionSegment and = (ExpressionSegment) visit(ctx.predicate()); boolean not = null != ctx.NOT(); return new BetweenExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, between, and, not); } @Override public final ASTNode visitBitExpr(final BitExprContext ctx) { if (null != ctx.simpleExpr()) { return visit(ctx.simpleExpr()); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 545 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 309 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 508 |
return new InExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, not); } private BinaryOperationExpression createBinaryOperationExpressionFromLike(final PredicateContext ctx) { ExpressionSegment left = (ExpressionSegment) visit(ctx.bitExpr(0)); ListExpression right = new ListExpression(ctx.simpleExpr(0).start.getStartIndex(), ctx.simpleExpr().get(ctx.simpleExpr().size() - 1).stop.getStopIndex()); for (SimpleExprContext each : ctx.simpleExpr()) { right.getItems().add((ExpressionSegment) visit(each)); } String operator = null == ctx.NOT() ? "LIKE" : "NOT LIKE"; String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } private BetweenExpression createBetweenSegment(final PredicateContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 498 |
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 510 |
new SubquerySegment(ctx.subquery().start.getStartIndex(), ctx.subquery().stop.getStopIndex(), (MySQLSelectStatement) visit(ctx.subquery()), getOriginalText(ctx.subquery()))); } String operator = null == ctx.SAFE_EQ_() ? ctx.comparisonOperator().getText() : ctx.SAFE_EQ_().getText(); String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } @Override public final ASTNode visitPredicate(final PredicateContext ctx) { if (null != ctx.IN()) { return createInSegment(ctx); } if (null != ctx.BETWEEN()) { return createBetweenSegment(ctx); } if (null != ctx.LIKE()) { return createBinaryOperationExpressionFromLike(ctx); } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java | shardingsphere-parser-sql-sql92 | 301 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 1500 |
: new AliasSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), (IdentifierValue) visit(ctx.identifier())); } private ASTNode createProjection(final ProjectionContext ctx, final AliasSegment alias) { ASTNode projection = visit(ctx.expr()); if (projection instanceof AggregationProjectionSegment) { ((AggregationProjectionSegment) projection).setAlias(alias); return projection; } if (projection instanceof ExpressionProjectionSegment) { ((ExpressionProjectionSegment) projection).setAlias(alias); return projection; } if (projection instanceof FunctionSegment) { FunctionSegment segment = (FunctionSegment) projection; ExpressionProjectionSegment result = new ExpressionProjectionSegment(segment.getStartIndex(), segment.getStopIndex(), segment.getText(), segment); result.setAlias(alias); return result; } if (projection instanceof CommonExpressionSegment) { CommonExpressionSegment segment = (CommonExpressionSegment) projection; ExpressionProjectionSegment result = new ExpressionProjectionSegment(segment.getStartIndex(), segment.getStopIndex(), segment.getText(), segment); result.setAlias(alias); return result; } // FIXME :For DISTINCT() if (projection instanceof ColumnSegment) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/db/protocol/opengauss/codec/OpenGaussPacketCodecEngine.java | shardingsphere-opengauss-protocol | 73 |
org/apache/shardingsphere/db/protocol/postgresql/codec/PostgreSQLPacketCodecEngine.java | shardingsphere-postgresql-protocol | 71 |
CommandPacketType commandPacketType = OpenGaussCommandPacketType.valueOf(type); if (requireAggregation(commandPacketType)) { pendingMessages.add(in.readRetainedSlice(MESSAGE_TYPE_LENGTH + payloadLength)); } else if (pendingMessages.isEmpty()) { out.add(in.readRetainedSlice(MESSAGE_TYPE_LENGTH + payloadLength)); } else { handlePendingMessages(context, in, out, payloadLength); } } } private void handleStartupPhase(final ByteBuf in, final List<Object> out) { int readerIndex = in.readerIndex(); if (in.readableBytes() == SSL_REQUEST_PAYLOAD_LENGTH && SSL_REQUEST_PAYLOAD_LENGTH == in.getInt(readerIndex) && SSL_REQUEST_CODE == in.getInt(readerIndex + 4)) { out.add(in.readRetainedSlice(SSL_REQUEST_PAYLOAD_LENGTH)); return; } if (in.readableBytes() == in.getInt(readerIndex)) { out.add(in.readRetainedSlice(in.readableBytes())); startupPhase = false; } } private boolean requireAggregation(final CommandPacketType commandPacketType) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/data/pipeline/cdc/distsql/parser/core/CDCDistSQLStatementVisitor.java | shardingsphere-data-pipeline-distsql-parser | 83 |
org/apache/shardingsphere/data/pipeline/migration/distsql/parser/core/MigrationDistSQLStatementVisitor.java | shardingsphere-data-pipeline-distsql-parser | 106 |
return new AlterTransmissionRuleStatement("STREAMING", (TransmissionRuleSegment) visit(ctx.transmissionRule())); } @Override public ASTNode visitTransmissionRule(final TransmissionRuleContext ctx) { TransmissionRuleSegment result = new TransmissionRuleSegment(); if (null != ctx.readDefinition()) { result.setReadSegment((ReadOrWriteSegment) visit(ctx.readDefinition())); } if (null != ctx.writeDefinition()) { result.setWriteSegment((ReadOrWriteSegment) visit(ctx.writeDefinition())); } if (null != ctx.streamChannel()) { result.setStreamChannel((AlgorithmSegment) visit(ctx.streamChannel())); } return result; } @Override public ASTNode visitReadDefinition(final ReadDefinitionContext ctx) { return new ReadOrWriteSegment(getWorkerThread(ctx.workerThread()), getBatchSize(ctx.batchSize()), getShardingSize(ctx.shardingSize()), getAlgorithmSegment(ctx.rateLimiter())); } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/db/protocol/opengauss/codec/OpenGaussPacketCodecEngine.java | shardingsphere-opengauss-protocol | 42 |
org/apache/shardingsphere/db/protocol/postgresql/codec/PostgreSQLPacketCodecEngine.java | shardingsphere-postgresql-protocol | 40 |
public final class OpenGaussPacketCodecEngine implements DatabasePacketCodecEngine { private static final int SSL_REQUEST_PAYLOAD_LENGTH = 8; private static final int SSL_REQUEST_CODE = (1234 << 16) + 5679; private static final int MESSAGE_TYPE_LENGTH = 1; private static final int PAYLOAD_LENGTH = 4; private boolean startupPhase = true; private final List<ByteBuf> pendingMessages = new LinkedList<>(); @Override public boolean isValidHeader(final int readableBytes) { return readableBytes >= (startupPhase ? 0 : MESSAGE_TYPE_LENGTH) + PAYLOAD_LENGTH; } @Override public void decode(final ChannelHandlerContext context, final ByteBuf in, final List<Object> out) { while (isValidHeader(in.readableBytes())) { if (startupPhase) { handleStartupPhase(in, out); return; } int payloadLength = in.getInt(in.readerIndex() + 1); if (in.readableBytes() < MESSAGE_TYPE_LENGTH + payloadLength) { return; } byte type = in.getByte(in.readerIndex()); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sharding/distsql/handler/update/AlterShardingTableReferenceRuleExecutor.java | shardingsphere-sharding-distsql-handler | 89 |
org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingTableReferenceRuleExecutor.java | shardingsphere-sharding-distsql-handler | 75 |
private void checkToBeReferencedShardingTablesExisted(final AlterShardingTableReferenceRuleStatement sqlStatement) { Collection<String> currentShardingTableNames = getCurrentShardingTableNames(); Collection<String> notExistedTableNames = sqlStatement.getTableNames().stream().filter(each -> !currentShardingTableNames.contains(each)).collect(Collectors.toSet()); ShardingSpherePreconditions.checkMustEmpty(notExistedTableNames, () -> new MissingRequiredRuleException("Sharding", database.getName(), notExistedTableNames)); } private Collection<String> getCurrentShardingTableNames() { Collection<String> result = new CaseInsensitiveSet<>(); result.addAll(rule.getConfiguration().getTables().stream().map(ShardingTableRuleConfiguration::getLogicTable).collect(Collectors.toSet())); result.addAll(rule.getConfiguration().getAutoTables().stream().map(ShardingAutoTableRuleConfiguration::getLogicTable).collect(Collectors.toSet())); return result; } private void checkShardingTableReferenceRulesValid(final AlterShardingTableReferenceRuleStatement sqlStatement) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/infra/binder/context/statement/ddl/FetchStatementContext.java | shardingsphere-infra-binder | 54 |
org/apache/shardingsphere/infra/binder/context/statement/ddl/MoveStatementContext.java | shardingsphere-infra-binder | 54 |
return (FetchStatement) super.getSqlStatement(); } @Override public Optional<CursorNameSegment> getCursorName() { return Optional.of(getSqlStatement().getCursorName()); } @Override public void setUpCursorDefinition(final CursorStatementContext cursorStatementContext) { this.cursorStatementContext = cursorStatementContext; TableExtractor tableExtractor = new TableExtractor(); tableExtractor.extractTablesFromSelect(cursorStatementContext.getSqlStatement().getSelect()); tablesContext = new TablesContext(tableExtractor.getRewriteTables(), getDatabaseType()); } @Override public Collection<WhereSegment> getWhereSegments() { return null == cursorStatementContext ? Collections.emptyList() : cursorStatementContext.getWhereSegments(); } @Override public Collection<ColumnSegment> getColumnSegments() { return null == cursorStatementContext ? Collections.emptyList() : cursorStatementContext.getColumnSegments(); } @Override public Collection<BinaryOperationExpression> getJoinConditions() { return null == cursorStatementContext ? Collections.emptyList() : cursorStatementContext.getJoinConditions(); } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 510 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 291 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 490 |
new SubquerySegment(ctx.subquery().start.getStartIndex(), ctx.subquery().stop.getStopIndex(), (OracleSelectStatement) visit(ctx.subquery()), getOriginalText(ctx.subquery()))); } String operator = null == ctx.SAFE_EQ_() ? ctx.comparisonOperator().getText() : ctx.SAFE_EQ_().getText(); String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } @Override public final ASTNode visitPredicate(final PredicateContext ctx) { if (null != ctx.IN()) { return createInSegment(ctx); } if (null != ctx.BETWEEN()) { return createBetweenSegment(ctx); } if (null != ctx.LIKE()) { return createBinaryOperationExpressionFromLike(ctx); } return visit(ctx.bitExpr(0)); } private InExpression createInSegment(final PredicateContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDMLStatementVisitor.java | shardingsphere-parser-sql-oracle | 1362 |
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDMLStatementVisitor.java | shardingsphere-parser-sql-oracle | 1387 |
public ASTNode visitIntoClause(final IntoClauseContext ctx) { if (null != ctx.tableName()) { SimpleTableSegment result = (SimpleTableSegment) visit(ctx.tableName()); if (null != ctx.alias()) { result.setAlias((AliasSegment) visit(ctx.alias())); } return result; } if (null != ctx.viewName()) { SimpleTableSegment result = (SimpleTableSegment) visit(ctx.viewName()); if (null != ctx.alias()) { result.setAlias((AliasSegment) visit(ctx.alias())); } return result; } OracleSelectStatement subquery = (OracleSelectStatement) visit(ctx.subquery()); SubquerySegment subquerySegment = new SubquerySegment(ctx.subquery().start.getStartIndex(), ctx.subquery().stop.getStopIndex(), subquery, getOriginalText(ctx.subquery())); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 1390 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 1340 |
if (null != ctx.limitClause().selectFetchValue()) { LimitValueSegment limit = (LimitValueSegment) visit(ctx.limitClause().selectFetchValue()); return new LimitSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), null, limit); } LimitValueSegment limit = (LimitValueSegment) visit(ctx.limitClause().selectLimitValue()); return new LimitSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), null, limit); } LimitValueSegment offset = (LimitValueSegment) visit(ctx.offsetClause().selectOffsetValue()); return new LimitSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), offset, null); } @Override public ASTNode visitExecuteStmt(final ExecuteStmtContext ctx) { return new OpenGaussExecuteStatement(); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 266 |
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 397 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 266 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 390 |
return new IndexSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), indexName); } @Override public final ASTNode visitConstraintName(final ConstraintNameContext ctx) { return new ConstraintSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), (IdentifierValue) visit(ctx.identifier())); } @Override public final ASTNode visitTableNames(final TableNamesContext ctx) { CollectionValue<SimpleTableSegment> result = new CollectionValue<>(); for (TableNameContext each : ctx.tableName()) { result.getValue().add((SimpleTableSegment) visit(each)); } return result; } @Override public final ASTNode visitColumnNames(final ColumnNamesContext ctx) { CollectionValue<ColumnSegment> result = new CollectionValue<>(); for (ColumnNameContext each : ctx.columnName()) { result.getValue().add((ColumnSegment) visit(each)); } return result; } @Override public ASTNode visitAExpr(final AExprContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 864 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 977 |
OpenGaussDropSchemaStatement result = new OpenGaussDropSchemaStatement(); result.getSchemaNames().addAll(((CollectionValue<IdentifierValue>) visit(ctx.nameList())).getValue()); result.setContainsCascade(null != ctx.dropBehavior() && null != ctx.dropBehavior().CASCADE()); return result; } @SuppressWarnings("unchecked") @Override public ASTNode visitNameList(final NameListContext ctx) { CollectionValue<IdentifierValue> result = new CollectionValue<>(); if (null != ctx.nameList()) { result.combine((CollectionValue<IdentifierValue>) visit(ctx.nameList())); } if (null != ctx.name()) { result.getValue().add((IdentifierValue) visit(ctx.name())); } return result; } @Override public ASTNode visitAlterLanguage(final AlterLanguageContext ctx) { return new OpenGaussAlterLanguageStatement(); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 1404 |
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 1454 |
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 1475 |
public ASTNode visitInsertValuesClause(final InsertValuesClauseContext ctx) { MySQLInsertStatement result = new MySQLInsertStatement(); if (null != ctx.LP_()) { if (null != ctx.fields()) { result.setInsertColumns(new InsertColumnsSegment(ctx.LP_().getSymbol().getStartIndex(), ctx.RP_().getSymbol().getStopIndex(), createInsertColumns(ctx.fields()))); } else { result.setInsertColumns(new InsertColumnsSegment(ctx.LP_().getSymbol().getStartIndex(), ctx.RP_().getSymbol().getStopIndex(), Collections.emptyList())); } } else { result.setInsertColumns(new InsertColumnsSegment(ctx.start.getStartIndex() - 1, ctx.start.getStartIndex() - 1, Collections.emptyList())); } result.getValues().addAll(createInsertValuesSegments(ctx.assignmentValues())); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptGroupByItemTokenGenerator.java | shardingsphere-encrypt-core | 74 |
org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java | shardingsphere-encrypt-core | 67 |
for (OrderByItem each : getGroupByItems(sqlStatementContext)) { if (each.getSegment() instanceof ColumnOrderByItemSegment) { ColumnSegment columnSegment = ((ColumnOrderByItemSegment) each.getSegment()).getColumn(); Map<String, String> columnTableNames = sqlStatementContext.getTablesContext().findTableNamesByColumnSegment(Collections.singleton(columnSegment), schema); result.addAll(generateSQLTokensWithColumnSegments(Collections.singleton(columnSegment), columnTableNames)); } } return result; } private Collection<SubstitutableColumnNameToken> generateSQLTokensWithColumnSegments(final Collection<ColumnSegment> columnSegments, final Map<String, String> columnTableNames) { Collection<SubstitutableColumnNameToken> result = new LinkedList<>(); for (ColumnSegment each : columnSegments) { String tableName = columnTableNames.getOrDefault(each.getExpression(), ""); Optional<EncryptTable> encryptTable = encryptRule.findEncryptTable(tableName); String columnName = each.getIdentifier().getValue(); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/data/pipeline/opengauss/sqlbuilder/OpenGaussPipelineSQLBuilder.java | shardingsphere-data-pipeline-opengauss | 48 |
org/apache/shardingsphere/data/pipeline/postgresql/sqlbuilder/PostgreSQLPipelineSQLBuilder.java | shardingsphere-data-pipeline-postgresql | 58 |
PipelineSQLSegmentBuilder sqlSegmentBuilder = new PipelineSQLSegmentBuilder(getType()); result.append(dataRecord.getColumns().stream() .filter(each -> !each.isUniqueKey()).map(each -> sqlSegmentBuilder.getEscapedIdentifier(each.getName()) + "=EXCLUDED." + sqlSegmentBuilder.getEscapedIdentifier(each.getName())) .collect(Collectors.joining(","))); return Optional.of(result.toString()); } @Override public String buildCheckEmptyTableSQL(final String qualifiedTableName) { return String.format("SELECT * FROM %s LIMIT 1", qualifiedTableName); } @Override public Optional<String> buildEstimatedCountSQL(final String qualifiedTableName) { return Optional.of(String.format("SELECT reltuples::integer FROM pg_class WHERE oid='%s'::regclass::oid;", qualifiedTableName)); } @Override public Collection<String> buildCreateTableSQLs(final DataSource dataSource, final String schemaName, final String tableName) throws SQLException { try ( Connection connection = dataSource.getConnection(); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 763 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 886 |
OpenGaussPrepareStatement result = new OpenGaussPrepareStatement(); if (null != ctx.preparableStmt().select()) { result.setSelect((SelectStatement) visit(ctx.preparableStmt().select())); } if (null != ctx.preparableStmt().insert()) { result.setInsert((InsertStatement) visit(ctx.preparableStmt().insert())); } if (null != ctx.preparableStmt().update()) { result.setUpdate((UpdateStatement) visit(ctx.preparableStmt().update())); } if (null != ctx.preparableStmt().delete()) { result.setDelete((DeleteStatement) visit(ctx.preparableStmt().delete())); } return result; } @Override public ASTNode visitDeallocate(final DeallocateContext ctx) { return new OpenGaussDeallocateStatement(); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/infra/binder/statement/dml/InsertStatementBinder.java | shardingsphere-infra-binder | 66 |
org/apache/shardingsphere/infra/binder/statement/dml/MergeStatementBinder.java | shardingsphere-infra-binder | 151 |
result.getValues().addAll(sqlStatement.getValues()); InsertStatementHandler.getOnDuplicateKeyColumnsSegment(sqlStatement).ifPresent(optional -> InsertStatementHandler.setOnDuplicateKeyColumnsSegment(result, optional)); InsertStatementHandler.getSetAssignmentSegment(sqlStatement).ifPresent(optional -> InsertStatementHandler.setSetAssignmentSegment(result, optional)); InsertStatementHandler.getWithSegment(sqlStatement).ifPresent(optional -> InsertStatementHandler.setWithSegment(result, optional)); InsertStatementHandler.getOutputSegment(sqlStatement).ifPresent(optional -> InsertStatementHandler.setOutputSegment(result, optional)); InsertStatementHandler.getMultiTableInsertType(sqlStatement).ifPresent(optional -> InsertStatementHandler.setMultiTableInsertType(result, optional)); InsertStatementHandler.getMultiTableInsertIntoSegment(sqlStatement).ifPresent(optional -> InsertStatementHandler.setMultiTableInsertIntoSegment(result, optional)); InsertStatementHandler.getMultiTableConditionalIntoSegment(sqlStatement).ifPresent(optional -> InsertStatementHandler.setMultiTableConditionalIntoSegment(result, optional)); InsertStatementHandler.getReturningSegment(sqlStatement).ifPresent(optional -> InsertStatementHandler.setReturningSegment(result, optional)); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/traffic/yaml/swapper/YamlTrafficDataNodeRuleConfigurationSwapper.java | shardingsphere-traffic-core | 49 |
org/apache/shardingsphere/traffic/yaml/swapper/YamlTrafficRuleConfigurationSwapper.java | shardingsphere-traffic-core | 39 |
private YamlTrafficRuleConfiguration swapToYamlConfiguration(final TrafficRuleConfiguration data) { YamlTrafficRuleConfiguration result = new YamlTrafficRuleConfiguration(); data.getTrafficStrategies().forEach(each -> result.getTrafficStrategies().put(each.getName(), strategySwapper.swapToYamlConfiguration(each))); setYamlAlgorithms(data, result); return result; } private void setYamlAlgorithms(final TrafficRuleConfiguration data, final YamlTrafficRuleConfiguration yamlConfig) { if (null != data.getTrafficAlgorithms()) { data.getTrafficAlgorithms().forEach((key, value) -> yamlConfig.getTrafficAlgorithms().put(key, algorithmSwapper.swapToYamlConfiguration(value))); } if (null != data.getLoadBalancers()) { data.getLoadBalancers().forEach((key, value) -> yamlConfig.getLoadBalancers().put(key, algorithmSwapper.swapToYamlConfiguration(value))); } } @Override public Optional<TrafficRuleConfiguration> swapToObject(final Collection<YamlDataNode> dataNodes) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 574 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 712 |
OpenGaussAlterIndexStatement result = new OpenGaussAlterIndexStatement(); result.setIndex(createIndexSegment((SimpleTableSegment) visit(ctx.qualifiedName()))); if (null != ctx.alterIndexDefinitionClause().renameIndexSpecification()) { result.setRenameIndex((IndexSegment) visit(ctx.alterIndexDefinitionClause().renameIndexSpecification().indexName())); } return result; } private IndexSegment createIndexSegment(final SimpleTableSegment tableSegment) { IndexNameSegment indexName = new IndexNameSegment(tableSegment.getTableName().getStartIndex(), tableSegment.getTableName().getStopIndex(), tableSegment.getTableName().getIdentifier()); IndexSegment result = new IndexSegment(tableSegment.getStartIndex(), tableSegment.getStopIndex(), indexName); tableSegment.getOwner().ifPresent(result::setOwner); return result; } @SuppressWarnings("unchecked") @Override public ASTNode visitDropIndex(final DropIndexContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/MySQLShardingSphereStatisticsBuilder.java | shardingsphere-infra-common | 46 |
org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/PostgreSQLShardingSphereStatisticsBuilder.java | shardingsphere-infra-common | 57 |
@Override public ShardingSphereStatistics build(final ShardingSphereMetaData metaData) { ShardingSphereStatistics result = new ShardingSphereStatistics(); for (Entry<String, ShardingSphereDatabase> entry : metaData.getDatabases().entrySet()) { ShardingSphereDatabaseData databaseData = new ShardingSphereDatabaseData(); initSchemas(entry.getValue(), databaseData); if (!databaseData.getSchemaData().isEmpty()) { result.putDatabase(entry.getKey(), databaseData); } } return result; } private void initSchemas(final ShardingSphereDatabase database, final ShardingSphereDatabaseData databaseData) { for (Entry<String, ShardingSphereSchema> entry : database.getSchemas().entrySet()) { if (SHARDING_SPHERE.equals(entry.getKey())) { ShardingSphereSchemaData schemaData = new ShardingSphereSchemaData(); initClusterInformationTable(schemaData); initShardingTableStatisticsTable(schemaData); databaseData.putSchema(SHARDING_SPHERE, schemaData); } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 1650 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java | shardingsphere-parser-sql-sql92 | 260 |
return new BooleanLiteralValue(false); } @Override public ASTNode visitProjections(final ProjectionsContext ctx) { Collection<ProjectionSegment> projections = new LinkedList<>(); if (null != ctx.unqualifiedShorthand()) { projections.add(new ShorthandProjectionSegment(ctx.unqualifiedShorthand().getStart().getStartIndex(), ctx.unqualifiedShorthand().getStop().getStopIndex())); } for (ProjectionContext each : ctx.projection()) { projections.add((ProjectionSegment) visit(each)); } ProjectionsSegment result = new ProjectionsSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex()); result.getProjections().addAll(projections); return result; } @Override public ASTNode visitProjection(final ProjectionContext ctx) { // FIXME :The stop index of project is the stop index of projection, instead of alias. if (null != ctx.qualifiedShorthand()) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 498 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 291 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 490 |
new SubquerySegment(ctx.subquery().start.getStartIndex(), ctx.subquery().stop.getStopIndex(), (MySQLSelectStatement) visit(ctx.subquery()), getOriginalText(ctx.subquery()))); } String operator = null == ctx.SAFE_EQ_() ? ctx.comparisonOperator().getText() : ctx.SAFE_EQ_().getText(); String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } @Override public final ASTNode visitPredicate(final PredicateContext ctx) { if (null != ctx.IN()) { return createInSegment(ctx); } if (null != ctx.BETWEEN()) { return createBetweenSegment(ctx); } if (null != ctx.LIKE()) { return createBinaryOperationExpressionFromLike(ctx); } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 1831 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java | shardingsphere-parser-sql-sql92 | 407 |
MySQLSelectStatement subquery = (MySQLSelectStatement) visit(ctx.subquery()); SubquerySegment subquerySegment = new SubquerySegment(ctx.subquery().start.getStartIndex(), ctx.subquery().stop.getStopIndex(), subquery, getOriginalText(ctx.subquery())); SubqueryTableSegment result = new SubqueryTableSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), subquerySegment); if (null != ctx.alias()) { result.setAlias((AliasSegment) visit(ctx.alias())); } return result; } if (null != ctx.tableName()) { SimpleTableSegment result = (SimpleTableSegment) visit(ctx.tableName()); if (null != ctx.alias()) { result.setAlias((AliasSegment) visit(ctx.alias())); } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java | shardingsphere-parser-sql-sql92 | 443 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 1642 |
return JoinType.RIGHT.name(); } else if (null != ctx.INNER()) { return JoinType.INNER.name(); } else if (null != ctx.CROSS()) { return JoinType.CROSS.name(); } return JoinType.INNER.name(); } private void visitJoinSpecification(final JoinSpecificationContext ctx, final JoinTableSegment joinTableSource) { if (null != ctx.expr()) { ExpressionSegment condition = (ExpressionSegment) visit(ctx.expr()); joinTableSource.setCondition(condition); } if (null != ctx.USING()) { joinTableSource.setUsing(ctx.columnNames().columnName().stream().map(each -> (ColumnSegment) visit(each)).collect(Collectors.toList())); } } @Override public ASTNode visitWhereClause(final WhereClauseContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/data/pipeline/migration/distsql/parser/core/MigrationDistSQLStatementVisitor.java | shardingsphere-data-pipeline-distsql-parser | 233 |
org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java | shardingsphere-parser-distsql-engine | 129 |
public ASTNode visitStorageUnitDefinition(final MigrationDistSQLStatementParser.StorageUnitDefinitionContext ctx) { String user = getIdentifierValue(ctx.user()); String password = null == ctx.password() ? "" : getPassword(ctx.password()); Properties props = getProperties(ctx.propertiesDefinition()); return null == ctx.urlSource() ? new HostnameAndPortBasedDataSourceSegment(getIdentifierValue(ctx.storageUnitName()), getIdentifierValue(ctx.simpleSource().hostname()), ctx.simpleSource().port().getText(), getIdentifierValue(ctx.simpleSource().dbName()), user, password, props) : new URLBasedDataSourceSegment(getIdentifierValue(ctx.storageUnitName()), getIdentifierValue(ctx.urlSource().url()), user, password, props); } private String getPassword(final PasswordContext ctx) { return getIdentifierValue(ctx); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 662 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 662 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 535 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 915 |
} @Override public final ASTNode visitDataType(final DataTypeContext ctx) { DataTypeSegment result = new DataTypeSegment(); result.setDataTypeName(((KeywordValue) visit(ctx.dataTypeName())).getValue()); result.setStartIndex(ctx.start.getStartIndex()); result.setStopIndex(ctx.stop.getStopIndex()); if (null != ctx.dataTypeLength()) { DataTypeLengthSegment dataTypeLengthSegment = (DataTypeLengthSegment) visit(ctx.dataTypeLength()); result.setDataLength(dataTypeLengthSegment); } return result; } @Override public final ASTNode visitDataTypeLength(final DataTypeLengthContext ctx) { DataTypeLengthSegment result = new DataTypeLengthSegment(); result.setStartIndex(ctx.start.getStartIndex()); result.setStopIndex(ctx.stop.getStartIndex()); List<TerminalNode> numbers = ctx.NUMBER_(); if (1 == numbers.size()) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDALStatementVisitor.java | shardingsphere-parser-sql-opengauss | 115 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDALStatementVisitor.java | shardingsphere-parser-sql-postgresql | 122 |
OpenGaussAnalyzeTableStatement result = new OpenGaussAnalyzeTableStatement(); if (null != ctx.vacuumRelationList()) { result.getTables().addAll(((CollectionValue<SimpleTableSegment>) visit(ctx.vacuumRelationList())).getValue()); } return result; } @Override public ASTNode visitVacuumRelationList(final VacuumRelationListContext ctx) { CollectionValue<SimpleTableSegment> result = new CollectionValue<>(); for (VacuumRelationContext each : ctx.vacuumRelation()) { ColIdContext colId = each.qualifiedName().colId(); TableNameSegment tableName = new TableNameSegment(colId.start.getStartIndex(), colId.stop.getStopIndex(), new IdentifierValue(colId.getText())); result.getValue().add(new SimpleTableSegment(tableName)); } return result; } @Override public ASTNode visitLoad(final LoadContext ctx) { return new OpenGaussLoadStatement(); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/agent/plugin/core/util/AgentReflectionUtils.java | shardingsphere-agent-plugin-core | 47 |
org/apache/shardingsphere/infra/util/reflection/ReflectionUtils.java | shardingsphere-infra-util | 46 |
throw new IllegalStateException(String.format("Can not find field name `%s` in class %s.", fieldName, target.getClass())); } @SuppressWarnings("unchecked") @SneakyThrows(IllegalAccessException.class) private static <T> T getFieldValue(final Object target, final Field field) { boolean accessible = field.isAccessible(); if (!accessible) { field.setAccessible(true); } T result = (T) field.get(target); if (!accessible) { field.setAccessible(false); } return result; } private static Optional<Field> findField(final String fieldName, final Class<?> targetClass) { Class<?> currentTargetClass = targetClass; while (Object.class != currentTargetClass) { try { return Optional.of(currentTargetClass.getDeclaredField(fieldName)); } catch (final NoSuchFieldException ignored) { currentTargetClass = currentTargetClass.getSuperclass(); } } return Optional.empty(); } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/encrypt/distsql/parser/core/EncryptDistSQLStatementVisitor.java | shardingsphere-encrypt-distsql-parser | 105 |
org/apache/shardingsphere/mask/distsql/parser/core/MaskDistSQLStatementVisitor.java | shardingsphere-mask-distsql-parser | 89 |
return null == ctx.likeQueryAlgorithm() ? null : (AlgorithmSegment) visit(ctx.likeQueryAlgorithm().algorithmDefinition()); } @Override public ASTNode visitAlgorithmDefinition(final AlgorithmDefinitionContext ctx) { return new AlgorithmSegment(getIdentifierValue(ctx.algorithmTypeName()), getProperties(ctx.propertiesDefinition())); } private String getIdentifierValue(final ParseTree context) { return null == context ? null : new IdentifierValue(context.getText()).getValue(); } private Properties getProperties(final PropertiesDefinitionContext ctx) { Properties result = new Properties(); if (null == ctx || null == ctx.properties()) { return result; } for (PropertyContext each : ctx.properties().property()) { result.setProperty(IdentifierValue.getQuotedContent(each.key.getText()), IdentifierValue.getQuotedContent(each.value.getText())); } return result; } @Override public ASTNode visitTableName(final TableNameContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/mask/algorithm/cover/MaskAfterSpecialCharsAlgorithm.java | shardingsphere-mask-core | 29 |
org/apache/shardingsphere/mask/algorithm/cover/MaskBeforeSpecialCharsAlgorithm.java | shardingsphere-mask-core | 29 |
public final class MaskAfterSpecialCharsAlgorithm implements MaskAlgorithm<Object, String> { private static final String SPECIAL_CHARS = "special-chars"; private static final String REPLACE_CHAR = "replace-char"; private String specialChars; private Character replaceChar; @Override public void init(final Properties props) { specialChars = createSpecialChars(props); replaceChar = createReplaceChar(props); } private String createSpecialChars(final Properties props) { MaskAlgorithmPropertiesChecker.checkAtLeastOneChar(props, SPECIAL_CHARS, this); return props.getProperty(SPECIAL_CHARS); } private Character createReplaceChar(final Properties props) { MaskAlgorithmPropertiesChecker.checkSingleChar(props, REPLACE_CHAR, this); return props.getProperty(REPLACE_CHAR).charAt(0); } @Override public String mask(final Object plainValue) { String result = null == plainValue ? null : String.valueOf(plainValue); if (Strings.isNullOrEmpty(result)) { return result; } int index = result.contains(specialChars) ? result.indexOf(specialChars) + specialChars.length() : -1; |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDALStatementVisitor.java | shardingsphere-parser-sql-opengauss | 89 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDALStatementVisitor.java | shardingsphere-parser-sql-postgresql | 96 |
return result; } @Override public ASTNode visitConfigurationParameterClause(final ConfigurationParameterClauseContext ctx) { VariableAssignSegment result = new VariableAssignSegment(); result.setStartIndex(ctx.start.getStartIndex()); result.setStopIndex(ctx.stop.getStopIndex()); result.setVariable(new VariableSegment(ctx.varName().start.getStartIndex(), ctx.varName().stop.getStopIndex(), ctx.varName().getText())); if (null != ctx.varList()) { result.setAssignValue(ctx.varList().getText()); } if (null != ctx.DEFAULT()) { result.setAssignValue(ctx.DEFAULT().getText()); } return result; } @Override public ASTNode visitResetParameter(final ResetParameterContext ctx) { return new OpenGaussResetParameterStatement(null != ctx.ALL() ? "ALL" : ctx.identifier().getText()); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java | shardingsphere-jdbc | 287 |
org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java | shardingsphere-jdbc | 205 |
return context.getInputGroups().iterator().next().getInputs().iterator().next(); } private Optional<String> getInstanceIdAndSet(final QueryContext queryContext) { Optional<String> result = connection.getDatabaseConnectionManager().getConnectionContext().getTrafficInstanceId(); if (!result.isPresent()) { result = getInstanceId(queryContext); } if (connection.isHoldTransaction() && result.isPresent()) { connection.getDatabaseConnectionManager().getConnectionContext().setTrafficInstanceId(result.get()); } return result; } private Optional<String> getInstanceId(final QueryContext queryContext) { InstanceContext instanceContext = connection.getContextManager().getInstanceContext(); return null != trafficRule && !trafficRule.getStrategyRules().isEmpty() ? new TrafficEngine(trafficRule, instanceContext).dispatch(queryContext, connection.isHoldTransaction()) : Optional.empty(); } private void resetParameters() throws SQLException { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/encrypt/rule/column/item/AssistedQueryColumnItem.java | shardingsphere-encrypt-core | 33 |
org/apache/shardingsphere/encrypt/rule/column/item/CipherColumnItem.java | shardingsphere-encrypt-core | 33 |
public final class AssistedQueryColumnItem { private final String name; private final EncryptAlgorithm encryptor; /** * Get encrypt assisted query value. * * @param databaseName database name * @param schemaName schema name * @param tableName table name * @param logicColumnName logic column name * @param originalValue original value * @return assisted query values */ public Object encrypt(final String databaseName, final String schemaName, final String tableName, final String logicColumnName, final Object originalValue) { if (null == originalValue) { return null; } return encryptor.encrypt(originalValue, new AlgorithmSQLContext(databaseName, schemaName, tableName, logicColumnName)); } /** * Get encrypt assisted query values. * * @param databaseName database name * @param schemaName schema name * @param tableName table name * @param logicColumnName logic column name * @param originalValues original values * @return assisted query values */ public List<Object> encrypt(final String databaseName, final String schemaName, final String tableName, final String logicColumnName, final List<Object> originalValues) { AlgorithmSQLContext algorithmSQLContext = new AlgorithmSQLContext(databaseName, schemaName, tableName, logicColumnName); List<Object> result = new LinkedList<>(); for (Object each : originalValues) { result.add(null == each ? null : encryptor.encrypt(each, algorithmSQLContext)); } return result; } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/encrypt/rule/column/item/AssistedQueryColumnItem.java | shardingsphere-encrypt-core | 35 |
org/apache/shardingsphere/encrypt/rule/column/item/LikeQueryColumnItem.java | shardingsphere-encrypt-core | 35 |
private final String name; private final EncryptAlgorithm encryptor; /** * Get encrypt assisted query value. * * @param databaseName database name * @param schemaName schema name * @param tableName table name * @param logicColumnName logic column name * @param originalValue original value * @return assisted query values */ public Object encrypt(final String databaseName, final String schemaName, final String tableName, final String logicColumnName, final Object originalValue) { if (null == originalValue) { return null; } return encryptor.encrypt(originalValue, new AlgorithmSQLContext(databaseName, schemaName, tableName, logicColumnName)); } /** * Get encrypt assisted query values. * * @param databaseName database name * @param schemaName schema name * @param tableName table name * @param logicColumnName logic column name * @param originalValues original values * @return assisted query values */ public List<Object> encrypt(final String databaseName, final String schemaName, final String tableName, final String logicColumnName, final List<Object> originalValues) { AlgorithmSQLContext algorithmSQLContext = new AlgorithmSQLContext(databaseName, schemaName, tableName, logicColumnName); List<Object> result = new LinkedList<>(); for (Object each : originalValues) { result.add(null == each ? null : encryptor.encrypt(each, algorithmSQLContext)); } return result; } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 1384 |
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 1405 |
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 1455 |
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 1476 |
result.setInsertSelect(createInsertSelectSegment(ctx)); if (null != ctx.LP_()) { if (null != ctx.fields()) { result.setInsertColumns(new InsertColumnsSegment(ctx.LP_().getSymbol().getStartIndex(), ctx.RP_().getSymbol().getStopIndex(), createInsertColumns(ctx.fields()))); } else { result.setInsertColumns(new InsertColumnsSegment(ctx.LP_().getSymbol().getStartIndex(), ctx.RP_().getSymbol().getStopIndex(), Collections.emptyList())); } } else { result.setInsertColumns(new InsertColumnsSegment(ctx.start.getStartIndex() - 1, ctx.start.getStartIndex() - 1, Collections.emptyList())); } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/encrypt/rule/column/item/CipherColumnItem.java | shardingsphere-encrypt-core | 35 |
org/apache/shardingsphere/encrypt/rule/column/item/LikeQueryColumnItem.java | shardingsphere-encrypt-core | 35 |
private final String name; private final EncryptAlgorithm encryptor; /** * Encrypt. * * @param databaseName database name * @param schemaName schema name * @param tableName table name * @param logicColumnName logic column name * @param originalValue original value * @return encrypted value */ public Object encrypt(final String databaseName, final String schemaName, final String tableName, final String logicColumnName, final Object originalValue) { if (null == originalValue) { return null; } return encryptor.encrypt(originalValue, new AlgorithmSQLContext(databaseName, schemaName, tableName, logicColumnName)); } /** * Encrypt. * * @param databaseName database name * @param schemaName schema name * @param tableName table name * @param logicColumnName logic column name * @param originalValues original values * @return encrypted values */ public List<Object> encrypt(final String databaseName, final String schemaName, final String tableName, final String logicColumnName, final List<Object> originalValues) { AlgorithmSQLContext algorithmSQLContext = new AlgorithmSQLContext(databaseName, schemaName, tableName, logicColumnName); List<Object> result = new LinkedList<>(); for (Object each : originalValues) { result.add(null == each ? null : encryptor.encrypt(each, algorithmSQLContext)); } return result; } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/AssociateStatisticsStatementTestCase.java | shardingsphere-test-it-parser | 40 |
org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/DisassociateStatisticsStatementTestCase.java | shardingsphere-test-it-parser | 40 |
public final class AssociateStatisticsStatementTestCase extends SQLParserTestCase { @XmlElement(name = "index") private final List<ExpectedIndex> indexes = new LinkedList<>(); @XmlElement(name = "table") private final List<ExpectedSimpleTable> tables = new LinkedList<>(); @XmlElement(name = "column") private final List<ExpectedColumn> columns = new LinkedList<>(); @XmlElement(name = "function") private final List<ExpectedFunction> functions = new LinkedList<>(); @XmlElement(name = "package") private final List<ExpectedPackage> packages = new LinkedList<>(); @XmlElement(name = "type") private final List<ExpectedType> types = new LinkedList<>(); @XmlElement(name = "index-type") private final List<ExpectedIndexType> indexTypes = new LinkedList<>(); } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/AlterStorageUnitStatementAssert.java | shardingsphere-test-it-parser | 54 |
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/RegisterStorageUnitStatementAssert.java | shardingsphere-test-it-parser | 55 |
assertNotNull(actual, assertContext.getText("Actual statement should exist.")); assertDataSources(assertContext, actual.getStorageUnits(), expected.getDataSources()); } } private static void assertDataSources(final SQLCaseAssertContext assertContext, final Collection<DataSourceSegment> actual, final List<ExpectedDataSource> expected) { if (null == expected) { assertNull(actual, assertContext.getText("Actual storage unit should not exist.")); } else { assertNotNull(actual, assertContext.getText("Actual storage unit should exist.")); assertThat(assertContext.getText(String.format("Actual storage unit size should be %s , but it was %s", expected.size(), actual.size())), actual.size(), is(expected.size())); int count = 0; for (DataSourceSegment each : actual) { DataSourceAssert.assertIs(assertContext, each, expected.get(count)); count++; } } } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/infra/connection/refresher/type/table/AlterTableStatementSchemaRefresher.java | shardingsphere-infra-context | 65 |
org/apache/shardingsphere/infra/connection/refresher/type/table/RenameTableStatementSchemaRefresher.java | shardingsphere-infra-context | 63 |
if (TableRefreshUtils.isSingleTable(tableName, database)) { ruleMetaData.getAttributes(MutableDataNodeRuleAttribute.class).forEach(each -> each.put(logicDataSourceNames.iterator().next(), schemaName, tableName)); } GenericSchemaBuilderMaterial material = new GenericSchemaBuilderMaterial( database.getProtocolType(), database.getResourceMetaData().getStorageUnits(), ruleMetaData.getRules(), props, schemaName); Map<String, ShardingSphereSchema> schemaMap = GenericSchemaBuilder.build(Collections.singletonList(tableName), material); return Optional.ofNullable(schemaMap.get(schemaName)).map(optional -> optional.getTable(tableName)) .orElseGet(() -> new ShardingSphereTable(tableName, Collections.emptyList(), Collections.emptyList(), Collections.emptyList())); } @Override public Class<AlterTableStatement> getType() { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 219 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 117 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 256 |
return new ParameterMarkerValue(globalParameterMarkerSegments.size(), ParameterMarkerType.QUESTION); } @Override public final ASTNode visitLiterals(final LiteralsContext ctx) { if (null != ctx.stringLiterals()) { return visit(ctx.stringLiterals()); } if (null != ctx.numberLiterals()) { return visit(ctx.numberLiterals()); } if (null != ctx.hexadecimalLiterals()) { return visit(ctx.hexadecimalLiterals()); } if (null != ctx.bitValueLiterals()) { return visit(ctx.bitValueLiterals()); } if (null != ctx.booleanLiterals()) { return visit(ctx.booleanLiterals()); } if (null != ctx.nullValueLiterals()) { return visit(ctx.nullValueLiterals()); } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDDLStatementVisitor.java | shardingsphere-parser-sql-oracle | 532 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DDLStatementVisitor.java | shardingsphere-parser-sql-sql92 | 154 |
OracleAlterTableStatement result = new OracleAlterTableStatement(); result.setTable((SimpleTableSegment) visit(ctx.tableName())); if (null != ctx.alterDefinitionClause()) { for (AlterDefinitionSegment each : ((CollectionValue<AlterDefinitionSegment>) visit(ctx.alterDefinitionClause())).getValue()) { if (each instanceof AddColumnDefinitionSegment) { result.getAddColumnDefinitions().add((AddColumnDefinitionSegment) each); } else if (each instanceof ModifyColumnDefinitionSegment) { result.getModifyColumnDefinitions().add((ModifyColumnDefinitionSegment) each); } else if (each instanceof DropColumnDefinitionSegment) { result.getDropColumnDefinitions().add((DropColumnDefinitionSegment) each); } else if (each instanceof AddConstraintDefinitionSegment) { result.getAddConstraintDefinitions().add((AddConstraintDefinitionSegment) each); } else if (each instanceof ModifyConstraintDefinitionSegment) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/impl/AlterReadwriteSplittingRuleStatementAssert.java | shardingsphere-test-it-parser | 53 |
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/CreateReadwriteSplittingRuleStatementAssert.java | shardingsphere-test-it-parser | 54 |
assertReadwriteSplittingRule(assertContext, actual.getRules(), expected.getRules()); } } private static void assertReadwriteSplittingRule(final SQLCaseAssertContext assertContext, final Collection<ReadwriteSplittingRuleSegment> actual, final List<ExceptedReadwriteSplittingRule> expected) { if (null == expected) { assertNull(actual, assertContext.getText("Actual readwrite-splitting rule should not exist.")); } else { assertNotNull(actual, assertContext.getText("Actual readwrite-splitting rule should exist.")); assertThat(assertContext.getText(String.format("Actual readwrite-splitting rule size should be %s , but it was %s", expected.size(), actual.size())), actual.size(), is(expected.size())); int count = 0; for (ReadwriteSplittingRuleSegment each : actual) { ReadwriteSplittingRuleAssert.assertIs(assertContext, each, expected.get(count)); count++; } } } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/impl/AlterShardingTableReferenceRulesStatementAssert.java | shardingsphere-test-it-parser | 53 |
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/CreateShardingTableReferenceRuleStatementAssert.java | shardingsphere-test-it-parser | 54 |
assertShardingBindingTableRules(assertContext, actual.getRules(), expected.getRules()); } } private static void assertShardingBindingTableRules(final SQLCaseAssertContext assertContext, final Collection<TableReferenceRuleSegment> actual, final List<ExpectedShardingTableReferenceRule> expected) { if (null == expected) { assertNull(actual, assertContext.getText("Actual sharding table reference rule should not exist.")); } else { assertNotNull(actual, assertContext.getText("Actual sharding table reference rule should exist.")); assertThat(assertContext.getText(String.format("Actual sharding table reference rule size should be %s , but it was %s", expected.size(), actual.size())), actual.size(), is(expected.size())); int count = 0; for (TableReferenceRuleSegment each : actual) { ShardingTableReferenceRuleAssert.assertIs(assertContext, each, expected.get(count)); count++; } } } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 954 |
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 987 |
protected Collection<ExpressionSegment> getExpressions(final List<ExprContext> exprList) { if (null == exprList) { return Collections.emptyList(); } Collection<ExpressionSegment> result = new ArrayList<>(exprList.size()); for (ExprContext each : exprList) { result.add((ExpressionSegment) visit(each)); } return result; } private String getDistinctExpression(final AggregationFunctionContext ctx) { StringBuilder result = new StringBuilder(); for (int i = 3; i < ctx.getChildCount() - 1; i++) { result.append(ctx.getChild(i).getText()); } return result.toString(); } @Override public final ASTNode visitSpecialFunction(final SpecialFunctionContext ctx) { if (null != ctx.groupConcatFunction()) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDCLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 61 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDCLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 65 |
OpenGaussRevokeStatement result = new OpenGaussRevokeStatement(); if (containsTableSegment(ctx.privilegeClause())) { result.getTables().addAll(getTableSegments(ctx.privilegeClause())); } return result; } private boolean containsTableSegment(final PrivilegeClauseContext ctx) { return null != ctx && null != ctx.onObjectClause() && null != ctx.onObjectClause().privilegeLevel() && null != ctx.onObjectClause().privilegeLevel().tableNames(); } @SuppressWarnings("unchecked") private Collection<SimpleTableSegment> getTableSegments(final PrivilegeClauseContext ctx) { return ((CollectionValue<SimpleTableSegment>) visit(ctx.onObjectClause().privilegeLevel().tableNames())).getValue(); } @Override public ASTNode visitCreateUser(final CreateUserContext ctx) { return new OpenGaussCreateUserStatement(); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/encrypt/rewrite/token/pojo/EncryptPredicateFunctionRightValueToken.java | shardingsphere-encrypt-core | 54 |
org/apache/shardingsphere/encrypt/rewrite/token/pojo/EncryptPredicateInRightValueToken.java | shardingsphere-encrypt-core | 50 |
result.append(functionName).append(" ("); for (int i = 0; i < indexValues.size() + paramMarkerIndexes.size(); i++) { if (paramMarkerIndexes.contains(i)) { result.append('?'); } else { if (indexValues.get(i) instanceof String) { result.append('\'').append(indexValues.get(i)).append('\''); } else { result.append(indexValues.get(i)); } } result.append(", "); } result.delete(result.length() - 2, result.length()).append(')'); return result.toString(); } @Override public boolean equals(final Object obj) { return obj instanceof EncryptPredicateFunctionRightValueToken && ((EncryptPredicateFunctionRightValueToken) obj).getStartIndex() == getStartIndex() |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/impl/AlterEncryptRuleStatementAssert.java | shardingsphere-test-it-parser | 53 |
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/CreateEncryptRuleStatementAssert.java | shardingsphere-test-it-parser | 54 |
assertEncryptRules(assertContext, actual.getRules(), expected.getRules()); } } private static void assertEncryptRules(final SQLCaseAssertContext assertContext, final Collection<EncryptRuleSegment> actual, final List<ExpectedEncryptRule> expected) { if (null == expected) { assertNull(actual, assertContext.getText("Actual encrypt rule should not exist.")); } else { assertNotNull(actual, assertContext.getText("Actual encrypt rule should exist.")); assertThat(assertContext.getText(String.format("Actual encrypt rule size should be %s , but it was %s", expected.size(), actual.size())), actual.size(), is(expected.size())); int count = 0; for (EncryptRuleSegment each : actual) { ExpectedEncryptRule expectedEncryptRule = expected.get(count); assertThat(assertContext.getText("encrypt rule table name assertion error: "), each.getTableName(), is(expectedEncryptRule.getName())); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 528 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 519 |
return visit(ctx.bitExpr(0)); } private InExpression createInSegment(final PredicateContext ctx) { ExpressionSegment left = (ExpressionSegment) visit(ctx.bitExpr(0)); ExpressionSegment right; if (null == ctx.subquery()) { ListExpression listExpression = new ListExpression(ctx.LP_().getSymbol().getStartIndex(), ctx.RP_().getSymbol().getStopIndex()); for (ExprContext each : ctx.expr()) { listExpression.getItems().add((ExpressionSegment) visit(each)); } right = listExpression; } else { right = new SubqueryExpressionSegment( new SubquerySegment(ctx.subquery().start.getStartIndex(), ctx.subquery().stop.getStopIndex(), (OracleSelectStatement) visit(ctx.subquery()), getOriginalText(ctx.subquery()))); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/infra/binder/context/statement/ddl/CloseStatementContext.java | shardingsphere-infra-binder | 59 |
org/apache/shardingsphere/infra/binder/context/statement/ddl/FetchStatementContext.java | shardingsphere-infra-binder | 59 |
org/apache/shardingsphere/infra/binder/context/statement/ddl/MoveStatementContext.java | shardingsphere-infra-binder | 59 |
return getSqlStatement().getCursorName(); } @Override public void setUpCursorDefinition(final CursorStatementContext cursorStatementContext) { this.cursorStatementContext = cursorStatementContext; TableExtractor tableExtractor = new TableExtractor(); tableExtractor.extractTablesFromSelect(cursorStatementContext.getSqlStatement().getSelect()); tablesContext = new TablesContext(tableExtractor.getRewriteTables(), getDatabaseType()); } @Override public Collection<WhereSegment> getWhereSegments() { return null == cursorStatementContext ? Collections.emptyList() : cursorStatementContext.getWhereSegments(); } @Override public Collection<ColumnSegment> getColumnSegments() { return null == cursorStatementContext ? Collections.emptyList() : cursorStatementContext.getColumnSegments(); } @Override public Collection<BinaryOperationExpression> getJoinConditions() { return null == cursorStatementContext ? Collections.emptyList() : cursorStatementContext.getJoinConditions(); } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 417 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 419 |
for (ColumnNameContext each : ctx.columnName()) { result.getValue().add((ColumnSegment) visit(each)); } return result; } @Override public final ASTNode visitExpr(final ExprContext ctx) { if (null != ctx.booleanPrimary()) { return visit(ctx.booleanPrimary()); } if (null != ctx.LP_()) { return visit(ctx.expr(0)); } if (null != ctx.andOperator()) { return createBinaryOperationExpression(ctx, ctx.andOperator().getText()); } if (null != ctx.orOperator()) { return createBinaryOperationExpression(ctx, ctx.orOperator().getText()); } if (null != ctx.datetimeExpr()) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDDLStatementVisitor.java | shardingsphere-parser-sql-oracle | 535 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/type/SQLServerDDLStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 228 |
for (AlterDefinitionSegment each : ((CollectionValue<AlterDefinitionSegment>) visit(ctx.alterDefinitionClause())).getValue()) { if (each instanceof AddColumnDefinitionSegment) { result.getAddColumnDefinitions().add((AddColumnDefinitionSegment) each); } else if (each instanceof ModifyColumnDefinitionSegment) { result.getModifyColumnDefinitions().add((ModifyColumnDefinitionSegment) each); } else if (each instanceof DropColumnDefinitionSegment) { result.getDropColumnDefinitions().add((DropColumnDefinitionSegment) each); } else if (each instanceof AddConstraintDefinitionSegment) { result.getAddConstraintDefinitions().add((AddConstraintDefinitionSegment) each); } else if (each instanceof ModifyConstraintDefinitionSegment) { result.getModifyConstraintDefinitions().add((ModifyConstraintDefinitionSegment) each); } else if (each instanceof DropConstraintDefinitionSegment) { result.getDropConstraintDefinitions().add((DropConstraintDefinitionSegment) each); } else if (each instanceof ModifyCollectionRetrievalSegment) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DDLStatementVisitor.java | shardingsphere-parser-sql-sql92 | 165 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/type/SQLServerDDLStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 238 |
result.getAddConstraintDefinitions().add((AddConstraintDefinitionSegment) each); } else if (each instanceof DropConstraintDefinitionSegment) { result.getDropConstraintDefinitions().add((DropConstraintDefinitionSegment) each); } } } return result; } @SuppressWarnings("unchecked") @Override public ASTNode visitAlterDefinitionClause(final AlterDefinitionClauseContext ctx) { CollectionValue<AlterDefinitionSegment> result = new CollectionValue<>(); if (null != ctx.addColumnSpecification()) { result.getValue().addAll(((CollectionValue<AddColumnDefinitionSegment>) visit(ctx.addColumnSpecification())).getValue()); } if (null != ctx.modifyColumnSpecification()) { result.getValue().add((ModifyColumnDefinitionSegment) visit(ctx.modifyColumnSpecification())); } if (null != ctx.dropColumnSpecification()) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/encrypt/distsql/parser/core/EncryptDistSQLStatementVisitor.java | shardingsphere-encrypt-distsql-parser | 114 |
org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java | shardingsphere-sharding-distsql-parser | 305 |
return null == context ? null : new IdentifierValue(context.getText()).getValue(); } private Properties getProperties(final PropertiesDefinitionContext ctx) { Properties result = new Properties(); if (null == ctx || null == ctx.properties()) { return result; } for (PropertyContext each : ctx.properties().property()) { result.setProperty(IdentifierValue.getQuotedContent(each.key.getText()), IdentifierValue.getQuotedContent(each.value.getText())); } return result; } @Override public ASTNode visitTableName(final TableNameContext ctx) { return new TableNameSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), new IdentifierValue(ctx.getText())); } @Override public ASTNode visitDatabaseName(final DatabaseNameContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sharding/rule/checker/ShardingRuleChecker.java | shardingsphere-sharding-core | 117 |
org/apache/shardingsphere/sharding/distsql/handler/checker/ShardingTableRuleStatementChecker.java | shardingsphere-sharding-distsql-handler | 264 |
private boolean isValidActualTableName(final ShardingTable sampleShardingTable, final ShardingTable shardingTable) { for (String each : sampleShardingTable.getActualDataSourceNames()) { Collection<String> sampleActualTableNames = sampleShardingTable.getActualTableNames(each).stream().map(actualTableName -> actualTableName.replace(sampleShardingTable.getTableDataNode().getPrefix(), "")) .collect(Collectors.toSet()); Collection<String> actualTableNames = shardingTable.getActualTableNames(each).stream().map(optional -> optional.replace(shardingTable.getTableDataNode().getPrefix(), "")).collect(Collectors.toSet()); if (!sampleActualTableNames.equals(actualTableNames)) { return false; } } return true; } private boolean isBindingShardingAlgorithm(final ShardingTable sampleShardingTable, final ShardingTable shardingTable, final boolean databaseAlgorithm, |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 298 |
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDDLStatementVisitor.java | shardingsphere-parser-sql-oracle | 533 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 371 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DDLStatementVisitor.java | shardingsphere-parser-sql-sql92 | 155 |
result.setTable((SimpleTableSegment) visit(ctx.tableNameClause().tableName())); if (null != ctx.alterDefinitionClause()) { for (AlterDefinitionSegment each : ((CollectionValue<AlterDefinitionSegment>) visit(ctx.alterDefinitionClause())).getValue()) { if (each instanceof AddColumnDefinitionSegment) { result.getAddColumnDefinitions().add((AddColumnDefinitionSegment) each); } else if (each instanceof ModifyColumnDefinitionSegment) { result.getModifyColumnDefinitions().add((ModifyColumnDefinitionSegment) each); } else if (each instanceof DropColumnDefinitionSegment) { result.getDropColumnDefinitions().add((DropColumnDefinitionSegment) each); } else if (each instanceof AddConstraintDefinitionSegment) { result.getAddConstraintDefinitions().add((AddConstraintDefinitionSegment) each); } else if (each instanceof ValidateConstraintDefinitionSegment) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 889 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 859 |
OpenGaussUpdateStatement result = new OpenGaussUpdateStatement(); SimpleTableSegment tableSegment = (SimpleTableSegment) visit(ctx.relationExprOptAlias()); result.setTable(tableSegment); result.setSetAssignment((SetAssignmentSegment) visit(ctx.setClauseList())); if (null != ctx.whereOrCurrentClause()) { result.setWhere((WhereSegment) visit(ctx.whereOrCurrentClause())); } result.addParameterMarkerSegments(getParameterMarkerSegments()); return result; } @Override public ASTNode visitSetClauseList(final SetClauseListContext ctx) { Collection<ColumnAssignmentSegment> assignments = generateAssignmentSegments(ctx); return new SetAssignmentSegment(ctx.start.getStartIndex() - 4, ctx.stop.getStopIndex(), assignments); } @Override public ASTNode visitDelete(final DeleteContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 994 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 1142 |
OpenGaussCommentStatement result = new OpenGaussCommentStatement(); Iterator<NameSegment> nameSegmentIterator = ((CollectionValue<NameSegment>) visit(ctx.commentClauses().anyName())).getValue().iterator(); Optional<NameSegment> columnName = nameSegmentIterator.hasNext() ? Optional.of(nameSegmentIterator.next()) : Optional.empty(); columnName.ifPresent(optional -> result.setColumn(new ColumnSegment(optional.getStartIndex(), optional.getStopIndex(), optional.getIdentifier()))); result.setComment(new IdentifierValue(ctx.commentClauses().commentText().getText())); setTableSegment(result, nameSegmentIterator); return result; } @SuppressWarnings("unchecked") private OpenGaussCommentStatement commentOnTable(final CommentContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 223 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 419 |
for (ColumnNameContext each : ctx.columnName()) { result.getValue().add((ColumnSegment) visit(each)); } return result; } @Override public final ASTNode visitExpr(final ExprContext ctx) { if (null != ctx.booleanPrimary()) { return visit(ctx.booleanPrimary()); } if (null != ctx.LP_()) { return visit(ctx.expr(0)); } if (null != ctx.andOperator()) { return createBinaryOperationExpression(ctx, ctx.andOperator().getText()); } if (null != ctx.orOperator()) { return createBinaryOperationExpression(ctx, ctx.orOperator().getText()); } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java | shardingsphere-parser-sql-sql92 | 157 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 1372 |
} @Override public ASTNode visitAssignmentValues(final AssignmentValuesContext ctx) { List<ExpressionSegment> segments = new LinkedList<>(); for (AssignmentValueContext each : ctx.assignmentValue()) { segments.add((ExpressionSegment) visit(each)); } return new InsertValuesSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), segments); } @Override public ASTNode visitAssignment(final AssignmentContext ctx) { ColumnSegment column = (ColumnSegment) visitColumnName(ctx.columnName()); List<ColumnSegment> columnSegments = new LinkedList<>(); columnSegments.add(column); ExpressionSegment value = (ExpressionSegment) visit(ctx.assignmentValue()); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java | shardingsphere-jdbc | 551 |
org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java | shardingsphere-jdbc | 619 |
currentResultSet = new ShardingSphereResultSet(resultSets, mergedResult, this, selectContainsEnhancedTable, executionContext, columnLabelAndIndexMap); } return currentResultSet; } private List<ResultSet> getResultSets() throws SQLException { List<ResultSet> result = new ArrayList<>(statements.size()); for (Statement each : statements) { if (null != each.getResultSet()) { result.add(each.getResultSet()); } } return result; } private List<QueryResult> getQueryResults(final List<ResultSet> resultSets) throws SQLException { List<QueryResult> result = new ArrayList<>(resultSets.size()); for (ResultSet each : resultSets) { if (null != each) { result.add(new JDBCStreamQueryResult(each)); } } return result; } private ExecutionContext createExecutionContext(final QueryContext queryContext) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 1238 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 555 |
List<TerminalNode> numbers = ctx.INTEGER_(); if (numbers.size() == 1) { result.setPrecision(Integer.parseInt(numbers.get(0).getText())); } if (numbers.size() == 2) { result.setPrecision(Integer.parseInt(numbers.get(0).getText())); result.setScale(Integer.parseInt(numbers.get(1).getText())); } return result; } /** * Get original text. * * @param ctx context * @return original text */ protected String getOriginalText(final ParserRuleContext ctx) { return ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sharding/distsql/handler/update/AlterDefaultShardingStrategyExecutor.java | shardingsphere-sharding-distsql-handler | 105 |
org/apache/shardingsphere/sharding/distsql/handler/update/CreateDefaultShardingStrategyExecutor.java | shardingsphere-sharding-distsql-handler | 103 |
shardingRuleConfig.getShardingAlgorithms().put(result, createAlgorithmConfiguration(sqlStatement.getAlgorithmSegment())); return result; } private AlgorithmConfiguration createAlgorithmConfiguration(final AlgorithmSegment segment) { return new AlgorithmConfiguration(segment.getName(), segment.getProps()); } private String getDefaultShardingAlgorithmName(final String defaultType, final String algorithmType) { return String.format("default_%s_%s", defaultType, algorithmType).toLowerCase(); } private void setStrategyConfiguration(final ShardingRuleConfiguration ruleConfig, final String type, final ShardingStrategyConfiguration shardingStrategyConfig) { if (type.equalsIgnoreCase(ShardingStrategyLevelType.TABLE.name())) { ruleConfig.setDefaultTableShardingStrategy(shardingStrategyConfig); } else { ruleConfig.setDefaultDatabaseShardingStrategy(shardingStrategyConfig); } } @Override public ShardingRuleConfiguration buildToBeDroppedRuleConfiguration(final ShardingRuleConfiguration toBeAlteredRuleConfig) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 146 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 289 |
} @Override public final ASTNode visitNumberLiterals(final NumberLiteralsContext ctx) { return new NumberLiteralValue(ctx.getText()); } @Override public final ASTNode visitHexadecimalLiterals(final HexadecimalLiteralsContext ctx) { // TODO deal with hexadecimalLiterals return new OtherLiteralValue(ctx.getText()); } @Override public final ASTNode visitBitValueLiterals(final BitValueLiteralsContext ctx) { // TODO deal with bitValueLiterals return new OtherLiteralValue(ctx.getText()); } @Override public final ASTNode visitBooleanLiterals(final BooleanLiteralsContext ctx) { return new BooleanLiteralValue(ctx.getText()); } @Override public final ASTNode visitNullValueLiterals(final NullValueLiteralsContext ctx) { return new NullLiteralValue(ctx.getText()); } @Override public final ASTNode visitIdentifier(final IdentifierContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sharding/distsql/handler/update/AlterShardingTableRuleExecutor.java | shardingsphere-sharding-distsql-handler | 70 |
org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableRuleExecutor.java | shardingsphere-sharding-distsql-handler | 108 |
} UnusedAlgorithmFinder.findUnusedShardingAlgorithm(rule.getConfiguration()).forEach(each -> result.getShardingAlgorithms().put(each, rule.getConfiguration().getShardingAlgorithms().get(each))); UnusedAlgorithmFinder.findUnusedKeyGenerator(rule.getConfiguration()).forEach(each -> result.getKeyGenerators().put(each, rule.getConfiguration().getKeyGenerators().get(each))); UnusedAlgorithmFinder.findUnusedAuditor(rule.getConfiguration()).forEach(each -> result.getAuditors().put(each, rule.getConfiguration().getAuditors().get(each))); return result; } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java | shardingsphere-jdbc | 736 |
org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java | shardingsphere-jdbc | 647 |
clearParameters(); } @SuppressWarnings("MagicConstant") @Override public int getResultSetType() { return statementOption.getResultSetType(); } @SuppressWarnings("MagicConstant") @Override public int getResultSetConcurrency() { return statementOption.getResultSetConcurrency(); } @Override public int getResultSetHoldability() { return statementOption.getResultSetHoldability(); } @Override public boolean isAccumulate() { for (DataNodeRuleAttribute each : metaDataContexts.getMetaData().getDatabase(databaseName).getRuleMetaData().getAttributes(DataNodeRuleAttribute.class)) { if (each.isNeedAccumulate(executionContext.getSqlStatementContext().getTablesContext().getTableNames())) { return true; } } return false; } @Override public Collection<PreparedStatement> getRoutedStatements() { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/AlterDatabaseRuleOperator.java | shardingsphere-infra-distsql-handler | 55 |
org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/CreateDatabaseRuleOperator.java | shardingsphere-infra-distsql-handler | 53 |
return modeContextManager.alterRuleConfiguration(database.getName(), decorateRuleConfiguration(database, toBeAlteredRuleConfig)); } @SuppressWarnings("unchecked") private RuleConfiguration decorateRuleConfiguration(final ShardingSphereDatabase database, final RuleConfiguration ruleConfig) { return TypedSPILoader.findService(RuleConfigurationDecorator.class, ruleConfig.getClass()).map(optional -> optional.decorate(database.getName(), database.getResourceMetaData().getStorageUnits().entrySet().stream() .collect(Collectors.toMap(Entry::getKey, entry -> entry.getValue().getDataSource(), (oldValue, currentValue) -> oldValue, LinkedHashMap::new)), database.getRuleMetaData().getRules(), ruleConfig)).orElse(ruleConfig); } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sharding/merge/dql/pagination/RowNumberDecoratorMergedResult.java | shardingsphere-sharding-core | 37 |
org/apache/shardingsphere/sharding/merge/dql/pagination/TopAndRowNumberDecoratorMergedResult.java | shardingsphere-sharding-core | 37 |
public RowNumberDecoratorMergedResult(final MergedResult mergedResult, final PaginationContext paginationContext) throws SQLException { super(mergedResult); this.paginationContext = paginationContext; skipAll = skipOffset(); } private boolean skipOffset() throws SQLException { long end = paginationContext.getActualOffset(); for (int i = 0; i < end; i++) { if (!getMergedResult().next()) { return true; } } rowNumber = end + 1; return false; } @Override public boolean next() throws SQLException { if (skipAll) { return false; } if (!paginationContext.getActualRowCount().isPresent()) { return getMergedResult().next(); } return rowNumber++ < paginationContext.getActualRowCount().get() && getMergedResult().next(); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/infra/connection/refresher/type/view/AlterViewStatementSchemaRefresher.java | shardingsphere-infra-context | 76 |
org/apache/shardingsphere/infra/connection/refresher/type/view/CreateViewStatementSchemaRefresher.java | shardingsphere-infra-context | 52 |
RuleMetaData ruleMetaData = new RuleMetaData(new LinkedList<>(database.getRuleMetaData().getRules())); if (TableRefreshUtils.isSingleTable(viewName, database)) { ruleMetaData.getAttributes(MutableDataNodeRuleAttribute.class).forEach(each -> each.put(logicDataSourceNames.iterator().next(), schemaName, viewName)); } GenericSchemaBuilderMaterial material = new GenericSchemaBuilderMaterial( database.getProtocolType(), database.getResourceMetaData().getStorageUnits(), ruleMetaData.getRules(), props, schemaName); Map<String, ShardingSphereSchema> schemaMap = GenericSchemaBuilder.build(Collections.singletonList(viewName), material); Optional<ShardingSphereTable> actualViewMetaData = Optional.ofNullable(schemaMap.get(schemaName)).map(optional -> optional.getTable(viewName)); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 230 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 230 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 178 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 331 |
return null == unreservedWord ? new IdentifierValue(ctx.getText()) : visit(unreservedWord); } @Override public final ASTNode visitUnreservedWord(final UnreservedWordContext ctx) { return new IdentifierValue(ctx.getText()); } @Override public final ASTNode visitSchemaName(final SchemaNameContext ctx) { return visit(ctx.identifier()); } @Override public final ASTNode visitTableName(final TableNameContext ctx) { SimpleTableSegment result = new SimpleTableSegment(new TableNameSegment(ctx.name().getStart().getStartIndex(), ctx.name().getStop().getStopIndex(), (IdentifierValue) visit(ctx.name()))); OwnerContext owner = ctx.owner(); if (null != owner) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 328 |
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 364 |
public final ASTNode visitTableName(final TableNameContext ctx) { SimpleTableSegment result = new SimpleTableSegment(new TableNameSegment(ctx.name().getStart().getStartIndex(), ctx.name().getStop().getStopIndex(), new IdentifierValue(ctx.name().identifier().getText()))); OwnerContext owner = ctx.owner(); if (null != owner) { result.setOwner(new OwnerSegment(owner.getStart().getStartIndex(), owner.getStop().getStopIndex(), (IdentifierValue) visit(owner.identifier()))); } return result; } @Override public final ASTNode visitColumnName(final ColumnNameContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 594 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 573 |
statementParameterMarkerSegments.add(segment); return segment; } if (astNode instanceof SubquerySegment) { return new SubqueryExpressionSegment((SubquerySegment) astNode); } if (astNode instanceof OtherLiteralValue) { return new CommonExpressionSegment(context.getStart().getStartIndex(), context.getStop().getStopIndex(), context.getText()); } return astNode; } @Override public final ASTNode visitSimpleExpr(final SimpleExprContext ctx) { int startIndex = ctx.getStart().getStartIndex(); int stopIndex = ctx.getStop().getStopIndex(); if (null != ctx.subquery()) { return new SubquerySegment(startIndex, stopIndex, (OracleSelectStatement) visit(ctx.subquery()), getOriginalText(ctx.subquery())); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/proxy/frontend/opengauss/command/OpenGaussCommandExecutorFactory.java | shardingsphere-proxy-frontend-opengauss | 90 |
org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecutorFactory.java | shardingsphere-proxy-frontend-postgresql | 85 |
result.add(getCommandExecutor((CommandPacketType) each.getIdentifier(), each, connectionSession, portalContext)); } return new PostgreSQLAggregatedCommandExecutor(result); } private static List<CommandExecutor> getExecutorsOfAggregatedBatchedStatements(final PostgreSQLAggregatedCommandPacket aggregatedCommandPacket, final ConnectionSession connectionSession, final PortalContext portalContext) throws SQLException { List<PostgreSQLCommandPacket> packets = aggregatedCommandPacket.getPackets(); int batchPacketBeginIndex = aggregatedCommandPacket.getBatchPacketBeginIndex(); int batchPacketEndIndex = aggregatedCommandPacket.getBatchPacketEndIndex(); List<CommandExecutor> result = new ArrayList<>(batchPacketBeginIndex + packets.size() - batchPacketEndIndex); for (int i = 0; i < batchPacketBeginIndex; i++) { PostgreSQLCommandPacket each = packets.get(i); result.add(getCommandExecutor((CommandPacketType) each.getIdentifier(), each, connectionSession, portalContext)); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/encrypt/distsql/parser/core/EncryptDistSQLStatementVisitor.java | shardingsphere-encrypt-distsql-parser | 110 |
org/apache/shardingsphere/mask/distsql/parser/core/MaskDistSQLStatementVisitor.java | shardingsphere-mask-distsql-parser | 94 |
org/apache/shardingsphere/globalclock/distsql/parser/core/GlobalClockDistSQLStatementVisitor.java | shardingsphere-global-clock-distsql-parser | 49 |
return new AlgorithmSegment(getIdentifierValue(ctx.algorithmTypeName()), getProperties(ctx.propertiesDefinition())); } private String getIdentifierValue(final ParseTree context) { return null == context ? null : new IdentifierValue(context.getText()).getValue(); } private Properties getProperties(final PropertiesDefinitionContext ctx) { Properties result = new Properties(); if (null == ctx || null == ctx.properties()) { return result; } for (PropertyContext each : ctx.properties().property()) { result.setProperty(IdentifierValue.getQuotedContent(each.key.getText()), IdentifierValue.getQuotedContent(each.value.getText())); } return result; } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 269 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 126 |
return visit(ctx.temporalLiterals()); } if (null != ctx.hexadecimalLiterals()) { return visit(ctx.hexadecimalLiterals()); } if (null != ctx.bitValueLiterals()) { return visit(ctx.bitValueLiterals()); } if (null != ctx.booleanLiterals()) { return visit(ctx.booleanLiterals()); } if (null != ctx.nullValueLiterals()) { return visit(ctx.nullValueLiterals()); } throw new IllegalStateException("Literals must have string, number, dateTime, hex, bit, boolean or null."); } @Override public final ASTNode visitStringLiterals(final StringLiteralsContext ctx) { return new StringLiteralValue(ctx.getText()); } @Override public ASTNode visitString_(final String_Context ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/proxy/frontend/opengauss/command/OpenGaussCommandExecutorFactory.java | shardingsphere-proxy-frontend-opengauss | 120 |
org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecutorFactory.java | shardingsphere-proxy-frontend-postgresql | 112 |
return new OpenGaussComQueryExecutor(portalContext, (PostgreSQLComQueryPacket) commandPacket, connectionSession); case PARSE_COMMAND: return new PostgreSQLComParseExecutor((PostgreSQLComParsePacket) commandPacket, connectionSession); case BIND_COMMAND: return new PostgreSQLComBindExecutor(portalContext, (PostgreSQLComBindPacket) commandPacket, connectionSession); case DESCRIBE_COMMAND: return new PostgreSQLComDescribeExecutor(portalContext, (PostgreSQLComDescribePacket) commandPacket, connectionSession); case EXECUTE_COMMAND: return new PostgreSQLComExecuteExecutor(portalContext, (PostgreSQLComExecutePacket) commandPacket); case SYNC_COMMAND: return new PostgreSQLComSyncExecutor(connectionSession); case CLOSE_COMMAND: return new PostgreSQLComCloseExecutor(portalContext, (PostgreSQLComClosePacket) commandPacket, connectionSession); case FLUSH_COMMAND: return new PostgreSQLComFlushExecutor(); case TERMINATE: return new PostgreSQLComTerminationExecutor(); default: return new PostgreSQLUnsupportedCommandExecutor(); } } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/encrypt/rule/changed/EncryptTableChangedProcessor.java | shardingsphere-encrypt-core | 43 |
org/apache/shardingsphere/encrypt/rule/changed/EncryptorChangedProcessor.java | shardingsphere-encrypt-core | 44 |
return new YamlEncryptTableRuleConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent, YamlEncryptTableRuleConfiguration.class)); } @Override public EncryptRuleConfiguration findRuleConfiguration(final ShardingSphereDatabase database) { return database.getRuleMetaData().findSingleRule(EncryptRule.class) .map(optional -> getEncryptRuleConfiguration(optional.getConfiguration())) .orElseGet(() -> new EncryptRuleConfiguration(new LinkedList<>(), new LinkedHashMap<>())); } private EncryptRuleConfiguration getEncryptRuleConfiguration(final EncryptRuleConfiguration config) { return null == config.getTables() ? new EncryptRuleConfiguration(new LinkedList<>(), config.getEncryptors()) : config; } @Override public void changeRuleItemConfiguration(final AlterRuleItemEvent event, final EncryptRuleConfiguration currentRuleConfig, final EncryptTableRuleConfiguration toBeChangedItemConfig) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java | shardingsphere-jdbc | 527 |
org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java | shardingsphere-jdbc | 597 |
} @Override public ResultSet getResultSet() throws SQLException { if (null != currentResultSet) { return currentResultSet; } if (null != trafficInstanceId) { return executor.getTrafficExecutor().getResultSet(); } if (useFederation) { return executor.getSqlFederationEngine().getResultSet(); } if (executionContext.getSqlStatementContext() instanceof SelectStatementContext || executionContext.getSqlStatementContext().getSqlStatement() instanceof DALStatement) { List<ResultSet> resultSets = getResultSets(); if (resultSets.isEmpty()) { return currentResultSet; } SQLStatementContext sqlStatementContext = executionContext.getSqlStatementContext(); MergedResult mergedResult = mergeQuery(getQueryResults(resultSets), sqlStatementContext); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/data/pipeline/opengauss/check/datasource/OpenGaussDataSourceChecker.java | shardingsphere-data-pipeline-opengauss | 37 |
org/apache/shardingsphere/data/pipeline/postgresql/check/datasource/PostgreSQLDataSourceChecker.java | shardingsphere-data-pipeline-postgresql | 39 |
public final class OpenGaussDataSourceChecker implements DialectDataSourceChecker { private static final String SHOW_GRANTS_SQL = "SELECT * FROM pg_roles WHERE rolname = ?"; @Override public void checkPrivilege(final DataSource dataSource) { try (Connection connection = dataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(SHOW_GRANTS_SQL)) { DatabaseMetaData metaData = connection.getMetaData(); preparedStatement.setString(1, metaData.getUserName()); try (ResultSet resultSet = preparedStatement.executeQuery()) { String username = metaData.getUserName(); ShardingSpherePreconditions.checkState(resultSet.next(), () -> new PrepareJobWithoutUserException(username)); String isSuperRole = resultSet.getString("rolsuper"); String isReplicationRole = resultSet.getString("rolreplication"); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/data/pipeline/cdc/distsql/parser/core/CDCDistSQLStatementVisitor.java | shardingsphere-data-pipeline-distsql-parser | 134 |
org/apache/shardingsphere/traffic/distsql/parser/core/TrafficDistSQLStatementVisitor.java | shardingsphere-traffic-distsql-parser | 66 |
return visit(ctx.algorithmDefinition()); } @Override public ASTNode visitAlgorithmDefinition(final AlgorithmDefinitionContext ctx) { return new AlgorithmSegment(getIdentifierValue(ctx.algorithmTypeName()), buildProperties(ctx.propertiesDefinition())); } private Properties buildProperties(final PropertiesDefinitionContext ctx) { Properties result = new Properties(); if (null == ctx) { return result; } for (PropertyContext each : ctx.properties().property()) { result.setProperty(IdentifierValue.getQuotedContent(each.key.getText()), IdentifierValue.getQuotedContent(each.value.getText())); } return result; } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 398 |
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 408 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 214 |
for (ViewNameContext each : ctx.viewName()) { result.getValue().add((SimpleTableSegment) visit(each)); } return result; } @Override public final ASTNode visitColumnNames(final ColumnNamesContext ctx) { CollectionValue<ColumnSegment> result = new CollectionValue<>(); for (ColumnNameContext each : ctx.columnName()) { result.getValue().add((ColumnSegment) visit(each)); } return result; } @Override public final ASTNode visitExpr(final ExprContext ctx) { if (null != ctx.booleanPrimary()) { return visit(ctx.booleanPrimary()); } if (null != ctx.XOR()) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/encrypt/distsql/handler/update/AlterEncryptRuleExecutor.java | shardingsphere-encrypt-distsql-handler | 76 |
org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleExecutor.java | shardingsphere-encrypt-distsql-handler | 79 |
private void checkColumnNames(final AlterEncryptRuleStatement sqlStatement) { for (EncryptRuleSegment each : sqlStatement.getRules()) { ShardingSpherePreconditions.checkState(isColumnNameNotConflicts(each), () -> new InvalidRuleConfigurationException("encrypt", "assisted query column or like query column conflicts with logic column")); } } private boolean isColumnNameNotConflicts(final EncryptRuleSegment rule) { return rule.getColumns().stream().noneMatch(each -> null != each.getLikeQuery() && each.getName().equals(each.getLikeQuery().getName()) || null != each.getAssistedQuery() && each.getName().equals(each.getAssistedQuery().getName())); } private void checkToBeAlteredEncryptors(final AlterEncryptRuleStatement sqlStatement) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sharding/rule/ShardingRule.java | shardingsphere-sharding-core | 154 |
org/apache/shardingsphere/sharding/distsql/handler/checker/ShardingTableRuleStatementChecker.java | shardingsphere-sharding-distsql-handler | 174 |
private Collection<String> getDataSourceNames(final Collection<ShardingTableRuleConfiguration> tableRuleConfigs, final Collection<ShardingAutoTableRuleConfiguration> autoTableRuleConfigs, final Collection<String> dataSourceNames) { if (tableRuleConfigs.isEmpty() && autoTableRuleConfigs.isEmpty()) { return dataSourceNames; } if (tableRuleConfigs.stream().map(ShardingTableRuleConfiguration::getActualDataNodes).anyMatch(each -> null == each || each.isEmpty())) { return dataSourceNames; } Collection<String> result = new LinkedHashSet<>(); tableRuleConfigs.forEach(each -> result.addAll(getDataSourceNames(each))); autoTableRuleConfigs.forEach(each -> result.addAll(getDataSourceNames(each))); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 573 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 337 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 536 |
return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } private BetweenExpression createBetweenSegment(final PredicateContext ctx) { ExpressionSegment left = (ExpressionSegment) visit(ctx.bitExpr(0)); ExpressionSegment between = (ExpressionSegment) visit(ctx.bitExpr(1)); ExpressionSegment and = (ExpressionSegment) visit(ctx.predicate()); boolean not = null != ctx.NOT(); return new BetweenExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, between, and, not); } @Override public final ASTNode visitBitExpr(final BitExprContext ctx) { if (null != ctx.simpleExpr()) { return visit(ctx.simpleExpr()); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/impl/InstallComponentStatementAssert.java | shardingsphere-test-it-parser | 45 |
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/impl/UninstallComponentStatementAssert.java | shardingsphere-test-it-parser | 45 |
public static void assertIs(final SQLCaseAssertContext assertContext, final MySQLInstallComponentStatement actual, final InstallComponentStatementTestCase expected) { assertThat(assertContext.getText("Actual components size assertion error: "), actual.getComponents().size(), is(expected.getComponents().size())); assertComponents(assertContext, actual.getComponents(), expected.getComponents()); } private static void assertComponents(final SQLCaseAssertContext assertContext, final List<String> actual, final List<ExpectedComponent> expected) { int count = 0; for (String each : actual) { assertThat(assertContext.getText("Actual component value does not match: "), each, is(expected.get(count).getName())); count++; } } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/data/pipeline/cdc/core/prepare/CDCJobPreparer.java | shardingsphere-data-pipeline-cdc-core | 102 |
org/apache/shardingsphere/data/pipeline/scenario/migration/preparer/MigrationJobPreparer.java | shardingsphere-data-pipeline-scenario-migration | 176 |
CDCTaskConfiguration taskConfig = jobItemContext.getTaskConfig(); JobItemIncrementalTasksProgress initIncremental = null == jobItemContext.getInitProgress() ? null : jobItemContext.getInitProgress().getIncremental(); try { DatabaseType databaseType = taskConfig.getDumperContext().getCommonContext().getDataSourceConfig().getDatabaseType(); IngestPosition position = new IncrementalTaskPositionManager(databaseType).getPosition(initIncremental, taskConfig.getDumperContext(), jobItemContext.getDataSourceManager()); taskConfig.getDumperContext().getCommonContext().setPosition(position); } catch (final SQLException ex) { throw new PrepareJobWithGetBinlogPositionException(jobItemContext.getJobId(), ex); } } private void initInventoryTasks(final CDCJobItemContext jobItemContext, final AtomicBoolean importerUsed, final List<CDCChannelProgressPair> channelProgressPairs) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/traffic/distsql/parser/core/TrafficDistSQLStatementVisitor.java | shardingsphere-traffic-distsql-parser | 66 |
org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java | shardingsphere-parser-distsql-engine | 295 |
return null == ctx ? null : visit(ctx.algorithmDefinition()); } @Override public ASTNode visitAlgorithmDefinition(final AlgorithmDefinitionContext ctx) { return new AlgorithmSegment(getIdentifierValue(ctx.algorithmTypeName()), buildProperties(ctx.propertiesDefinition())); } private Properties buildProperties(final PropertiesDefinitionContext ctx) { Properties result = new Properties(); if (null == ctx) { return result; } for (PropertyContext each : ctx.properties().property()) { result.setProperty(IdentifierValue.getQuotedContent(each.key.getText()), IdentifierValue.getQuotedContent(each.value.getText())); } return result; } @Override public ASTNode visitShowTrafficRules(final ShowTrafficRulesContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 607 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 590 |
return new SubqueryExpressionSegment(subquerySegment); } if (null != ctx.parameterMarker()) { ParameterMarkerValue parameterMarker = (ParameterMarkerValue) visit(ctx.parameterMarker()); ParameterMarkerExpressionSegment result = new ParameterMarkerExpressionSegment(startIndex, stopIndex, parameterMarker.getValue(), parameterMarker.getType()); parameterMarkerSegments.add(result); return result; } if (null != ctx.literals()) { return SQLUtils.createLiteralExpression(visit(ctx.literals()), startIndex, stopIndex, ctx.literals().start.getInputStream().getText(new Interval(startIndex, stopIndex))); } if (null != ctx.intervalExpression()) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 1931 |
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 1947 |
public ASTNode visitLimitRowCount(final LimitRowCountContext ctx) { if (null != ctx.numberLiterals()) { return new NumberLiteralLimitValueSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ((NumberLiteralValue) visit(ctx.numberLiterals())).getValue().longValue()); } ParameterMarkerSegment result = new ParameterMarkerLimitValueSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ((ParameterMarkerValue) visit(ctx.parameterMarker())).getValue()); parameterMarkerSegments.add(result); return result; } @Override public final ASTNode visitConstraintName(final ConstraintNameContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sharding/distsql/handler/update/AlterDefaultShardingStrategyExecutor.java | shardingsphere-sharding-distsql-handler | 72 |
org/apache/shardingsphere/sharding/distsql/handler/update/DropDefaultShardingStrategyExecutor.java | shardingsphere-sharding-distsql-handler | 52 |
private void checkExist(final AlterDefaultShardingStrategyStatement sqlStatement) { Optional<ShardingStrategyConfiguration> strategyConfig = getStrategyConfiguration(sqlStatement.getDefaultType()); ShardingSpherePreconditions.checkState(strategyConfig.isPresent(), () -> new MissingRequiredRuleException(String.format("Default sharding %s strategy", sqlStatement.getDefaultType().toLowerCase()), database.getName())); } private Optional<ShardingStrategyConfiguration> getStrategyConfiguration(final String type) { ShardingStrategyConfiguration result = type.equalsIgnoreCase(ShardingStrategyLevelType.TABLE.name()) ? rule.getConfiguration().getDefaultTableShardingStrategy() : rule.getConfiguration().getDefaultDatabaseShardingStrategy(); return Optional.ofNullable(result); } @Override public ShardingRuleConfiguration buildToBeAlteredRuleConfiguration(final AlterDefaultShardingStrategyStatement sqlStatement) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/mode/manager/cluster/ClusterModeContextManager.java | shardingsphere-cluster-mode-core | 87 |
org/apache/shardingsphere/mode/manager/standalone/StandaloneModeContextManager.java | shardingsphere-standalone-mode-core | 204 |
Map<String, ShardingSphereView> views = alterSchemaMetaDataPOJO.getAlteredViews().stream().collect(Collectors.toMap(ShardingSphereView::getName, view -> view)); DatabaseMetaDataBasedPersistService databaseMetaDataService = contextManager.getMetaDataContexts().getPersistService().getDatabaseMetaDataService(); databaseMetaDataService.getTableMetaDataPersistService().persist(databaseName, schemaName, tables); databaseMetaDataService.getViewMetaDataPersistService().persist(databaseName, schemaName, views); alterSchemaMetaDataPOJO.getDroppedTables().forEach(each -> databaseMetaDataService.getTableMetaDataPersistService().delete(databaseName, schemaName, each)); alterSchemaMetaDataPOJO.getDroppedViews().forEach(each -> databaseMetaDataService.getViewMetaDataPersistService().delete(databaseName, schemaName, each)); } @Override public void registerStorageUnits(final String databaseName, final Map<String, DataSourcePoolProperties> toBeRegisteredProps) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 272 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 272 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 209 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 396 |
} @Override public final ASTNode visitTableNames(final TableNamesContext ctx) { CollectionValue<SimpleTableSegment> result = new CollectionValue<>(); for (TableNameContext each : ctx.tableName()) { result.getValue().add((SimpleTableSegment) visit(each)); } return result; } @Override public final ASTNode visitColumnNames(final ColumnNamesContext ctx) { CollectionValue<ColumnSegment> result = new CollectionValue<>(); for (ColumnNameContext each : ctx.columnName()) { result.getValue().add((ColumnSegment) visit(each)); } return result; } @Override public ASTNode visitAExpr(final AExprContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 947 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/type/SQLServerDCLStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 113 |
public final ASTNode visitViewName(final ViewNameContext ctx) { SimpleTableSegment result = new SimpleTableSegment(new TableNameSegment(ctx.name().getStart().getStartIndex(), ctx.name().getStop().getStopIndex(), (IdentifierValue) visit(ctx.name()))); OwnerContext owner = ctx.owner(); if (null != owner) { result.setOwner(new OwnerSegment(owner.getStart().getStartIndex(), owner.getStop().getStopIndex(), (IdentifierValue) visit(owner.identifier()))); } return result; } @Override public ASTNode visitSelect(final SelectContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdvice.java | shardingsphere-agent-tracing-opentelemetry | 56 |
org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdvice.java | shardingsphere-agent-tracing-opentelemetry | 49 |
} @Override public void afterMethod(final TargetAdviceObject target, final Method method, final Object[] args, final Object result, final String pluginType) { Span span = (Span) target.getAttachment(); span.setStatus(StatusCode.OK); span.end(); } @Override public void onThrowing(final TargetAdviceObject target, final Method method, final Object[] args, final Throwable throwable, final String pluginType) { Span span = (Span) target.getAttachment(); span.setStatus(StatusCode.ERROR).recordException(throwable); span.end(); } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 943 |
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 780 |
if (null != ctx.distinct()) { AggregationDistinctProjectionSegment result = new AggregationDistinctProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), type, getOriginalText(ctx), getDistinctExpression(ctx)); result.getParameters().addAll(getExpressions(ctx.expr())); return result; } AggregationProjectionSegment result = new AggregationProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), type, getOriginalText(ctx)); result.getParameters().addAll(getExpressions(ctx.expr())); return result; } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 244 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 244 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 192 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 947 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/type/SQLServerDCLStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 113 |
public final ASTNode visitTableName(final TableNameContext ctx) { SimpleTableSegment result = new SimpleTableSegment(new TableNameSegment(ctx.name().getStart().getStartIndex(), ctx.name().getStop().getStopIndex(), (IdentifierValue) visit(ctx.name()))); OwnerContext owner = ctx.owner(); if (null != owner) { result.setOwner(new OwnerSegment(owner.getStart().getStartIndex(), owner.getStop().getStopIndex(), (IdentifierValue) visit(owner.identifier()))); } return result; } @Override public final ASTNode visitColumnName(final ColumnNameContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDDLStatementVisitor.java | shardingsphere-parser-sql-oracle | 658 |
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDDLStatementVisitor.java | shardingsphere-parser-sql-oracle | 679 |
Collection<ColumnSegment> columns = new LinkedList<>(); if (null != ctx.columnOrColumnList().columnName()) { columns.add((ColumnSegment) visit(ctx.columnOrColumnList().columnName())); } else { for (ColumnNameContext each : ctx.columnOrColumnList().columnNames().columnName()) { columns.add((ColumnSegment) visit(each)); } } return new DropColumnDefinitionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), columns); } @Override public ASTNode visitModifyColProperties(final ModifyColPropertiesContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/db/protocol/opengauss/codec/OpenGaussPacketCodecEngine.java | shardingsphere-opengauss-protocol | 123 |
org/apache/shardingsphere/db/protocol/postgresql/codec/PostgreSQLPacketCodecEngine.java | shardingsphere-postgresql-protocol | 121 |
PostgreSQLMessageSeverityLevel.ERROR, PostgreSQLVendorError.SYSTEM_ERROR.getSqlState().getValue(), ex.getMessage()); isIdentifierPacket = true; prepareMessageHeader(out, errorResponsePacket.getIdentifier().getValue()); errorResponsePacket.write(payload); } finally { if (isIdentifierPacket) { updateMessageLength(out); } } } private void prepareMessageHeader(final ByteBuf out, final char type) { out.writeByte(type); out.writeInt(0); } private void updateMessageLength(final ByteBuf out) { out.setInt(1, out.readableBytes() - MESSAGE_TYPE_LENGTH); } @Override public PostgreSQLPacketPayload createPacketPayload(final ByteBuf message, final Charset charset) { return new PostgreSQLPacketPayload(message, charset); } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/infra/binder/context/segment/insert/values/InsertValueContext.java | shardingsphere-infra-binder | 53 |
org/apache/shardingsphere/infra/binder/context/segment/insert/values/OnDuplicateUpdateContext.java | shardingsphere-infra-binder | 57 |
parameters = getParameters(params, parametersOffset); } private List<ExpressionSegment> getValueExpressions(final Collection<ExpressionSegment> assignments) { List<ExpressionSegment> result = new ArrayList<>(assignments.size()); result.addAll(assignments); return result; } private List<Object> getParameters(final List<Object> params, final int paramsOffset) { if (params.isEmpty() || 0 == parameterCount) { return Collections.emptyList(); } List<Object> result = new ArrayList<>(parameterCount); result.addAll(params.subList(paramsOffset, paramsOffset + parameterCount)); return result; } /** * Get literal value. * * @param index index * @return literal value */ public Optional<Object> getLiteralValue(final int index) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 1578 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 1419 |
result.setLimit((LimitSegment) visit(ctx.limitClause())); } result.addParameterMarkerSegments(getParameterMarkerSegments()); return result; } @Override public ASTNode visitSingleTableClause(final SingleTableClauseContext ctx) { SimpleTableSegment result = (SimpleTableSegment) visit(ctx.tableName()); if (null != ctx.alias()) { result.setAlias((AliasSegment) visit(ctx.alias())); } return result; } @Override public ASTNode visitMultipleTablesClause(final MultipleTablesClauseContext ctx) { DeleteMultiTableSegment result = new DeleteMultiTableSegment(); TableSegment relateTableSource = (TableSegment) visit(ctx.tableReferences()); result.setRelationTable(relateTableSource); result.setActualDeleteTables(generateTablesFromTableAliasRefList(ctx.tableAliasRefList())); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java | shardingsphere-parser-sql-sql92 | 275 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 1454 |
} @Override public ASTNode visitProjection(final ProjectionContext ctx) { // FIXME :The stop index of project is the stop index of projection, instead of alias. if (null != ctx.qualifiedShorthand()) { QualifiedShorthandContext shorthand = ctx.qualifiedShorthand(); ShorthandProjectionSegment result = new ShorthandProjectionSegment(shorthand.getStart().getStartIndex(), shorthand.getStop().getStopIndex()); IdentifierValue identifier = new IdentifierValue(shorthand.identifier().getText()); result.setOwner(new OwnerSegment(shorthand.identifier().getStart().getStartIndex(), shorthand.identifier().getStop().getStopIndex(), identifier)); return result; } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGenerator.java | shardingsphere-encrypt-core | 112 |
org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingInsertValuesTokenGenerator.java | shardingsphere-sharding-core | 62 |
result.getInsertValues().add(insertValueToken); } return result; } private int getStartIndex(final Collection<InsertValuesSegment> segments) { int result = segments.iterator().next().getStartIndex(); for (InsertValuesSegment each : segments) { result = Math.min(result, each.getStartIndex()); } return result; } private int getStopIndex(final Collection<InsertValuesSegment> segments) { int result = segments.iterator().next().getStopIndex(); for (InsertValuesSegment each : segments) { result = Math.max(result, each.getStopIndex()); } return result; } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/data/pipeline/cdc/distsql/parser/core/CDCDistSQLStatementVisitor.java | shardingsphere-data-pipeline-distsql-parser | 134 |
org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java | shardingsphere-parser-distsql-engine | 295 |
return visit(ctx.algorithmDefinition()); } @Override public ASTNode visitAlgorithmDefinition(final AlgorithmDefinitionContext ctx) { return new AlgorithmSegment(getIdentifierValue(ctx.algorithmTypeName()), buildProperties(ctx.propertiesDefinition())); } private Properties buildProperties(final PropertiesDefinitionContext ctx) { Properties result = new Properties(); if (null == ctx) { return result; } for (PropertyContext each : ctx.properties().property()) { result.setProperty(IdentifierValue.getQuotedContent(each.key.getText()), IdentifierValue.getQuotedContent(each.value.getText())); } return result; } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/logging/yaml/swapper/YamlLoggingDataNodeRuleConfigurationSwapper.java | shardingsphere-logging-core | 64 |
org/apache/shardingsphere/logging/yaml/swapper/YamlLoggingRuleConfigurationSwapper.java | shardingsphere-logging-core | 42 |
private LoggingRuleConfiguration swapToObject(final YamlLoggingRuleConfiguration yamlConfig) { LoggingRuleConfiguration result = new LoggingRuleConfiguration(YamlLoggersConfigurationConverter.convertShardingSphereLogger(yamlConfig.getLoggers()), YamlAppendersConfigurationConverter.convertShardingSphereAppender(yamlConfig.getAppenders())); if (null == result.getLoggers()) { result = getDefaultLoggingRuleConfiguration(); } return result; } private LoggingRuleConfiguration getDefaultLoggingRuleConfiguration() { return new DefaultLoggingRuleConfigurationBuilder().build(); } @Override public Class<LoggingRuleConfiguration> getTypeClass() { return LoggingRuleConfiguration.class; } @Override public String getRuleTagName() { return "LOGGING"; } @Override public int getOrder() { return LoggingOrder.ORDER; } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 304 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 293 |
return new OtherLiteralValue(ctx.getText()); } @Override public final ASTNode visitHexadecimalLiterals(final HexadecimalLiteralsContext ctx) { // TODO deal with hexadecimalLiterals return new OtherLiteralValue(ctx.getText()); } @Override public final ASTNode visitBitValueLiterals(final BitValueLiteralsContext ctx) { // TODO deal with bitValueLiterals return new OtherLiteralValue(ctx.getText()); } @Override public final ASTNode visitBooleanLiterals(final BooleanLiteralsContext ctx) { return new BooleanLiteralValue(ctx.getText()); } @Override public final ASTNode visitNullValueLiterals(final NullValueLiteralsContext ctx) { return new NullLiteralValue(ctx.getText()); } @Override public final ASTNode visitIdentifier(final IdentifierContext ctx) { return new IdentifierValue(ctx.getText()); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 1412 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java | shardingsphere-parser-sql-sql92 | 123 |
} else { result.setInsertColumns(new InsertColumnsSegment(ctx.start.getStartIndex() - 1, ctx.start.getStartIndex() - 1, Collections.emptyList())); } result.getValues().addAll(createInsertValuesSegments(ctx.assignmentValues())); return result; } private Collection<InsertValuesSegment> createInsertValuesSegments(final Collection<AssignmentValuesContext> assignmentValuesContexts) { Collection<InsertValuesSegment> result = new LinkedList<>(); for (AssignmentValuesContext each : assignmentValuesContexts) { result.add((InsertValuesSegment) visit(each)); } return result; } @Override public ASTNode visitOnDuplicateKeyClause(final OnDuplicateKeyClauseContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java | shardingsphere-parser-sql-mysql | 253 |
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 265 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 338 |
MySQLCreateTableStatement result = new MySQLCreateTableStatement(null != ctx.ifNotExists()); result.setTable((SimpleTableSegment) visit(ctx.tableName())); if (null != ctx.createDefinitionClause()) { CollectionValue<CreateDefinitionSegment> createDefinitions = (CollectionValue<CreateDefinitionSegment>) visit(ctx.createDefinitionClause()); for (CreateDefinitionSegment each : createDefinitions.getValue()) { if (each instanceof ColumnDefinitionSegment) { result.getColumnDefinitions().add((ColumnDefinitionSegment) each); } else if (each instanceof ConstraintDefinitionSegment) { result.getConstraintDefinitions().add((ConstraintDefinitionSegment) each); } } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDDLStatementVisitor.java | shardingsphere-parser-sql-oracle | 385 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DDLStatementVisitor.java | shardingsphere-parser-sql-sql92 | 68 |
OracleCreateTableStatement result = new OracleCreateTableStatement(); result.setTable((SimpleTableSegment) visit(ctx.tableName())); if (null != ctx.createDefinitionClause()) { CollectionValue<CreateDefinitionSegment> createDefinitions = (CollectionValue<CreateDefinitionSegment>) visit(ctx.createDefinitionClause()); for (CreateDefinitionSegment each : createDefinitions.getValue()) { if (each instanceof ColumnDefinitionSegment) { result.getColumnDefinitions().add((ColumnDefinitionSegment) each); } else if (each instanceof ConstraintDefinitionSegment) { result.getConstraintDefinitions().add((ConstraintDefinitionSegment) each); } } } return result; } @Override public ASTNode visitCreateType(final CreateTypeContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/infra/binder/segment/expression/impl/BinaryOperationExpressionBinder.java | shardingsphere-infra-binder | 35 |
org/apache/shardingsphere/infra/binder/segment/parameter/impl/ParameterMarkerExpressionSegmentBinder.java | shardingsphere-infra-binder | 38 |
public final class BinaryOperationExpressionBinder { /** * Bind binary operation expression with metadata. * * @param segment binary operation expression segment * @param parentSegmentType parent segment type * @param statementBinderContext statement binder context * @param tableBinderContexts table binder contexts * @param outerTableBinderContexts outer table binder contexts * @return bounded binary operation expression segment */ public static BinaryOperationExpression bind(final BinaryOperationExpression segment, final SegmentType parentSegmentType, final SQLStatementBinderContext statementBinderContext, final Map<String, TableSegmentBinderContext> tableBinderContexts, final Map<String, TableSegmentBinderContext> outerTableBinderContexts) { ExpressionSegment boundedLeft = ExpressionSegmentBinder.bind(segment.getLeft(), parentSegmentType, statementBinderContext, tableBinderContexts, outerTableBinderContexts); ExpressionSegment boundedRight = ExpressionSegmentBinder.bind(segment.getRight(), parentSegmentType, statementBinderContext, tableBinderContexts, outerTableBinderContexts); return new BinaryOperationExpression(segment.getStartIndex(), segment.getStopIndex(), boundedLeft, boundedRight, segment.getOperator(), segment.getText()); } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 304 |
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 281 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 150 |
return new OtherLiteralValue(ctx.getText()); } @Override public final ASTNode visitHexadecimalLiterals(final HexadecimalLiteralsContext ctx) { // TODO deal with hexadecimalLiterals return new OtherLiteralValue(ctx.getText()); } @Override public final ASTNode visitBitValueLiterals(final BitValueLiteralsContext ctx) { // TODO deal with bitValueLiterals return new OtherLiteralValue(ctx.getText()); } @Override public final ASTNode visitBooleanLiterals(final BooleanLiteralsContext ctx) { return new BooleanLiteralValue(ctx.getText()); } @Override public final ASTNode visitNullValueLiterals(final NullValueLiteralsContext ctx) { return new NullLiteralValue(ctx.getText()); } @Override public final ASTNode visitIdentifier(final IdentifierContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 265 |
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDDLStatementVisitor.java | shardingsphere-parser-sql-oracle | 385 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 338 |
OpenGaussCreateTableStatement result = new OpenGaussCreateTableStatement(null != ctx.ifNotExists()); result.setTable((SimpleTableSegment) visit(ctx.tableName())); if (null != ctx.createDefinitionClause()) { CollectionValue<CreateDefinitionSegment> createDefinitions = (CollectionValue<CreateDefinitionSegment>) visit(ctx.createDefinitionClause()); for (CreateDefinitionSegment each : createDefinitions.getValue()) { if (each instanceof ColumnDefinitionSegment) { result.getColumnDefinitions().add((ColumnDefinitionSegment) each); } else if (each instanceof ConstraintDefinitionSegment) { result.getConstraintDefinitions().add((ConstraintDefinitionSegment) each); } } } return result; } @Override public ASTNode visitCreateDefinitionClause(final CreateDefinitionClauseContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java | shardingsphere-parser-sql-sql92 | 409 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 1598 |
SubqueryTableSegment result = new SubqueryTableSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), subquerySegment); if (null != ctx.alias()) { result.setAlias((AliasSegment) visit(ctx.alias())); } return result; } if (null != ctx.tableName()) { SimpleTableSegment result = (SimpleTableSegment) visit(ctx.tableName()); if (null != ctx.alias()) { result.setAlias((AliasSegment) visit(ctx.alias())); } return result; } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/infra/database/h2/metadata/data/loader/H2MetaDataLoader.java | shardingsphere-infra-database-h2 | 72 |
org/apache/shardingsphere/infra/database/sqlserver/metadata/data/loader/SQLServerMetaDataLoader.java | shardingsphere-infra-database-sqlserver | 72 |
Map<String, Collection<IndexMetaData>> indexMetaDataMap = columnMetaDataMap.isEmpty() ? Collections.emptyMap() : loadIndexMetaData(connection, columnMetaDataMap.keySet()); for (Entry<String, Collection<ColumnMetaData>> entry : columnMetaDataMap.entrySet()) { Collection<IndexMetaData> indexMetaDataList = indexMetaDataMap.getOrDefault(entry.getKey(), Collections.emptyList()); tableMetaDataList.add(new TableMetaData(entry.getKey(), entry.getValue(), indexMetaDataList, Collections.emptyList())); } } return Collections.singleton(new SchemaMetaData(material.getDefaultSchemaName(), tableMetaDataList)); } private Map<String, Collection<ColumnMetaData>> loadColumnMetaDataMap(final Connection connection, final Collection<String> tables) throws SQLException { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 668 |
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 1224 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 668 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 541 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 921 |
result.setStartIndex(ctx.start.getStartIndex()); result.setStopIndex(ctx.stop.getStopIndex()); if (null != ctx.dataTypeLength()) { DataTypeLengthSegment dataTypeLengthSegment = (DataTypeLengthSegment) visit(ctx.dataTypeLength()); result.setDataLength(dataTypeLengthSegment); } return result; } @Override public final ASTNode visitDataTypeLength(final DataTypeLengthContext ctx) { DataTypeLengthSegment result = new DataTypeLengthSegment(); result.setStartIndex(ctx.start.getStartIndex()); result.setStopIndex(ctx.stop.getStartIndex()); List<TerminalNode> numbers = ctx.NUMBER_(); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 841 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 954 |
OpenGaussCreateSchemaStatement result = new OpenGaussCreateSchemaStatement(); if (null != ctx.createSchemaClauses().colId()) { result.setSchemaName(new IdentifierValue(ctx.createSchemaClauses().colId().getText())); } if (null != ctx.createSchemaClauses().roleSpec() && null != ctx.createSchemaClauses().roleSpec().identifier()) { result.setUsername((IdentifierValue) visit(ctx.createSchemaClauses().roleSpec().identifier())); } return result; } @Override public ASTNode visitAlterSchema(final AlterSchemaContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 992 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 457 |
for (ExprContext each : exprList) { result.add((ExpressionSegment) visit(each)); } return result; } private String getDistinctExpression(final AggregationFunctionContext ctx) { StringBuilder result = new StringBuilder(); for (int i = 3; i < ctx.getChildCount() - 1; i++) { result.append(ctx.getChild(i).getText()); } return result.toString(); } @Override public final ASTNode visitSpecialFunction(final SpecialFunctionContext ctx) { if (null != ctx.castFunction()) { return visit(ctx.castFunction()); } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/encrypt/rewrite/condition/impl/EncryptBinaryCondition.java | shardingsphere-encrypt-core | 79 |
org/apache/shardingsphere/encrypt/rewrite/condition/impl/EncryptInCondition.java | shardingsphere-encrypt-core | 71 |
} } @Override public List<Object> getValues(final List<Object> params) { List<Object> result = new ArrayList<>(positionValueMap.values()); for (Entry<Integer, Integer> entry : positionIndexMap.entrySet()) { Object param = params.get(entry.getValue()); if (entry.getKey() < result.size()) { result.add(entry.getKey(), param); } else { result.add(param); } } return result; } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/infra/database/opengauss/metadata/data/loader/OpenGaussMetaDataLoader.java | shardingsphere-infra-database-opengauss | 139 |
org/apache/shardingsphere/infra/database/postgresql/metadata/data/loader/PostgreSQLMetaDataLoader.java | shardingsphere-infra-database-postgresql | 170 |
} private String getColumnMetaDataSQL(final Collection<String> schemaNames, final Collection<String> tables) { String schemaNameParam = schemaNames.stream().map(each -> String.format("'%s'", each)).collect(Collectors.joining(",")); return tables.isEmpty() ? String.format(TABLE_META_DATA_SQL_WITHOUT_TABLES, schemaNameParam) : String.format(TABLE_META_DATA_SQL_WITH_TABLES, schemaNameParam, tables.stream().map(each -> String.format("'%s'", each)).collect(Collectors.joining(","))); } private Collection<String> loadPrimaryKeys(final Connection connection, final Collection<String> schemaNames) throws SQLException { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/authority/yaml/swapper/YamlAuthorityDataNodeRuleConfigurationSwapper.java | shardingsphere-authority-core | 53 |
org/apache/shardingsphere/authority/yaml/swapper/YamlAuthorityRuleConfigurationSwapper.java | shardingsphere-authority-core | 44 |
private YamlAuthorityRuleConfiguration swapToYamlConfiguration(final AuthorityRuleConfiguration data) { YamlAuthorityRuleConfiguration result = new YamlAuthorityRuleConfiguration(); result.setPrivilege(algorithmSwapper.swapToYamlConfiguration(data.getPrivilegeProvider())); result.setUsers(data.getUsers().stream().map(userSwapper::swapToYamlConfiguration).collect(Collectors.toList())); result.setDefaultAuthenticator(data.getDefaultAuthenticator()); data.getAuthenticators().forEach((key, value) -> result.getAuthenticators().put(key, algorithmSwapper.swapToYamlConfiguration(value))); return result; } @Override public Optional<AuthorityRuleConfiguration> swapToObject(final Collection<YamlDataNode> dataNodes) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/parser/yaml/swapper/YamlSQLParserDataNodeRuleConfigurationSwapper.java | shardingsphere-sql-parser-core | 65 |
org/apache/shardingsphere/parser/yaml/swapper/YamlSQLParserRuleConfigurationSwapper.java | shardingsphere-sql-parser-core | 43 |
private SQLParserRuleConfiguration swapToObject(final YamlSQLParserRuleConfiguration yamlConfig) { CacheOption parseTreeCacheOption = null == yamlConfig.getParseTreeCache() ? DefaultSQLParserRuleConfigurationBuilder.PARSE_TREE_CACHE_OPTION : cacheOptionSwapper.swapToObject(yamlConfig.getParseTreeCache()); CacheOption sqlStatementCacheOption = null == yamlConfig.getSqlStatementCache() ? DefaultSQLParserRuleConfigurationBuilder.SQL_STATEMENT_CACHE_OPTION : cacheOptionSwapper.swapToObject(yamlConfig.getSqlStatementCache()); return new SQLParserRuleConfiguration(parseTreeCacheOption, sqlStatementCacheOption); } @Override public Class<SQLParserRuleConfiguration> getTypeClass() { return SQLParserRuleConfiguration.class; } @Override public String getRuleTagName() { return "SQL_PARSER"; } @Override public int getOrder() { return SQLParserOrder.ORDER; } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 1833 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 1598 |
SubqueryTableSegment result = new SubqueryTableSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), subquerySegment); if (null != ctx.alias()) { result.setAlias((AliasSegment) visit(ctx.alias())); } return result; } if (null != ctx.tableName()) { SimpleTableSegment result = (SimpleTableSegment) visit(ctx.tableName()); if (null != ctx.alias()) { result.setAlias((AliasSegment) visit(ctx.alias())); } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sqlfederation/optimizer/context/parser/dialect/impl/OpenGaussOptimizerBuilder.java | shardingsphere-sql-federation-optimizer | 31 |
org/apache/shardingsphere/sqlfederation/optimizer/context/parser/dialect/impl/PostgreSQLOptimizerBuilder.java | shardingsphere-sql-federation-optimizer | 31 |
public final class OpenGaussOptimizerBuilder implements OptimizerSQLDialectBuilder { @Override public Properties build() { Properties result = new Properties(); result.setProperty(CalciteConnectionProperty.LEX.camelName(), Lex.JAVA.name()); result.setProperty(CalciteConnectionProperty.CONFORMANCE.camelName(), SqlConformanceEnum.BABEL.name()); result.setProperty(CalciteConnectionProperty.FUN.camelName(), SqlLibrary.POSTGRESQL.fun); result.setProperty(CalciteConnectionProperty.CASE_SENSITIVE.camelName(), String.valueOf(false)); return result; } @Override public String getDatabaseType() { return "openGauss"; |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/transaction/xa/jta/connection/dialect/MariaDBXAConnectionWrapper.java | shardingsphere-transaction-xa-core | 33 |
org/apache/shardingsphere/transaction/xa/jta/connection/dialect/OpenGaussXAConnectionWrapper.java | shardingsphere-transaction-xa-core | 33 |
org/apache/shardingsphere/transaction/xa/jta/connection/dialect/OracleXAConnectionWrapper.java | shardingsphere-transaction-xa-core | 33 |
org/apache/shardingsphere/transaction/xa/jta/connection/dialect/PostgreSQLXAConnectionWrapper.java | shardingsphere-transaction-xa-core | 33 |
public final class MariaDBXAConnectionWrapper implements XAConnectionWrapper { private Class<Connection> jdbcConnectionClass; private Constructor<?> xaConnectionConstructor; @Override public XAConnection wrap(final XADataSource xaDataSource, final Connection connection) throws SQLException { return createXAConnection(connection.unwrap(jdbcConnectionClass)); } @Override public void init(final Properties props) { loadReflection(); } private void loadReflection() { jdbcConnectionClass = getJDBCConnectionClass(); xaConnectionConstructor = getXAConnectionConstructor(); } @SuppressWarnings("unchecked") @SneakyThrows(ReflectiveOperationException.class) private Class<Connection> getJDBCConnectionClass() { return (Class<Connection>) Class.forName("org.mariadb.jdbc.MariaDbConnection"); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 269 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 265 |
return visit(ctx.temporalLiterals()); } if (null != ctx.hexadecimalLiterals()) { return visit(ctx.hexadecimalLiterals()); } if (null != ctx.bitValueLiterals()) { return visit(ctx.bitValueLiterals()); } if (null != ctx.booleanLiterals()) { return visit(ctx.booleanLiterals()); } if (null != ctx.nullValueLiterals()) { return visit(ctx.nullValueLiterals()); } throw new IllegalStateException("Literals must have string, number, dateTime, hex, bit, boolean or null."); } @Override public final ASTNode visitStringLiterals(final StringLiteralsContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 587 |
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 570 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 351 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 550 |
return visit(ctx.simpleExpr()); } ExpressionSegment left = (ExpressionSegment) visit(ctx.getChild(0)); ExpressionSegment right = (ExpressionSegment) visit(ctx.getChild(2)); String operator = ctx.getChild(1).getText(); String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())); return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text); } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDMLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 100 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDMLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 129 |
public ASTNode visitCopyWithTableOrQuery(final CopyWithTableOrQueryContext ctx) { PostgreSQLCopyStatement result = new PostgreSQLCopyStatement(); if (null != ctx.qualifiedName()) { result.setTableSegment((SimpleTableSegment) visit(ctx.qualifiedName())); if (null != ctx.columnNames()) { result.getColumns().addAll(((CollectionValue<ColumnSegment>) visit(ctx.columnNames())).getValue()); } } if (null != ctx.preparableStmt()) { result.setPrepareStatementQuerySegment(extractPrepareStatementQuerySegmentFromPreparableStmt(ctx.preparableStmt())); } return result; } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/impl/ShowEventsStatementAssert.java | shardingsphere-test-it-parser | 42 |
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/impl/ShowOpenTablesStatementAssert.java | shardingsphere-test-it-parser | 42 |
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/impl/ShowTableStatusStatementAssert.java | shardingsphere-test-it-parser | 42 |
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/impl/ShowTablesStatementAssert.java | shardingsphere-test-it-parser | 42 |
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/impl/ShowTriggersStatementAssert.java | shardingsphere-test-it-parser | 42 |
public static void assertIs(final SQLCaseAssertContext assertContext, final MySQLShowEventsStatement actual, final ShowEventsStatementTestCase expected) { if (actual.getFromSchema().isPresent()) { DatabaseAssert.assertIs(assertContext, actual.getFromSchema().get().getSchema(), expected.getFromSchema().getSchema()); SQLSegmentAssert.assertIs(assertContext, actual.getFromSchema().get(), expected.getFromSchema()); } if (actual.getFilter().isPresent()) { ShowFilterAssert.assertIs(assertContext, actual.getFilter().get(), expected.getFilter()); } } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/impl/AlterShadowRuleStatementAssert.java | shardingsphere-test-it-parser | 51 |
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/CreateShadowRuleStatementAssert.java | shardingsphere-test-it-parser | 54 |
assertShadowRule(assertContext, actual.getRules(), expected.getRules()); } } private static void assertShadowRule(final SQLCaseAssertContext assertContext, final Collection<ShadowRuleSegment> actual, final List<ExpectedShadowRule> expected) { if (null == expected) { assertNull(actual, assertContext.getText("Actual shadow rule should not exist.")); } else { assertNotNull(actual, assertContext.getText("Actual shadow rule should exist.")); int count = 0; for (ShadowRuleSegment each : actual) { ShadowRuleAssert.assertIs(assertContext, each, expected.get(count)); count++; } } } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 980 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 950 |
private SubquerySegment createSubquerySegment(final SelectClauseNContext ctx, final OpenGaussSelectStatement selectStatement) { return new SubquerySegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), selectStatement, getOriginalText(ctx)); } private CombineType getCombineType(final SelectClauseNContext ctx) { boolean isDistinct = null == ctx.allOrDistinct() || null != ctx.allOrDistinct().DISTINCT(); if (null != ctx.UNION()) { return isDistinct ? CombineType.UNION : CombineType.UNION_ALL; } if (null != ctx.INTERSECT()) { return isDistinct ? CombineType.INTERSECT : CombineType.INTERSECT_ALL; } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | shardingsphere-parser-sql-mysql | 251 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/SQL92StatementVisitor.java | shardingsphere-parser-sql-sql92 | 111 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 250 |
public abstract class MySQLStatementVisitor extends MySQLStatementBaseVisitor<ASTNode> { private final Collection<ParameterMarkerSegment> parameterMarkerSegments = new LinkedList<>(); @Override public final ASTNode visitParameterMarker(final ParameterMarkerContext ctx) { return new ParameterMarkerValue(parameterMarkerSegments.size(), ParameterMarkerType.QUESTION); } @Override public final ASTNode visitLiterals(final LiteralsContext ctx) { if (null != ctx.stringLiterals()) { return visit(ctx.stringLiterals()); } if (null != ctx.numberLiterals()) { return visit(ctx.numberLiterals()); } if (null != ctx.temporalLiterals()) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java | shardingsphere-parser-sql-mysql | 253 |
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDDLStatementVisitor.java | shardingsphere-parser-sql-oracle | 385 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DDLStatementVisitor.java | shardingsphere-parser-sql-sql92 | 68 |
MySQLCreateTableStatement result = new MySQLCreateTableStatement(null != ctx.ifNotExists()); result.setTable((SimpleTableSegment) visit(ctx.tableName())); if (null != ctx.createDefinitionClause()) { CollectionValue<CreateDefinitionSegment> createDefinitions = (CollectionValue<CreateDefinitionSegment>) visit(ctx.createDefinitionClause()); for (CreateDefinitionSegment each : createDefinitions.getValue()) { if (each instanceof ColumnDefinitionSegment) { result.getColumnDefinitions().add((ColumnDefinitionSegment) each); } else if (each instanceof ConstraintDefinitionSegment) { result.getConstraintDefinitions().add((ConstraintDefinitionSegment) each); } } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 674 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 817 |
OpenGaussAlterViewStatement result = new OpenGaussAlterViewStatement(); result.setView((SimpleTableSegment) visit(ctx.qualifiedName())); if (ctx.alterViewClauses() instanceof AlterRenameViewContext) { NameContext nameContext = ((AlterRenameViewContext) ctx.alterViewClauses()).name(); result.setRenameView( new SimpleTableSegment(new TableNameSegment(nameContext.getStart().getStartIndex(), nameContext.getStop().getStopIndex(), (IdentifierValue) visit(nameContext.identifier())))); } return result; } @Override public ASTNode visitDropDatabase(final DropDatabaseContext ctx) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowColumnsMergedResult.java | shardingsphere-encrypt-core | 89 |
org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java | shardingsphere-encrypt-core | 98 |
return getOriginalValue(columnIndex, type); } @Override public final Object getCalendarValue(final int columnIndex, final Class<?> type, final Calendar calendar) throws SQLException { throw new SQLFeatureNotSupportedException(""); } @Override public final InputStream getInputStream(final int columnIndex, final String type) throws SQLException { throw new SQLFeatureNotSupportedException(""); } @Override public Reader getCharacterStream(final int columnIndex) throws SQLException { throw new SQLFeatureNotSupportedException(""); } protected abstract boolean nextValue() throws SQLException; protected abstract Object getOriginalValue(int columnIndex, Class<?> type) throws SQLException; } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java | shardingsphere-jdbc | 273 |
org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java | shardingsphere-jdbc | 470 |
} private void handleAutoCommit(final QueryContext queryContext) throws SQLException { if (AutoCommitUtils.needOpenTransaction(queryContext.getSqlStatementContext().getSqlStatement())) { connection.handleAutoCommit(); } } private JDBCExecutionUnit createTrafficExecutionUnit(final String trafficInstanceId, final QueryContext queryContext) throws SQLException { DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine = createDriverExecutionPrepareEngine(); ExecutionUnit executionUnit = new ExecutionUnit(trafficInstanceId, new SQLUnit(queryContext.getSql(), queryContext.getParameters())); ExecutionGroupContext<JDBCExecutionUnit> context = prepareEngine.prepare(new RouteContext(), Collections.singleton(executionUnit), new ExecutionGroupReportContext(connection.getProcessId(), databaseName, new Grantee("", ""))); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/sql/common/util/SQLUtils.java | shardingsphere-parser-sql-statement | 75 |
org/apache/shardingsphere/sql/parser/sql/common/value/literal/impl/NumberLiteralValue.java | shardingsphere-parser-sql-statement | 48 |
BigInteger result = new BigInteger(value, radix); if (result.compareTo(new BigInteger(String.valueOf(Integer.MIN_VALUE))) >= 0 && result.compareTo(new BigInteger(String.valueOf(Integer.MAX_VALUE))) <= 0) { return result.intValue(); } if (result.compareTo(new BigInteger(String.valueOf(Long.MIN_VALUE))) >= 0 && result.compareTo(new BigInteger(String.valueOf(Long.MAX_VALUE))) <= 0) { return result.longValue(); } return result; } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dcl/impl/AlterLoginStatementAssert.java | shardingsphere-test-it-parser | 45 |
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dcl/impl/CreateLoginStatementAssert.java | shardingsphere-test-it-parser | 45 |
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dcl/impl/DropLoginStatementAssert.java | shardingsphere-test-it-parser | 45 |
public static void assertIs(final SQLCaseAssertContext assertContext, final SQLServerAlterLoginStatement actual, final AlterLoginStatementTestCase expected) { if (null == expected.getLogin()) { assertNull(actual.getLoginSegment(), assertContext.getText("Actual login should not exist.")); } else { assertNotNull(actual.getLoginSegment(), assertContext.getText("Actual login should exist.")); assertThat(assertContext.getText("Login name assertion error: "), actual.getLoginSegment().getLoginName().getValueWithQuoteCharacters(), is(expected.getLogin().getName())); SQLSegmentAssert.assertIs(assertContext, actual.getLoginSegment(), expected.getLogin()); } } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/encrypt/merge/dql/EncryptMergedResult.java | shardingsphere-encrypt-core | 78 |
org/apache/shardingsphere/mask/merge/dql/MaskMergedResult.java | shardingsphere-mask-core | 68 |
} @Override public Object getCalendarValue(final int columnIndex, final Class<?> type, final Calendar calendar) throws SQLException { return mergedResult.getCalendarValue(columnIndex, type, calendar); } @Override public InputStream getInputStream(final int columnIndex, final String type) throws SQLException { return mergedResult.getInputStream(columnIndex, type); } @Override public Reader getCharacterStream(final int columnIndex) throws SQLException { return mergedResult.getCharacterStream(columnIndex); } @Override public boolean wasNull() throws SQLException { return mergedResult.wasNull(); } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sharding/rule/changed/DefaultDatabaseShardingStrategyChangedProcessor.java | shardingsphere-sharding-core | 35 |
org/apache/shardingsphere/sharding/rule/changed/DefaultTableShardingStrategyChangedProcessor.java | shardingsphere-sharding-core | 35 |
public final class DefaultDatabaseShardingStrategyChangedProcessor implements RuleItemConfigurationChangedProcessor<ShardingRuleConfiguration, ShardingStrategyConfiguration> { @Override public ShardingStrategyConfiguration swapRuleItemConfiguration(final AlterRuleItemEvent event, final String yamlContent) { return new YamlShardingStrategyConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent, YamlShardingStrategyConfiguration.class)); } @Override public ShardingRuleConfiguration findRuleConfiguration(final ShardingSphereDatabase database) { return database.getRuleMetaData().findSingleRule(ShardingRule.class).map(ShardingRule::getConfiguration).orElseGet(ShardingRuleConfiguration::new); } @Override public void changeRuleItemConfiguration(final AlterRuleItemEvent event, final ShardingRuleConfiguration currentRuleConfig, final ShardingStrategyConfiguration toBeChangedItemConfig) { currentRuleConfig.setDefaultDatabaseShardingStrategy(toBeChangedItemConfig); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sharding/rule/changed/KeyGeneratorChangedProcessor.java | shardingsphere-sharding-core | 37 |
org/apache/shardingsphere/sharding/rule/changed/ShardingAlgorithmChangedProcessor.java | shardingsphere-sharding-core | 37 |
org/apache/shardingsphere/sharding/rule/changed/ShardingAuditorChangedProcessor.java | shardingsphere-sharding-core | 37 |
public final class KeyGeneratorChangedProcessor implements RuleItemConfigurationChangedProcessor<ShardingRuleConfiguration, AlgorithmConfiguration> { @Override public AlgorithmConfiguration swapRuleItemConfiguration(final AlterRuleItemEvent event, final String yamlContent) { return new YamlAlgorithmConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent, YamlAlgorithmConfiguration.class)); } @Override public ShardingRuleConfiguration findRuleConfiguration(final ShardingSphereDatabase database) { return database.getRuleMetaData().findSingleRule(ShardingRule.class).map(ShardingRule::getConfiguration).orElseGet(ShardingRuleConfiguration::new); } @Override public void changeRuleItemConfiguration(final AlterRuleItemEvent event, final ShardingRuleConfiguration currentRuleConfig, final AlgorithmConfiguration toBeChangedItemConfig) { currentRuleConfig.getKeyGenerators().put(((AlterNamedRuleItemEvent) event).getItemName(), toBeChangedItemConfig); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 255 |
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java | shardingsphere-parser-sql-oracle | 366 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 255 |
ColumnSegment result = new ColumnSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), (IdentifierValue) visit(ctx.name())); OwnerContext owner = ctx.owner(); if (null != owner) { result.setOwner(new OwnerSegment(owner.getStart().getStartIndex(), owner.getStop().getStopIndex(), (IdentifierValue) visit(owner.identifier()))); } return result; } @Override public final ASTNode visitIndexName(final IndexNameContext ctx) { IndexNameSegment indexName = new IndexNameSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), (IdentifierValue) visit(ctx.identifier())); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 737 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 741 |
AttrNameContext attrName = ctx.indirection().indirectionEl().attrName(); TableNameSegment tableName = new TableNameSegment(attrName.start.getStartIndex(), attrName.stop.getStopIndex(), new IdentifierValue(attrName.getText())); OwnerSegment owner = new OwnerSegment(ctx.colId().start.getStartIndex(), ctx.colId().stop.getStopIndex(), new IdentifierValue(ctx.colId().getText())); SimpleTableSegment result = new SimpleTableSegment(tableName); if (null == ctx.indirection().indirection()) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDMLStatementVisitor.java | shardingsphere-parser-sql-oracle | 261 |
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDMLStatementVisitor.java | shardingsphere-parser-sql-oracle | 296 |
if (null != ctx.selectSubquery()) { SubquerySegment subquerySegment = new SubquerySegment(ctx.selectSubquery().start.getStartIndex(), ctx.selectSubquery().stop.getStopIndex(), (OracleSelectStatement) visit(ctx.selectSubquery()), getOriginalText(ctx.selectSubquery())); SubqueryExpressionSegment value = new SubqueryExpressionSegment(subquerySegment); ColumnAssignmentSegment result = new ColumnAssignmentSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), columnSegments, value); result.getColumns().add(column); return result; } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRoutingEngine.java | shardingsphere-shadow-core | 52 |
org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRoutingEngine.java | shardingsphere-shadow-core | 58 |
ShadowExtractor.extractValues(each, parameters).map(values -> new ShadowColumnCondition(getSingleTableName(), shadowColumnName, values)).ifPresent(result::add); } return result; } private Collection<ExpressionSegment> getWhereSegment() { Collection<ExpressionSegment> result = new LinkedList<>(); for (WhereSegment each : sqlStatementContext.getWhereSegments()) { for (AndPredicate predicate : ExpressionExtractUtils.getAndPredicates(each.getExpr())) { result.addAll(predicate.getPredicates()); } } return result; } } |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/metadata/persist/service/config/database/datasource/DataSourceNodePersistService.java | shardingsphere-metadata-core | 66 |
org/apache/shardingsphere/metadata/persist/service/config/database/datasource/DataSourceUnitPersistService.java | shardingsphere-metadata-core | 66 |
String dataSourceValue = repository.getDirectly(DataSourceMetaDataNode.getDataSourceNodeVersionNode(databaseName, each, getDataSourceActiveVersion(databaseName, each))); if (!Strings.isNullOrEmpty(dataSourceValue)) { result.put(each, new YamlDataSourceConfigurationSwapper().swapToDataSourcePoolProperties(YamlEngine.unmarshal(dataSourceValue, Map.class))); } } return result; } @SuppressWarnings("unchecked") @Override public Map<String, DataSourcePoolProperties> load(final String databaseName, final String name) { Map<String, DataSourcePoolProperties> result = new LinkedHashMap<>(); String dataSourceValue = repository.getDirectly(DataSourceMetaDataNode.getDataSourceNodeVersionNode(databaseName, name, getDataSourceActiveVersion(databaseName, name))); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDMLStatementVisitor.java | shardingsphere-parser-sql-oracle | 841 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java | shardingsphere-parser-sql-sql92 | 314 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 1513 |
if (projection instanceof FunctionSegment) { FunctionSegment segment = (FunctionSegment) projection; ExpressionProjectionSegment result = new ExpressionProjectionSegment(segment.getStartIndex(), segment.getStopIndex(), segment.getText(), segment); result.setAlias(alias); return result; } if (projection instanceof CommonExpressionSegment) { CommonExpressionSegment segment = (CommonExpressionSegment) projection; ExpressionProjectionSegment result = new ExpressionProjectionSegment(segment.getStartIndex(), segment.getStopIndex(), segment.getText(), segment); result.setAlias(alias); return result; } if (projection instanceof XmlQueryAndExistsFunctionSegment || projection instanceof XmlPiFunctionSegment || projection instanceof XmlSerializeFunctionSegment |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java | shardingsphere-parser-sql-sql92 | 328 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 1527 |
ExpressionProjectionSegment result = new ExpressionProjectionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), getOriginalText(ctx), (ColumnSegment) projection); result.setAlias(alias); return result; } if (projection instanceof SubqueryExpressionSegment) { SubqueryExpressionSegment subqueryExpressionSegment = (SubqueryExpressionSegment) projection; String text = ctx.start.getInputStream().getText(new Interval(subqueryExpressionSegment.getStartIndex(), subqueryExpressionSegment.getStopIndex())); SubqueryProjectionSegment result = new SubqueryProjectionSegment(((SubqueryExpressionSegment) projection).getSubquery(), text); result.setAlias(alias); return result; } if (projection instanceof BinaryOperationExpression) { BinaryOperationExpression binaryExpression = (BinaryOperationExpression) projection; int startIndex = binaryExpression.getStartIndex(); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportMetaDataExecutor.java | shardingsphere-proxy-backend-core | 62 |
org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportStorageNodesExecutor.java | shardingsphere-proxy-backend-core | 56 |
String exportedData = generateExportData(contextManager.getMetaDataContexts().getMetaData()); if (sqlStatement.getFilePath().isPresent()) { String filePath = sqlStatement.getFilePath().get(); ExportUtils.exportToFile(filePath, exportedData); return Collections.singleton(new LocalDataQueryResultRow(contextManager.getInstanceContext().getInstance().getCurrentInstanceId(), LocalDateTime.now(), String.format("Successfully exported to:'%s'", filePath))); } return Collections.singleton(new LocalDataQueryResultRow( contextManager.getInstanceContext().getInstance().getCurrentInstanceId(), LocalDateTime.now(), Base64.encodeBase64String(exportedData.getBytes()))); |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java | shardingsphere-parser-sql-opengauss | 720 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 726 |
@Override public ASTNode visitQualifiedNameList(final QualifiedNameListContext ctx) { CollectionValue<SimpleTableSegment> result = new CollectionValue<>(); if (null != ctx.qualifiedName()) { result.getValue().add((SimpleTableSegment) visit(ctx.qualifiedName())); } if (null != ctx.qualifiedNameList()) { result.combine((CollectionValue) visit(ctx.qualifiedNameList())); } return result; } @Override public ASTNode visitQualifiedName(final QualifiedNameContext ctx) { if (null == ctx.indirection()) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java | shardingsphere-parser-sql-opengauss | 300 |
org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java | shardingsphere-parser-sql-postgresql | 373 |
org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DDLStatementVisitor.java | shardingsphere-parser-sql-sql92 | 157 |
org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/type/SQLServerDDLStatementVisitor.java | shardingsphere-parser-sql-sqlserver | 228 |
for (AlterDefinitionSegment each : ((CollectionValue<AlterDefinitionSegment>) visit(ctx.alterDefinitionClause())).getValue()) { if (each instanceof AddColumnDefinitionSegment) { result.getAddColumnDefinitions().add((AddColumnDefinitionSegment) each); } else if (each instanceof ModifyColumnDefinitionSegment) { result.getModifyColumnDefinitions().add((ModifyColumnDefinitionSegment) each); } else if (each instanceof DropColumnDefinitionSegment) { result.getDropColumnDefinitions().add((DropColumnDefinitionSegment) each); } else if (each instanceof AddConstraintDefinitionSegment) { result.getAddConstraintDefinitions().add((AddConstraintDefinitionSegment) each); } else if (each instanceof ValidateConstraintDefinitionSegment) { |
File | Project | Line |
---|---|---|
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dml/impl/DeleteStatementAssert.java | shardingsphere-test-it-parser | 131 |
org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dml/impl/UpdateStatementAssert.java | shardingsphere-test-it-parser | 101 |
Optional<LimitSegment> limitSegment = DeleteStatementHandler.getLimitSegment(actual); if (null == expected.getLimitClause()) { assertFalse(limitSegment.isPresent(), assertContext.getText("Actual limit segment should not exist.")); } else { assertTrue(limitSegment.isPresent(), assertContext.getText("Actual limit segment should exist.")); LimitClauseAssert.assertRowCount(assertContext, limitSegment.get().getRowCount().orElse(null), expected.getLimitClause().getRowCount()); SQLSegmentAssert.assertIs(assertContext, limitSegment.get(), expected.getLimitClause()); } } |