queryBlock.setLimit(this.exprParser.parseLimit());
MySqlSelectQueryBlock.Limit limit = new MySqlSelectQueryBlock.Limit(rowCount); x.setLimit(limit);
queryBlock.setLimit(parseLimit());
queryBlock.setLimit(this.exprParser.parseLimit());
private boolean canRouteTablesToOneNode(SchemaConfig schema, SQLStatement stmt, RouteResultset rrs, MySqlSelectQueryBlock mysqlSelectQuery, ServerConnection sc, int tableSize) throws SQLException { Set<String> schemaList = new HashSet<>(); String dataNode = RouterUtil.tryRouteTablesToOneNode(sc.getUser(), rrs, schema, ctx, schemaList, tableSize, true); if (dataNode != null) { String sql = rrs.getStatement(); assert schemaList.size() <= 1; String schemaName = schema.getName(); if (schemaList.size() > 0) { schemaName = schemaList.iterator().next(); } boolean isNeedAddLimit = isNeedAddLimit(schema, rrs, mysqlSelectQuery, getAllConditions()); if (isNeedAddLimit) { int limitSize = schema.getDefaultMaxLimit(); SQLLimit limit = new SQLLimit(); limit.setRowCount(new SQLIntegerExpr(limitSize)); mysqlSelectQuery.setLimit(limit); rrs.setLimitSize(limitSize); sql = getSql(rrs, stmt, isNeedAddLimit, schemaName); } else { sql = RouterUtil.removeSchema(sql, schemaName); } rrs.setStatement(sql); RouterUtil.routeToSingleNode(rrs, dataNode); return true; } return false; }
private void tryAddLimit(SchemaConfig schema, TableConfig tableConfig, MySqlSelectQueryBlock mysqlSelectQuery) { if (schema.getDefaultMaxLimit() == -1) { return; } else if (mysqlSelectQuery.getLimit() != null) { return; } else if (!tableConfig.isNeedAddLimit()) { return; } else if (mysqlSelectQuery.isForUpdate() || mysqlSelectQuery.isLockInShareMode()) { return; } SQLLimit limit = new SQLLimit(); limit.setRowCount(new SQLIntegerExpr(schema.getDefaultMaxLimit())); mysqlSelectQuery.setLimit(limit); }
queryBlock.setLimit(this.exprParser.parseLimit());
queryBlock.setLimit(this.exprParser.parseLimit());
SQLLimit limit = new SQLLimit(); limit.setRowCount(new SQLIntegerExpr(limitSize)); mysqlSelectQuery.setLimit(limit); rrs.setLimitSize(limitSize); String sql = getSql(rrs, stmt, isNeedAddLimit, schema.getName()); mysqlSelectQuery.setLimit(changedLimit); String sql = getSql(rrs, stmt, isNeedAddLimit, schema.getName()); rrs.changeNodeSqlAfterAddLimit(sql, 0, limitStart + limitSize);
queryBlock.setLimit(parseLimit());