{"version":3,"sources":["webpack:///./src/pages/docs/Miscellaneous/issue_codes.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"0PAMaA,G,UAAe,S,8NAE5B,IAKMC,EAAc,CAClBD,gBAEIE,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeD,EAAiBK,EAAhC,CAAuCD,WAAYA,EAAYE,QAAQ,cAC5E,iBAAQ,CACN,GAAM,wBADR,wBAGA,wHAEA,iBAAQ,CACN,GAAM,cADR,cAGA,uBAAK,mBAAU,CACX,WAAc,OADb,4CAIL,uPAIA,iBAAQ,CACN,GAAM,cADR,cAGA,uBAAK,mBAAU,CACX,WAAc,OADb,6CAIL,6MAGA,iBAAQ,CACN,GAAM,cADR,cAGA,uBAAK,mBAAU,CACX,WAAc,OADb,iDAIL,4U,4NASJH,EAAWI,gBAAiB","file":"component---src-pages-docs-miscellaneous-issue-codes-mdx-f51711224bb8d828479e.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/max/code/superset/docs/node_modules/gatsby-theme-docz/src/base/Layout.js\";\nexport const _frontmatter = {};\n\nconst makeShortcode = name => function MDXDefaultShortcode(props) {\n  console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n  return <div {...props} />;\n};\n\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    <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 {...{\n        \"parentName\": \"pre\"\n      }}>{`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 {...{\n        \"parentName\": \"pre\"\n      }}>{`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 {...{\n        \"parentName\": \"pre\"\n      }}>{`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\n  </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}