protected SQLSelectOrderByItem createItem() { return new SQLSelectOrderByItem(); }
public void addColumn(SQLExpr column) { if (column == null) { return; } addColumn(new SQLSelectOrderByItem(column)); }
public SQLOrderBy(SQLExpr expr){ SQLSelectOrderByItem item = new SQLSelectOrderByItem(expr); addItem(item); }
public SQLSelectOrderByItem clone() { SQLSelectOrderByItem x = new SQLSelectOrderByItem(); if (expr != null) { x.setExpr(expr.clone()); } x.collate = collate; x.type = type; x.nullsOrderType = nullsOrderType; return x; }
protected SQLSelectOrderByItem createItem() { return new SQLSelectOrderByItem(); }
protected void parseSortBy(SQLSelectQueryBlock queryBlock) { if (lexer.token() == Token.SORT) { lexer.nextToken(); accept(Token.BY); for (;;) { SQLExpr expr = this.expr(); SQLSelectOrderByItem sortByItem = new SQLSelectOrderByItem(expr); if (lexer.token() == Token.ASC) { sortByItem.setType(SQLOrderingSpecification.ASC); lexer.nextToken(); } else if (lexer.token() == Token.DESC) { sortByItem.setType(SQLOrderingSpecification.DESC); lexer.nextToken(); } queryBlock.addSortBy(sortByItem); if (lexer.token() == Token.COMMA) { lexer.nextToken(); } else { break; } } } }
public SQLSelectOrderByItem parseSelectOrderByItem() { SQLSelectOrderByItem item = new SQLSelectOrderByItem(); item.setExpr(expr()); if (lexer.token == Token.ASC) { lexer.nextToken(); item.setType(SQLOrderingSpecification.ASC); } else if (lexer.token == Token.DESC) { lexer.nextToken(); item.setType(SQLOrderingSpecification.DESC); } if (lexer.identifierEquals(FnvHash.Constants.NULLS)) { lexer.nextToken(); if (lexer.identifierEquals(FnvHash.Constants.FIRST)) { lexer.nextToken(); item.setNullsOrderType(SQLSelectOrderByItem.NullsOrderType.NullsFirst); } else if (lexer.identifierEquals(FnvHash.Constants.LAST)) { lexer.nextToken(); item.setNullsOrderType(SQLSelectOrderByItem.NullsOrderType.NullsLast); } else { throw new ParserException("TODO " + lexer.info()); } } return item; }
public void addColumn(SQLExpr column) { if (column == null) { return; } addColumn(new SQLSelectOrderByItem(column)); }
public SQLOrderBy(SQLExpr expr){ SQLSelectOrderByItem item = new SQLSelectOrderByItem(expr); addItem(item); }
public SQLSelectOrderByItem clone() { SQLSelectOrderByItem x = new SQLSelectOrderByItem(); if (expr != null) { x.setExpr(expr.clone()); } x.collate = collate; x.type = type; x.nullsOrderType = nullsOrderType; return x; }
SQLExpr expr = this.expr(); SQLSelectOrderByItem sortByItem = new SQLSelectOrderByItem(expr);
protected void parseSortBy(SQLSelectQueryBlock queryBlock) { if (lexer.token() == Token.SORT) { lexer.nextToken(); accept(Token.BY); for (;;) { SQLExpr expr = this.expr(); SQLSelectOrderByItem sortByItem = new SQLSelectOrderByItem(expr); if (lexer.token() == Token.ASC) { sortByItem.setType(SQLOrderingSpecification.ASC); lexer.nextToken(); } else if (lexer.token() == Token.DESC) { sortByItem.setType(SQLOrderingSpecification.DESC); lexer.nextToken(); } queryBlock.addSortBy(sortByItem); if (lexer.token() == Token.COMMA) { lexer.nextToken(); } else { break; } } } }
public SQLSelectOrderByItem parseSelectOrderByItem() { SQLSelectOrderByItem item = new SQLSelectOrderByItem(); item.setExpr(expr()); if (lexer.token == Token.ASC) { lexer.nextToken(); item.setType(SQLOrderingSpecification.ASC); } else if (lexer.token == Token.DESC) { lexer.nextToken(); item.setType(SQLOrderingSpecification.DESC); } if (lexer.identifierEquals(FnvHash.Constants.NULLS)) { lexer.nextToken(); if (lexer.identifierEquals(FnvHash.Constants.FIRST)) { lexer.nextToken(); item.setNullsOrderType(SQLSelectOrderByItem.NullsOrderType.NullsFirst); } else if (lexer.identifierEquals(FnvHash.Constants.LAST)) { lexer.nextToken(); item.setNullsOrderType(SQLSelectOrderByItem.NullsOrderType.NullsLast); } else { throw new ParserException("TODO " + lexer.info()); } } return item; }
SQLExpr expr = this.expr(); SQLSelectOrderByItem sortByItem = new SQLSelectOrderByItem(expr);
public static StructureMeta.ColumnMeta.Builder makeColumnMeta(StructureMeta.TableMeta.Builder tmBuilder, SQLColumnDefinition column, Set<String> indexNames) { StructureMeta.ColumnMeta.Builder cmBuilder = StructureMeta.ColumnMeta.newBuilder().setCanNull(true); cmBuilder.setName(StringUtil.removeBackQuote(column.getName().getSimpleName())); cmBuilder.setDataType(column.getDataType().getName()); for (SQLColumnConstraint constraint : column.getConstraints()) { if (constraint instanceof SQLNotNullConstraint) { cmBuilder.setCanNull(false); } else if (constraint instanceof SQLNullConstraint) { cmBuilder.setCanNull(true); } else if (constraint instanceof SQLColumnPrimaryKey) { tmBuilder.setPrimary(makeIndexMeta(PRIMARY, IndexType.PRI, new ArrayList<>(Collections.singletonList(new SQLSelectOrderByItem(column.getName()))))); } else if (constraint instanceof SQLColumnUniqueKey) { List<SQLSelectOrderByItem> columnExprs = new ArrayList<>(Collections.singletonList(new SQLSelectOrderByItem(column.getName()))); String indexName = genIndexName(null, columnExprs, indexNames); tmBuilder.addUniIndex(makeIndexMeta(indexName, IndexType.UNI, columnExprs)); } } if (column.getDefaultExpr() != null) { StringBuilder builder = new StringBuilder(); MySqlOutputVisitor visitor = new MySqlOutputVisitor(builder); visitor.setShardingSupport(false); column.getDefaultExpr().accept(visitor); cmBuilder.setSdefault(builder.toString()); } if (column.isAutoIncrement()) { cmBuilder.setAutoIncre(true); } return cmBuilder; } }
@Override public SQLExpr toExpression() { SQLAggregateExpr aggregate = new SQLAggregateExpr(funcName()); if (hasWithDistinct()) { aggregate.setOption(SQLAggregateOption.DISTINCT); } if (orders != null) { SQLOrderBy orderBy = new SQLOrderBy(); for (Order order : orders) { SQLSelectOrderByItem orderItem = new SQLSelectOrderByItem(order.getItem().toExpression()); orderItem.setType(order.getSortOrder()); orderBy.addItem(orderItem); } aggregate.putAttribute(ItemFuncKeyWord.ORDER_BY, orderBy); } for (Item arg : args) { aggregate.addArgument(arg.toExpression()); } if (seperator != null) { SQLCharExpr sep = new SQLCharExpr(seperator); aggregate.putAttribute(ItemFuncKeyWord.SEPARATOR, sep); } return aggregate; }