net.sf.jsqlparser.statement.select.SubSelect Java Examples
The following examples show how to use
net.sf.jsqlparser.statement.select.SubSelect.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: FromItemVisitorImpl.java From DataPermissionHelper with Apache License 2.0 | 7 votes |
@Override public void visit(Table table) { String tableName = table.getName(); //关键点:解析到需要进行数据权限控制的表时进行拼装,可以从当前线程获取表数据 //需要进行的数据权限控制的表数据 Map<String, IdsAndColumn> tables = DPHelper.getLocalDataPermissions().getTables(); if (tables.containsKey(tableName)) { IdsAndColumn idsAndColumn = tables.get(tableName); List<String> ids = idsAndColumn.getIds(); List<String> columns = idsAndColumn.getColumns(); SubSelect subSelect = new SubSelect(); String subSql = SqlSpliceUtils.spliceIdAndColumn(tableName, ids, columns); try { subSelect.setSelectBody(((Select) (CCJSqlParserUtil.parse(subSql))).getSelectBody()); } catch (JSQLParserException e) { logger.error("数据权限sql解析异常"); } //TODO:采用随机别名不能避免重名 subSelect.setAlias(table.getAlias() != null ? table.getAlias() : new Alias("DP" + UUID.randomUUID() .toString().replace("-", ""))); this.subSelect = subSelect; } }
Example #2
Source File: CloudSpannerPreparedStatement.java From spanner-jdbc with MIT License | 6 votes |
private void setWhereParameters(Expression where, com.google.cloud.spanner.Statement.Builder builder) { if (where != null) { where.accept(new ExpressionVisitorAdapter() { private String currentCol = null; @Override public void visit(Column col) { currentCol = unquoteIdentifier(col.getFullyQualifiedName()); } @Override public void visit(JdbcParameter parameter) { parameter.accept(new ValueBinderExpressionVisitorAdapter<>(getParameterStore(), builder.bind("p" + parameter.getIndex()), currentCol)); currentCol = null; } @Override public void visit(SubSelect subSelect) { setSelectParameters(subSelect.getSelectBody(), builder); } }); } }
Example #3
Source File: FromHolder.java From sql-to-mongo-db-query-converter with Apache License 2.0 | 6 votes |
private void addToSQLHolderMap(FromItem from) throws com.github.vincentrussell.query.mongodb.sql.converter.ParseException, ParseException { if (from instanceof Table) { Table table = (Table)from; fromToSQLHolder.put(table, new SQLTableInfoHolder(table.getName())); } else if(from instanceof SubSelect){ SubSelect subselect = (SubSelect) from; fromToSQLHolder.put(from, SQLCommandInfoHolder.Builder .create(defaultFieldType, fieldNameToFieldTypeMapping) .setPlainSelect((PlainSelect)subselect.getSelectBody()) .build()); } else {//Not happen SubJoin, not supported previously return; } }
Example #4
Source File: ExpressionVisitorImpl.java From DataPermissionHelper with Apache License 2.0 | 5 votes |
@Override public void visit(SubSelect subSelect) { if (subSelect.getWithItemsList() != null) { for (WithItem withItem : subSelect.getWithItemsList()) { withItem.accept(new SelectVisitorImpl()); } } subSelect.getSelectBody().accept(new SelectVisitorImpl()); }
Example #5
Source File: CTEToNestedQueryConverter.java From quetzal with Eclipse Public License 2.0 | 5 votes |
@Override public void visit(LateralSubSelect lateralSubSelect) { if (lateralSubSelect.getSubSelect()!=null) { lateralSubSelect.getSubSelect().accept(this); lateralSubSelect.setSubSelect((SubSelect) result); } result = lateralSubSelect; }
Example #6
Source File: CTEToNestedQueryConverter.java From quetzal with Eclipse Public License 2.0 | 5 votes |
@Override public void visit(SubSelect subSelect) { if (subSelect.getSelectBody()!=null) { replace(subSelect.getSelectBody(), cteName2Def, placeHolderTables); } result = subSelect; }
Example #7
Source File: FromItemVisitorImpl.java From DataPermissionHelper with Apache License 2.0 | 4 votes |
public SubSelect getSubSelect() { return this.subSelect; }
Example #8
Source File: FromItemVisitorImpl.java From DataPermissionHelper with Apache License 2.0 | 4 votes |
@Override public void visit(SubSelect subSelect) { // 如果是子查询的话返回到select接口实现类 subSelect.getSelectBody().accept(new SelectVisitorImpl()); }
Example #9
Source File: ItemsListVisitorImpl.java From DataPermissionHelper with Apache License 2.0 | 4 votes |
@Override public void visit(SubSelect ss) { ss.getSelectBody().accept(new SelectVisitorImpl()); }
Example #10
Source File: DMLWhereClauseVisitorAdapter.java From spanner-jdbc with MIT License | 4 votes |
@Override public void visit(SubSelect subSelect) { invalid = true; super.visit(subSelect); }
Example #11
Source File: JoinProcessor.java From sql-to-mongo-db-query-converter with Apache License 2.0 | 4 votes |
public static List<Document> toPipelineSteps(QueryConverter queryConverter, FromHolder tholder, List<Join> ljoins, Expression whereExpression) throws ParseException, net.sf.jsqlparser.parser.ParseException { List<Document> ldoc = new LinkedList<Document>(); MutableBoolean haveOrExpression = new MutableBoolean(); for(Join j : ljoins) { if(j.isInner() || j.isLeft()) { if(j.getRightItem() instanceof Table || j.getRightItem() instanceof SubSelect) { ExpressionHolder whereExpHolder; String joinTableAlias = j.getRightItem().getAlias().getName(); String joinTableName = tholder.getSQLHolder(j.getRightItem()).getBaseTableName(); whereExpHolder = new ExpressionHolder(null); if(whereExpression != null) { haveOrExpression.setValue(false); whereExpression.accept(new WhereVisitorMatchAndLookupPipelineMatchBuilder(joinTableAlias, whereExpHolder, haveOrExpression)); if(!haveOrExpression.booleanValue() && whereExpHolder.getExpression() != null) { whereExpHolder.getExpression().accept(new ExpVisitorEraseAliasTableBaseBuilder(joinTableAlias)); } else { whereExpHolder.setExpression(null); } } List<Document> subqueryDocs = new LinkedList<>(); if(j.getRightItem() instanceof SubSelect) { subqueryDocs = queryConverter.fromSQLCommandInfoHolderToAggregateSteps((SQLCommandInfoHolder)tholder.getSQLHolder(j.getRightItem())); } ldoc.add(generateLookupStep(tholder,joinTableName,joinTableAlias,j.getOnExpression(),whereExpHolder.getExpression(),subqueryDocs)); ldoc.add(generateUnwindStep(tholder,joinTableAlias,j.isLeft())); } else { throw new ParseException("From join not supported"); } } else { throw new ParseException("Only inner join and left supported"); } } if(haveOrExpression.booleanValue()) {//if there is some "or" we use this step for support this logic and no other match steps ldoc.add(generateMatchAfterJoin(tholder,whereExpression)); } return ldoc; }
Example #12
Source File: CTEToNestedQueryConverter.java From quetzal with Eclipse Public License 2.0 | 4 votes |
@Override public void visit(SubSelect subSelect) { defaultVisit(subSelect); }
Example #13
Source File: PrimaryKeyListVisitor.java From tx-lcn with Apache License 2.0 | 2 votes |
@Override public void visit(SubSelect subSelect) { }