private void findSelect(MySqlSelectQueryBlock query, Select select, String tableAlias) throws SqlParseException { List<SQLSelectItem> selectList = query.getSelectList(); for (SQLSelectItem sqlSelectItem : selectList) { Field field = FieldMaker.makeField(sqlSelectItem.getExpr(), sqlSelectItem.getAlias(), tableAlias); select.addField(field); } }
printSelectList(x.getSelectList());
@Override public boolean visit(MySqlSelectQueryBlock x) { List<SQLSelectItem> selectList = x.getSelectList(); SQLAggregateExpr countExpr = new SQLAggregateExpr("COUNT"); countExpr.getArguments().add(new SQLAllColumnExpr()); if (x.getLimit() != null) { if (x.getLimit().getOffset() instanceof SQLVariantRefExpr && countParams != null && countParams.size() > 0) { SQLVariantRefExpr ref = (SQLVariantRefExpr) x.getLimit().getOffset(); Object[] values = { 0 }; countParams.get(ref.getIndex()).setValues(values); } else if (x.getLimit().getOffset() != null) { x.getLimit().setOffset(new SQLNumberExpr(0)); } if (x.getLimit().getRowCount() instanceof SQLVariantRefExpr && countParams != null && countParams.size() > 0) { SQLVariantRefExpr ref = (SQLVariantRefExpr) x.getLimit().getRowCount(); Object[] values = { 1 }; countParams.get(ref.getIndex()).setValues(values); } else if (x.getLimit().getRowCount() != null) { x.getLimit().setRowCount(new SQLNumberExpr(1)); } } x.setOrderBy(null); selectList.clear(); selectList.add(new SQLSelectItem(countExpr, countAlias)); return false; } }
Map<String, String> columnNameAliasMapping = result.getMergeContext().getColumnNameAliasMapping(); for (SQLSelectItem column : x.getSelectList()) { String name = null; if (column.getExpr() instanceof SQLAggregateExpr) {
if (x.getSelectList() != null) { rewriteDistinct = visitSelectItems(x.getSelectList(), SQLSetQuantifier.DISTINCT == x.getDistionOption());
printSelectList(x.getSelectList()); for (SQLSelectItem item : x.getSelectList()) { if (item.getExpr() instanceof SQLAllColumnExpr) { isSQLAllColumnExpr = true;
private void findSelect(MySqlSelectQueryBlock query, Select select, String tableAlias) throws SqlParseException { List<SQLSelectItem> selectList = query.getSelectList(); for (SQLSelectItem sqlSelectItem : selectList) { Field field = FieldMaker.makeField(sqlSelectItem.getExpr(), sqlSelectItem.getAlias(), tableAlias); select.addField(field); } }
public static void handle(ServerConnection sc, SchemaUtil.SchemaInfo schemaInfo, SQLSelectQuery sqlSelectQuery) { MySqlSelectQueryBlock mySqlSelectQueryBlock = null; if (sqlSelectQuery instanceof MySqlSelectQueryBlock) { mySqlSelectQueryBlock = (MySqlSelectQueryBlock) sqlSelectQuery; } else if (sqlSelectQuery instanceof SQLUnionQuery) { SQLUnionQuery mySqlSelectUnionQuery = (SQLUnionQuery) sqlSelectQuery; mySqlSelectQueryBlock = (MySqlSelectQueryBlock) mySqlSelectUnionQuery.getFirstQueryBlock(); } if (mySqlSelectQueryBlock == null) { sc.write(sc.writeToBuffer(OkPacket.OK, sc.allocate())); return; } if (schemaInfo != null && INFORMATION_SCHEMA.equals(schemaInfo.getSchema().toUpperCase()) && SCHEMATA_TABLE.equals(schemaInfo.getTable().toUpperCase())) { MysqlInformationSchemaHandler.handle(schemaInfo, sc); return; } FieldPacket[] fields = generateFieldPacket(mySqlSelectQueryBlock.getSelectList()); doWrite(fields.length, fields, null, sc); }
@Override public boolean visit(MySqlSelectQueryBlock x) { for (val item : x.getSelectList()) { item.accept(this); } if (x.getFrom() != null) { x.getFrom().accept(this); } acceptWhere(x.getWhere()); return false; }
printSelectList(x.getSelectList());
return; List<SQLSelectItem> selectList = mysqlSelectQuery.getSelectList(); List<String> groupbyColumns = new ArrayList<String>(groupByItems.size()); for(SQLExpr item : groupByItems){
AggregateInfo aggregateInfo = parseAggregateClause(sqlSelectQueryBlock.getSelectList(), table); if(aggregateInfo == null) { if (sqlSelectQueryBlock.getSelectList().size() == 1 && sqlSelectQueryBlock.getSelectList().get(0).getExpr() instanceof SQLAllColumnExpr) { selectItem = parseSelectClause(sqlSelectQueryBlock.getSelectList()); + sqlSelectQueryBlock.getSelectList());
return; List<SQLSelectItem> selectList = mysqlSelectQuery.getSelectList(); List<OrderbyColumn> orderbyColumns = new ArrayList<OrderbyColumn>(orderByItems.size()); for(SQLSelectOrderByItem item : orderByItems){
@Test public void testSelectItem() { MySqlSelectQueryBlock query = getQuery("select sum(col1) from table1 where a >1 "); List<SQLSelectItem> items = query.getSelectList(); MySQLItemVisitor v = new MySQLItemVisitor(this.currentDb, utf8Charset,null); items.get(0).accept(v); Item item = v.getItem(); Assert.assertEquals(true, "SUM(col1)".equals(item.getItemName())); }
Map<String/*field*/, String/*alias*/> aliaColumns = new HashMap<String, String>(); List<SQLSelectItem> selectList = mysqlSelectQuery.getSelectList(); int size = selectList.size();
private static boolean isSupportSelect(String stmt) { SQLStatementParser parser = new MySqlStatementParser(stmt); SQLStatement statement = parser.parseStatement(); if (!(statement instanceof SQLSelectStatement)) { return false; } SQLSelectQuery sqlSelectQuery = ((SQLSelectStatement) statement).getSelect().getQuery(); if (!(sqlSelectQuery instanceof MySqlSelectQueryBlock)) { return false; } MySqlSelectQueryBlock selectQueryBlock = (MySqlSelectQueryBlock) sqlSelectQuery; SQLTableSource mysqlFrom = selectQueryBlock.getFrom(); if (mysqlFrom != null) { return false; } for (SQLSelectItem item : selectQueryBlock.getSelectList()) { SQLExpr selectItem = item.getExpr(); if (!isVariantRef(selectItem)) { return false; } } return true; }
private void parseAggExprCommon(SchemaConfig schema, RouteResultset rrs, MySqlSelectQueryBlock mysqlSelectQuery, Map<String, String> aliaColumns, TableConfig tc, boolean isDistinct) throws SQLException { List<SQLSelectItem> selectList = mysqlSelectQuery.getSelectList(); boolean hasPartitionColumn = false; for (SQLSelectItem selectItem : selectList) {
List<SQLSelectItem> items = sqlSelectQuery.getSelectList(); if (items != null) { List<Item> selectItems = handleSelectItems(items);
printSelectList(x.getSelectList());
printSelectList(x.getSelectList());