{"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-89bc607d74569a6f891c.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/srinify/Documents/incubator-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":""}