{"version":3,"sources":["webpack:///./src/pages/docs/Miscellaneous/issue_codes.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","parentName","isMDXComponent"],"mappings":"0PAQaA,G,UAAe,S,8NAC5B,IAAMC,EAAc,CAClBD,gBAEIE,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeD,EAAiBK,EAAhC,CAAuCD,WAAYA,EAAYE,QAAQ,cAG5E,iBAAQ,CACN,GAAM,wBADR,wBAGA,wHAEA,iBAAQ,CACN,GAAM,cADR,cAGA,uBAAK,gCAAMC,WAAW,OAAU,IAA3B,4CAEL,uPAIA,iBAAQ,CACN,GAAM,cADR,cAGA,uBAAK,gCAAMA,WAAW,OAAU,IAA3B,6CAEL,6MAGA,iBAAQ,CACN,GAAM,cADR,cAGA,uBAAK,gCAAMA,WAAW,OAAU,IAA3B,iDAEL,sUAKA,iBAAQ,CACN,GAAM,cADR,cAGA,uBAAK,gCAAMA,WAAW,OAAU,IAA3B,2FAEL,2MAGA,iBAAQ,CACN,GAAM,cADR,cAGA,uBAAK,gCAAMA,WAAW,OAAU,IAA3B,yDAEL,2OAGA,iBAAQ,CACN,GAAM,cADR,cAGA,uBAAK,gCAAMA,WAAW,OAAU,IAA3B,wDAEL,6LAGA,iBAAQ,CACN,GAAM,cADR,cAGA,uBAAK,gCAAMA,WAAW,OAAU,IAA3B,iEAEL,4S,4NAQJJ,EAAWK,gBAAiB","file":"component---src-pages-docs-miscellaneous-issue-codes-mdx-e41a2e3c5e15be06b30d.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/srinify/Documents/superset/docs/node_modules/gatsby-theme-docz/src/base/Layout.js\";\nexport const _frontmatter = {};\nconst layoutProps = {\n  _frontmatter\n};\nconst MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...layoutProps} {...props} components={components} mdxType=\"MDXLayout\">\n\n\n    <h1 {...{\n      \"id\": \"issue-code-reference\"\n    }}>{`Issue Code Reference`}</h1>\n    <p>{`This page lists issue codes that may be displayed in\nSuperset and provides additional context.`}</p>\n    <h2 {...{\n      \"id\": \"issue-1000\"\n    }}>{`Issue 1000`}</h2>\n    <pre><code parentName=\"pre\" {...{}}>{`The datasource is too large to query.\n`}</code></pre>\n    <p>{`It's likely your datasource has grown too large to run the current\nquery, and is timing out. You can resolve this by reducing the\nsize of your datasource or by modifying your query to only process a\nsubset of your data.`}</p>\n    <h2 {...{\n      \"id\": \"issue-1001\"\n    }}>{`Issue 1001`}</h2>\n    <pre><code parentName=\"pre\" {...{}}>{`The database is under an unusual load.\n`}</code></pre>\n    <p>{`Your query may have timed out because of unusually high load on the\ndatabase engine. You can make your query simpler, or wait until the\ndatabase is under less load and try again.`}</p>\n    <h2 {...{\n      \"id\": \"issue-1002\"\n    }}>{`Issue 1002`}</h2>\n    <pre><code parentName=\"pre\" {...{}}>{`The database returned an unexpected error.\n`}</code></pre>\n    <p>{`Your query failed because of an error that occurred on the database.\nThis may be due to a syntax error, a bug in your query, or some other\ninternal failure within the database. This is usually not an\nissue within Superset, but instead a problem with the underlying\ndatabase that serves your query.`}</p>\n    <h2 {...{\n      \"id\": \"issue-1003\"\n    }}>{`Issue 1003`}</h2>\n    <pre><code parentName=\"pre\" {...{}}>{`There is a syntax error in the SQL query. Perhaps there was a misspelling or a typo.\n`}</code></pre>\n    <p>{`Your query failed because of a syntax error within the underlying query. Please\nvalidate that all columns or tables referenced within the query exist and are spelled\ncorrectly.`}</p>\n    <h2 {...{\n      \"id\": \"issue-1004\"\n    }}>{`Issue 1004`}</h2>\n    <pre><code parentName=\"pre\" {...{}}>{`The column was deleted or renamed in the database.\n`}</code></pre>\n    <p>{`Your query failed because it is referencing a column that no longer exists in\nthe underlying datasource. You should modify the query to reference the\nreplacement column, or remove this column from your query.`}</p>\n    <h2 {...{\n      \"id\": \"issue-1005\"\n    }}>{`Issue 1005`}</h2>\n    <pre><code parentName=\"pre\" {...{}}>{`The table was deleted or renamed in the database.\n`}</code></pre>\n    <p>{`Your query failed because it is referencing a table that no longer exists in\nthe underlying database. You should modify your query to reference the correct\ntable.`}</p>\n    <h2 {...{\n      \"id\": \"issue-1006\"\n    }}>{`Issue 1006`}</h2>\n    <pre><code parentName=\"pre\" {...{}}>{`One or more parameters specified in the query are missing.\n`}</code></pre>\n    <p>{`Your query was not submitted to the database because it's missing one or more\nparameters. You should define all the parameters referenced in the query in a\nvalid JSON document. Check that the parameters are spelled correctly and that\nthe document has a valid syntax.`}</p>\n\n    </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}