{"version":3,"sources":["webpack:///./src/pages/docs/Connecting to Databases/vertica.mdx"],"names":["_frontmatter","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,oOAE5B,IAKMC,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeI,EAAf,CAAsBD,WAAYA,EAAYE,QAAQ,cAC3D,iBAAQ,CACN,GAAM,WADR,WAGA,8DAEE,gBAAO,CACL,KAAQ,sDACR,WAAc,KAFhB,6BAFF,UAQE,gBAAO,CACL,KAAQ,0BACR,WAAc,KAFhB,WARF,+BAaA,sBAEE,iBAAQ,CACN,WAAc,MACb,qBAAY,CACX,WAAc,MADf,cAFH,aAQA,iBAAQ,CACN,WAAc,MACb,qBAAY,CACX,WAAc,MADf,aAFH,eAQA,iBAAQ,CACN,WAAc,MACb,qBAAY,CACX,WAAc,MADf,kBAGD,iBAAQ,CACN,WAAc,MAGd,iBAAQ,CACN,WAAc,MADhB,0CAKA,iBAAQ,CACN,WAAc,MADhB,yCAKA,iBAAQ,CACN,WAAc,MADhB,wCAOJ,iBAAQ,CACN,WAAc,MACb,qBAAY,CACX,WAAc,MADf,kBAFH,kBAQA,iBAAQ,CACN,WAAc,MACb,qBAAY,CACX,WAAc,MADf,SAFH,kBAQF,uEACA,uBAAK,mBAAU,CACX,WAAc,OADb,uEAIL,0CACA,sBAEE,iBAAQ,CACN,WAAc,MADhB,sC,kOASNH,EAAWI,gBAAiB","file":"component---src-pages-docs-connecting-to-databases-vertica-mdx-be570a72febd0a1defcc.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 MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...props} components={components} mdxType=\"MDXLayout\">\n    <h2 {...{\n      \"id\": \"vertica\"\n    }}>{`Vertica`}</h2>\n    <p>{`The recommended connector library is\n`}\n      <a {...{\n        \"href\": \"https://pypi.org/project/sqlalchemy-vertica-python/\",\n        \"parentName\": \"p\"\n      }}>{`sqlalchemy-vertica-python`}</a>\n      {`. The\n`}\n      <a {...{\n        \"href\": \"http://www.vertica.com/\",\n        \"parentName\": \"p\"\n      }}>{`Vertica`}</a>\n      {` connection parameters are:`}</p>\n    <ul>\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><strong {...{\n          \"parentName\": \"li\"\n        }}>{`User Name:`}</strong>\n        {` UserName`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><strong {...{\n          \"parentName\": \"li\"\n        }}>{`Password:`}</strong>\n        {` DBPassword`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><strong {...{\n          \"parentName\": \"li\"\n        }}>{`Database Host:`}</strong>\n        <ul {...{\n          \"parentName\": \"li\"\n        }}>\n\n          <li {...{\n            \"parentName\": \"ul\"\n          }}>{`For Localhost : localhost or 127.0.0.1`}</li>\n\n\n          <li {...{\n            \"parentName\": \"ul\"\n          }}>{`For On Prem : IP address or Host name`}</li>\n\n\n          <li {...{\n            \"parentName\": \"ul\"\n          }}>{`For Cloud: IP Address or Host Name`}</li>\n\n        </ul></li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><strong {...{\n          \"parentName\": \"li\"\n        }}>{`Database Name:`}</strong>\n        {` Database Name`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><strong {...{\n          \"parentName\": \"li\"\n        }}>{`Port:`}</strong>\n        {` default 5433`}</li>\n\n    </ul>\n    <p>{`The connection string is formatted as follows:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`vertica+vertica_python://{username}:{password}@{host}/{database}\n`}</code></pre>\n    <p>{`Other parameters:`}</p>\n    <ul>\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Load Balancer - Backup Host`}</li>\n\n    </ul>\n\n  </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}