{"record":{"id":"65643d301ab4d85d","repo":"run-llama/llama_index","slug":"unknown-sql-parser-mode-sql-parser-mode","errorCode":null,"errorMessage":"Unknown SQL parser mode: {sql_parser_mode}","messagePattern":"Unknown SQL parser mode: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"llama-index-core/llama_index/core/indices/struct_store/sql_retriever.py","lineNumber":274,"sourceCode":"    def _update_prompts(self, prompts: PromptDictType) -> None:\n        \"\"\"Update prompts.\"\"\"\n        if \"text_to_sql_prompt\" in prompts:\n            self._text_to_sql_prompt = prompts[\"text_to_sql_prompt\"]\n\n    def _get_prompt_modules(self) -> PromptMixinType:\n        \"\"\"Get prompt modules.\"\"\"\n        return {}\n\n    def _load_sql_parser(\n        self, sql_parser_mode: SQLParserMode, embed_model: BaseEmbedding\n    ) -> BaseSQLParser:\n        \"\"\"Load SQL parser.\"\"\"\n        if sql_parser_mode == SQLParserMode.DEFAULT:\n            return DefaultSQLParser()\n        elif sql_parser_mode == SQLParserMode.PGVECTOR:\n            return PGVectorSQLParser(embed_model=embed_model)\n        else:\n            raise ValueError(f\"Unknown SQL parser mode: {sql_parser_mode}\")\n\n    def _load_get_tables_fn(\n        self,\n        sql_database: SQLDatabase,\n        tables: Optional[Union[List[str], List[Table]]] = None,\n        context_query_kwargs: Optional[dict] = None,\n        table_retriever: Optional[ObjectRetriever[SQLTableSchema]] = None,\n    ) -> Callable[[str], List[SQLTableSchema]]:\n        \"\"\"Load get_tables function.\"\"\"\n        context_query_kwargs = context_query_kwargs or {}\n        if table_retriever is not None:\n            return lambda query_str: cast(Any, table_retriever).retrieve(query_str)\n        else:\n            if tables is not None:\n                table_names: List[str] = [\n                    t.name if isinstance(t, Table) else t for t in tables\n                ]\n            else:","sourceCodeStart":256,"sourceCodeEnd":292,"githubUrl":"https://github.com/run-llama/llama_index/blob/afd0fef371831f9bda13e5af7167cf4e981278ab/llama-index-core/llama_index/core/indices/struct_store/sql_retriever.py#L256-L292","documentation":"SQLRetriever._load_sql_parser raises ValueError(f'Unknown SQL parser mode: {sql_parser_mode}') when the mode is neither SQLParserMode.DEFAULT nor SQLParserMode.PGVECTOR. The parser mode selects how raw LLM SQL output is cleaned/parsed before execution; only the plain default parser and the pgvector-aware parser (which rewrites embedding parameters) are registered. This runs inside SQLRetriever.__init__ (via Settings/constructor), so it fails at retriever construction, not at query time.","triggerScenarios":"Calling SQLRetriever(..., sql_parser_mode='default_mode') or some guessed string; passing an enum member from a different class; passing SQLParserMode.PGVECTOR to a non-pgvector setup is fine, but any third value or bad string hits the else.","commonSituations":"String typos ('defaults', 'DEFAULT' where the enum value is lowercase); stale tutorial snippets naming modes that no longer exist; copy-pasting pgvector example config into the wrong parameter.","solutions":["Use the enum: from llama_index.core.indices.struct_store.sql_retriever import SQLParserMode; SQLRetriever(..., sql_parser_mode=SQLParserMode.DEFAULT).","If passing a string, use the exact enum value 'default' or 'pgvector'.","Omit sql_parser_mode entirely — DEFAULT is the default."],"exampleFix":"# before\nretriever = SQLRetriever(index, sql_parser_mode=\"plain\")  # ValueError\n\n# after\nfrom llama_index.core.indices.struct_store.sql_retriever import SQLParserMode\nretriever = SQLRetriever(index, sql_parser_mode=SQLParserMode.DEFAULT)","handlingStrategy":"type-guard","validationCode":"from llama_index.core.indices.struct_store.sql_retriever import SQLParserMode\n\nVALID_PARSER_MODES = {SQLParserMode.DEFAULT, SQLParserMode.PGVECTOR}\n\ndef resolve_parser_mode(m) -> SQLParserMode:\n    mode = SQLParserMode(m) if isinstance(m, str) else m\n    if mode not in VALID_PARSER_MODES:\n        raise ValueError(f\"unsupported sql_parser_mode: {m}; use {VALID_PARSER_MODES}\")\n    return mode","typeGuard":"from llama_index.core.indices.struct_store.sql_retriever import SQLParserMode\n\ndef is_valid_parser_mode(m) -> bool:\n    try:\n        return SQLParserMode(m) in (SQLParserMode.DEFAULT, SQLParserMode.PGVECTOR)\n    except ValueError:\n        return False","tryCatchPattern":null,"preventionTips":["Pass SQLParserMode enum members, not invented strings.","Only use PGVECTOR mode with a pgvector-enabled store; DEFAULT otherwise (it is the default — omit it)."],"tags":["sql","enum","retriever","llama-index"],"backgroundTag":null,"analyzedSha":"afd0fef371831f9bda13e5af7167cf4e981278ab","analyzedAt":"2026-08-15T05:42:58.429Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}