CINXE.COM
CSV - ParadeDB
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><link rel="apple-touch-icon" type="image/png" sizes="180x180" href="https://mintlify.s3-us-west-1.amazonaws.com/paradedb/_generated/favicon/apple-touch-icon.png?v=3"/><link rel="icon" type="image/png" sizes="32x32" href="https://mintlify.s3-us-west-1.amazonaws.com/paradedb/_generated/favicon/favicon-32x32.png?v=3"/><link rel="icon" type="image/png" sizes="16x16" href="https://mintlify.s3-us-west-1.amazonaws.com/paradedb/_generated/favicon/favicon-16x16.png?v=3"/><link rel="shortcut icon" type="image/x-icon" href="https://mintlify.s3-us-west-1.amazonaws.com/paradedb/_generated/favicon/favicon.ico?v=3"/><meta name="msapplication-config" content="https://mintlify.s3-us-west-1.amazonaws.com/paradedb/_generated/favicon/browserconfig.xml?v=3"/><meta name="apple-mobile-web-app-title" content="ParadeDB"/><meta name="application-name" content="ParadeDB"/><meta name="msapplication-TileColor" content="#4f46e5"/><meta name="theme-color" content="#ffffff"/><meta name="generator" content="Mintlify"/><link rel="sitemap" type="application/xml" href="/sitemap.xml"/><meta name="charset" content="utf-8"/><meta name="og:type" content="website"/><meta name="og:site_name" content="ParadeDB"/><meta name="twitter:card" content="summary_large_image"/><meta name="og:title" content="CSV - ParadeDB"/><meta name="twitter:title" content="CSV - ParadeDB"/><meta property="og:image" content="https://paradedb.mintlify.app/_next/image?url=%2Fapi%2Fog%3Fdivision%3DDocumentation%26title%3DCSV%26logoLight%3Dhttps%253A%252F%252Fmintlify.s3.us-west-1.amazonaws.com%252Fparadedb%252Flogo%252Flight.svg%26logoDark%3Dhttps%253A%252F%252Fmintlify.s3.us-west-1.amazonaws.com%252Fparadedb%252Flogo%252Fdark.svg%26primaryColor%3D%25234f46e5%26lightColor%3D%25234f46e5%26darkColor%3D%2523818cf8&w=1200&q=100"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="twitter:image" content="https://paradedb.mintlify.app/_next/image?url=%2Fapi%2Fog%3Fdivision%3DDocumentation%26title%3DCSV%26logoLight%3Dhttps%253A%252F%252Fmintlify.s3.us-west-1.amazonaws.com%252Fparadedb%252Flogo%252Flight.svg%26logoDark%3Dhttps%253A%252F%252Fmintlify.s3.us-west-1.amazonaws.com%252Fparadedb%252Flogo%252Fdark.svg%26primaryColor%3D%25234f46e5%26lightColor%3D%25234f46e5%26darkColor%3D%2523818cf8&w=1200&q=100"/><meta property="twitter:image:width" content="1200"/><meta property="twitter:image:height" content="630"/><title>CSV - ParadeDB</title><meta name="og:url" content="/integrations/formats/csv"/><link rel="canonical" href="/integrations/formats/csv"/><meta name="next-head-count" content="28"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.css" integrity="sha384-Xi8rHCmBmhbuyyhbI88391ZKP2dmfnOl4rT9ZfRI7mLTdk1wblIUnrIq35nqwEvC" crossorigin="anonymous"/><link rel="preload" href="/_next/static/media/a34f9d1faa5f3315-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/bb3ef058b751a6ad-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><script id="mode-toggle" data-nscript="beforeInteractive"> try { if (localStorage.isDarkMode === 'true') { document.documentElement.classList.add('dark'); } else if (localStorage.isDarkMode === 'false') { document.documentElement.classList.remove('dark'); } else if ((true && !('isDarkMode' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches) || false) { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } } catch (_) {}</script><link rel="preload" href="/_next/static/css/528d4550b3f20508.css" as="style"/><link rel="stylesheet" href="/_next/static/css/528d4550b3f20508.css" data-n-g=""/><link rel="preload" href="/_next/static/css/8c76fb7d3768dfe7.css" as="style"/><link rel="stylesheet" href="/_next/static/css/8c76fb7d3768dfe7.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-53b9216ce3b72355.js" defer=""></script><script src="/_next/static/chunks/framework-9ae01a5f4ade81f5.js" defer=""></script><script src="/_next/static/chunks/main-2103a0a044dd2f7a.js" defer=""></script><script src="/_next/static/chunks/pages/_app-939163e321e5f67c.js" defer=""></script><script src="/_next/static/chunks/2edb282b-a83f7ffd007bccf0.js" defer=""></script><script src="/_next/static/chunks/e893f787-f6a1094a35763a0d.js" defer=""></script><script src="/_next/static/chunks/086d643d-6f7196a364073d16.js" defer=""></script><script src="/_next/static/chunks/9097-53b32b020063004a.js" defer=""></script><script src="/_next/static/chunks/2198-6e8d1eaa7f8d911a.js" defer=""></script><script src="/_next/static/chunks/1301-173d3ce1037cd5c5.js" defer=""></script><script src="/_next/static/chunks/6953-cce90c97ca8ceee3.js" defer=""></script><script src="/_next/static/chunks/8650-f9f1b69eec39a9b1.js" defer=""></script><script src="/_next/static/chunks/pages/_sites/%5Bsubdomain%5D/%5B%5B...slug%5D%5D-125da23eff8d6832.js" defer=""></script><script src="/_next/static/w9U6NJPR8CiiNQ0UyKps2/_buildManifest.js" defer=""></script><script src="/_next/static/w9U6NJPR8CiiNQ0UyKps2/_ssgManifest.js" defer=""></script><style id="__jsx-4145347147">:root{--font-inter:'__Inter_e5ab12', '__Inter_Fallback_e5ab12';--font-jetbrains-mono:'__JetBrains_Mono_3c557b', '__JetBrains_Mono_Fallback_3c557b'}</style></head><div id="__next"><main class="jsx-4145347147"><style>:root { --primary: 79 70 229; --primary-light: 79 70 229; --primary-dark: 129 140 248; --background-light: 255 255 255; --background-dark: 10 10 15; --gray-50: 245 244 249; --gray-100: 240 240 245; --gray-200: 224 224 229; --gray-300: 208 208 213; --gray-400: 160 160 165; --gray-500: 114 114 118; --gray-600: 82 82 86; --gray-700: 64 64 69; --gray-800: 39 39 44; --gray-900: 25 24 29; --gray-950: 12 12 17; }</style><style>#search-bar-entry { visibility: hidden !important; } </style><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KMGRG564" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><span class="fixed inset-0 bg-background-light dark:bg-background-dark -z-10"></span><span class="block absolute dark:hidden inset-0 overflow-hidden"></span><span class="hidden absolute dark:block inset-0 overflow-hidden"></span><span class="fixed inset-0" style="background-image:url('https://mintlify.s3.us-west-1.amazonaws.com/paradedb/background.png');background-repeat:no-repeat;background-position:top right;background-attachment:fixed;-webkit-touch-callout:none"></span><div class="relative antialiased text-gray-500 dark:text-gray-400"><div id="navbar" class="z-30 fixed lg:sticky top-0 w-full"><div id="navbar-transition" class="absolute w-full h-full backdrop-blur flex-none transition-colors duration-500 border-b border-gray-500/5 dark:border-gray-300/[0.06] supports-backdrop-blur:bg-background-light/60 dark:bg-transparent"></div><div class="max-w-8xl mx-auto relative"><div class=""><div class="relative"><div class="flex items-center lg:px-12 h-16 min-w-0 px-4"><div class="h-full relative flex-1 flex items-center gap-x-4 min-w-0 border-b border-gray-500/5 dark:border-gray-300/[0.06] lg:border-none"><div class="flex-1 flex items-center gap-x-4"><a href="https://paradedb.com"><span class="sr-only">ParadeDB<!-- --> home page</span><img class="w-auto h-7 relative object-contain block dark:hidden" src="https://mintlify.s3.us-west-1.amazonaws.com/paradedb/logo/light.svg" alt="light logo"/><img class="w-auto h-7 relative object-contain hidden dark:block" src="https://mintlify.s3.us-west-1.amazonaws.com/paradedb/logo/dark.svg" alt="dark logo"/></a><div class="flex items-center gap-x-2"><button type="button" id="radix-:Rcascql6:" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="group bg-background-light dark:bg-background-dark disabled:pointer-events-none [&>span]:line-clamp-1 overflow-hidden group outline-none group-hover:text-gray-950/70 dark:group-hover:text-white/70 text-xs gap-1.5 text-gray-500 dark:text-gray-400 leading-5 font-semibold border border-gray-200 dark:border-gray-800 hover:border-gray-300 dark:hover:border-gray-700 rounded-full py-1 px-3 flex items-center space-x-2 whitespace-nowrap">v0.15.12<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down"><path d="m6 9 6 6 6-6"></path></svg></button></div></div><button type="button" class="hidden lg:flex relative flex-1 pointer-events-auto rounded-xl w-full items-center text-sm leading-6 py-1.5 pl-3.5 pr-3 shadow-sm text-gray-400 dark:text-white/50 bg-background-light dark:bg-background-dark dark:brightness-[1.1] dark:ring-1 dark:hover:brightness-[1.25] ring-1 ring-gray-400/20 hover:ring-gray-600/25 dark:ring-gray-600/30 dark:hover:ring-gray-500/30 focus:outline-primary justify-between truncate gap-2 min-w-[43px]" id="search-bar-entry"><div class="flex items-center gap-3 min-w-[42px]"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search min-w-4 flex-none text-gray-700 hover:text-gray-800 dark:text-gray-300 hover:dark:text-gray-200"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><div class="truncate min-w-0">Search or ask...</div></div></button><div class="flex-1 relative hidden lg:flex items-center ml-auto justify-end space-x-4"><nav class="text-sm"><ul class="flex space-x-6 items-center"><li><a href="https://join.slack.com/t/paradedbcommunity/shared_invite/zt-2lkzdsetw-OiIgbyFeiibd1DG~6wFgTQ" class="whitespace-nowrap font-medium text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" target="_blank">Community</a></li><li><a href="https://paradedb.com/blog" class="whitespace-nowrap font-medium text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" target="_blank">Blog</a></li><li class="cursor-pointer flex lg:hidden"><a href="https://github.com/paradedb/paradedb" target="_blank" rel="noreferrer" class="group flex items-center rounded-md hover:text-primary dark:hover:text-primary-light"><div class="flex items-center gap-1.5 h-8"><div class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024" fill="currentColor" class="size-4"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8C0 11.54 2.29 14.53 5.47 15.59C5.87 15.66 6.02 15.42 6.02 15.21C6.02 15.02 6.01 14.39 6.01 13.72C4 14.09 3.48 13.23 3.32 12.78C3.23 12.55 2.84 11.84 2.5 11.65C2.22 11.5 1.82 11.13 2.49 11.12C3.12 11.11 3.57 11.7 3.72 11.94C4.44 13.15 5.59 12.81 6.05 12.6C6.12 12.08 6.33 11.73 6.56 11.53C4.78 11.33 2.92 10.64 2.92 7.58C2.92 6.71 3.23 5.99 3.74 5.43C3.66 5.23 3.38 4.41 3.82 3.31C3.82 3.31 4.49 3.1 6.02 4.13C6.66 3.95 7.34 3.86 8.02 3.86C8.7 3.86 9.38 3.95 10.02 4.13C11.55 3.09 12.22 3.31 12.22 3.31C12.66 4.41 12.38 5.23 12.3 5.43C12.81 5.99 13.12 6.7 13.12 7.58C13.12 10.65 11.25 11.33 9.47 11.53C9.76 11.78 10.01 12.26 10.01 13.01C10.01 14.08 10 14.94 10 15.21C10 15.42 10.15 15.67 10.55 15.59C13.71 14.53 16 11.53 16 8C16 3.58 12.42 0 8 0Z" transform="scale(64)"></path></svg><span class="text-sm font-medium text-gray-700 dark:text-gray-300 group-hover:text-primary dark:group-hover:text-primary-light">paradedb<!-- -->/<!-- -->paradedb</span></div></div></a></li><li class="cursor-pointer hidden lg:flex"><a href="https://github.com/paradedb/paradedb" target="_blank" rel="noreferrer" class="group flex items-center rounded-md hover:text-primary dark:hover:text-primary-light"><div class="flex items-center gap-1.5 h-8"><div class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024" fill="currentColor" class="size-4"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8C0 11.54 2.29 14.53 5.47 15.59C5.87 15.66 6.02 15.42 6.02 15.21C6.02 15.02 6.01 14.39 6.01 13.72C4 14.09 3.48 13.23 3.32 12.78C3.23 12.55 2.84 11.84 2.5 11.65C2.22 11.5 1.82 11.13 2.49 11.12C3.12 11.11 3.57 11.7 3.72 11.94C4.44 13.15 5.59 12.81 6.05 12.6C6.12 12.08 6.33 11.73 6.56 11.53C4.78 11.33 2.92 10.64 2.92 7.58C2.92 6.71 3.23 5.99 3.74 5.43C3.66 5.23 3.38 4.41 3.82 3.31C3.82 3.31 4.49 3.1 6.02 4.13C6.66 3.95 7.34 3.86 8.02 3.86C8.7 3.86 9.38 3.95 10.02 4.13C11.55 3.09 12.22 3.31 12.22 3.31C12.66 4.41 12.38 5.23 12.3 5.43C12.81 5.99 13.12 6.7 13.12 7.58C13.12 10.65 11.25 11.33 9.47 11.53C9.76 11.78 10.01 12.26 10.01 13.01C10.01 14.08 10 14.94 10 15.21C10 15.42 10.15 15.67 10.55 15.59C13.71 14.53 16 11.53 16 8C16 3.58 12.42 0 8 0Z" transform="scale(64)"></path></svg><span class="text-sm font-medium text-gray-700 dark:text-gray-300 group-hover:text-primary dark:group-hover:text-primary-light">paradedb<!-- -->/<!-- -->paradedb</span></div></div></a></li></ul></nav><div class="flex items-center"><button class="group p-2 flex items-center justify-center" aria-label="Toggle dark mode"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 block text-gray-400 dark:hidden group-hover:text-gray-600"><g clip-path="url(#clip0_2880_7340)"><path d="M8 1.11133V2.00022" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M12.8711 3.12891L12.2427 3.75735" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M14.8889 8H14" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M12.8711 12.8711L12.2427 12.2427" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M8 14.8889V14" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M3.12891 12.8711L3.75735 12.2427" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.11133 8H2.00022" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M3.12891 3.12891L3.75735 3.75735" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M8.00043 11.7782C10.0868 11.7782 11.7782 10.0868 11.7782 8.00043C11.7782 5.91402 10.0868 4.22266 8.00043 4.22266C5.91402 4.22266 4.22266 5.91402 4.22266 8.00043C4.22266 10.0868 5.91402 11.7782 8.00043 11.7782Z" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></g><defs><clipPath id="clip0_2880_7340"><rect width="16" height="16" fill="white"></rect></clipPath></defs></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon h-4 w-4 hidden dark:block text-gray-500 dark:group-hover:text-gray-300"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg></button></div></div><div class="flex lg:hidden items-center gap-2"><button type="button" class="text-gray-500 w-8 h-8 flex items-center justify-center hover:text-gray-600 dark:text-gray-400 dark:hover:text-gray-300" id="search-bar-entry-mobile"><span class="sr-only">Search...</span><svg class="h-4 w-4 bg-gray-500 dark:bg-gray-400 hover:bg-gray-600 dark:hover:bg-gray-300" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/magnifying-glass.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/magnifying-glass.svg);mask-repeat:no-repeat;mask-position:center"></svg></button><button aria-label="More actions" class="h-7 w-5 flex items-center justify-end"><svg class="h-4 w-4 bg-gray-500 dark:bg-gray-400 hover:bg-gray-600 dark:hover:bg-gray-300" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/ellipsis-vertical.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/ellipsis-vertical.svg);mask-repeat:no-repeat;mask-position:center"></svg></button></div></div></div><div class="flex items-center h-14 py-4 px-5 lg:hidden"><button type="button" class="text-gray-500 hover:text-gray-600 dark:text-gray-400 dark:hover:text-gray-300"><span class="sr-only">Navigation</span><svg class="h-4" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"></path></svg></button><div class="ml-4 flex text-sm leading-6 whitespace-nowrap min-w-0 space-x-3"><div class="flex items-center space-x-3"><span>File/Table Formats</span><svg width="3" height="24" viewBox="0 -9 3 24" class="h-5 rotate-0 overflow-visible fill-gray-400"><path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></div><div class="font-semibold text-gray-900 truncate dark:text-gray-200">CSV</div></div></div></div></div></div></div><div class="max-w-8xl px-4 mx-auto lg:px-8"><div class="z-20 hidden lg:block fixed bottom-0 right-auto w-[18rem]" id="sidebar" style="top:4rem"><div class="absolute inset-0 z-10 stable-scrollbar-gutter overflow-auto pr-8 pb-10" id="sidebar-content"><div class="relative lg:text-sm lg:leading-6"><div class="sticky top-0 h-8"></div><div id="navigation-items"><li class="list-none"><a class="pl-4 group flex items-center lg:text-sm lg:leading-6 mb-5 sm:mb-4 font-medium text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" href="/welcome/introduction"><div class="mr-4 rounded-md p-1 shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 group-hover:brightness-100 group-hover:ring-0 ring-1 ring-gray-950/5 dark:ring-gray-700/40"><svg class="h-4 w-4 secondary-opacity group-hover:fill-primary-dark group-hover:bg-white bg-gray-400 dark:bg-gray-500" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/duotone/book-open.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/duotone/book-open.svg);mask-repeat:no-repeat;mask-position:center"></svg></div>Documentation</a></li><li class="list-none"><a class="pl-4 group flex items-center lg:text-sm lg:leading-6 mb-5 sm:mb-4 font-semibold text-primary dark:text-primary-light" href="/integrations/overview"><div style="background:#4f46e5" class="mr-4 rounded-md p-1"><svg class="h-4 w-4 secondary-opacity group-hover:fill-primary-dark group-hover:bg-white bg-white" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/duotone/merge.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/duotone/merge.svg);mask-repeat:no-repeat;mask-position:center"></svg></div>Integrations</a></li><li class="list-none"><a class="pl-4 group flex items-center lg:text-sm lg:leading-6 mb-5 sm:mb-4 font-medium text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" href="/deploy/overview"><div class="mr-4 rounded-md p-1 shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 group-hover:brightness-100 group-hover:ring-0 ring-1 ring-gray-950/5 dark:ring-gray-700/40"><svg class="h-4 w-4 secondary-opacity group-hover:fill-primary-dark group-hover:bg-white bg-gray-400 dark:bg-gray-500" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/duotone/server.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/duotone/server.svg);mask-repeat:no-repeat;mask-position:center"></svg></div>Deploy</a></li><li class="list-none"><a class="pl-4 group flex items-center lg:text-sm lg:leading-6 mb-5 sm:mb-4 font-medium text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" href="/changelog/0.15.12"><div class="mr-4 rounded-md p-1 shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 group-hover:brightness-100 group-hover:ring-0 ring-1 ring-gray-950/5 dark:ring-gray-700/40"><svg class="h-4 w-4 secondary-opacity group-hover:fill-primary-dark group-hover:bg-white bg-gray-400 dark:bg-gray-500" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/duotone/clock.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/duotone/clock.svg);mask-repeat:no-repeat;mask-position:center"></svg></div>Changelog</a></li><div class="mt-12 lg:mt-8"><h5 class="pl-4 mb-3.5 lg:mb-2.5 font-semibold text-gray-900 dark:text-gray-200">Integrations</h5><ul><li id="/integrations/overview" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/integrations/overview"><div class="flex-1 flex items-center space-x-2.5"><div>Overview</div></div></a></li><li><div class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem"><div class="">File/Table Formats</div><svg width="8" height="24" viewBox="0 -9 3 24" class="transition-transform text-gray-400 overflow-visible group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 -mr-0.5 duration-75 rotate-90"><path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></div><ul><li id="/integrations/formats/csv" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl bg-primary/10 text-primary font-semibold dark:text-primary-light dark:bg-primary-light/10" style="padding-left:1.75rem" href="/integrations/formats/csv"><div class="flex-1 flex items-center space-x-2.5"><div>CSV</div></div></a></li><li id="/integrations/formats/json" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1.75rem" href="/integrations/formats/json"><div class="flex-1 flex items-center space-x-2.5"><div>JSON</div></div></a></li><li id="/integrations/formats/parquet" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1.75rem" href="/integrations/formats/parquet"><div class="flex-1 flex items-center space-x-2.5"><div>Parquet</div></div></a></li><li id="/integrations/formats/spatial" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1.75rem" href="/integrations/formats/spatial"><div class="flex-1 flex items-center space-x-2.5"><div>Geospatial</div></div></a></li><li id="/integrations/formats/iceberg" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1.75rem" href="/integrations/formats/iceberg"><div class="flex-1 flex items-center space-x-2.5"><div>Iceberg</div></div></a></li><li id="/integrations/formats/delta" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1.75rem" href="/integrations/formats/delta"><div class="flex-1 flex items-center space-x-2.5"><div>Delta Lake</div></div></a></li></ul></li><li><div class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem"><div class="">Object Stores</div><svg width="8" height="24" viewBox="0 -9 3 24" class="transition-transform text-gray-400 overflow-visible group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 -mr-0.5"><path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></div></li><li><div class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem"><div class="">Configuration</div><svg width="8" height="24" viewBox="0 -9 3 24" class="transition-transform text-gray-400 overflow-visible group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 -mr-0.5"><path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></div></li></ul></div></div></div></div></div><div class="" id="content-container"><div class="flex flex-row gap-12 box-border w-full pt-40 lg:pt-10"><div class="relative grow box-border flex-col w-full mx-auto px-1 lg:pl-[23.7rem] lg:-ml-12 xl:w-[calc(100%-28rem)]" id="content-area"><header id="header" class="relative"><div class="mt-0.5 space-y-2.5"><div class="eyebrow h-5 text-primary dark:text-primary-light text-sm font-semibold">File/Table Formats</div><div class="flex items-center relative"><h1 class="inline-block text-2xl sm:text-3xl font-bold text-gray-900 tracking-tight dark:text-gray-200">CSV</h1></div></div></header><div class="flex flex-col gap-8"></div><div class="relative mt-8 prose prose-gray dark:prose-invert"><h2 class="flex whitespace-pre-wrap group font-semibold" id="overview"><div class="absolute"><a href="#overview" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><span class="cursor-pointer">Overview</span></h2> <p>This code block demonstrates how to query CSV file(s).</p> <div class="mt-5 mb-8 not-prose rounded-2xl relative group text-gray-50 bg-[#0F1117] dark:bg-codeblock ring-1 ring-transparent dark:ring-gray-800/50 codeblock-dark"><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&>pre>code]:pr-[3rem] [&>pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-sql"><code class="language-sql"><span class=""><span class="token keyword">CREATE</span> <span class="token keyword">FOREIGN</span> <span class="token keyword">DATA</span> WRAPPER <span class="token operator"><</span>wrapper_name<span class="token operator">></span></span> <span class=""><span class="token keyword">HANDLER</span> csv_fdw_handler</span> <span class="">VALIDATOR csv_fdw_validator<span class="token punctuation">;</span></span> <!-- --> <span class=""><span class="token keyword">CREATE</span> SERVER <span class="token operator"><</span>server_name<span class="token operator">></span></span> <span class=""><span class="token keyword">FOREIGN</span> <span class="token keyword">DATA</span> WRAPPER <span class="token operator"><</span>wrapper_name<span class="token operator">></span><span class="token punctuation">;</span></span> <!-- --> <span class=""><span class="token keyword">CREATE</span> <span class="token keyword">FOREIGN</span> <span class="token keyword">TABLE</span> <span class="token operator"><</span>table_name<span class="token operator">></span> <span class="token punctuation">(</span><span class="token punctuation">)</span></span> <span class="">SERVER <span class="token operator"><</span>server_name<span class="token operator">></span></span> <span class="">OPTIONS <span class="token punctuation">(</span>files <span class="token string">'<files>'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span> </code></pre></div></div></div> <div role="button" class="border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><button class="relative not-prose flex flex-row items-center content-center w-full py-4 px-5 space-x-2 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="example-usage accordion children" aria-expanded="false"><div id="example-usage" class="absolute -top-[4.5rem]"></div><div class="mr-0.5"><svg class="h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/caret-right.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/caret-right.svg);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left" contenteditable="false"><p class="m-0 font-medium text-gray-900 dark:text-gray-200">Example Usage</p></div></button><div id="example-usage accordion children" role="contentinfo" class="mt-2 mb-4 mx-6 hidden overflow-x-auto cursor-default"><div class="mt-5 mb-8 not-prose rounded-2xl relative group text-gray-50 bg-[#0F1117] dark:bg-codeblock ring-1 ring-transparent dark:ring-gray-800/50 codeblock-dark"><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&>pre>code]:pr-[3rem] [&>pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-sql"><code class="language-sql"><span class=""><span class="token keyword">CREATE</span> <span class="token keyword">FOREIGN</span> <span class="token keyword">DATA</span> WRAPPER csv_wrapper</span> <span class=""><span class="token keyword">HANDLER</span> csv_fdw_handler</span> <span class="">VALIDATOR csv_fdw_validator<span class="token punctuation">;</span></span> <!-- --> <span class=""><span class="token keyword">CREATE</span> SERVER csv_server</span> <span class=""><span class="token keyword">FOREIGN</span> <span class="token keyword">DATA</span> WRAPPER csv_wrapper<span class="token punctuation">;</span></span> <!-- --> <span class=""><span class="token keyword">CREATE</span> <span class="token keyword">FOREIGN</span> <span class="token keyword">TABLE</span> csv_table <span class="token punctuation">(</span><span class="token punctuation">)</span></span> <span class="">SERVER csv_server</span> <span class="">OPTIONS <span class="token punctuation">(</span>files <span class="token string">'s3://bucket/folder/file.csv'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span> <!-- --> </code></pre></div></div></div></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-wrapper-name"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-wrapper-name" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">wrapper_name</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="px-2 py-0.5 rounded-md bg-red-100/50 dark:bg-red-400/10 text-red-600 dark:text-red-300 font-medium whitespace-nowrap">required</div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Foreign data wrapper name. Can be any string.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-server-name"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-server-name" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">server_name</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="px-2 py-0.5 rounded-md bg-red-100/50 dark:bg-red-400/10 text-red-600 dark:text-red-300 font-medium whitespace-nowrap">required</div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Foreign server name. Can be any string.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-table-name"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-table-name" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">table_name</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="px-2 py-0.5 rounded-md bg-red-100/50 dark:bg-red-400/10 text-red-600 dark:text-red-300 font-medium whitespace-nowrap">required</div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Foreign table name. Can be any string.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-files"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-files" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">files</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="px-2 py-0.5 rounded-md bg-red-100/50 dark:bg-red-400/10 text-red-600 dark:text-red-300 font-medium whitespace-nowrap">required</div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>The path of a single CSV file or <a href="/_sites/docs.paradedb.com/integrations/formats/csv#multiple-csv-files">multiple CSV files</a>. For instance, <code>s3://bucket/folder/file.csv</code> if the file is in Amazon S3, <code>https://domain.tld/file.csv</code> if the file is on a HTTP server, or <code>/path/to/file.csv</code> if the file is on the local file system.</p></div></div> <h2 class="flex whitespace-pre-wrap group font-semibold" id="csv-options"><div class="absolute"><a href="#csv-options" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><span class="cursor-pointer">CSV Options</span></h2> <p>There are a number of options that can be passed into the <code>CREATE FOREIGN TABLE</code> statement. These are the same <a href="https://duckdb.org/docs/data/csv/overview#parameters" target="_blank" rel="noreferrer">options</a> accepted by DuckDB’s <code>read_csv</code> function.</p> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-all-varchar"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-all-varchar" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">all_varchar</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>"false"</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Option to skip type detection for CSV parsing and assume all columns to be of type<code>VARCHAR</code>.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-allow-quoted-nulls"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-allow-quoted-nulls" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">allow_quoted_nulls</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>"true"</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Option to allow the conversion of quoted values to <code>NULL</code> values.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-auto-detect"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-auto-detect" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">auto_detect</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>"true"</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Enables auto detection of CSV parameters. See <a href="https://duckdb.org/docs/data/csv/auto_detection.html" target="_blank" rel="noreferrer">Auto Detection</a>.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-auto-type-candidates"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-auto-type-candidates" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">auto_type_candidates</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>This option allows you to specify the types that the sniffer will use when detecting CSV column types. The <code>VARCHAR</code> type is always included in the detected types (as a fallback option). See <a href="https://duckdb.org/docs/data/csv/overview#auto_type_candidates-details" target="_blank" rel="noreferrer">Auto Type Candidates</a>.</p><div role="button" class="border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><button class="relative not-prose flex flex-row items-center content-center w-full py-4 px-5 space-x-2 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="example-usage accordion children" aria-expanded="false"><div id="example-usage" class="absolute -top-[4.5rem]"></div><div class="mr-0.5"><svg class="h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/caret-right.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/caret-right.svg);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left" contenteditable="false"><p class="m-0 font-medium text-gray-900 dark:text-gray-200">Example Usage</p></div></button><div id="example-usage accordion children" role="contentinfo" class="mt-2 mb-4 mx-6 hidden overflow-x-auto cursor-default"><div class="mt-5 mb-8 not-prose rounded-2xl relative group text-gray-50 bg-[#0F1117] dark:bg-codeblock ring-1 ring-transparent dark:ring-gray-800/50 codeblock-dark"><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&>pre>code]:pr-[3rem] [&>pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-sql"><code class="language-sql"><span class=""><span class="token keyword">CREATE</span> <span class="token keyword">FOREIGN</span> <span class="token keyword">TABLE</span> csv_table <span class="token punctuation">(</span><span class="token punctuation">)</span></span> <span class="">SERVER csv_server</span> <span class="">OPTIONS <span class="token punctuation">(</span></span> <span class=""> files <span class="token string">'s3://bucket/folder/file.csv'</span><span class="token punctuation">,</span></span> <span class=""> auto_type_candidates <span class="token string">'BIGINT, DATE'</span></span> <span class=""><span class="token punctuation">)</span><span class="token punctuation">;</span></span> </code></pre></div></div></div></div></div></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-columns"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-columns" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">columns</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>A struct that specifies the column names and column types contained within the CSV file (e.g., <code>{'col1': 'INTEGER', 'col2': 'VARCHAR'}</code>). Using this option implies that auto detection is not used.</p><div role="button" class="border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><button class="relative not-prose flex flex-row items-center content-center w-full py-4 px-5 space-x-2 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="example-usage accordion children" aria-expanded="false"><div id="example-usage" class="absolute -top-[4.5rem]"></div><div class="mr-0.5"><svg class="h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/caret-right.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/caret-right.svg);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left" contenteditable="false"><p class="m-0 font-medium text-gray-900 dark:text-gray-200">Example Usage</p></div></button><div id="example-usage accordion children" role="contentinfo" class="mt-2 mb-4 mx-6 hidden overflow-x-auto cursor-default"><div class="mt-5 mb-8 not-prose rounded-2xl relative group text-gray-50 bg-[#0F1117] dark:bg-codeblock ring-1 ring-transparent dark:ring-gray-800/50 codeblock-dark"><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&>pre>code]:pr-[3rem] [&>pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-sql"><code class="language-sql"><span class=""><span class="token comment">-- Dollar-quoted strings are used to contain single quotes</span></span> <span class=""><span class="token keyword">CREATE</span> <span class="token keyword">FOREIGN</span> <span class="token keyword">TABLE</span> csv_table <span class="token punctuation">(</span><span class="token punctuation">)</span></span> <span class="">SERVER csv_server</span> <span class="">OPTIONS <span class="token punctuation">(</span></span> <span class=""> files <span class="token string">'s3://bucket/folder/file.csv'</span><span class="token punctuation">,</span></span> <span class=""> <span class="token keyword">columns</span> $${<span class="token string">'FlightDate'</span>: <span class="token string">'DATE'</span><span class="token punctuation">,</span> <span class="token string">'UniqueCarrier'</span>: <span class="token string">'VARCHAR'</span>}$$</span> <span class=""><span class="token punctuation">)</span><span class="token punctuation">;</span></span> </code></pre></div></div></div></div></div></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-compression"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-compression" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">compression</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>"auto"</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>The compression type for the file. By default this will be detected automatically from the file extension (e.g., <code>t.csv.gz</code> will use <code>gzip</code>, <code>t.csv</code> will use <code>none</code>). Options are <code>none</code>, <code>gzip</code>, <code>zstd</code>.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-dateformat"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-dateformat" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">dateformat</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Specifies the date format to use when parsing dates. See <a href="https://duckdb.org/docs/sql/functions/dateformat.html" target="_blank" rel="noreferrer">Date Format</a>.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-decimal-separator"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-decimal-separator" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">decimal_separator</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>"."</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>The decimal separator of numbers.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-delim"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-delim" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">delim</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>","</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Specifies the delimiter character that separates columns within each row (line) of the file. Alias for <code>sep</code>.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-escape"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-escape" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">escape</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>"\""</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Specifies the string that should appear before a data character sequence that matches the quote value.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-filename"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-filename" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">filename</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>"false"</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Whether or not an extra filename column should be included in the result.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-force-not-null"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-force-not-null" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">force_not_null</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Do not match the specified columns’ values against the <code>NULL</code> string. In the default case where the <code>NULL</code> string is empty, this means that empty values will be read as zero-length strings rather than NULLs.</p><div role="button" class="border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><button class="relative not-prose flex flex-row items-center content-center w-full py-4 px-5 space-x-2 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="example-usage accordion children" aria-expanded="false"><div id="example-usage" class="absolute -top-[4.5rem]"></div><div class="mr-0.5"><svg class="h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/caret-right.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/caret-right.svg);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left" contenteditable="false"><p class="m-0 font-medium text-gray-900 dark:text-gray-200">Example Usage</p></div></button><div id="example-usage accordion children" role="contentinfo" class="mt-2 mb-4 mx-6 hidden overflow-x-auto cursor-default"><div class="mt-5 mb-8 not-prose rounded-2xl relative group text-gray-50 bg-[#0F1117] dark:bg-codeblock ring-1 ring-transparent dark:ring-gray-800/50 codeblock-dark"><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&>pre>code]:pr-[3rem] [&>pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-sql"><code class="language-sql"><span class=""><span class="token comment">-- Dollar-quoted strings are used to contain single quotes</span></span> <span class=""><span class="token keyword">CREATE</span> <span class="token keyword">FOREIGN</span> <span class="token keyword">TABLE</span> csv_table <span class="token punctuation">(</span><span class="token punctuation">)</span></span> <span class="">SERVER csv_server</span> <span class="">OPTIONS <span class="token punctuation">(</span></span> <span class=""> files <span class="token string">'s3://bucket/folder/file.csv'</span><span class="token punctuation">,</span></span> <span class=""> force_not_null <span class="token string">'FlightDate, UniqueCarrier'</span></span> <span class=""><span class="token punctuation">)</span><span class="token punctuation">;</span></span> </code></pre></div></div></div></div></div></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-header"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-header" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">header</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>"false"</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Specifies that the file contains a header line with the names of each column in the file.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-hive-partitioning"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-hive-partitioning" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">hive_partitioning</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>"false"</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Whether or not to interpret the path as a Hive partitioned path.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-hive-types"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-hive-types" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">hive_types</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>If <code>hive_partitioning</code> is enabled, <code>hive_types</code> can be used to specify the logical types of the hive partitions in a struct.</p><div role="button" class="border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><button class="relative not-prose flex flex-row items-center content-center w-full py-4 px-5 space-x-2 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="example-usage accordion children" aria-expanded="false"><div id="example-usage" class="absolute -top-[4.5rem]"></div><div class="mr-0.5"><svg class="h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/caret-right.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/caret-right.svg);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left" contenteditable="false"><p class="m-0 font-medium text-gray-900 dark:text-gray-200">Example Usage</p></div></button><div id="example-usage accordion children" role="contentinfo" class="mt-2 mb-4 mx-6 hidden overflow-x-auto cursor-default"><div class="mt-5 mb-8 not-prose rounded-2xl relative group text-gray-50 bg-[#0F1117] dark:bg-codeblock ring-1 ring-transparent dark:ring-gray-800/50 codeblock-dark"><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&>pre>code]:pr-[3rem] [&>pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-sql"><code class="language-sql"><span class=""><span class="token comment">-- Dollar-quoted strings are used to contain single quotes</span></span> <span class=""><span class="token keyword">CREATE</span> <span class="token keyword">FOREIGN</span> <span class="token keyword">TABLE</span> csv_table <span class="token punctuation">(</span><span class="token punctuation">)</span></span> <span class="">SERVER csv_server</span> <span class="">OPTIONS <span class="token punctuation">(</span></span> <span class=""> files <span class="token string">'s3://bucket/folder/file.csv'</span><span class="token punctuation">,</span></span> <span class=""> hive_partitioning <span class="token string">'true'</span><span class="token punctuation">,</span></span> <span class=""> hive_types $${<span class="token string">'release'</span>: <span class="token keyword">DATE</span><span class="token punctuation">,</span> <span class="token string">'orders'</span>: <span class="token keyword">BIGINT</span>}$$</span> <span class=""><span class="token punctuation">)</span><span class="token punctuation">;</span></span> </code></pre></div></div></div></div></div></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-hive-types-autocast"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-hive-types-autocast" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">hive_types_autocast</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>hive_types will be autodetected for the following types: <code>DATE</code>, <code>TIMESTAMP</code> and <code>BIGINT</code>. To switch off the autodetection, this option can be set to <code>0</code>.</p><div role="button" class="border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><button class="relative not-prose flex flex-row items-center content-center w-full py-4 px-5 space-x-2 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="example-usage accordion children" aria-expanded="false"><div id="example-usage" class="absolute -top-[4.5rem]"></div><div class="mr-0.5"><svg class="h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/caret-right.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/caret-right.svg);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left" contenteditable="false"><p class="m-0 font-medium text-gray-900 dark:text-gray-200">Example Usage</p></div></button><div id="example-usage accordion children" role="contentinfo" class="mt-2 mb-4 mx-6 hidden overflow-x-auto cursor-default"><div class="mt-5 mb-8 not-prose rounded-2xl relative group text-gray-50 bg-[#0F1117] dark:bg-codeblock ring-1 ring-transparent dark:ring-gray-800/50 codeblock-dark"><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&>pre>code]:pr-[3rem] [&>pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-sql"><code class="language-sql"><span class=""><span class="token keyword">CREATE</span> <span class="token keyword">FOREIGN</span> <span class="token keyword">TABLE</span> csv_table <span class="token punctuation">(</span><span class="token punctuation">)</span></span> <span class="">SERVER csv_server</span> <span class="">OPTIONS <span class="token punctuation">(</span></span> <span class=""> files <span class="token string">'s3://bucket/folder/file.csv'</span><span class="token punctuation">,</span></span> <span class=""> hive_partitioning <span class="token string">'true'</span><span class="token punctuation">,</span></span> <span class=""> hive_types $${<span class="token string">'release'</span>: <span class="token keyword">DATE</span><span class="token punctuation">,</span> <span class="token string">'orders'</span>: <span class="token keyword">BIGINT</span>}$$<span class="token punctuation">,</span></span> <span class=""> hive_types_autocast <span class="token string">'0'</span></span> <span class=""><span class="token punctuation">)</span><span class="token punctuation">;</span></span> </code></pre></div></div></div></div></div></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-ignore-errors"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-ignore-errors" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">ignore_errors</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>"false"</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Option to ignore any parsing errors encountered and instead ignore rows with errors.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-max-line-size"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-max-line-size" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">max_line_size</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>"2097152"</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>The maximum line size in bytes.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-names"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-names" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">names</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>The column names as a list if the file does not contain a header.</p><div role="button" class="border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><button class="relative not-prose flex flex-row items-center content-center w-full py-4 px-5 space-x-2 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="example-usage accordion children" aria-expanded="false"><div id="example-usage" class="absolute -top-[4.5rem]"></div><div class="mr-0.5"><svg class="h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/caret-right.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/caret-right.svg);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left" contenteditable="false"><p class="m-0 font-medium text-gray-900 dark:text-gray-200">Example Usage</p></div></button><div id="example-usage accordion children" role="contentinfo" class="mt-2 mb-4 mx-6 hidden overflow-x-auto cursor-default"><div class="mt-5 mb-8 not-prose rounded-2xl relative group text-gray-50 bg-[#0F1117] dark:bg-codeblock ring-1 ring-transparent dark:ring-gray-800/50 codeblock-dark"><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&>pre>code]:pr-[3rem] [&>pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-sql"><code class="language-sql"><span class=""><span class="token comment">-- Dollar-quoted strings are used to contain single quotes</span></span> <span class=""><span class="token keyword">CREATE</span> <span class="token keyword">FOREIGN</span> <span class="token keyword">TABLE</span> csv_table <span class="token punctuation">(</span><span class="token punctuation">)</span></span> <span class="">SERVER csv_server</span> <span class="">OPTIONS <span class="token punctuation">(</span></span> <span class=""> files <span class="token string">'s3://bucket/folder/file.csv'</span><span class="token punctuation">,</span></span> <span class=""> names <span class="token string">'FlightDate, UniqueCarrier'</span></span> <span class=""><span class="token punctuation">)</span><span class="token punctuation">;</span></span> </code></pre></div></div></div></div></div></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-new-line"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-new-line" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">new_line</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Set the new line character(s) in the file. Options are ‘\r’,‘\n’, or ‘\r\n’.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-normalize-names"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-normalize-names" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">normalize_names</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>"false"</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Boolean value that specifies whether or not column names should be normalized, removing any non-alphanumeric characters from them.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-null-padding"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-null-padding" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">null_padding</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>"false"</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>If this option is enabled, when a row lacks columns, it will pad the remaining columns on the right with null values.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-nullstr"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-nullstr" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">nullstr</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Specifies the string that represents a <code>NULL</code> value or a list of strings that represent a <code>NULL</code> value.</p><div role="button" class="border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><button class="relative not-prose flex flex-row items-center content-center w-full py-4 px-5 space-x-2 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="example-usage accordion children" aria-expanded="false"><div id="example-usage" class="absolute -top-[4.5rem]"></div><div class="mr-0.5"><svg class="h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/caret-right.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/caret-right.svg);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left" contenteditable="false"><p class="m-0 font-medium text-gray-900 dark:text-gray-200">Example Usage</p></div></button><div id="example-usage accordion children" role="contentinfo" class="mt-2 mb-4 mx-6 hidden overflow-x-auto cursor-default"><div class="mt-5 mb-8 not-prose rounded-2xl relative group text-gray-50 bg-[#0F1117] dark:bg-codeblock ring-1 ring-transparent dark:ring-gray-800/50 codeblock-dark"><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&>pre>code]:pr-[3rem] [&>pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-sql"><code class="language-sql"><span class=""><span class="token comment">-- Dollar-quoted strings are used to contain single quotes</span></span> <span class=""><span class="token keyword">CREATE</span> <span class="token keyword">FOREIGN</span> <span class="token keyword">TABLE</span> csv_table <span class="token punctuation">(</span><span class="token punctuation">)</span></span> <span class="">SERVER csv_server</span> <span class="">OPTIONS <span class="token punctuation">(</span></span> <span class=""> files <span class="token string">'s3://bucket/folder/file.csv'</span><span class="token punctuation">,</span></span> <span class=""> nullstr <span class="token string">'NULL, NONE'</span></span> <span class=""><span class="token punctuation">)</span><span class="token punctuation">;</span></span> </code></pre></div></div></div></div></div></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-parallel"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-parallel" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">parallel</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>"true"</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Whether or not the parallel CSV reader is used.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-quote"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-quote" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">quote</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>"\""</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Specifies the quoting string to be used when a data value is quoted.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-sample-size"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-sample-size" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">sample_size</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>"20480"</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>The number of sample rows for auto detection of parameters.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-sep"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-sep" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">sep</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>","</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Specifies the delimiter character that separates columns within each row (line) of the file. Alias for <code>delim</code>.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-skip"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-skip" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">skip</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>"0"</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>The number of lines at the top of the file to skip.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-timestampformat"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-timestampformat" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">timestampformat</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>"(empty)"</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Specifies the date format to use when parsing timestamps. See <a href="https://duckdb.org/docs/sql/functions/dateformat.html" target="_blank" rel="noreferrer">Date Format</a>.</p></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-types"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-types" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">types</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>The column types as a list by position.</p><div role="button" class="border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><button class="relative not-prose flex flex-row items-center content-center w-full py-4 px-5 space-x-2 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="example-usage accordion children" aria-expanded="false"><div id="example-usage" class="absolute -top-[4.5rem]"></div><div class="mr-0.5"><svg class="h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/caret-right.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/caret-right.svg);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left" contenteditable="false"><p class="m-0 font-medium text-gray-900 dark:text-gray-200">Example Usage</p></div></button><div id="example-usage accordion children" role="contentinfo" class="mt-2 mb-4 mx-6 hidden overflow-x-auto cursor-default"><div class="mt-5 mb-8 not-prose rounded-2xl relative group text-gray-50 bg-[#0F1117] dark:bg-codeblock ring-1 ring-transparent dark:ring-gray-800/50 codeblock-dark"><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&>pre>code]:pr-[3rem] [&>pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-sql"><code class="language-sql"><span class=""><span class="token keyword">CREATE</span> <span class="token keyword">FOREIGN</span> <span class="token keyword">TABLE</span> csv_table <span class="token punctuation">(</span><span class="token punctuation">)</span></span> <span class="">SERVER csv_server</span> <span class="">OPTIONS <span class="token punctuation">(</span></span> <span class=""> files <span class="token string">'s3://bucket/folder/file.csv'</span><span class="token punctuation">,</span></span> <span class=""> <span class="token keyword">types</span> <span class="token string">'BIGINT, DATE'</span></span> <span class=""><span class="token punctuation">)</span><span class="token punctuation">;</span></span> </code></pre></div></div></div></div></div></div></div> <div class="pt-2.5 pb-5 my-2.5 border-gray-50 dark:border-gray-800/50 border-b"><div class="flex font-mono text-sm group/param-head param-head break-all relative" id="param-union-by-name"><div class="flex-1 flex content-start py-0.5 mr-5"><div class="flex items-center flex-wrap gap-2"><div class="absolute -top-1.5"><a href="#param-union-by-name" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><div class="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">union_by_name</div><div class="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5"><div class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all"><span class="text-gray-400 dark:text-gray-500">default:</span><span>"false"</span></div></div></div></div></div><div class="mt-4 prose-sm prose-gray dark:prose-invert [&_.prose>p:first-child]:mt-0 [&_.prose>p:last-child]:mb-0"><p>Whether the columns of multiple schemas should be unified by name, rather than by position.</p></div></div> <h2 class="flex whitespace-pre-wrap group font-semibold" id="multiple-csv-files"><div class="absolute"><a href="#multiple-csv-files" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><span class="cursor-pointer">Multiple CSV Files</span></h2> <p>To treat multiple CSV files as a single table, their paths should be passed in as a comma-separated string.</p> <div class="mt-5 mb-8 not-prose rounded-2xl relative group text-gray-50 bg-[#0F1117] dark:bg-codeblock ring-1 ring-transparent dark:ring-gray-800/50 codeblock-dark"><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&>pre>code]:pr-[3rem] [&>pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-sql"><code class="language-sql"><span class=""><span class="token keyword">CREATE</span> <span class="token keyword">FOREIGN</span> <span class="token keyword">TABLE</span> csv_table <span class="token punctuation">(</span><span class="token punctuation">)</span></span> <span class="">SERVER csv_server</span> <span class="">OPTIONS <span class="token punctuation">(</span></span> <span class=""> files <span class="token string">'/path/to/file1.csv, /path/to/file2.csv'</span></span> <span class=""><span class="token punctuation">)</span><span class="token punctuation">;</span></span> </code></pre></div></div></div> <p>To treat a directory of CSV files as a single table, the glob pattern should be used.</p> <div class="mt-5 mb-8 not-prose rounded-2xl relative group text-gray-50 bg-[#0F1117] dark:bg-codeblock ring-1 ring-transparent dark:ring-gray-800/50 codeblock-dark"><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&>pre>code]:pr-[3rem] [&>pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-sql"><code class="language-sql"><span class=""><span class="token keyword">CREATE</span> <span class="token keyword">FOREIGN</span> <span class="token keyword">TABLE</span> csv_table <span class="token punctuation">(</span><span class="token punctuation">)</span></span> <span class="">SERVER csv_server</span> <span class="">OPTIONS <span class="token punctuation">(</span></span> <span class=""> files <span class="token string">'/folder/*.csv'</span><span class="token punctuation">,</span></span> <span class=""><span class="token punctuation">)</span><span class="token punctuation">;</span></span> </code></pre></div></div></div> <p>The glob pattern can also be used to read all CSV files from multiple directories.</p> <div class="mt-5 mb-8 not-prose rounded-2xl relative group text-gray-50 bg-[#0F1117] dark:bg-codeblock ring-1 ring-transparent dark:ring-gray-800/50 codeblock-dark"><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&>pre>code]:pr-[3rem] [&>pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-sql"><code class="language-sql"><span class=""><span class="token keyword">CREATE</span> <span class="token keyword">FOREIGN</span> <span class="token keyword">TABLE</span> csv_table <span class="token punctuation">(</span><span class="token punctuation">)</span></span> <span class="">SERVER csv_server</span> <span class="">OPTIONS <span class="token punctuation">(</span></span> <span class=""> files <span class="token string">'/folder1/*.csv, /folder2/*.csv'</span></span> <span class=""><span class="token punctuation">)</span><span class="token punctuation">;</span></span> </code></pre></div></div></div> <h2 class="flex whitespace-pre-wrap group font-semibold" id="cloud-object-stores"><div class="absolute"><a href="#cloud-object-stores" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100" aria-label="Navigate to header"><div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><span class="cursor-pointer">Cloud Object Stores</span></h2> <p>The <a href="/integrations/object_stores">object stores</a> documentation explains how to provide secrets and other credentials for CSV files stored in object stores like S3.</p></div><div class="leading-6 mt-14"><div class="pb-16 w-full"><div class="flex flex-col gap-y-4 xl:flex-col xl:gap-6 min-[1400px]:flex-row md:flex-row md:justify-end"><div class="flex flex-row gap-5 items-center grow justify-between md:justify-start xl:justify-between min-[1400px]:justify-start"><p class="text-sm text-gray-600 dark:text-gray-400">Was this page helpful?</p><div class="flex flex-row gap-3 items-center"><button class="px-3.5 py-2 flex flex-row gap-3 items-center border-standard rounded-xl text-gray-600 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 bg-white/50 dark:bg-codeblock/50 hover:border-gray-500 hover:dark:border-gray-500"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" class="fill-current"><path d="M10.1187 1.08741C8.925 0.746789 7.67813 1.43741 7.3375 2.63116L7.15938 3.25616C7.04375 3.66241 6.83438 4.03741 6.55 4.34991L4.94688 6.11241C4.66875 6.41866 4.69062 6.89366 4.99687 7.17179C5.30312 7.44991 5.77813 7.42804 6.05625 7.12179L7.65938 5.35929C8.1 4.87491 8.42188 4.29679 8.6 3.66866L8.77812 3.04366C8.89062 2.64679 9.30625 2.41554 9.70625 2.52804C10.1063 2.64054 10.3344 3.05616 10.2219 3.45616L10.0437 4.08116C9.86562 4.70304 9.58437 5.29054 9.2125 5.81554C9.05 6.04366 9.03125 6.34366 9.15938 6.59366C9.2875 6.84366 9.54375 6.99991 9.825 6.99991H14C14.275 6.99991 14.5 7.22491 14.5 7.49991C14.5 7.71241 14.3656 7.89679 14.175 7.96866C13.9438 8.05616 13.7688 8.24992 13.7094 8.49054C13.65 8.73117 13.7125 8.98429 13.875 9.16866C13.9531 9.25616 14 9.37179 14 9.49991C14 9.74366 13.825 9.94679 13.5938 9.99054C13.3375 10.0405 13.1219 10.2187 13.0312 10.4624C12.9406 10.7062 12.9813 10.9843 13.1438 11.1905C13.2094 11.2749 13.25 11.3812 13.25 11.4999C13.25 11.7093 13.1187 11.8937 12.9312 11.9655C12.5719 12.1062 12.3781 12.4937 12.4812 12.8655C12.4937 12.9062 12.5 12.953 12.5 12.9999C12.5 13.2749 12.275 13.4999 12 13.4999H8.95312C8.55937 13.4999 8.17188 13.3843 7.84375 13.1655L5.91563 11.8812C5.57188 11.6499 5.10625 11.7437 4.875 12.0905C4.64375 12.4374 4.7375 12.8999 5.08437 13.1312L7.0125 14.4155C7.5875 14.7999 8.2625 15.003 8.95312 15.003H12C13.0844 15.003 13.9656 14.1405 14 13.0655C14.4563 12.6999 14.75 12.1374 14.75 11.503C14.75 11.3624 14.7344 11.228 14.7094 11.0968C15.1906 10.7312 15.5 10.153 15.5 9.50304C15.5 9.29991 15.4688 9.10304 15.4125 8.91866C15.775 8.55304 16 8.05304 16 7.49991C16 6.39679 15.1063 5.49991 14 5.49991H11.1156C11.2625 5.17491 11.3875 4.83741 11.4844 4.49366L11.6625 3.86866C12.0031 2.67491 11.3125 1.42804 10.1187 1.08741ZM1 5.99991C0.446875 5.99991 0 6.44679 0 6.99991V13.9999C0 14.553 0.446875 14.9999 1 14.9999H3C3.55313 14.9999 4 14.553 4 13.9999V6.99991C4 6.44679 3.55313 5.99991 3 5.99991H1Z"></path></svg><small class="text-sm font-normal leading-4 ">Yes</small></button><button class="px-3.5 py-2 flex flex-row gap-3 items-center border-standard rounded-xl text-gray-600 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 bg-white/50 dark:bg-codeblock/50 hover:border-gray-500 hover:dark:border-gray-500"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" class="fill-current"><path d="M10.1187 14.9124C8.925 15.253 7.67813 14.5624 7.3375 13.3687L7.15938 12.7437C7.04375 12.3374 6.83438 11.9624 6.55 11.6499L4.94688 9.8874C4.66875 9.58115 4.69062 9.10615 4.99687 8.82803C5.30312 8.5499 5.77813 8.57178 6.05625 8.87803L7.65938 10.6405C8.1 11.1249 8.42188 11.703 8.6 12.3312L8.77812 12.9562C8.89062 13.353 9.30625 13.5843 9.70625 13.4718C10.1063 13.3593 10.3344 12.9437 10.2219 12.5437L10.0437 11.9187C9.86562 11.2968 9.58437 10.7093 9.2125 10.1843C9.05 9.95615 9.03125 9.65615 9.15938 9.40615C9.2875 9.15615 9.54375 8.9999 9.825 8.9999H14C14.275 8.9999 14.5 8.7749 14.5 8.4999C14.5 8.2874 14.3656 8.10303 14.175 8.03115C13.9438 7.94365 13.7688 7.7499 13.7094 7.50928C13.65 7.26865 13.7125 7.01553 13.875 6.83115C13.9531 6.74365 14 6.62803 14 6.4999C14 6.25615 13.825 6.05303 13.5938 6.00928C13.3375 5.95928 13.1219 5.78115 13.0312 5.53428C12.9406 5.2874 12.9813 5.0124 13.1438 4.80615C13.2094 4.72178 13.25 4.61553 13.25 4.49678C13.25 4.2874 13.1187 4.10303 12.9312 4.03115C12.5719 3.89053 12.3781 3.50303 12.4812 3.13115C12.4937 3.09053 12.5 3.04365 12.5 2.99678C12.5 2.72178 12.275 2.49678 12 2.49678H8.95312C8.55937 2.49678 8.17188 2.6124 7.84375 2.83115L5.91563 4.11553C5.57188 4.34678 5.10625 4.25303 4.875 3.90615C4.64375 3.55928 4.7375 3.09678 5.08437 2.86553L7.0125 1.58115C7.5875 1.19678 8.2625 0.993652 8.95312 0.993652H12C13.0844 0.993652 13.9656 1.85615 14 2.93115C14.4563 3.29678 14.75 3.85928 14.75 4.49365C14.75 4.63428 14.7344 4.76865 14.7094 4.8999C15.1906 5.26553 15.5 5.84365 15.5 6.49365C15.5 6.69678 15.4688 6.89365 15.4125 7.07803C15.775 7.44678 16 7.94678 16 8.4999C16 9.60303 15.1063 10.4999 14 10.4999H11.1156C11.2625 10.8249 11.3875 11.1624 11.4844 11.5062L11.6625 12.1312C12.0031 13.3249 11.3125 14.5718 10.1187 14.9124ZM1 11.9999C0.446875 11.9999 0 11.553 0 10.9999V3.9999C0 3.44678 0.446875 2.9999 1 2.9999H3C3.55313 2.9999 4 3.44678 4 3.9999V10.9999C4 11.553 3.55313 11.9999 3 11.9999H1Z"></path></svg><small class="text-sm font-normal leading-4 ">No</small></button></div></div><div class="flex flex-row gap-3 justify-end"></div></div></div><div id="pagination" class="mb-12 px-0.5 flex items-center text-sm font-semibold text-gray-700 dark:text-gray-200"><a class="flex items-center space-x-3 group" href="/integrations/overview"><svg viewBox="0 0 3 6" class="h-1.5 stroke-gray-400 overflow-visible group-hover:stroke-gray-600 dark:group-hover:stroke-gray-300"><path d="M3 0L0 3L3 6" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="group-hover:text-gray-900 dark:group-hover:text-white">Overview</span></a><a class="flex items-center ml-auto space-x-3 group" href="/integrations/formats/json"><span class="group-hover:text-gray-900 dark:group-hover:text-white">JSON</span><svg viewBox="0 0 3 6" class="rotate-180 h-1.5 stroke-gray-400 overflow-visible group-hover:stroke-gray-600 dark:group-hover:stroke-gray-300"><path d="M3 0L0 3L3 6" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></div><footer id="footer" class="flex gap-12 justify-between pt-10 border-t border-gray-100 sm:flex dark:border-gray-800/50 pb-28"><div class="flex gap-6 flex-wrap"><a href="https://github.com/paradedb/paradedb" target="_blank"><span class="sr-only">github</span><svg class="w-5 h-5 bg-gray-400 dark:bg-gray-500 hover:bg-gray-500 dark:hover:bg-gray-400" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/brands/github.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/brands/github.svg);mask-repeat:no-repeat;mask-position:center"></svg></a><a href="https://join.slack.com/t/paradedbcommunity/shared_invite/zt-2lkzdsetw-OiIgbyFeiibd1DG~6wFgTQ" target="_blank"><span class="sr-only">slack</span><svg class="w-5 h-5 bg-gray-400 dark:bg-gray-500 hover:bg-gray-500 dark:hover:bg-gray-400" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/brands/slack.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/brands/slack.svg);mask-repeat:no-repeat;mask-position:center"></svg></a><a href="https://twitter.com/paradedb" target="_blank"><span class="sr-only">twitter</span><svg class="w-5 h-5 bg-gray-400 dark:bg-gray-500 hover:bg-gray-500 dark:hover:bg-gray-400" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/brands/twitter.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/brands/twitter.svg);mask-repeat:no-repeat;mask-position:center"></svg></a></div><div class="flex items-center justify-between"><div class="sm:flex"><a href="https://mintlify.com/preview-request?utm_campaign=poweredBy&utm_medium=docs&utm_source=docs.paradedb.com" target="_blank" rel="noreferrer" class="text-sm text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 text-nowrap">Powered by Mintlify</a></div></div></footer></div></div><div class="hidden xl:flex self-start sticky h-[calc(100vh-8rem)] top-[6.5rem]" id="content-side-layout"><div class="z-10 hidden xl:flex pl-10 box-border w-[19rem]" id="table-of-contents"><div id="table-of-contents-content" class="text-gray-600 text-sm leading-6 w-[16.5rem] overflow-y-auto space-y-2"><div class="text-gray-700 dark:text-gray-300 font-medium flex items-center space-x-2"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" xmlns="http://www.w3.org/2000/svg" class="h-3 w-3"><path d="M2.44434 12.6665H13.5554" stroke-linecap="round" stroke-linejoin="round"></path><path d="M2.44434 3.3335H13.5554" stroke-linecap="round" stroke-linejoin="round"></path><path d="M2.44434 8H7.33323" stroke-linecap="round" stroke-linejoin="round"></path></svg><span>On this page</span></div><ul><li class="relative"><a href="#overview" class="py-1 block hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300">Overview</a></li><li class="relative"><a href="#csv-options" class="py-1 block hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300">CSV Options</a></li><li class="relative"><a href="#multiple-csv-files" class="py-1 block hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300">Multiple CSV Files</a></li><li class="relative"><a href="#cloud-object-stores" class="py-1 block hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300">Cloud Object Stores</a></li></ul></div></div></div></div></div></div></div></main></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"mdxSource":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n }, {Accordion, CodeBlock, Heading, ParamField} = _components;\n if (!Accordion) _missingMdxReference(\"Accordion\", true);\n if (!CodeBlock) _missingMdxReference(\"CodeBlock\", true);\n if (!Heading) _missingMdxReference(\"Heading\", true);\n if (!ParamField) _missingMdxReference(\"ParamField\", true);\n return _jsxs(_Fragment, {\n children: [_jsx(Heading, {\n level: \"2\",\n id: \"overview\",\n children: \"Overview\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"This code block demonstrates how to query CSV file(s).\"\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"DATA\"\n }), \" WRAPPER \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003c\"\n }), \"wrapper_name\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003e\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"HANDLER\"\n }), \" csv_fdw_handler\"]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"VALIDATOR csv_fdw_validator\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" SERVER \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003c\"\n }), \"server_name\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003e\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"DATA\"\n }), \" WRAPPER \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003c\"\n }), \"wrapper_name\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003e\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003c\"\n }), \"table_name\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003e\"\n }), \" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"SERVER \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003c\"\n }), \"server_name\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003e\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'\u003cfiles\u003e'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(Accordion, {\n title: \"Example Usage\",\n children: _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"DATA\"\n }), \" WRAPPER csv_wrapper\"]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"HANDLER\"\n }), \" csv_fdw_handler\"]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"VALIDATOR csv_fdw_validator\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" SERVER csv_server\"]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"DATA\"\n }), \" WRAPPER csv_wrapper\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'s3://bucket/folder/file.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\", \"\\n\"]\n })\n })\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"wrapper_name\",\n required: true,\n id: \"param-wrapper-name\",\n children: _jsx(_components.p, {\n children: \"Foreign data wrapper name. Can be any string.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"server_name\",\n required: true,\n id: \"param-server-name\",\n children: _jsx(_components.p, {\n children: \"Foreign server name. Can be any string.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"table_name\",\n required: true,\n id: \"param-table-name\",\n children: _jsx(_components.p, {\n children: \"Foreign table name. Can be any string.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"files\",\n required: true,\n id: \"param-files\",\n children: _jsxs(_components.p, {\n children: [\"The path of a single CSV file or \", _jsx(_components.a, {\n href: \"#multiple-csv-files\",\n children: \"multiple CSV files\"\n }), \".\\nFor instance, \", _jsx(_components.code, {\n children: \"s3://bucket/folder/file.csv\"\n }), \" if the file is in Amazon S3, \", _jsx(_components.code, {\n children: \"https://domain.tld/file.csv\"\n }), \"\\nif the file is on a HTTP server, or \", _jsx(_components.code, {\n children: \"/path/to/file.csv\"\n }), \" if the file is on the local file system.\"]\n })\n }), \"\\n\", _jsx(Heading, {\n level: \"2\",\n id: \"csv-options\",\n children: \"CSV Options\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"There are a number of options that can be passed into the \", _jsx(_components.code, {\n children: \"CREATE FOREIGN TABLE\"\n }), \" statement.\\nThese are the same \", _jsx(_components.a, {\n href: \"https://duckdb.org/docs/data/csv/overview#parameters\",\n children: \"options\"\n }), \" accepted\\nby DuckDB’s \", _jsx(_components.code, {\n children: \"read_csv\"\n }), \" function.\"]\n }), \"\\n\", _jsx(ParamField, {\n body: \"all_varchar\",\n default: \"false\",\n id: \"param-all-varchar\",\n children: _jsxs(_components.p, {\n children: [\"Option to skip type detection for CSV parsing and assume all columns to be of type\", _jsx(_components.code, {\n children: \"VARCHAR\"\n }), \".\"]\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"allow_quoted_nulls\",\n default: \"true\",\n id: \"param-allow-quoted-nulls\",\n children: _jsxs(_components.p, {\n children: [\"Option to allow the conversion of quoted values to \", _jsx(_components.code, {\n children: \"NULL\"\n }), \" values.\"]\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"auto_detect\",\n default: \"true\",\n id: \"param-auto-detect\",\n children: _jsxs(_components.p, {\n children: [\"Enables auto detection of CSV parameters. See \", _jsx(_components.a, {\n href: \"https://duckdb.org/docs/data/csv/auto_detection.html\",\n children: \"Auto Detection\"\n }), \".\"]\n })\n }), \"\\n\", _jsxs(ParamField, {\n body: \"auto_type_candidates\",\n id: \"param-auto-type-candidates\",\n children: [_jsxs(_components.p, {\n children: [\"This option allows you to specify the types that the sniffer will use when detecting CSV column types.\\nThe \", _jsx(_components.code, {\n children: \"VARCHAR\"\n }), \" type is always included in the detected types (as a fallback option).\\nSee \", _jsx(_components.a, {\n href: \"https://duckdb.org/docs/data/csv/overview#auto_type_candidates-details\",\n children: \"Auto Type Candidates\"\n }), \".\"]\n }), _jsx(Accordion, {\n title: \"Example Usage\",\n children: _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'s3://bucket/folder/file.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" auto_type_candidates \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'BIGINT, DATE'\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n })\n })]\n }), \"\\n\", _jsxs(ParamField, {\n body: \"columns\",\n id: \"param-columns\",\n children: [_jsxs(_components.p, {\n children: [\"A struct that specifies the column names and column types contained within the CSV file\\n(e.g., \", _jsx(_components.code, {\n children: \"{'col1': 'INTEGER', 'col2': 'VARCHAR'}\"\n }), \"). Using this option implies that auto detection is\\nnot used.\"]\n }), _jsx(Accordion, {\n title: \"Example Usage\",\n children: _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"-- Dollar-quoted strings are used to contain single quotes\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'s3://bucket/folder/file.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"columns\"\n }), \" $${\", _jsx(_components.span, {\n className: \"token string\",\n children: \"'FlightDate'\"\n }), \": \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'DATE'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'UniqueCarrier'\"\n }), \": \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'VARCHAR'\"\n }), \"}$$\"]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n })\n })]\n }), \"\\n\", _jsx(ParamField, {\n body: \"compression\",\n default: \"auto\",\n id: \"param-compression\",\n children: _jsxs(_components.p, {\n children: [\"The compression type for the file. By default this will be detected\\nautomatically from the file extension (e.g., \", _jsx(_components.code, {\n children: \"t.csv.gz\"\n }), \" will use \", _jsx(_components.code, {\n children: \"gzip\"\n }), \",\\n\", _jsx(_components.code, {\n children: \"t.csv\"\n }), \" will use \", _jsx(_components.code, {\n children: \"none\"\n }), \"). Options are \", _jsx(_components.code, {\n children: \"none\"\n }), \", \", _jsx(_components.code, {\n children: \"gzip\"\n }), \", \", _jsx(_components.code, {\n children: \"zstd\"\n }), \".\"]\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"dateformat\",\n id: \"param-dateformat\",\n children: _jsxs(_components.p, {\n children: [\"Specifies the date format to use when parsing dates. See \", _jsx(_components.a, {\n href: \"https://duckdb.org/docs/sql/functions/dateformat.html\",\n children: \"Date\\nFormat\"\n }), \".\"]\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"decimal_separator\",\n default: \".\",\n id: \"param-decimal-separator\",\n children: _jsx(_components.p, {\n children: \"The decimal separator of numbers.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"delim\",\n default: \",\",\n id: \"param-delim\",\n children: _jsxs(_components.p, {\n children: [\"Specifies the delimiter character that separates columns within each row\\n(line) of the file. Alias for \", _jsx(_components.code, {\n children: \"sep\"\n }), \".\"]\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"escape\",\n default: \"\\\"\",\n id: \"param-escape\",\n children: _jsx(_components.p, {\n children: \"Specifies the string that should appear before a data character sequence that\\nmatches the quote value.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"filename\",\n default: \"false\",\n id: \"param-filename\",\n children: _jsx(_components.p, {\n children: \"Whether or not an extra filename column should be included in the result.\"\n })\n }), \"\\n\", _jsxs(ParamField, {\n body: \"force_not_null\",\n id: \"param-force-not-null\",\n children: [_jsxs(_components.p, {\n children: [\"Do not match the specified columns’ values against the \", _jsx(_components.code, {\n children: \"NULL\"\n }), \" string. In the default case where the \", _jsx(_components.code, {\n children: \"NULL\"\n }), \" string is empty, this means that empty values will be read as zero-length strings rather than NULLs.\"]\n }), _jsx(Accordion, {\n title: \"Example Usage\",\n children: _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"-- Dollar-quoted strings are used to contain single quotes\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'s3://bucket/folder/file.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" force_not_null \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'FlightDate, UniqueCarrier'\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n })\n })]\n }), \"\\n\", _jsx(ParamField, {\n body: \"header\",\n default: \"false\",\n id: \"param-header\",\n children: _jsx(_components.p, {\n children: \"Specifies that the file contains a header line with the names of each column\\nin the file.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"hive_partitioning\",\n default: \"false\",\n id: \"param-hive-partitioning\",\n children: _jsx(_components.p, {\n children: \"Whether or not to interpret the path as a Hive partitioned path.\"\n })\n }), \"\\n\", _jsxs(ParamField, {\n body: \"hive_types\",\n id: \"param-hive-types\",\n children: [_jsxs(_components.p, {\n children: [\"If \", _jsx(_components.code, {\n children: \"hive_partitioning\"\n }), \" is enabled, \", _jsx(_components.code, {\n children: \"hive_types\"\n }), \" can be used to specify the logical types of the hive\\npartitions in a struct.\"]\n }), _jsx(Accordion, {\n title: \"Example Usage\",\n children: _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"-- Dollar-quoted strings are used to contain single quotes\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'s3://bucket/folder/file.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" hive_partitioning \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'true'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" hive_types $${\", _jsx(_components.span, {\n className: \"token string\",\n children: \"'release'\"\n }), \": \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"DATE\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'orders'\"\n }), \": \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"BIGINT\"\n }), \"}$$\"]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n })\n })]\n }), \"\\n\", _jsxs(ParamField, {\n body: \"hive_types_autocast\",\n id: \"param-hive-types-autocast\",\n children: [_jsxs(_components.p, {\n children: [\"hive_types will be autodetected for the following types: \", _jsx(_components.code, {\n children: \"DATE\"\n }), \", \", _jsx(_components.code, {\n children: \"TIMESTAMP\"\n }), \" and \", _jsx(_components.code, {\n children: \"BIGINT\"\n }), \".\\nTo switch off the autodetection, this option can be set to \", _jsx(_components.code, {\n children: \"0\"\n }), \".\"]\n }), _jsx(Accordion, {\n title: \"Example Usage\",\n children: _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'s3://bucket/folder/file.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" hive_partitioning \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'true'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" hive_types $${\", _jsx(_components.span, {\n className: \"token string\",\n children: \"'release'\"\n }), \": \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"DATE\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'orders'\"\n }), \": \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"BIGINT\"\n }), \"}$$\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" hive_types_autocast \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'0'\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n })\n })]\n }), \"\\n\", _jsx(ParamField, {\n body: \"ignore_errors\",\n default: \"false\",\n id: \"param-ignore-errors\",\n children: _jsx(_components.p, {\n children: \"Option to ignore any parsing errors encountered and instead ignore rows with\\nerrors.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"max_line_size\",\n default: \"2097152\",\n id: \"param-max-line-size\",\n children: _jsx(_components.p, {\n children: \"The maximum line size in bytes.\"\n })\n }), \"\\n\", _jsxs(ParamField, {\n body: \"names\",\n id: \"param-names\",\n children: [_jsx(_components.p, {\n children: \"The column names as a list if the file does not contain a header.\"\n }), _jsx(Accordion, {\n title: \"Example Usage\",\n children: _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"-- Dollar-quoted strings are used to contain single quotes\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'s3://bucket/folder/file.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" names \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'FlightDate, UniqueCarrier'\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n })\n })]\n }), \"\\n\", _jsx(ParamField, {\n body: \"new_line\",\n id: \"param-new-line\",\n children: _jsx(_components.p, {\n children: \"Set the new line character(s) in the file. Options are ‘\\\\r’,‘\\\\n’, or ‘\\\\r\\\\n’.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"normalize_names\",\n default: \"false\",\n id: \"param-normalize-names\",\n children: _jsx(_components.p, {\n children: \"Boolean value that specifies whether or not column names should be normalized,\\nremoving any non-alphanumeric characters from them.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"null_padding\",\n default: \"false\",\n id: \"param-null-padding\",\n children: _jsx(_components.p, {\n children: \"If this option is enabled, when a row lacks columns, it will pad the remaining\\ncolumns on the right with null values.\"\n })\n }), \"\\n\", _jsxs(ParamField, {\n body: \"nullstr\",\n id: \"param-nullstr\",\n children: [_jsxs(_components.p, {\n children: [\"Specifies the string that represents a \", _jsx(_components.code, {\n children: \"NULL\"\n }), \" value or a list of strings that represent a \", _jsx(_components.code, {\n children: \"NULL\"\n }), \" value.\"]\n }), _jsx(Accordion, {\n title: \"Example Usage\",\n children: _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"-- Dollar-quoted strings are used to contain single quotes\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'s3://bucket/folder/file.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" nullstr \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'NULL, NONE'\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n })\n })]\n }), \"\\n\", _jsx(ParamField, {\n body: \"parallel\",\n default: \"true\",\n id: \"param-parallel\",\n children: _jsx(_components.p, {\n children: \"Whether or not the parallel CSV reader is used.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"quote\",\n default: \"\\\"\",\n id: \"param-quote\",\n children: _jsx(_components.p, {\n children: \"Specifies the quoting string to be used when a data value is quoted.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"sample_size\",\n default: \"20480\",\n id: \"param-sample-size\",\n children: _jsx(_components.p, {\n children: \"The number of sample rows for auto detection of parameters.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"sep\",\n default: \",\",\n id: \"param-sep\",\n children: _jsxs(_components.p, {\n children: [\"Specifies the delimiter character that separates columns within each row\\n(line) of the file. Alias for \", _jsx(_components.code, {\n children: \"delim\"\n }), \".\"]\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"skip\",\n default: \"0\",\n id: \"param-skip\",\n children: _jsx(_components.p, {\n children: \"The number of lines at the top of the file to skip.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"timestampformat\",\n default: \"(empty)\",\n id: \"param-timestampformat\",\n children: _jsxs(_components.p, {\n children: [\"Specifies the date format to use when parsing timestamps. See \", _jsx(_components.a, {\n href: \"https://duckdb.org/docs/sql/functions/dateformat.html\",\n children: \"Date\\nFormat\"\n }), \".\"]\n })\n }), \"\\n\", _jsxs(ParamField, {\n body: \"types\",\n id: \"param-types\",\n children: [_jsx(_components.p, {\n children: \"The column types as a list by position.\"\n }), _jsx(Accordion, {\n title: \"Example Usage\",\n children: _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'s3://bucket/folder/file.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"types\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'BIGINT, DATE'\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n })\n })]\n }), \"\\n\", _jsx(ParamField, {\n body: \"union_by_name\",\n default: \"false\",\n id: \"param-union-by-name\",\n children: _jsx(_components.p, {\n children: \"Whether the columns of multiple schemas should be unified by name, rather than\\nby position.\"\n })\n }), \"\\n\", _jsx(Heading, {\n level: \"2\",\n id: \"multiple-csv-files\",\n children: \"Multiple CSV Files\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"To treat multiple CSV files as a single table, their paths should be passed in as a comma-separated\\nstring.\"\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'/path/to/file1.csv, /path/to/file2.csv'\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"To treat a directory of CSV files as a single table, the glob pattern should be used.\"\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'/folder/*.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"The glob pattern can also be used to read all CSV files from multiple directories.\"\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'/folder1/*.csv, /folder2/*.csv'\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(Heading, {\n level: \"2\",\n id: \"cloud-object-stores\",\n children: \"Cloud Object Stores\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The \", _jsx(_components.a, {\n href: \"/integrations/object_stores\",\n children: \"object stores\"\n }), \" documentation explains how to provide secrets and other credentials for\\nCSV files stored in object stores like S3.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\nfunction _missingMdxReference(id, component) {\n throw new Error(\"Expected \" + (component ? \"component\" : \"object\") + \" `\" + id + \"` to be defined: you likely forgot to import, pass, or provide it.\");\n}\n","frontmatter":{},"scope":{"config":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"ParadeDB","colors":{"primary":"#4f46e5","light":"#4f46e5","dark":"#818cf8"},"logo":{"light":"https://mintlify.s3.us-west-1.amazonaws.com/paradedb/logo/light.svg","dark":"https://mintlify.s3.us-west-1.amazonaws.com/paradedb/logo/dark.svg","href":"https://paradedb.com"},"favicon":"/favicon.png","appearance":{"strict":false},"background":{"image":"https://mintlify.s3.us-west-1.amazonaws.com/paradedb/background.png"},"navbar":{"links":[{"label":"Community","href":"https://join.slack.com/t/paradedbcommunity/shared_invite/zt-2lkzdsetw-OiIgbyFeiibd1DG~6wFgTQ"},{"label":"Blog","href":"https://paradedb.com/blog"}],"primary":{"type":"github","href":"https://github.com/paradedb/paradedb"}},"navigation":{"versions":[{"version":"v0.15.12","anchors":[{"anchor":"Documentation","icon":"book-open","groups":[{"group":"Documentation","pages":["welcome/introduction",{"group":"Getting Started","pages":["documentation/getting-started/install","documentation/getting-started/quickstart","documentation/getting-started/load"]},{"group":"Reference","pages":["documentation/overview",{"group":"Indexing","pages":["documentation/indexing/create_index","documentation/indexing/inspect_index",{"group":"Index Tuning","pages":["documentation/configuration/overview","documentation/configuration/index","documentation/configuration/index_size","documentation/configuration/segment_size","documentation/configuration/write","documentation/configuration/parallel"]},{"group":"Index Settings","pages":["documentation/configuration/scan"]}]},{"group":"Field Configuration","pages":["documentation/indexing/field_options","documentation/indexing/tokenizers","documentation/indexing/token_filters","documentation/indexing/fast_fields","documentation/indexing/record"]},{"group":"Full Text Search","pages":["documentation/full-text/overview","documentation/full-text/boolean","documentation/full-text/phrase","documentation/full-text/filtering","documentation/full-text/pagination","documentation/full-text/scoring","documentation/full-text/highlighting","documentation/full-text/sorting","documentation/full-text/boosting"]},{"group":"Query Builder","pages":["documentation/advanced/overview",{"group":"Full Text Queries","pages":["documentation/advanced/full-text/match"]},{"group":"Term-Level Queries","pages":["documentation/advanced/term/exists","documentation/advanced/term/fuzzy_term","documentation/advanced/term/range","documentation/advanced/term/range_term","documentation/advanced/term/regex","documentation/advanced/term/term","documentation/advanced/term/term_set"]},{"group":"Phrase-Level Queries","pages":["documentation/advanced/phrase/phrase","documentation/advanced/phrase/phrase_prefix"]},{"group":"JSON Queries","pages":["documentation/advanced/json/overview","documentation/advanced/json/arrays","documentation/advanced/json/range"]},{"group":"Compound Queries","pages":["documentation/advanced/compound/overview","documentation/advanced/compound/all","documentation/advanced/compound/boolean","documentation/advanced/compound/boost","documentation/advanced/compound/const","documentation/advanced/compound/disjunction_max","documentation/advanced/compound/empty","documentation/advanced/compound/parse"]},{"group":"Specialized Queries","pages":["documentation/advanced/specialized/more_like_this"]}]},{"group":"Aggregates","pages":["documentation/aggregates/overview","documentation/aggregates/common","documentation/aggregates/limitations"]},{"group":"Similarity Search","pages":["documentation/similarity/overview","documentation/similarity/index","documentation/similarity/search"]}]},{"group":"Tutorials","pages":["documentation/guides/overview","documentation/guides/autocomplete","documentation/guides/hybrid"]},{"group":"Concepts","pages":["documentation/concepts/bm25","documentation/concepts/index","documentation/concepts/matching","documentation/concepts/phrase","documentation/concepts/search","documentation/concepts/stemming","documentation/concepts/tantivy","documentation/concepts/term"]},"welcome/support"]}]},{"anchor":"Integrations","icon":"merge","groups":[{"group":"Integrations","pages":["integrations/overview",{"group":"File/Table Formats","pages":["integrations/formats/csv","integrations/formats/json","integrations/formats/parquet","integrations/formats/spatial","integrations/formats/iceberg","integrations/formats/delta"]},{"group":"Object Stores","pages":["integrations/object_stores/s3","integrations/object_stores/gcs","integrations/object_stores/azure","integrations/object_stores/huggingface"]},{"group":"Configuration","pages":["integrations/configuration/schema","integrations/configuration/settings"]}]}]},{"anchor":"Deploy","icon":"server","groups":[{"group":"Deploy","pages":["deploy/overview",{"group":"ParadeDB Self-Hosted","pages":["deploy/self-hosted/kubernetes","deploy/self-hosted/extensions",{"group":"Logical Replication","pages":["deploy/self-hosted/logical-replication/getting-started","deploy/self-hosted/logical-replication/configuration"]},{"group":"High Availability","pages":["deploy/self-hosted/high-availability/getting-started","deploy/self-hosted/high-availability/configuration"]},"deploy/self-hosted/docker"]},"deploy/byoc","deploy/enterprise","deploy/upgrading","deploy/third-party-extensions",{"group":"Continuous Integration","pages":["deploy/ci/overview","deploy/ci/github-actions","deploy/ci/gitlab-ci"]}]}]},{"anchor":"Changelog","icon":"clock","groups":[{"group":"Changelog","pages":["changelog/0.15.12","changelog/0.15.11","changelog/0.15.10","changelog/0.15.9","changelog/0.15.8","changelog/0.15.7","changelog/0.15.6","changelog/0.15.5","changelog/0.15.4","changelog/0.15.3","changelog/0.15.2","changelog/0.15.1","changelog/0.15.0","changelog/0.14.1","changelog/0.14.0","changelog/0.13.2","changelog/0.13.1","changelog/0.13.0","changelog/0.12.2","changelog/0.12.1","changelog/0.12.0","changelog/0.11.1","changelog/0.11.0","changelog/0.10.3","changelog/0.10.2","changelog/0.10.1","changelog/0.10.0","changelog/0.9.4","changelog/0.9.3","changelog/0.9.2","changelog/0.9.1","changelog/0.9.0","changelog/0.8.6","changelog/0.8.5","changelog/0.8.4","changelog/0.8.3","changelog/0.8.2","changelog/0.8.1","changelog/0.8.0","changelog/0.7.6","changelog/0.7.5","changelog/0.7.4","changelog/0.7.3","changelog/0.7.2","changelog/0.7.1","changelog/0.7.0","changelog/0.6.1","changelog/0.6.0","changelog/0.5.11","changelog/0.5.10","changelog/0.5.9","changelog/0.5.8","changelog/0.5.7","changelog/0.5.6","changelog/0.5.5","changelog/0.5.4","changelog/0.5.3","changelog/0.5.2","changelog/0.5.1","changelog/0.4.5","changelog/0.4.4","changelog/0.4.3","changelog/0.4.2","changelog/0.4.1","changelog/deprecated"]}]}]}]},"footer":{"socials":{"github":"https://github.com/paradedb/paradedb","slack":"https://join.slack.com/t/paradedbcommunity/shared_invite/zt-2lkzdsetw-OiIgbyFeiibd1DG~6wFgTQ","twitter":"https://twitter.com/paradedb"}},"redirects":[{"source":"/blog/introducing_analytics","destination":"https://paradedb.com/blog/introducing_lakehouse"},{"source":"/blog/introducing_sparse","destination":"https://paradedb.com/blog/introducing_sparse"},{"source":"/blog/introducing_bm25","destination":"https://paradedb.com/blog/introducing_search"},{"source":"/blog/introducing_paradedb","destination":"https://paradedb.com/blog/introducing_paradedb"}],"integrations":{"ga4":{"measurementId":"G-GB3C03LVY5"},"gtm":{"tagId":"GTM-KMGRG564"},"koala":{"publicApiKey":"pk_05f8f4ec527669d1e8f88783a4dccdf37407"},"posthog":{"apiKey":"phc_KiWfPSoxQLmFxY5yOODDBzzP3EcyPbn9oSVtsCBbasj","apiHost":"https://app.posthog.com"}}},"pageMetadata":{"title":"CSV","description":null,"href":"/integrations/formats/csv"}}},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"CSV Options","slug":"csv-options","depth":2,"children":[]},{"title":"Multiple CSV Files","slug":"multiple-csv-files","depth":2,"children":[]},{"title":"Cloud Object Stores","slug":"cloud-object-stores","depth":2,"children":[]}],"codeExamples":{}},"description":null,"pageData":{"navWithMetadata":[{"group":"Documentation","pages":[{"title":"Welcome to ParadeDB","description":null,"href":"/welcome/introduction"},{"group":"Getting Started","pages":[{"title":"Install ParadeDB","description":null,"href":"/documentation/getting-started/install"},{"title":"Quickstart","description":null,"href":"/documentation/getting-started/quickstart"},{"title":"Load Data from Postgres","description":null,"href":"/documentation/getting-started/load"}]},{"group":"Reference","pages":[{"title":"Overview","description":null,"href":"/documentation/overview"},{"group":"Indexing","pages":[{"title":"Create an Index","description":null,"href":"/documentation/indexing/create_index"},{"title":"Inspect an Index","description":null,"href":"/documentation/indexing/inspect_index"},{"group":"Index Tuning","pages":[{"title":"Overview","description":null,"href":"/documentation/configuration/overview"},{"title":"Index Build","description":null,"href":"/documentation/configuration/index"},{"title":"Throughput","description":null,"href":"/documentation/configuration/write"},{"title":"Search Performance","description":null,"href":"/documentation/configuration/parallel"}]},{"group":"Index Settings","pages":[{"title":"Custom Scans","description":null,"href":"/documentation/configuration/scan"},{"title":"Telemetry","description":null,"href":"/documentation/configuration/telemetry"}]}]},{"group":"Field Configuration","pages":[{"title":"Overview","description":null,"href":"/documentation/indexing/field_options"},{"title":"Tokenizers","description":null,"href":"/documentation/indexing/tokenizers"},{"title":"Token Filters","description":null,"href":"/documentation/indexing/token_filters"},{"title":"Fast Fields","description":null,"href":"/documentation/indexing/fast_fields"},{"title":"Record","description":null,"href":"/documentation/indexing/record"}]},{"group":"Full Text Search","pages":[{"title":"Overview","description":null,"href":"/documentation/full-text/overview"},{"title":"Boolean","description":null,"href":"/documentation/full-text/boolean"},{"title":"Phrase","description":null,"href":"/documentation/full-text/phrase"},{"title":"Filtering","description":null,"href":"/documentation/full-text/filtering"},{"title":"Pagination","description":null,"href":"/documentation/full-text/pagination"},{"title":"BM25 Scoring","description":null,"href":"/documentation/full-text/scoring"},{"title":"Highlighting","description":null,"href":"/documentation/full-text/highlighting"},{"title":"Sorting","description":null,"href":"/documentation/full-text/sorting"},{"title":"Boosting","description":null,"href":"/documentation/full-text/boosting"}]},{"group":"Query Builder","pages":[{"title":"Overview","description":null,"href":"/documentation/advanced/overview"},{"group":"Full Text Queries","pages":[{"title":"Match","description":null,"href":"/documentation/advanced/full-text/match"}]},{"group":"Term-Level Queries","pages":[{"title":"Exists","description":null,"href":"/documentation/advanced/term/exists"},{"title":"Fuzzy Term","description":null,"href":"/documentation/advanced/term/fuzzy_term"},{"title":"Range","description":null,"href":"/documentation/advanced/term/range"},{"title":"Range Term","description":null,"href":"/documentation/advanced/term/range_term"},{"title":"Regex","description":null,"href":"/documentation/advanced/term/regex"},{"title":"Term","description":null,"href":"/documentation/advanced/term/term"},{"title":"Term Set","description":null,"href":"/documentation/advanced/term/term_set"}]},{"group":"Phrase-Level Queries","pages":[{"title":"Phrase","description":null,"href":"/documentation/advanced/phrase/phrase"},{"title":"Phrase Prefix","description":null,"href":"/documentation/advanced/phrase/phrase_prefix"}]},{"group":"JSON Queries","pages":[{"title":"Overview","description":null,"href":"/documentation/advanced/json/overview"},{"title":"JSON Arrays","description":null,"href":"/documentation/advanced/json/arrays"},{"title":"Range","description":null,"href":"/documentation/advanced/json/range"}]},{"group":"Compound Queries","pages":[{"title":"Overview","description":null,"href":"/documentation/advanced/compound/overview"},{"title":"All","description":null,"href":"/documentation/advanced/compound/all"},{"title":"Boolean","description":null,"href":"/documentation/advanced/compound/boolean"},{"title":"Boost","description":null,"href":"/documentation/advanced/compound/boost"},{"title":"Const Score","description":null,"href":"/documentation/advanced/compound/const"},{"title":"Disjunction Max","description":null,"href":"/documentation/advanced/compound/disjunction_max"},{"title":"Empty","description":null,"href":"/documentation/advanced/compound/empty"},{"title":"Tantivy Query String","description":null,"href":"/documentation/advanced/compound/parse"}]},{"group":"Specialized Queries","pages":[{"title":"More Like This","description":null,"href":"/documentation/advanced/specialized/more_like_this"}]}]},{"group":"Aggregates","pages":[{"title":"Overview","description":null,"href":"/documentation/aggregates/overview"},{"title":"Common Aggregates","description":null,"href":"/documentation/aggregates/common"},{"title":"Limitations","description":null,"href":"/documentation/aggregates/limitations"}]},{"group":"Similarity Search","pages":[{"title":"Overview","description":null,"href":"/documentation/similarity/overview"},{"title":"Create an Index","description":null,"href":"/documentation/similarity/index"},{"title":"Vector Search","description":null,"href":"/documentation/similarity/search"}]}]},{"group":"Tutorials","pages":[{"title":"Overview","description":null,"href":"/documentation/guides/overview"},{"title":"Autocomplete","description":null,"href":"/documentation/guides/autocomplete"},{"title":"Hybrid Search","description":null,"href":"/documentation/guides/hybrid"}]},{"group":"Concepts","pages":[{"title":"BM25","description":null,"href":"/documentation/concepts/bm25"},{"title":"Indexing","description":null,"href":"/documentation/concepts/index"},{"title":"Matching","description":null,"href":"/documentation/concepts/matching"},{"title":"Phrase","description":null,"href":"/documentation/concepts/phrase"},{"title":"Types of Search","description":null,"href":"/documentation/concepts/search"},{"title":"Stemming","description":null,"href":"/documentation/concepts/stemming"},{"title":"Tantivy","description":null,"href":"/documentation/concepts/tantivy"},{"title":"Term","description":null,"href":"/documentation/concepts/term"}]},{"title":"Help and Support","description":null,"href":"/welcome/support"}]},{"group":"Integrations","pages":[{"title":"Overview","description":null,"href":"/integrations/overview"},{"group":"File/Table Formats","pages":[{"title":"CSV","description":null,"href":"/integrations/formats/csv"},{"title":"JSON","description":null,"href":"/integrations/formats/json"},{"title":"Parquet","description":null,"href":"/integrations/formats/parquet"},{"title":"Geospatial","description":null,"href":"/integrations/formats/spatial"},{"title":"Iceberg","description":null,"href":"/integrations/formats/iceberg"},{"title":"Delta Lake","description":null,"href":"/integrations/formats/delta"}]},{"group":"Object Stores","pages":[{"title":"S3","description":null,"href":"/integrations/object_stores/s3"},{"title":"Google Cloud Storage","description":null,"href":"/integrations/object_stores/gcs"},{"title":"Azure","description":null,"href":"/integrations/object_stores/azure"},{"title":"Hugging Face","description":null,"href":"/integrations/object_stores/huggingface"}]},{"group":"Configuration","pages":[{"title":"Foreign Table Schema","description":null,"href":"/integrations/configuration/schema"},{"title":"DuckDB Settings","description":null,"href":"/integrations/configuration/settings"}]}]},{"group":"Deploy","pages":[{"title":"Overview","description":null,"href":"/deploy/overview"},{"group":"Self-Hosted ParadeDB","pages":[{"title":"Kubernetes","description":null,"href":"/deploy/self-hosted/kubernetes"},{"title":"Extensions","description":null,"href":"/deploy/self-hosted/extensions"},{"group":"Logical Replication","pages":[{"title":"Getting Started","description":null,"href":"/deploy/self-hosted/logical-replication/getting-started"},{"title":"Configuration","description":null,"href":"/deploy/self-hosted/logical-replication/configuration"}]},{"group":"High Availability","pages":[{"title":"High Availability","description":null,"href":"/deploy/self-hosted/high-availability/getting-started"},{"title":"Configuration","description":null,"href":"/deploy/self-hosted/high-availability/configuration"}]},{"title":"Docker","description":null,"href":"/deploy/self-hosted/docker"}]},{"title":"ParadeDB BYOC","description":null,"href":"/deploy/byoc"},{"title":"ParadeDB Enterprise","description":null,"href":"/deploy/enterprise"},{"title":"Upgrading ParadeDB","description":null,"href":"/deploy/upgrading"},{"title":"Installing Third Party Extensions","description":null,"href":"/deploy/third-party-extensions"}]},{"group":"Changelog","pages":[{"title":"0.15.1","description":null,"href":"/changelog/0.15.1"},{"title":"0.15.0","description":null,"href":"/changelog/0.15.0"},{"title":"0.14.1","description":null,"href":"/changelog/0.14.1"},{"title":"0.14.0","description":null,"href":"/changelog/0.14.0"},{"title":"0.13.2","description":null,"href":"/changelog/0.13.2"},{"title":"0.13.1","description":null,"href":"/changelog/0.13.1"},{"title":"0.13.0","description":null,"href":"/changelog/0.13.0"},{"title":"0.12.2","description":null,"href":"/changelog/0.12.2"},{"title":"0.12.1","description":null,"href":"/changelog/0.12.1"},{"title":"0.12.0","description":null,"href":"/changelog/0.12.0"},{"title":"0.11.1","description":null,"href":"/changelog/0.11.1"},{"title":"0.11.0","description":null,"href":"/changelog/0.11.0"},{"title":"0.10.3","description":null,"href":"/changelog/0.10.3"},{"title":"0.10.2","description":null,"href":"/changelog/0.10.2"},{"title":"0.10.1","description":null,"href":"/changelog/0.10.1"},{"title":"0.10.0","description":null,"href":"/changelog/0.10.0"},{"title":"0.9.4","description":null,"href":"/changelog/0.9.4"},{"title":"0.9.3","description":null,"href":"/changelog/0.9.3"},{"title":"0.9.2","description":null,"href":"/changelog/0.9.2"},{"title":"0.9.1","description":null,"href":"/changelog/0.9.1"},{"title":"0.9.0","description":null,"href":"/changelog/0.9.0"},{"title":"0.8.6","description":null,"href":"/changelog/0.8.6"},{"title":"0.8.5","description":null,"href":"/changelog/0.8.5"},{"title":"0.8.4","description":null,"href":"/changelog/0.8.4"},{"title":"0.8.3","description":null,"href":"/changelog/0.8.3"},{"title":"0.8.2","description":null,"href":"/changelog/0.8.2"},{"title":"0.8.1","description":null,"href":"/changelog/0.8.1"},{"title":"0.8.0","description":null,"href":"/changelog/0.8.0"},{"title":"0.7.6","description":null,"href":"/changelog/0.7.6"},{"title":"0.7.5","description":null,"href":"/changelog/0.7.5"},{"title":"0.7.4","description":null,"href":"/changelog/0.7.4"},{"title":"0.7.3","description":null,"href":"/changelog/0.7.3"},{"title":"0.7.2","description":null,"href":"/changelog/0.7.2"},{"title":"0.7.1","description":null,"href":"/changelog/0.7.1"},{"title":"0.7.0","description":null,"href":"/changelog/0.7.0"},{"title":"0.6.1","description":null,"href":"/changelog/0.6.1"},{"title":"0.6.0","description":null,"href":"/changelog/0.6.0"},{"title":"0.5.11","description":null,"href":"/changelog/0.5.11"},{"title":"0.5.10","description":null,"href":"/changelog/0.5.10"},{"title":"0.5.9","description":null,"href":"/changelog/0.5.9"},{"title":"0.5.8","description":null,"href":"/changelog/0.5.8"},{"title":"0.5.7","description":null,"href":"/changelog/0.5.7"},{"title":"0.5.6","description":null,"href":"/changelog/0.5.6"},{"title":"0.5.5","description":null,"href":"/changelog/0.5.5"},{"title":"0.5.4","description":null,"href":"/changelog/0.5.4"},{"title":"0.5.3","description":null,"href":"/changelog/0.5.3"},{"title":"0.5.2","description":null,"href":"/changelog/0.5.2"},{"title":"0.5.1","description":null,"href":"/changelog/0.5.1"},{"title":"0.4.5","description":null,"href":"/changelog/0.4.5"},{"title":"0.4.4","description":null,"href":"/changelog/0.4.4"},{"title":"0.4.3","description":null,"href":"/changelog/0.4.3"},{"title":"0.4.2","description":null,"href":"/changelog/0.4.2"},{"title":"0.4.1","description":null,"href":"/changelog/0.4.1"},{"title":"\u003c0.4","description":null,"href":"/changelog/deprecated"}]}],"docsNavWithMetadata":{"global":null,"versions":[{"version":"v0.15.12","anchors":[{"anchor":"Documentation","icon":"book-open","groups":[{"group":"Documentation","pages":[{"title":"Welcome to ParadeDB","description":null,"href":"/welcome/introduction"},{"group":"Getting Started","pages":[{"title":"Install ParadeDB","description":null,"href":"/documentation/getting-started/install"},{"title":"Quickstart","description":null,"href":"/documentation/getting-started/quickstart"},{"title":"Load Data from Postgres","description":null,"href":"/documentation/getting-started/load"}]},{"group":"Reference","pages":[{"title":"Overview","description":null,"href":"/documentation/overview"},{"group":"Indexing","pages":[{"title":"Create an Index","description":null,"href":"/documentation/indexing/create_index"},{"title":"Inspect an Index","description":null,"href":"/documentation/indexing/inspect_index"},{"group":"Index Tuning","pages":[{"title":"Overview","description":null,"href":"/documentation/configuration/overview"},{"title":"Index Build","description":null,"href":"/documentation/configuration/index"},{"title":"Index Size","description":null,"href":"/documentation/configuration/index_size"},{"title":"Segment Size","description":null,"href":"/documentation/configuration/segment_size"},{"title":"Throughput","description":null,"href":"/documentation/configuration/write"},{"title":"Search Performance","description":null,"href":"/documentation/configuration/parallel"}]},{"group":"Index Settings","pages":[{"title":"Custom Scans","description":null,"href":"/documentation/configuration/scan"}]}]},{"group":"Field Configuration","pages":[{"title":"Overview","description":null,"href":"/documentation/indexing/field_options"},{"title":"Tokenizers","description":null,"href":"/documentation/indexing/tokenizers"},{"title":"Token Filters","description":null,"href":"/documentation/indexing/token_filters"},{"title":"Fast Fields","description":null,"href":"/documentation/indexing/fast_fields"},{"title":"Record","description":null,"href":"/documentation/indexing/record"}]},{"group":"Full Text Search","pages":[{"title":"Overview","description":null,"href":"/documentation/full-text/overview"},{"title":"Boolean","description":null,"href":"/documentation/full-text/boolean"},{"title":"Phrase","description":null,"href":"/documentation/full-text/phrase"},{"title":"Filtering","description":null,"href":"/documentation/full-text/filtering"},{"title":"Pagination","description":null,"href":"/documentation/full-text/pagination"},{"title":"BM25 Scoring","description":null,"href":"/documentation/full-text/scoring"},{"title":"Highlighting","description":null,"href":"/documentation/full-text/highlighting"},{"title":"Sorting","description":null,"href":"/documentation/full-text/sorting"},{"title":"Boosting","description":null,"href":"/documentation/full-text/boosting"}]},{"group":"Query Builder","pages":[{"title":"Overview","description":null,"href":"/documentation/advanced/overview"},{"group":"Full Text Queries","pages":[{"title":"Match","description":null,"href":"/documentation/advanced/full-text/match"}]},{"group":"Term-Level Queries","pages":[{"title":"Exists","description":null,"href":"/documentation/advanced/term/exists"},{"title":"Fuzzy Term","description":null,"href":"/documentation/advanced/term/fuzzy_term"},{"title":"Range","description":null,"href":"/documentation/advanced/term/range"},{"title":"Range Term","description":null,"href":"/documentation/advanced/term/range_term"},{"title":"Regex","description":null,"href":"/documentation/advanced/term/regex"},{"title":"Term","description":null,"href":"/documentation/advanced/term/term"},{"title":"Term Set","description":null,"href":"/documentation/advanced/term/term_set"}]},{"group":"Phrase-Level Queries","pages":[{"title":"Phrase","description":null,"href":"/documentation/advanced/phrase/phrase"},{"title":"Phrase Prefix","description":null,"href":"/documentation/advanced/phrase/phrase_prefix"}]},{"group":"JSON Queries","pages":[{"title":"Overview","description":null,"href":"/documentation/advanced/json/overview"},{"title":"JSON Arrays","description":null,"href":"/documentation/advanced/json/arrays"},{"title":"Range","description":null,"href":"/documentation/advanced/json/range"}]},{"group":"Compound Queries","pages":[{"title":"Overview","description":null,"href":"/documentation/advanced/compound/overview"},{"title":"All","description":null,"href":"/documentation/advanced/compound/all"},{"title":"Boolean","description":null,"href":"/documentation/advanced/compound/boolean"},{"title":"Boost","description":null,"href":"/documentation/advanced/compound/boost"},{"title":"Const Score","description":null,"href":"/documentation/advanced/compound/const"},{"title":"Disjunction Max","description":null,"href":"/documentation/advanced/compound/disjunction_max"},{"title":"Empty","description":null,"href":"/documentation/advanced/compound/empty"},{"title":"Tantivy Query String","description":null,"href":"/documentation/advanced/compound/parse"}]},{"group":"Specialized Queries","pages":[{"title":"More Like This","description":null,"href":"/documentation/advanced/specialized/more_like_this"}]}]},{"group":"Aggregates","pages":[{"title":"Overview","description":null,"href":"/documentation/aggregates/overview"},{"title":"Common Aggregates","description":null,"href":"/documentation/aggregates/common"},{"title":"Limitations","description":null,"href":"/documentation/aggregates/limitations"}]},{"group":"Similarity Search","pages":[{"title":"Overview","description":null,"href":"/documentation/similarity/overview"},{"title":"Create an Index","description":null,"href":"/documentation/similarity/index"},{"title":"Vector Search","description":null,"href":"/documentation/similarity/search"}]}]},{"group":"Tutorials","pages":[{"title":"Overview","description":null,"href":"/documentation/guides/overview"},{"title":"Autocomplete","description":null,"href":"/documentation/guides/autocomplete"},{"title":"Hybrid Search","description":null,"href":"/documentation/guides/hybrid"}]},{"group":"Concepts","pages":[{"title":"BM25","description":null,"href":"/documentation/concepts/bm25"},{"title":"Indexing","description":null,"href":"/documentation/concepts/index"},{"title":"Matching","description":null,"href":"/documentation/concepts/matching"},{"title":"Phrase","description":null,"href":"/documentation/concepts/phrase"},{"title":"Types of Search","description":null,"href":"/documentation/concepts/search"},{"title":"Stemming","description":null,"href":"/documentation/concepts/stemming"},{"title":"Tantivy","description":null,"href":"/documentation/concepts/tantivy"},{"title":"Term","description":null,"href":"/documentation/concepts/term"}]},{"title":"Help and Support","description":null,"href":"/welcome/support"}]}]},{"anchor":"Integrations","icon":"merge","groups":[{"group":"Integrations","pages":[{"title":"Overview","description":null,"href":"/integrations/overview"},{"group":"File/Table Formats","pages":[{"title":"CSV","description":null,"href":"/integrations/formats/csv"},{"title":"JSON","description":null,"href":"/integrations/formats/json"},{"title":"Parquet","description":null,"href":"/integrations/formats/parquet"},{"title":"Geospatial","description":null,"href":"/integrations/formats/spatial"},{"title":"Iceberg","description":null,"href":"/integrations/formats/iceberg"},{"title":"Delta Lake","description":null,"href":"/integrations/formats/delta"}]},{"group":"Object Stores","pages":[{"title":"S3","description":null,"href":"/integrations/object_stores/s3"},{"title":"Google Cloud Storage","description":null,"href":"/integrations/object_stores/gcs"},{"title":"Azure","description":null,"href":"/integrations/object_stores/azure"},{"title":"Hugging Face","description":null,"href":"/integrations/object_stores/huggingface"}]},{"group":"Configuration","pages":[{"title":"Foreign Table Schema","description":null,"href":"/integrations/configuration/schema"},{"title":"DuckDB Settings","description":null,"href":"/integrations/configuration/settings"}]}]}]},{"anchor":"Deploy","icon":"server","groups":[{"group":"Deploy","pages":[{"title":"Overview","description":null,"href":"/deploy/overview"},{"group":"ParadeDB Self-Hosted","pages":[{"title":"Kubernetes","description":null,"href":"/deploy/self-hosted/kubernetes"},{"title":"Extensions","description":null,"href":"/deploy/self-hosted/extensions"},{"group":"Logical Replication","pages":[{"title":"Getting Started","description":null,"href":"/deploy/self-hosted/logical-replication/getting-started"},{"title":"Configuration","description":null,"href":"/deploy/self-hosted/logical-replication/configuration"}]},{"group":"High Availability","pages":[{"title":"High Availability","description":null,"href":"/deploy/self-hosted/high-availability/getting-started"},{"title":"Configuration","description":null,"href":"/deploy/self-hosted/high-availability/configuration"}]},{"title":"Docker","description":null,"href":"/deploy/self-hosted/docker"}]},{"title":"ParadeDB BYOC","description":null,"href":"/deploy/byoc"},{"title":"ParadeDB Enterprise","description":null,"href":"/deploy/enterprise"},{"title":"Upgrading ParadeDB","description":null,"href":"/deploy/upgrading"},{"title":"Installing Third Party Extensions","description":null,"href":"/deploy/third-party-extensions"},{"group":"Continuous Integration","pages":[{"title":"Overview","description":null,"href":"/deploy/ci/overview"},{"title":"GitHub Actions","description":null,"href":"/deploy/ci/github-actions"},{"title":"GitLab CI","description":null,"href":"/deploy/ci/gitlab-ci"}]}]}]},{"anchor":"Changelog","icon":"clock","groups":[{"group":"Changelog","pages":[{"title":"0.15.12","description":null,"href":"/changelog/0.15.12"},{"title":"0.15.11","description":null,"href":"/changelog/0.15.11"},{"title":"0.15.10","description":null,"href":"/changelog/0.15.10"},{"title":"0.15.9","description":null,"href":"/changelog/0.15.9"},{"title":"0.15.8","description":null,"href":"/changelog/0.15.8"},{"title":"0.15.7","description":null,"href":"/changelog/0.15.7"},{"title":"0.15.6","description":null,"href":"/changelog/0.15.6"},{"title":"0.15.5","description":null,"href":"/changelog/0.15.5"},{"title":"0.15.4","description":null,"href":"/changelog/0.15.4"},{"title":"0.15.3","description":null,"href":"/changelog/0.15.3"},{"title":"0.15.2","description":null,"href":"/changelog/0.15.2"},{"title":"0.15.1","description":null,"href":"/changelog/0.15.1"},{"title":"0.15.0","description":null,"href":"/changelog/0.15.0"},{"title":"0.14.1","description":null,"href":"/changelog/0.14.1"},{"title":"0.14.0","description":null,"href":"/changelog/0.14.0"},{"title":"0.13.2","description":null,"href":"/changelog/0.13.2"},{"title":"0.13.1","description":null,"href":"/changelog/0.13.1"},{"title":"0.13.0","description":null,"href":"/changelog/0.13.0"},{"title":"0.12.2","description":null,"href":"/changelog/0.12.2"},{"title":"0.12.1","description":null,"href":"/changelog/0.12.1"},{"title":"0.12.0","description":null,"href":"/changelog/0.12.0"},{"title":"0.11.1","description":null,"href":"/changelog/0.11.1"},{"title":"0.11.0","description":null,"href":"/changelog/0.11.0"},{"title":"0.10.3","description":null,"href":"/changelog/0.10.3"},{"title":"0.10.2","description":null,"href":"/changelog/0.10.2"},{"title":"0.10.1","description":null,"href":"/changelog/0.10.1"},{"title":"0.10.0","description":null,"href":"/changelog/0.10.0"},{"title":"0.9.4","description":null,"href":"/changelog/0.9.4"},{"title":"0.9.3","description":null,"href":"/changelog/0.9.3"},{"title":"0.9.2","description":null,"href":"/changelog/0.9.2"},{"title":"0.9.1","description":null,"href":"/changelog/0.9.1"},{"title":"0.9.0","description":null,"href":"/changelog/0.9.0"},{"title":"0.8.6","description":null,"href":"/changelog/0.8.6"},{"title":"0.8.5","description":null,"href":"/changelog/0.8.5"},{"title":"0.8.4","description":null,"href":"/changelog/0.8.4"},{"title":"0.8.3","description":null,"href":"/changelog/0.8.3"},{"title":"0.8.2","description":null,"href":"/changelog/0.8.2"},{"title":"0.8.1","description":null,"href":"/changelog/0.8.1"},{"title":"0.8.0","description":null,"href":"/changelog/0.8.0"},{"title":"0.7.6","description":null,"href":"/changelog/0.7.6"},{"title":"0.7.5","description":null,"href":"/changelog/0.7.5"},{"title":"0.7.4","description":null,"href":"/changelog/0.7.4"},{"title":"0.7.3","description":null,"href":"/changelog/0.7.3"},{"title":"0.7.2","description":null,"href":"/changelog/0.7.2"},{"title":"0.7.1","description":null,"href":"/changelog/0.7.1"},{"title":"0.7.0","description":null,"href":"/changelog/0.7.0"},{"title":"0.6.1","description":null,"href":"/changelog/0.6.1"},{"title":"0.6.0","description":null,"href":"/changelog/0.6.0"},{"title":"0.5.11","description":null,"href":"/changelog/0.5.11"},{"title":"0.5.10","description":null,"href":"/changelog/0.5.10"},{"title":"0.5.9","description":null,"href":"/changelog/0.5.9"},{"title":"0.5.8","description":null,"href":"/changelog/0.5.8"},{"title":"0.5.7","description":null,"href":"/changelog/0.5.7"},{"title":"0.5.6","description":null,"href":"/changelog/0.5.6"},{"title":"0.5.5","description":null,"href":"/changelog/0.5.5"},{"title":"0.5.4","description":null,"href":"/changelog/0.5.4"},{"title":"0.5.3","description":null,"href":"/changelog/0.5.3"},{"title":"0.5.2","description":null,"href":"/changelog/0.5.2"},{"title":"0.5.1","description":null,"href":"/changelog/0.5.1"},{"title":"0.4.5","description":null,"href":"/changelog/0.4.5"},{"title":"0.4.4","description":null,"href":"/changelog/0.4.4"},{"title":"0.4.3","description":null,"href":"/changelog/0.4.3"},{"title":"0.4.2","description":null,"href":"/changelog/0.4.2"},{"title":"0.4.1","description":null,"href":"/changelog/0.4.1"},{"title":"\u003c0.4","description":null,"href":"/changelog/deprecated"}]}]}]}]},"pageMetadata":{"title":"CSV","description":null,"href":"/integrations/formats/csv"},"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"ParadeDB","colors":{"primary":"#4f46e5","light":"#4f46e5","dark":"#818cf8"},"logo":{"light":"https://mintlify.s3.us-west-1.amazonaws.com/paradedb/logo/light.svg","dark":"https://mintlify.s3.us-west-1.amazonaws.com/paradedb/logo/dark.svg","href":"https://paradedb.com"},"favicon":"/favicon.png","appearance":{"strict":false},"background":{"image":"https://mintlify.s3.us-west-1.amazonaws.com/paradedb/background.png"},"navbar":{"links":[{"label":"Community","href":"https://join.slack.com/t/paradedbcommunity/shared_invite/zt-2lkzdsetw-OiIgbyFeiibd1DG~6wFgTQ"},{"label":"Blog","href":"https://paradedb.com/blog"}],"primary":{"type":"github","href":"https://github.com/paradedb/paradedb"}},"navigation":{"versions":[{"version":"v0.15.12","anchors":[{"anchor":"Documentation","icon":"book-open","groups":[{"group":"Documentation","pages":["welcome/introduction",{"group":"Getting Started","pages":["documentation/getting-started/install","documentation/getting-started/quickstart","documentation/getting-started/load"]},{"group":"Reference","pages":["documentation/overview",{"group":"Indexing","pages":["documentation/indexing/create_index","documentation/indexing/inspect_index",{"group":"Index Tuning","pages":["documentation/configuration/overview","documentation/configuration/index","documentation/configuration/index_size","documentation/configuration/segment_size","documentation/configuration/write","documentation/configuration/parallel"]},{"group":"Index Settings","pages":["documentation/configuration/scan"]}]},{"group":"Field Configuration","pages":["documentation/indexing/field_options","documentation/indexing/tokenizers","documentation/indexing/token_filters","documentation/indexing/fast_fields","documentation/indexing/record"]},{"group":"Full Text Search","pages":["documentation/full-text/overview","documentation/full-text/boolean","documentation/full-text/phrase","documentation/full-text/filtering","documentation/full-text/pagination","documentation/full-text/scoring","documentation/full-text/highlighting","documentation/full-text/sorting","documentation/full-text/boosting"]},{"group":"Query Builder","pages":["documentation/advanced/overview",{"group":"Full Text Queries","pages":["documentation/advanced/full-text/match"]},{"group":"Term-Level Queries","pages":["documentation/advanced/term/exists","documentation/advanced/term/fuzzy_term","documentation/advanced/term/range","documentation/advanced/term/range_term","documentation/advanced/term/regex","documentation/advanced/term/term","documentation/advanced/term/term_set"]},{"group":"Phrase-Level Queries","pages":["documentation/advanced/phrase/phrase","documentation/advanced/phrase/phrase_prefix"]},{"group":"JSON Queries","pages":["documentation/advanced/json/overview","documentation/advanced/json/arrays","documentation/advanced/json/range"]},{"group":"Compound Queries","pages":["documentation/advanced/compound/overview","documentation/advanced/compound/all","documentation/advanced/compound/boolean","documentation/advanced/compound/boost","documentation/advanced/compound/const","documentation/advanced/compound/disjunction_max","documentation/advanced/compound/empty","documentation/advanced/compound/parse"]},{"group":"Specialized Queries","pages":["documentation/advanced/specialized/more_like_this"]}]},{"group":"Aggregates","pages":["documentation/aggregates/overview","documentation/aggregates/common","documentation/aggregates/limitations"]},{"group":"Similarity Search","pages":["documentation/similarity/overview","documentation/similarity/index","documentation/similarity/search"]}]},{"group":"Tutorials","pages":["documentation/guides/overview","documentation/guides/autocomplete","documentation/guides/hybrid"]},{"group":"Concepts","pages":["documentation/concepts/bm25","documentation/concepts/index","documentation/concepts/matching","documentation/concepts/phrase","documentation/concepts/search","documentation/concepts/stemming","documentation/concepts/tantivy","documentation/concepts/term"]},"welcome/support"]}]},{"anchor":"Integrations","icon":"merge","groups":[{"group":"Integrations","pages":["integrations/overview",{"group":"File/Table Formats","pages":["integrations/formats/csv","integrations/formats/json","integrations/formats/parquet","integrations/formats/spatial","integrations/formats/iceberg","integrations/formats/delta"]},{"group":"Object Stores","pages":["integrations/object_stores/s3","integrations/object_stores/gcs","integrations/object_stores/azure","integrations/object_stores/huggingface"]},{"group":"Configuration","pages":["integrations/configuration/schema","integrations/configuration/settings"]}]}]},{"anchor":"Deploy","icon":"server","groups":[{"group":"Deploy","pages":["deploy/overview",{"group":"ParadeDB Self-Hosted","pages":["deploy/self-hosted/kubernetes","deploy/self-hosted/extensions",{"group":"Logical Replication","pages":["deploy/self-hosted/logical-replication/getting-started","deploy/self-hosted/logical-replication/configuration"]},{"group":"High Availability","pages":["deploy/self-hosted/high-availability/getting-started","deploy/self-hosted/high-availability/configuration"]},"deploy/self-hosted/docker"]},"deploy/byoc","deploy/enterprise","deploy/upgrading","deploy/third-party-extensions",{"group":"Continuous Integration","pages":["deploy/ci/overview","deploy/ci/github-actions","deploy/ci/gitlab-ci"]}]}]},{"anchor":"Changelog","icon":"clock","groups":[{"group":"Changelog","pages":["changelog/0.15.12","changelog/0.15.11","changelog/0.15.10","changelog/0.15.9","changelog/0.15.8","changelog/0.15.7","changelog/0.15.6","changelog/0.15.5","changelog/0.15.4","changelog/0.15.3","changelog/0.15.2","changelog/0.15.1","changelog/0.15.0","changelog/0.14.1","changelog/0.14.0","changelog/0.13.2","changelog/0.13.1","changelog/0.13.0","changelog/0.12.2","changelog/0.12.1","changelog/0.12.0","changelog/0.11.1","changelog/0.11.0","changelog/0.10.3","changelog/0.10.2","changelog/0.10.1","changelog/0.10.0","changelog/0.9.4","changelog/0.9.3","changelog/0.9.2","changelog/0.9.1","changelog/0.9.0","changelog/0.8.6","changelog/0.8.5","changelog/0.8.4","changelog/0.8.3","changelog/0.8.2","changelog/0.8.1","changelog/0.8.0","changelog/0.7.6","changelog/0.7.5","changelog/0.7.4","changelog/0.7.3","changelog/0.7.2","changelog/0.7.1","changelog/0.7.0","changelog/0.6.1","changelog/0.6.0","changelog/0.5.11","changelog/0.5.10","changelog/0.5.9","changelog/0.5.8","changelog/0.5.7","changelog/0.5.6","changelog/0.5.5","changelog/0.5.4","changelog/0.5.3","changelog/0.5.2","changelog/0.5.1","changelog/0.4.5","changelog/0.4.4","changelog/0.4.3","changelog/0.4.2","changelog/0.4.1","changelog/deprecated"]}]}]}]},"footer":{"socials":{"github":"https://github.com/paradedb/paradedb","slack":"https://join.slack.com/t/paradedbcommunity/shared_invite/zt-2lkzdsetw-OiIgbyFeiibd1DG~6wFgTQ","twitter":"https://twitter.com/paradedb"}},"redirects":[{"source":"/blog/introducing_analytics","destination":"https://paradedb.com/blog/introducing_lakehouse"},{"source":"/blog/introducing_sparse","destination":"https://paradedb.com/blog/introducing_sparse"},{"source":"/blog/introducing_bm25","destination":"https://paradedb.com/blog/introducing_search"},{"source":"/blog/introducing_paradedb","destination":"https://paradedb.com/blog/introducing_paradedb"}],"integrations":{"ga4":{"measurementId":"G-GB3C03LVY5"},"gtm":{"tagId":"GTM-KMGRG564"},"koala":{"publicApiKey":"pk_05f8f4ec527669d1e8f88783a4dccdf37407"},"posthog":{"apiKey":"phc_KiWfPSoxQLmFxY5yOODDBzzP3EcyPbn9oSVtsCBbasj","apiHost":"https://app.posthog.com"}}},"apiReferenceData":{}},"feedback":{"thumbs":true,"edits":true},"favicons":{"icons":[{"rel":"apple-touch-icon","sizes":"180x180","href":"https://mintlify.s3-us-west-1.amazonaws.com/paradedb/_generated/favicon/apple-touch-icon.png?v=3","type":"image/png"},{"rel":"icon","sizes":"32x32","href":"https://mintlify.s3-us-west-1.amazonaws.com/paradedb/_generated/favicon/favicon-32x32.png?v=3","type":"image/png"},{"rel":"icon","sizes":"16x16","href":"https://mintlify.s3-us-west-1.amazonaws.com/paradedb/_generated/favicon/favicon-16x16.png?v=3","type":"image/png"},{"rel":"shortcut icon","href":"https://mintlify.s3-us-west-1.amazonaws.com/paradedb/_generated/favicon/favicon.ico?v=3","type":"image/x-icon"}],"browserconfig":"https://mintlify.s3-us-west-1.amazonaws.com/paradedb/_generated/favicon/browserconfig.xml?v=3"},"subdomain":"docs.paradedb.com","actualSubdomain":"paradedb","internalAnalyticsWriteKey":"phc_TXdpocbGVeZVm5VJmAsHTMrCofBQu3e0kN8HGMNGTVW","inkeep":{"integrationApiKey":"e3fabd21277089c0b1f10c415cb27c9661593e385b3173a0"},"trieve":{"datasetId":"c58dbe5c-e0a8-40a9-a44c-de09f2e95cdc"},"shouldIndex":true,"org":{"plan":"growth","createdAt":"2023-07-04T17:01:57.421Z"},"cssFiles":[{"_id":"67e9cc2eae16dd9f4809078a","filePath":"style.css","subdomain":"paradedb","__v":0,"content":"#search-bar-entry {\n visibility: hidden !important;\n}\n"}],"jsFiles":[],"mdxSourceWithNoJs":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n }, {Accordion, CodeBlock, Heading, ParamField} = _components;\n if (!Accordion) _missingMdxReference(\"Accordion\", true);\n if (!CodeBlock) _missingMdxReference(\"CodeBlock\", true);\n if (!Heading) _missingMdxReference(\"Heading\", true);\n if (!ParamField) _missingMdxReference(\"ParamField\", true);\n return _jsxs(_Fragment, {\n children: [_jsx(Heading, {\n level: \"2\",\n id: \"overview\",\n children: \"Overview\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"This code block demonstrates how to query CSV file(s).\"\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"DATA\"\n }), \" WRAPPER \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003c\"\n }), \"wrapper_name\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003e\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"HANDLER\"\n }), \" csv_fdw_handler\"]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"VALIDATOR csv_fdw_validator\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" SERVER \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003c\"\n }), \"server_name\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003e\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"DATA\"\n }), \" WRAPPER \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003c\"\n }), \"wrapper_name\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003e\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003c\"\n }), \"table_name\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003e\"\n }), \" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"SERVER \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003c\"\n }), \"server_name\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003e\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'\u003cfiles\u003e'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(Accordion, {\n title: \"Example Usage\",\n children: _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"DATA\"\n }), \" WRAPPER csv_wrapper\"]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"HANDLER\"\n }), \" csv_fdw_handler\"]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"VALIDATOR csv_fdw_validator\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" SERVER csv_server\"]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"DATA\"\n }), \" WRAPPER csv_wrapper\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'s3://bucket/folder/file.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\", \"\\n\"]\n })\n })\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"wrapper_name\",\n required: true,\n id: \"param-wrapper-name\",\n children: _jsx(_components.p, {\n children: \"Foreign data wrapper name. Can be any string.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"server_name\",\n required: true,\n id: \"param-server-name\",\n children: _jsx(_components.p, {\n children: \"Foreign server name. Can be any string.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"table_name\",\n required: true,\n id: \"param-table-name\",\n children: _jsx(_components.p, {\n children: \"Foreign table name. Can be any string.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"files\",\n required: true,\n id: \"param-files\",\n children: _jsxs(_components.p, {\n children: [\"The path of a single CSV file or \", _jsx(_components.a, {\n href: \"#multiple-csv-files\",\n children: \"multiple CSV files\"\n }), \".\\nFor instance, \", _jsx(_components.code, {\n children: \"s3://bucket/folder/file.csv\"\n }), \" if the file is in Amazon S3, \", _jsx(_components.code, {\n children: \"https://domain.tld/file.csv\"\n }), \"\\nif the file is on a HTTP server, or \", _jsx(_components.code, {\n children: \"/path/to/file.csv\"\n }), \" if the file is on the local file system.\"]\n })\n }), \"\\n\", _jsx(Heading, {\n level: \"2\",\n id: \"csv-options\",\n children: \"CSV Options\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"There are a number of options that can be passed into the \", _jsx(_components.code, {\n children: \"CREATE FOREIGN TABLE\"\n }), \" statement.\\nThese are the same \", _jsx(_components.a, {\n href: \"https://duckdb.org/docs/data/csv/overview#parameters\",\n children: \"options\"\n }), \" accepted\\nby DuckDB’s \", _jsx(_components.code, {\n children: \"read_csv\"\n }), \" function.\"]\n }), \"\\n\", _jsx(ParamField, {\n body: \"all_varchar\",\n default: \"false\",\n id: \"param-all-varchar\",\n children: _jsxs(_components.p, {\n children: [\"Option to skip type detection for CSV parsing and assume all columns to be of type\", _jsx(_components.code, {\n children: \"VARCHAR\"\n }), \".\"]\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"allow_quoted_nulls\",\n default: \"true\",\n id: \"param-allow-quoted-nulls\",\n children: _jsxs(_components.p, {\n children: [\"Option to allow the conversion of quoted values to \", _jsx(_components.code, {\n children: \"NULL\"\n }), \" values.\"]\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"auto_detect\",\n default: \"true\",\n id: \"param-auto-detect\",\n children: _jsxs(_components.p, {\n children: [\"Enables auto detection of CSV parameters. See \", _jsx(_components.a, {\n href: \"https://duckdb.org/docs/data/csv/auto_detection.html\",\n children: \"Auto Detection\"\n }), \".\"]\n })\n }), \"\\n\", _jsxs(ParamField, {\n body: \"auto_type_candidates\",\n id: \"param-auto-type-candidates\",\n children: [_jsxs(_components.p, {\n children: [\"This option allows you to specify the types that the sniffer will use when detecting CSV column types.\\nThe \", _jsx(_components.code, {\n children: \"VARCHAR\"\n }), \" type is always included in the detected types (as a fallback option).\\nSee \", _jsx(_components.a, {\n href: \"https://duckdb.org/docs/data/csv/overview#auto_type_candidates-details\",\n children: \"Auto Type Candidates\"\n }), \".\"]\n }), _jsx(Accordion, {\n title: \"Example Usage\",\n children: _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'s3://bucket/folder/file.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" auto_type_candidates \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'BIGINT, DATE'\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n })\n })]\n }), \"\\n\", _jsxs(ParamField, {\n body: \"columns\",\n id: \"param-columns\",\n children: [_jsxs(_components.p, {\n children: [\"A struct that specifies the column names and column types contained within the CSV file\\n(e.g., \", _jsx(_components.code, {\n children: \"{'col1': 'INTEGER', 'col2': 'VARCHAR'}\"\n }), \"). Using this option implies that auto detection is\\nnot used.\"]\n }), _jsx(Accordion, {\n title: \"Example Usage\",\n children: _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"-- Dollar-quoted strings are used to contain single quotes\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'s3://bucket/folder/file.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"columns\"\n }), \" $${\", _jsx(_components.span, {\n className: \"token string\",\n children: \"'FlightDate'\"\n }), \": \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'DATE'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'UniqueCarrier'\"\n }), \": \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'VARCHAR'\"\n }), \"}$$\"]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n })\n })]\n }), \"\\n\", _jsx(ParamField, {\n body: \"compression\",\n default: \"auto\",\n id: \"param-compression\",\n children: _jsxs(_components.p, {\n children: [\"The compression type for the file. By default this will be detected\\nautomatically from the file extension (e.g., \", _jsx(_components.code, {\n children: \"t.csv.gz\"\n }), \" will use \", _jsx(_components.code, {\n children: \"gzip\"\n }), \",\\n\", _jsx(_components.code, {\n children: \"t.csv\"\n }), \" will use \", _jsx(_components.code, {\n children: \"none\"\n }), \"). Options are \", _jsx(_components.code, {\n children: \"none\"\n }), \", \", _jsx(_components.code, {\n children: \"gzip\"\n }), \", \", _jsx(_components.code, {\n children: \"zstd\"\n }), \".\"]\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"dateformat\",\n id: \"param-dateformat\",\n children: _jsxs(_components.p, {\n children: [\"Specifies the date format to use when parsing dates. See \", _jsx(_components.a, {\n href: \"https://duckdb.org/docs/sql/functions/dateformat.html\",\n children: \"Date\\nFormat\"\n }), \".\"]\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"decimal_separator\",\n default: \".\",\n id: \"param-decimal-separator\",\n children: _jsx(_components.p, {\n children: \"The decimal separator of numbers.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"delim\",\n default: \",\",\n id: \"param-delim\",\n children: _jsxs(_components.p, {\n children: [\"Specifies the delimiter character that separates columns within each row\\n(line) of the file. Alias for \", _jsx(_components.code, {\n children: \"sep\"\n }), \".\"]\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"escape\",\n default: \"\\\"\",\n id: \"param-escape\",\n children: _jsx(_components.p, {\n children: \"Specifies the string that should appear before a data character sequence that\\nmatches the quote value.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"filename\",\n default: \"false\",\n id: \"param-filename\",\n children: _jsx(_components.p, {\n children: \"Whether or not an extra filename column should be included in the result.\"\n })\n }), \"\\n\", _jsxs(ParamField, {\n body: \"force_not_null\",\n id: \"param-force-not-null\",\n children: [_jsxs(_components.p, {\n children: [\"Do not match the specified columns’ values against the \", _jsx(_components.code, {\n children: \"NULL\"\n }), \" string. In the default case where the \", _jsx(_components.code, {\n children: \"NULL\"\n }), \" string is empty, this means that empty values will be read as zero-length strings rather than NULLs.\"]\n }), _jsx(Accordion, {\n title: \"Example Usage\",\n children: _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"-- Dollar-quoted strings are used to contain single quotes\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'s3://bucket/folder/file.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" force_not_null \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'FlightDate, UniqueCarrier'\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n })\n })]\n }), \"\\n\", _jsx(ParamField, {\n body: \"header\",\n default: \"false\",\n id: \"param-header\",\n children: _jsx(_components.p, {\n children: \"Specifies that the file contains a header line with the names of each column\\nin the file.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"hive_partitioning\",\n default: \"false\",\n id: \"param-hive-partitioning\",\n children: _jsx(_components.p, {\n children: \"Whether or not to interpret the path as a Hive partitioned path.\"\n })\n }), \"\\n\", _jsxs(ParamField, {\n body: \"hive_types\",\n id: \"param-hive-types\",\n children: [_jsxs(_components.p, {\n children: [\"If \", _jsx(_components.code, {\n children: \"hive_partitioning\"\n }), \" is enabled, \", _jsx(_components.code, {\n children: \"hive_types\"\n }), \" can be used to specify the logical types of the hive\\npartitions in a struct.\"]\n }), _jsx(Accordion, {\n title: \"Example Usage\",\n children: _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"-- Dollar-quoted strings are used to contain single quotes\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'s3://bucket/folder/file.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" hive_partitioning \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'true'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" hive_types $${\", _jsx(_components.span, {\n className: \"token string\",\n children: \"'release'\"\n }), \": \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"DATE\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'orders'\"\n }), \": \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"BIGINT\"\n }), \"}$$\"]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n })\n })]\n }), \"\\n\", _jsxs(ParamField, {\n body: \"hive_types_autocast\",\n id: \"param-hive-types-autocast\",\n children: [_jsxs(_components.p, {\n children: [\"hive_types will be autodetected for the following types: \", _jsx(_components.code, {\n children: \"DATE\"\n }), \", \", _jsx(_components.code, {\n children: \"TIMESTAMP\"\n }), \" and \", _jsx(_components.code, {\n children: \"BIGINT\"\n }), \".\\nTo switch off the autodetection, this option can be set to \", _jsx(_components.code, {\n children: \"0\"\n }), \".\"]\n }), _jsx(Accordion, {\n title: \"Example Usage\",\n children: _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'s3://bucket/folder/file.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" hive_partitioning \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'true'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" hive_types $${\", _jsx(_components.span, {\n className: \"token string\",\n children: \"'release'\"\n }), \": \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"DATE\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'orders'\"\n }), \": \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"BIGINT\"\n }), \"}$$\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" hive_types_autocast \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'0'\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n })\n })]\n }), \"\\n\", _jsx(ParamField, {\n body: \"ignore_errors\",\n default: \"false\",\n id: \"param-ignore-errors\",\n children: _jsx(_components.p, {\n children: \"Option to ignore any parsing errors encountered and instead ignore rows with\\nerrors.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"max_line_size\",\n default: \"2097152\",\n id: \"param-max-line-size\",\n children: _jsx(_components.p, {\n children: \"The maximum line size in bytes.\"\n })\n }), \"\\n\", _jsxs(ParamField, {\n body: \"names\",\n id: \"param-names\",\n children: [_jsx(_components.p, {\n children: \"The column names as a list if the file does not contain a header.\"\n }), _jsx(Accordion, {\n title: \"Example Usage\",\n children: _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"-- Dollar-quoted strings are used to contain single quotes\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'s3://bucket/folder/file.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" names \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'FlightDate, UniqueCarrier'\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n })\n })]\n }), \"\\n\", _jsx(ParamField, {\n body: \"new_line\",\n id: \"param-new-line\",\n children: _jsx(_components.p, {\n children: \"Set the new line character(s) in the file. Options are ‘\\\\r’,‘\\\\n’, or ‘\\\\r\\\\n’.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"normalize_names\",\n default: \"false\",\n id: \"param-normalize-names\",\n children: _jsx(_components.p, {\n children: \"Boolean value that specifies whether or not column names should be normalized,\\nremoving any non-alphanumeric characters from them.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"null_padding\",\n default: \"false\",\n id: \"param-null-padding\",\n children: _jsx(_components.p, {\n children: \"If this option is enabled, when a row lacks columns, it will pad the remaining\\ncolumns on the right with null values.\"\n })\n }), \"\\n\", _jsxs(ParamField, {\n body: \"nullstr\",\n id: \"param-nullstr\",\n children: [_jsxs(_components.p, {\n children: [\"Specifies the string that represents a \", _jsx(_components.code, {\n children: \"NULL\"\n }), \" value or a list of strings that represent a \", _jsx(_components.code, {\n children: \"NULL\"\n }), \" value.\"]\n }), _jsx(Accordion, {\n title: \"Example Usage\",\n children: _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"-- Dollar-quoted strings are used to contain single quotes\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'s3://bucket/folder/file.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" nullstr \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'NULL, NONE'\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n })\n })]\n }), \"\\n\", _jsx(ParamField, {\n body: \"parallel\",\n default: \"true\",\n id: \"param-parallel\",\n children: _jsx(_components.p, {\n children: \"Whether or not the parallel CSV reader is used.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"quote\",\n default: \"\\\"\",\n id: \"param-quote\",\n children: _jsx(_components.p, {\n children: \"Specifies the quoting string to be used when a data value is quoted.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"sample_size\",\n default: \"20480\",\n id: \"param-sample-size\",\n children: _jsx(_components.p, {\n children: \"The number of sample rows for auto detection of parameters.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"sep\",\n default: \",\",\n id: \"param-sep\",\n children: _jsxs(_components.p, {\n children: [\"Specifies the delimiter character that separates columns within each row\\n(line) of the file. Alias for \", _jsx(_components.code, {\n children: \"delim\"\n }), \".\"]\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"skip\",\n default: \"0\",\n id: \"param-skip\",\n children: _jsx(_components.p, {\n children: \"The number of lines at the top of the file to skip.\"\n })\n }), \"\\n\", _jsx(ParamField, {\n body: \"timestampformat\",\n default: \"(empty)\",\n id: \"param-timestampformat\",\n children: _jsxs(_components.p, {\n children: [\"Specifies the date format to use when parsing timestamps. See \", _jsx(_components.a, {\n href: \"https://duckdb.org/docs/sql/functions/dateformat.html\",\n children: \"Date\\nFormat\"\n }), \".\"]\n })\n }), \"\\n\", _jsxs(ParamField, {\n body: \"types\",\n id: \"param-types\",\n children: [_jsx(_components.p, {\n children: \"The column types as a list by position.\"\n }), _jsx(Accordion, {\n title: \"Example Usage\",\n children: _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'s3://bucket/folder/file.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"types\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'BIGINT, DATE'\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n })\n })]\n }), \"\\n\", _jsx(ParamField, {\n body: \"union_by_name\",\n default: \"false\",\n id: \"param-union-by-name\",\n children: _jsx(_components.p, {\n children: \"Whether the columns of multiple schemas should be unified by name, rather than\\nby position.\"\n })\n }), \"\\n\", _jsx(Heading, {\n level: \"2\",\n id: \"multiple-csv-files\",\n children: \"Multiple CSV Files\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"To treat multiple CSV files as a single table, their paths should be passed in as a comma-separated\\nstring.\"\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'/path/to/file1.csv, /path/to/file2.csv'\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"To treat a directory of CSV files as a single table, the glob pattern should be used.\"\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'/folder/*.csv'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"The glob pattern can also be used to read all CSV files from multiple directories.\"\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-sql\",\n children: _jsxs(_components.code, {\n className: \"language-sql\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"CREATE\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"FOREIGN\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"TABLE\"\n }), \" csv_table \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"SERVER csv_server\"\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"OPTIONS \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" files \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'/folder1/*.csv, /folder2/*.csv'\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \";\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(Heading, {\n level: \"2\",\n id: \"cloud-object-stores\",\n children: \"Cloud Object Stores\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The \", _jsx(_components.a, {\n href: \"/integrations/object_stores\",\n children: \"object stores\"\n }), \" documentation explains how to provide secrets and other credentials for\\nCSV files stored in object stores like S3.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\nfunction _missingMdxReference(id, component) {\n throw new Error(\"Expected \" + (component ? \"component\" : \"object\") + \" `\" + id + \"` to be defined: you likely forgot to import, pass, or provide it.\");\n}\n","frontmatter":{},"scope":{"config":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"ParadeDB","colors":{"primary":"#4f46e5","light":"#4f46e5","dark":"#818cf8"},"logo":{"light":"https://mintlify.s3.us-west-1.amazonaws.com/paradedb/logo/light.svg","dark":"https://mintlify.s3.us-west-1.amazonaws.com/paradedb/logo/dark.svg","href":"https://paradedb.com"},"favicon":"/favicon.png","appearance":{"strict":false},"background":{"image":"https://mintlify.s3.us-west-1.amazonaws.com/paradedb/background.png"},"navbar":{"links":[{"label":"Community","href":"https://join.slack.com/t/paradedbcommunity/shared_invite/zt-2lkzdsetw-OiIgbyFeiibd1DG~6wFgTQ"},{"label":"Blog","href":"https://paradedb.com/blog"}],"primary":{"type":"github","href":"https://github.com/paradedb/paradedb"}},"navigation":{"versions":[{"version":"v0.15.12","anchors":[{"anchor":"Documentation","icon":"book-open","groups":[{"group":"Documentation","pages":["welcome/introduction",{"group":"Getting Started","pages":["documentation/getting-started/install","documentation/getting-started/quickstart","documentation/getting-started/load"]},{"group":"Reference","pages":["documentation/overview",{"group":"Indexing","pages":["documentation/indexing/create_index","documentation/indexing/inspect_index",{"group":"Index Tuning","pages":["documentation/configuration/overview","documentation/configuration/index","documentation/configuration/index_size","documentation/configuration/segment_size","documentation/configuration/write","documentation/configuration/parallel"]},{"group":"Index Settings","pages":["documentation/configuration/scan"]}]},{"group":"Field Configuration","pages":["documentation/indexing/field_options","documentation/indexing/tokenizers","documentation/indexing/token_filters","documentation/indexing/fast_fields","documentation/indexing/record"]},{"group":"Full Text Search","pages":["documentation/full-text/overview","documentation/full-text/boolean","documentation/full-text/phrase","documentation/full-text/filtering","documentation/full-text/pagination","documentation/full-text/scoring","documentation/full-text/highlighting","documentation/full-text/sorting","documentation/full-text/boosting"]},{"group":"Query Builder","pages":["documentation/advanced/overview",{"group":"Full Text Queries","pages":["documentation/advanced/full-text/match"]},{"group":"Term-Level Queries","pages":["documentation/advanced/term/exists","documentation/advanced/term/fuzzy_term","documentation/advanced/term/range","documentation/advanced/term/range_term","documentation/advanced/term/regex","documentation/advanced/term/term","documentation/advanced/term/term_set"]},{"group":"Phrase-Level Queries","pages":["documentation/advanced/phrase/phrase","documentation/advanced/phrase/phrase_prefix"]},{"group":"JSON Queries","pages":["documentation/advanced/json/overview","documentation/advanced/json/arrays","documentation/advanced/json/range"]},{"group":"Compound Queries","pages":["documentation/advanced/compound/overview","documentation/advanced/compound/all","documentation/advanced/compound/boolean","documentation/advanced/compound/boost","documentation/advanced/compound/const","documentation/advanced/compound/disjunction_max","documentation/advanced/compound/empty","documentation/advanced/compound/parse"]},{"group":"Specialized Queries","pages":["documentation/advanced/specialized/more_like_this"]}]},{"group":"Aggregates","pages":["documentation/aggregates/overview","documentation/aggregates/common","documentation/aggregates/limitations"]},{"group":"Similarity Search","pages":["documentation/similarity/overview","documentation/similarity/index","documentation/similarity/search"]}]},{"group":"Tutorials","pages":["documentation/guides/overview","documentation/guides/autocomplete","documentation/guides/hybrid"]},{"group":"Concepts","pages":["documentation/concepts/bm25","documentation/concepts/index","documentation/concepts/matching","documentation/concepts/phrase","documentation/concepts/search","documentation/concepts/stemming","documentation/concepts/tantivy","documentation/concepts/term"]},"welcome/support"]}]},{"anchor":"Integrations","icon":"merge","groups":[{"group":"Integrations","pages":["integrations/overview",{"group":"File/Table Formats","pages":["integrations/formats/csv","integrations/formats/json","integrations/formats/parquet","integrations/formats/spatial","integrations/formats/iceberg","integrations/formats/delta"]},{"group":"Object Stores","pages":["integrations/object_stores/s3","integrations/object_stores/gcs","integrations/object_stores/azure","integrations/object_stores/huggingface"]},{"group":"Configuration","pages":["integrations/configuration/schema","integrations/configuration/settings"]}]}]},{"anchor":"Deploy","icon":"server","groups":[{"group":"Deploy","pages":["deploy/overview",{"group":"ParadeDB Self-Hosted","pages":["deploy/self-hosted/kubernetes","deploy/self-hosted/extensions",{"group":"Logical Replication","pages":["deploy/self-hosted/logical-replication/getting-started","deploy/self-hosted/logical-replication/configuration"]},{"group":"High Availability","pages":["deploy/self-hosted/high-availability/getting-started","deploy/self-hosted/high-availability/configuration"]},"deploy/self-hosted/docker"]},"deploy/byoc","deploy/enterprise","deploy/upgrading","deploy/third-party-extensions",{"group":"Continuous Integration","pages":["deploy/ci/overview","deploy/ci/github-actions","deploy/ci/gitlab-ci"]}]}]},{"anchor":"Changelog","icon":"clock","groups":[{"group":"Changelog","pages":["changelog/0.15.12","changelog/0.15.11","changelog/0.15.10","changelog/0.15.9","changelog/0.15.8","changelog/0.15.7","changelog/0.15.6","changelog/0.15.5","changelog/0.15.4","changelog/0.15.3","changelog/0.15.2","changelog/0.15.1","changelog/0.15.0","changelog/0.14.1","changelog/0.14.0","changelog/0.13.2","changelog/0.13.1","changelog/0.13.0","changelog/0.12.2","changelog/0.12.1","changelog/0.12.0","changelog/0.11.1","changelog/0.11.0","changelog/0.10.3","changelog/0.10.2","changelog/0.10.1","changelog/0.10.0","changelog/0.9.4","changelog/0.9.3","changelog/0.9.2","changelog/0.9.1","changelog/0.9.0","changelog/0.8.6","changelog/0.8.5","changelog/0.8.4","changelog/0.8.3","changelog/0.8.2","changelog/0.8.1","changelog/0.8.0","changelog/0.7.6","changelog/0.7.5","changelog/0.7.4","changelog/0.7.3","changelog/0.7.2","changelog/0.7.1","changelog/0.7.0","changelog/0.6.1","changelog/0.6.0","changelog/0.5.11","changelog/0.5.10","changelog/0.5.9","changelog/0.5.8","changelog/0.5.7","changelog/0.5.6","changelog/0.5.5","changelog/0.5.4","changelog/0.5.3","changelog/0.5.2","changelog/0.5.1","changelog/0.4.5","changelog/0.4.4","changelog/0.4.3","changelog/0.4.2","changelog/0.4.1","changelog/deprecated"]}]}]}]},"footer":{"socials":{"github":"https://github.com/paradedb/paradedb","slack":"https://join.slack.com/t/paradedbcommunity/shared_invite/zt-2lkzdsetw-OiIgbyFeiibd1DG~6wFgTQ","twitter":"https://twitter.com/paradedb"}},"redirects":[{"source":"/blog/introducing_analytics","destination":"https://paradedb.com/blog/introducing_lakehouse"},{"source":"/blog/introducing_sparse","destination":"https://paradedb.com/blog/introducing_sparse"},{"source":"/blog/introducing_bm25","destination":"https://paradedb.com/blog/introducing_search"},{"source":"/blog/introducing_paradedb","destination":"https://paradedb.com/blog/introducing_paradedb"}],"integrations":{"ga4":{"measurementId":"G-GB3C03LVY5"},"gtm":{"tagId":"GTM-KMGRG564"},"koala":{"publicApiKey":"pk_05f8f4ec527669d1e8f88783a4dccdf37407"},"posthog":{"apiKey":"phc_KiWfPSoxQLmFxY5yOODDBzzP3EcyPbn9oSVtsCBbasj","apiHost":"https://app.posthog.com"}}},"pageMetadata":{"title":"CSV","description":null,"href":"/integrations/formats/csv"}}},"entitlements":{"AI_CHAT":{"status":"ENABLED"}},"gitSource":{"type":"github","owner":"paradedb","repo":"paradedb","deployBranch":"main","contentDirectory":"docs","isPrivate":true},"banner":null},"__N_SSG":true},"page":"/_sites/[subdomain]/[[...slug]]","query":{"subdomain":"docs.paradedb.com","slug":["integrations","formats","csv"]},"buildId":"w9U6NJPR8CiiNQ0UyKps2","isFallback":false,"isExperimentalCompile":false,"gsp":true,"scriptLoader":[]}</script></html></body></html>