{"record":{"id":"b4d2ccb9475c593e","repo":"prestodb/presto","slug":"query-text-too-large","errorCode":"QUERY_TEXT_TOO_LARGE","errorMessage":"Query text length (%s) exceeds the maximum length (%s)","messagePattern":"Query text length \\((.+?)\\) exceeds the maximum length \\((.+?)\\)","errorType":"error_code","errorClass":"PrestoException","httpStatus":null,"severity":"error","filePath":"presto-main-base/src/main/java/com/facebook/presto/dispatcher/DispatchManager.java","lineNumber":267,"sourceCode":"            }\n        });\n        return queryCreationFuture;\n    }\n\n    /**\n     * Creates and registers a dispatch query with the query tracker.  This method will never fail to register a query with the query\n     * tracker. If an error occurs while creating a dispatch query, a failed dispatch will be created and registered.\n     */\n    private <C> void createQueryInternal(QueryId queryId, String slug, int retryCount, SessionContext sessionContext, String query, ResourceGroupManager<C> resourceGroupManager)\n    {\n        Session session = null;\n        SessionBuilder sessionBuilder = null;\n        PreparedQuery preparedQuery;\n        try {\n            if (query.length() > maxQueryLength) {\n                int queryLength = query.length();\n                query = query.substring(0, maxQueryLength);\n                throw new PrestoException(QUERY_TEXT_TOO_LARGE, format(\"Query text length (%s) exceeds the maximum length (%s)\", queryLength, maxQueryLength));\n            }\n\n            // decode session\n            sessionBuilder = sessionSupplier.createSessionBuilder(queryId, sessionContext, warningCollectorFactory);\n            session = sessionBuilder.build();\n\n            // prepare query\n            AnalyzerOptions analyzerOptions = createAnalyzerOptions(session, sessionBuilder.getWarningCollector());\n            QueryPreparerProvider queryPreparerProvider = queryPreparerProviderManager.getQueryPreparerProvider(getAnalyzerType(session));\n            preparedQuery = queryPreparerProvider.getQueryPreparer().prepareQuery(analyzerOptions, query, sessionBuilder.getPreparedStatements(), sessionBuilder.getWarningCollector());\n            query = preparedQuery.getFormattedQuery().orElse(query);\n\n            // select resource group\n            Optional<QueryType> queryType = preparedQuery.getQueryType();\n            sessionBuilder.setQueryType(queryType);\n            SelectionContext<C> selectionContext = resourceGroupManager.selectGroup(new SelectionCriteria(\n                    sessionContext.getIdentity().getPrincipal().isPresent(),\n                    sessionContext.getIdentity().getUser(),","sourceCodeStart":249,"sourceCodeEnd":285,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-main-base/src/main/java/com/facebook/presto/dispatcher/DispatchManager.java#L249-L285","documentation":"DispatchManager.createQueryInternal refuses to accept a query whose text exceeds the configured maximum query length; the actual and maximum lengths are shown. The guard prevents oversized queries from entering dispatch and resource group selection.","triggerScenarios":"Thrown at presto-main-base/src/main/java/com/facebook/presto/dispatcher/DispatchManager.java:267 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Shorten the query text or split the work into smaller statements","Raise query.max-length in config if genuinely needed"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"55bb57d202de3b926896fa966c2c4a44c779634e","analyzedAt":"2026-09-04T12:50:26.162Z","contentChangedAt":"2026-09-04T12:50:26.162Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}