vsql_cube 확장 기능은 최대 100차원의 점과 상자를 저장하는 cube 열 유형을 MySQL에 추가하며, 포함, 겹침, 거리 함수를 제공합니다.
여러 숫자 열이 한 묶음을 이루고 이를 하나의 값으로 쿼리하고 싶을 때
vsql_cube를 사용하세요. AND 조건을 이어 붙이면 행이 범위 안에 있는지는 검사할
수 있지만, 거리순으로 행을 정렬할 수는 없습니다. cube 유형은 둘 다 할 수
있습니다. 이 확장 기능은 PostgreSQL의 cube 확장을 포팅한 것입니다. 대부분의
PostgreSQL 함수 이름이 그대로 이어지며, cube() 생성자, 연산자, 그리고 그 지원
함수(cube_contained, cube_overlap, distance_taxicab,
distance_chebyshev)는 아래의 이름 있는 함수가 됩니다.
SELECT name, ROUND(cube_distance(reading, cube_point_nd(30, 25, 6)), 2) AS distFROM sensorsORDER BY distLIMIT 2;
+-------+-------+| name | dist |+-------+-------+| east | 0.22 || south | 22.08 |+-------+-------+
SELECT name FROM sensorsWHERE cube_contains(cube_box_nd(10, 10, 0, 35, 45, 7), reading) = 1;
+-------+| name |+-------+| north || east |+-------+
cube 인수는 열에서 차원 수를 얻으므로, cube 인수 중 하나가 열 값이거나
cube_union, cube_enlarge처럼 열의 차원 수를 유지하는 함수의 결과일 때
호출이 동작합니다. cube_dim(cube_point_nd(1, 2))처럼 그런 인수가 없는 호출은
ERROR 3219 (HY000): Cannot initialize function 'cube_dim': cannot determine type parameters for vsql_cube.cube in argument 1 오류로 실패합니다. 같은
이유로, cube_point_nd()로 감싸지 말고 일반 좌표 문자열을 삽입하세요.cube_point_nd, cube_box_nd, cube_subset, cube_add_dim의 각 좌표
인수는 쉼표로 구분한 문자열일 수도 있으며, 목록은 끝에서 끝으로 이어집니다.
따라서 cube_point_nd('1,2,3')과 cube_point_nd(1, 2, 3)은 같은 점을
만듭니다.
좌표가 열에 들어 있을 때는 문자열을 전달하세요. 이 경우가 개별 인수로는 표현할
수 없는 유일한 경우입니다.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"VillageSQL Server for MySQL - Documentation","description":"Documentation for VillageSQL, a drop-in replacement for MySQL that offers extensions.","colors":{"primary":"#9500BF","light":"#CC66FF","dark":"#1F062A"},"logo":{"light":"https://mintcdn.com/villagesql/ER5Fb1fv5K0c6u26/images/logo-light.svg?fit=max\u0026auto=format\u0026n=ER5Fb1fv5K0c6u26\u0026q=85\u0026s=984aeecbb83c7ff4d729220dc5b295ba","dark":"https://mintcdn.com/villagesql/ER5Fb1fv5K0c6u26/images/logo-dark.svg?fit=max\u0026auto=format\u0026n=ER5Fb1fv5K0c6u26\u0026q=85\u0026s=7c54878160d03b398facdce3c68e8f53","href":"https://villagesql.com"},"favicon":"https://mintcdn.com/villagesql/dJP528IM9EMOJWSW/images/favicon.png?fit=max\u0026auto=format\u0026n=dJP528IM9EMOJWSW\u0026q=85\u0026s=dcd56233103a4ed589abde42130b2a1d","background":{"color":{"dark":"#1F062A"}},"navbar":{"links":[{"icon":"github","href":"https://github.com/villagesql/villagesql-server","label":"GitHub"},{"icon":"discord","href":"https://discord.gg/KSr6whd3Fr","label":"Discord"}]},"footer":{"socials":{"github":"https://github.com/villagesql/villagesql-server","discord":"https://discord.gg/KSr6whd3Fr","linkedin":"https://www.linkedin.com/company/villagesql"}},"seo":{"metatags":{"og:type":"website","og:site_name":"VillageSQL Documentation"},"indexing":"all"},"fonts":{"heading":{"family":"Space Grotesk"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"errors":{"404":{"redirect":false,"title":"This is not the village you are looking for (Error 404)","description":"It looks like you got lost looking for the village. Please go back to the [documentation site](https://villagesql.com/docs) to find what you need."}},"contextual":{"options":["copy","view","claude","chatgpt","perplexity","mcp","cursor","vscode"],"display":"header"},"navigation":{"languages":[{"language":"en","default":true,"href":""},{"language":"ja","href":"ja"},{"language":"ko","href":"ko"},{"language":"zh","href":"zh"},{"language":"pt-BR","href":"pt-BR"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"villagesql","hasAudioNarration":false,"actualSubdomain":"villagesql","customDomains":["villagesql.com"],"gitSource":{"type":"github","owner":"villagesql","repo":"villagesql-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aea5444cbdb6f4019023d8d","collectionId":"3738827d-e3a7-41ca-876b-f228a581f851","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea5444cbdb6f4019023d8d"},"feedback":{"thumbs":true,"issues":true,"edits":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aed3be608f6d22a38fe9caa","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"en","tag":"Guides","count":142},{"language":"en","tag":"MySQL Tutorial","count":46},{"language":"en","tag":"Extensions","count":35},{"language":"ja","tag":"拡張機能","count":35},{"language":"ko","tag":"확장 기능","count":35},{"language":"pt-BR","tag":"Extensões","count":35},{"language":"zh","tag":"扩展","count":35},{"language":"en","tag":"Server","count":28},{"language":"en","tag":"Dev releases","count":28},{"language":"en","tag":"Extension Catalog","count":23},{"language":"en","tag":"Available Extensions","count":23},{"language":"ja","tag":"拡張機能カタログ","count":23},{"language":"ja","tag":"利用可能な拡張機能","count":23},{"language":"ko","tag":"확장 기능 카탈로그","count":23},{"language":"ko","tag":"사용 가능한 확장 기능","count":23},{"language":"pt-BR","tag":"Catálogo de Extensões","count":23},{"language":"pt-BR","tag":"Extensões Disponíveis","count":23},{"language":"zh","tag":"扩展目录","count":23},{"language":"zh","tag":"可用扩展","count":23},{"language":"en","tag":"Operate MySQL","count":21},{"language":"en","tag":"Write Queries","count":19},{"language":"en","tag":"Install and Run Server","count":16},{"language":"ja","tag":"C++ SDK","count":14},{"language":"ko","tag":"C++ SDK","count":14},{"language":"pt-BR","tag":"SDK C++","count":14},{"language":"zh","tag":"C++ SDK","count":14},{"language":"ja","tag":"サーバー","count":13},{"language":"ko","tag":"서버","count":13},{"language":"pt-BR","tag":"Servidor","count":13},{"language":"zh","tag":"服务器","count":13},{"language":"ja","tag":"リファレンス","count":11},{"language":"ko","tag":"참조","count":11},{"language":"pt-BR","tag":"Referência","count":11},{"language":"zh","tag":"参考","count":11},{"language":"ja","tag":"サーバーのインストールと実行","count":9},{"language":"ja","tag":"拡張機能の作成","count":9},{"language":"ko","tag":"서버 설치 및 실행","count":9},{"language":"ko","tag":"확장 기능 빌드","count":9},{"language":"pt-BR","tag":"Instalar e Executar o Servidor","count":9},{"language":"pt-BR","tag":"Criar uma Extensão","count":9},{"language":"zh","tag":"安装和运行服务器","count":9},{"language":"zh","tag":"构建扩展","count":9},{"language":"ja","tag":"Rust SDK","count":8},{"language":"ko","tag":"Rust SDK","count":8},{"language":"pt-BR","tag":"SDK Rust","count":8},{"language":"zh","tag":"Rust SDK","count":8},{"language":"ja","tag":"MySQL 8.4","count":5},{"language":"ko","tag":"MySQL 8.4","count":5},{"language":"pt-BR","tag":"MySQL 8.4","count":5},{"language":"zh","tag":"MySQL 8.4","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"help@villagesql.com","showHelpButton":true}},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":".nav-dropdown-products-selector-trigger{order:1!important}.hidden.lg\\:flex.items-center.gap-x-2{order:2!important}#navbar,#sidebar,#mobile-nav,#table-of-contents{font-family:var(--font-family-headings-custom)}body{font-family:Arial, sans-serif}button.nav-tabs-item>div.font-medium{color:rgb(var(--gray-800))}html.dark button.nav-tabs-item>div.font-medium{color:rgb(var(--gray-200))}img.nav-logo{height:2.5rem!important;width:auto!important}img[src$=\"/images/pelican.svg\"]{width:1.5rem!important;height:1.5rem!important;margin:-0.25rem}@media (min-width: 1024px){li.navbar-link>a{font-size:0;gap:0;padding:0.5rem}li.navbar-link>a svg{height:1.25rem;width:1.25rem}}[data-callout-type=\"tip\"],[data-callout-type=\"note\"],[data-callout-type=\"info\"]{border-color:#CC66FF!important;background-color:rgb(204 102 255 / 0.08)!important}[data-callout-type=\"warning\"]{border:2px solid #B500BA!important;background-color:#FFFFFF!important}[data-callout-type] [data-component-part=\"callout-content\"]{color:#1F062A!important}[data-callout-type] [data-component-part=\"callout-icon\"] svg{color:#9500BF!important}[data-callout-type=\"warning\"] [data-component-part=\"callout-icon\"] svg{color:#630080!important}html.dark [data-callout-type=\"tip\"],html.dark [data-callout-type=\"note\"],html.dark [data-callout-type=\"info\"]{border-color:#630080!important;background-color:rgb(204 102 255 / 0.08)!important}html.dark [data-callout-type=\"warning\"]{border-color:#B500BA!important;background-color:transparent!important}html.dark [data-callout-type] [data-component-part=\"callout-content\"]{color:#FFFFFF!important}html.dark [data-callout-type] [data-component-part=\"callout-icon\"] svg{color:#CC66FF!important}.agent-setup #ask-assistant-code-block-button{display:none}html.dark .code-block [class*=\"dark:bg-codeblock\"]{background-color:#1F062A!important}html.dark .code-block [class=\"print:hidden\"]{background-image:linear-gradient(to right, rgb(31 6 42 / 0) 0px, rgb(31 6 42 / 0.2) 10px,\n rgb(31 6 42 / 0.5) 25px, rgb(31 6 42 / 0.8) 35px, rgb(31 6 42) 45px)!important}.chat-assistant-floating-input{display:none!important}"}],"page":{"pagePath":"ko/extensions/vsql-cube","slug":"/ko/extensions/vsql-cube","pageMetadata":{"title":"MySQL용 vsql_cube 확장 기능","sidebarTitle":"vsql_cube","description":"vsql_cube 확장 기능은 최대 100차원의 점과 상자를 저장하는 cube 열 유형을 MySQL에 추가하며, 포함, 겹침, 거리 함수를 제공합니다.","keywords":"mysql cube 확장 기능, mysql n차원 유형, mysql 기하 유형, mysql 최근접 이웃, vsql_cube, postgresql cube mysql","audience":"villagesql-user","href":"/ko/extensions/vsql-cube"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"vsql_cube 확장 기능은 최대 100차원의 점과 상자를 저장하는 cube 열 유형을 MySQL에 추가하며, 포함, 겹침, 거리 함수를 제공합니다.\"\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};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`여러 숫자 열이 한 묶음을 이루고 이를 하나의 값으로 쿼리하고 싶을 때\n`,_jsx(_components.code,{children:`vsql_cube`}),`를 사용하세요. AND 조건을 이어 붙이면 행이 범위 안에 있는지는 검사할\n수 있지만, 거리순으로 행을 정렬할 수는 없습니다. `,_jsx(_components.code,{children:`cube`}),` 유형은 둘 다 할 수\n있습니다. 이 확장 기능은 PostgreSQL의 `,_jsx(_components.code,{children:`cube`}),` 확장을 포팅한 것입니다. 대부분의\nPostgreSQL 함수 이름이 그대로 이어지며, `,_jsx(_components.code,{children:`cube()`}),` 생성자, 연산자, 그리고 그 지원\n함수(`,_jsx(_components.code,{children:`cube_contained`}),`, `,_jsx(_components.code,{children:`cube_overlap`}),`, `,_jsx(_components.code,{children:`distance_taxicab`}),`,\n`,_jsx(_components.code,{children:`distance_chebyshev`}),`)는 아래의 이름 있는 함수가 됩니다.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`관리자`})}),_jsx(_components.td,{children:`VillageSQL`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`소스 및 전체 문서`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/villagesql/vsql-cube`,children:`villagesql/vsql-cube`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`라이선스`})}),_jsx(_components.td,{children:`GPL-2.0`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`install`,children:`설치`}),`\n`,_jsxs(_components.p,{children:[`설치 스크립트, Docker 이미지 또는 릴리스 tarball로 VillageSQL을 설치했다면\n`,_jsx(_components.code,{children:`vsql_cube.veb`}),`는 이미 서버의 `,_jsx(_components.code,{children:`lib/veb/`}),` 디렉터리에 있습니다. 문 하나로 서버에\n설치하세요:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`INSTALL EXTENSION vsql_cube;`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`설치되었는지 확인합니다:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`SELECT`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` EXTENSION_NAME`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`FROM`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` INFORMATION_SCHEMA`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`EXTENSIONS`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`WHERE`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` EXTENSION_NAME `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'vsql_cube'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{numberOfLines:`6`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+----------------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`| EXTENSION_NAME |`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+----------------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`| vsql_cube |`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+----------------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`직접 빌드하려면 `,_jsx(_components.a,{href:`https://github.com/villagesql/vsql-cube`,children:`저장소`}),`의 빌드\n지침을 따르세요.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-it-adds`,children:`추가되는 기능`}),`\n`,_jsx(Heading,{level:`3`,id:`the-cube-type`,children:`cube 유형`}),`\n`,_jsxs(_components.p,{children:[`열을 `,_jsx(_components.code,{children:\"`cube`(N)\"}),`으로 선언합니다. `,_jsx(_components.code,{children:`N`}),`은 값이 가질 수 있는 최대 차원 수이며 1부터 100까지입니다.\n`,_jsx(_components.code,{children:`cube`}),`는 MySQL 예약어이므로 백틱이 필요하며, 차원 수는 필수입니다.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`CREATE`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` TABLE`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` sensors`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` id `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`INT`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` PRIMARY KEY`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` VARCHAR`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`32`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` reading `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`cube`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`값은 좌표 문자열로 씁니다. 열이 이를 파싱합니다:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`INSERT INTO`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` sensors `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`VALUES`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'north'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'12.5,40.1,3.0'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'south'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'48.0,12.7,9.5'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'east'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'30.2,25.0,6.1'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`functions`,children:`함수`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`함수`}),_jsx(_components.th,{children:`반환값`}),_jsx(_components.th,{children:`설명`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cube_point_nd(x, y, ...)`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`cube`})}),_jsx(_components.td,{children:`좌표로 점을 생성`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cube_box_nd(lower..., upper...)`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`cube`})}),_jsx(_components.td,{children:`아래쪽 모서리와 이어지는 위쪽 모서리로 상자를 생성`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`cube_point(x)`}),`, `,_jsx(_components.code,{children:`cube_box(x, y)`})]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`cube`})}),_jsx(_components.td,{children:`1차원 점 또는 상자를 생성`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`cube_from_string(s)`}),`, `,_jsx(_components.code,{children:`cube_to_string(c)`})]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`cube`}),`, string`]}),_jsxs(_components.td,{children:[`텍스트와 `,_jsx(_components.code,{children:`cube`}),` 사이를 변환`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cube_dim(c)`})}),_jsx(_components.td,{children:`int`}),_jsx(_components.td,{children:`차원 수`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cube_coord(c, n)`})}),_jsx(_components.td,{children:`real`}),_jsxs(_components.td,{children:[`좌표 `,_jsx(_components.code,{children:`n`}),`. 왼쪽 아래 모서리부터 세고 그다음 오른쪽 위 모서리를 셉니다. 범위를 벗어나면 NULL`]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`cube_ll_coord(c, n)`}),`, `,_jsx(_components.code,{children:`cube_ur_coord(c, n)`})]}),_jsx(_components.td,{children:`real`}),_jsxs(_components.td,{children:[`왼쪽 아래 또는 오른쪽 위 모서리의 좌표 `,_jsx(_components.code,{children:`n`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cube_is_point(c)`})}),_jsx(_components.td,{children:`int`}),_jsx(_components.td,{children:`값이 점이면 1, 상자이면 0`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`cube_contains(a, b)`}),`, `,_jsx(_components.code,{children:`cube_contained_by(a, b)`})]}),_jsx(_components.td,{children:`int`}),_jsx(_components.td,{children:`한 값이 다른 값을 포함하는지 여부`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cube_overlaps(a, b)`})}),_jsx(_components.td,{children:`int`}),_jsx(_components.td,{children:`두 값이 공간을 공유하는지 여부`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cube_distance(a, b)`})}),_jsx(_components.td,{children:`real`}),_jsx(_components.td,{children:`유클리드 거리`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cube_taxicab_distance(a, b)`})}),_jsx(_components.td,{children:`real`}),_jsx(_components.td,{children:`맨해튼 거리`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cube_chebyshev_distance(a, b)`})}),_jsx(_components.td,{children:`real`}),_jsx(_components.td,{children:`체비쇼프 거리`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`cube_union(a, b)`}),`, `,_jsx(_components.code,{children:`cube_inter(a, b)`})]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`cube`})}),_jsx(_components.td,{children:`둘 다 담는 가장 작은 상자; 둘의 교집합`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cube_enlarge(c, r, n)`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`cube`})}),_jsxs(_components.td,{children:[`처음 `,_jsx(_components.code,{children:`n`}),`개 차원에서 값을 `,_jsx(_components.code,{children:`r`}),`만큼 키움`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cube_subset(c, d1, d2, ...)`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`cube`})}),_jsx(_components.td,{children:`나열한 차원(1부터 셈)으로 만든 새 값`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cube_add_dim(c, lo, hi, ...)`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`cube`})}),_jsx(_components.td,{children:`lo/hi 쌍마다 차원을 하나씩 추가`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cube_agg(c)`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`cube`})}),_jsx(_components.td,{children:`집계: 그룹의 모든 값을 감싸는 경계 상자`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cube_scalar_agg(x)`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`cube`})}),_jsx(_components.td,{children:`집계: 숫자 열의 경계 범위`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`example`,children:`예제`}),`\n`,_jsx(_components.p,{children:`목표 측정값에 가장 가까운 센서 두 개를 찾은 다음, 영역 안에 있는 센서를 찾습니다:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`SELECT`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`ROUND`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(cube_distance(reading, cube_point_nd(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`30`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`25`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`6`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)), `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`AS`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` dist`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`FROM`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` sensors`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`ORDER BY`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` dist`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`LIMIT`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{numberOfLines:`7`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+-------+-------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`| name | dist |`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+-------+-------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`| east | 0.22 |`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`| south | 22.08 |`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+-------+-------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`SELECT`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` FROM`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` sensors`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`WHERE`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` cube_contains(cube_box_nd(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`10`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`10`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`35`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`45`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`7`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`), reading) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{numberOfLines:`7`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+-------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`| name |`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+-------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`| north |`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`| east |`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+-------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(Note,{children:[_jsxs(_components.p,{children:[_jsx(_components.code,{children:`cube`}),` 인수는 열에서 차원 수를 얻으므로, `,_jsx(_components.code,{children:`cube`}),` 인수 중 하나가 열 값이거나\n`,_jsx(_components.code,{children:`cube_union`}),`, `,_jsx(_components.code,{children:`cube_enlarge`}),`처럼 열의 차원 수를 유지하는 함수의 결과일 때\n호출이 동작합니다. `,_jsx(_components.code,{children:`cube_dim(cube_point_nd(1, 2))`}),`처럼 그런 인수가 없는 호출은\n`,_jsx(_components.code,{children:`ERROR 3219 (HY000): Cannot initialize function 'cube_dim': cannot determine type parameters for vsql_cube.cube in argument 1`}),` 오류로 실패합니다. 같은\n이유로, `,_jsx(_components.code,{children:`cube_point_nd()`}),`로 감싸지 말고 일반 좌표 문자열을 삽입하세요.`]}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`cube_point_nd`}),`, `,_jsx(_components.code,{children:`cube_box_nd`}),`, `,_jsx(_components.code,{children:`cube_subset`}),`, `,_jsx(_components.code,{children:`cube_add_dim`}),`의 각 좌표\n인수는 쉼표로 구분한 문자열일 수도 있으며, 목록은 끝에서 끝으로 이어집니다.\n따라서 `,_jsx(_components.code,{children:`cube_point_nd('1,2,3')`}),`과 `,_jsx(_components.code,{children:`cube_point_nd(1, 2, 3)`}),`은 같은 점을\n만듭니다.\n좌표가 열에 들어 있을 때는 문자열을 전달하세요. 이 경우가 개별 인수로는 표현할\n수 없는 유일한 경우입니다.`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`see-also`,children:`참고 항목`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/en/guides/cube-queries`,children:`MySQL에서의 다차원 범위 쿼리`}),` — 포함, 거리, 최근접 이웃 쿼리에 대한 더 긴 안내`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/ko/extensions/install`,children:`확장 기능 설치`}),` — `,_jsx(_components.code,{children:`INSTALL EXTENSION`}),`의 동작 방식과 서버가 번들을 찾는 위치`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/ko/extensions/catalog`,children:`사용 가능한 확장 기능`}),` — 전체 카탈로그`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`https://github.com/villagesql/vsql-cube`,children:`villagesql/vsql-cube`}),` — 소스, 빌드 지침, 전체 함수 참조`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"MySQL용 vsql_cube 확장 기능","sidebarTitle":"vsql_cube","description":"vsql_cube 확장 기능은 최대 100차원의 점과 상자를 저장하는 cube 열 유형을 MySQL에 추가하며, 포함, 겹침, 거리 함수를 제공합니다.","keywords":"mysql cube 확장 기능, mysql n차원 유형, mysql 기하 유형, mysql 최근접 이웃, vsql_cube, postgresql cube mysql","audience":"villagesql-user","href":"/ko/extensions/vsql-cube"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"설치","slug":"install","depth":2,"children":[]},{"title":"추가되는 기능","slug":"what-it-adds","depth":2,"children":[{"title":"cube 유형","slug":"the-cube-type","depth":3,"children":[]},{"title":"함수","slug":"functions","depth":3,"children":[]}]},{"title":"예제","slug":"example","depth":2,"children":[]},{"title":"참고 항목","slug":"see-also","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/villagesql/2202b5e0d18501d7/consent-loader.js"],"subdomain":"villagesql","siteName":"VillageSQL Server for MySQL - Documentation","title":"MySQL용 vsql_cube 확장 기능 - VillageSQL Server for MySQL - Documentation","contextualStarterQuestions":[{"_id":"6aed3c240975dbe7e5eaf506","deploymentId":"690e4c8e612a67c5b7e46992","questionText":"How do I query cube distances?","status":"active","generatedBy":"contextual","path":"ko/extensions/vsql-cube","createdAt":"2026-11-06T02:32:04.291Z","updatedAt":"2026-11-06T02:32:04.291Z","__v":0},{"_id":"6aed3c240975dbe7e5eaf505","deploymentId":"690e4c8e612a67c5b7e46992","questionText":"What is the cube data type?","status":"active","generatedBy":"contextual","path":"ko/extensions/vsql-cube","createdAt":"2026-11-06T02:32:04.291Z","updatedAt":"2026-11-06T02:32:04.291Z","__v":0},{"_id":"6aed3c240975dbe7e5eaf504","deploymentId":"690e4c8e612a67c5b7e46992","questionText":"How do I install vsql_cube?","status":"active","generatedBy":"contextual","path":"ko/extensions/vsql-cube","createdAt":"2026-11-06T02:32:04.291Z","updatedAt":"2026-11-06T02:32:04.291Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/en/extensions/vsql-cube","matchLevel":1},"ja":{"href":"/ja/extensions/vsql-cube","matchLevel":1},"ko":{"href":"/ko/extensions/vsql-cube","matchLevel":0},"zh":{"href":"/zh/extensions/vsql-cube","matchLevel":1},"pt-BR":{"href":"/pt-BR/extensions/vsql-cube","matchLevel":1}}},"lastModified":"2026-11-06T02:31:22.495Z","originalFileLocation":"ko/extensions/vsql-cube.mdx","locale":"ko"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"vsql_cube 확장 기능은 최대 100차원의 점과 상자를 저장하는 cube 열 유형을 MySQL에 추가하며, 포함, 겹침, 거리 함수를 제공합니다.\">\u003cmeta data-mint-head name=\"application-name\" content=\"VillageSQL Server for MySQL - Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"MySQL용 vsql_cube 확장 기능 - VillageSQL Server for MySQL - Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"vsql_cube 확장 기능은 최대 100차원의 점과 상자를 저장하는 cube 열 유형을 MySQL에 추가하며, 포함, 겹침, 거리 함수를 제공합니다.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"VillageSQL Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://villagesql.com/docs/ko/extensions/vsql-cube\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://villagesql.mintlify.site/docs/_mintlify/api/og/v2?division=%EC%82%AC%EC%9A%A9+%EA%B0%80%EB%8A%A5%ED%95%9C+%ED%99%95%EC%9E%A5+%EA%B8%B0%EB%8A%A5\u0026amp;title=MySQL%EC%9A%A9+vsql_cube+%ED%99%95%EC%9E%A5+%EA%B8%B0%EB%8A%A5\u0026amp;description=vsql_cube+%ED%99%95%EC%9E%A5+%EA%B8%B0%EB%8A%A5%EC%9D%80+%EC%B5%9C%EB%8C%80+100%EC%B0%A8%EC%9B%90%EC%9D%98+%EC%A0%90%EA%B3%BC+%EC%83%81%EC%9E%90%EB%A5%BC+%EC%A0%80%EC%9E%A5%ED%95%98%EB%8A%94+cube+%EC%97%B4+%EC%9C%A0%ED%98%95%EC%9D%84+MySQL%EC%97%90+%EC%B6%94%EA%B0%80%ED%95%98%EB%A9%B0%2C+%ED%8F%AC%ED%95%A8%2C+%EA%B2%B9%EC%B9%A8%2C+%EA%B1%B0%EB%A6%AC+%ED%95%A8%EC%88%98%EB%A5%BC+%EC%A0%9C%EA%B3%B5%ED%95%A9%EB%8B%88%EB%8B%A4.\u0026amp;theme=88e90f7620ba1dac07c284b1\u0026amp;signature=68d79a8c0857b5f8b37b2947d99e5f51cd6fb969574db40bbb339c8baac1f25d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"MySQL용 vsql_cube 확장 기능 - VillageSQL Server for MySQL - Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"vsql_cube 확장 기능은 최대 100차원의 점과 상자를 저장하는 cube 열 유형을 MySQL에 추가하며, 포함, 겹침, 거리 함수를 제공합니다.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://villagesql.mintlify.site/docs/_mintlify/api/og/v2?division=%EC%82%AC%EC%9A%A9+%EA%B0%80%EB%8A%A5%ED%95%9C+%ED%99%95%EC%9E%A5+%EA%B8%B0%EB%8A%A5\u0026amp;title=MySQL%EC%9A%A9+vsql_cube+%ED%99%95%EC%9E%A5+%EA%B8%B0%EB%8A%A5\u0026amp;description=vsql_cube+%ED%99%95%EC%9E%A5+%EA%B8%B0%EB%8A%A5%EC%9D%80+%EC%B5%9C%EB%8C%80+100%EC%B0%A8%EC%9B%90%EC%9D%98+%EC%A0%90%EA%B3%BC+%EC%83%81%EC%9E%90%EB%A5%BC+%EC%A0%80%EC%9E%A5%ED%95%98%EB%8A%94+cube+%EC%97%B4+%EC%9C%A0%ED%98%95%EC%9D%84+MySQL%EC%97%90+%EC%B6%94%EA%B0%80%ED%95%98%EB%A9%B0%2C+%ED%8F%AC%ED%95%A8%2C+%EA%B2%B9%EC%B9%A8%2C+%EA%B1%B0%EB%A6%AC+%ED%95%A8%EC%88%98%EB%A5%BC+%EC%A0%9C%EA%B3%B5%ED%95%A9%EB%8B%88%EB%8B%A4.\u0026amp;theme=88e90f7620ba1dac07c284b1\u0026amp;signature=68d79a8c0857b5f8b37b2947d99e5f51cd6fb969574db40bbb339c8baac1f25d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"VillageSQL Server for MySQL - Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#9500BF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://villagesql.com/docs/ko/extensions/vsql-cube\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/ko/extensions/vsql-cube.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://villagesql.com/docs/ko/extensions/vsql-cube\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://villagesql.com/docs/en/extensions/vsql-cube\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://villagesql.com/docs/ja/extensions/vsql-cube\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://villagesql.com/docs/zh/extensions/vsql-cube\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://villagesql.com/docs/pt-BR/extensions/vsql-cube\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://villagesql.com/docs/en/extensions/vsql-cube\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://villagesql.com/#organization\",\"name\":\"VillageSQL Server for MySQL - Documentation\",\"url\":\"https://villagesql.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/villagesql/ER5Fb1fv5K0c6u26/images/logo-light.svg?fit=max\u0026auto=format\u0026n=ER5Fb1fv5K0c6u26\u0026q=85\u0026s=984aeecbb83c7ff4d729220dc5b295ba\"}},{\"@type\":\"WebSite\",\"@id\":\"https://villagesql.com/docs#website\",\"name\":\"VillageSQL Server for MySQL - Documentation\",\"url\":\"https://villagesql.com/docs\",\"publisher\":{\"@id\":\"https://villagesql.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://villagesql.com/docs/ko/extensions/vsql-cube#webpage\",\"url\":\"https://villagesql.com/docs/ko/extensions/vsql-cube\",\"name\":\"MySQL용 vsql_cube 확장 기능\",\"description\":\"vsql_cube 확장 기능은 최대 100차원의 점과 상자를 저장하는 cube 열 유형을 MySQL에 추가하며, 포함, 겹침, 거리 함수를 제공합니다.\",\"dateModified\":\"2026-11-06T02:31:22.495Z\",\"isPartOf\":{\"@id\":\"https://villagesql.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://villagesql.com/docs/ko/extensions/vsql-cube#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://villagesql.com/docs/ko/extensions/vsql-cube#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"확장 기능 카탈로그\",\"item\":\"https://villagesql.com/docs/ko/extensions/vsql-ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"사용 가능한 확장 기능\",\"item\":\"https://villagesql.com/docs/ko/extensions/catalog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"MySQL용 vsql_cube 확장 기능\",\"item\":\"https://villagesql.com/docs/ko/extensions/vsql-cube\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://villagesql.com/docs/ko/extensions/vsql-cube#article\",\"headline\":\"MySQL용 vsql_cube 확장 기능\",\"name\":\"MySQL용 vsql_cube 확장 기능\",\"description\":\"vsql_cube 확장 기능은 최대 100차원의 점과 상자를 저장하는 cube 열 유형을 MySQL에 추가하며, 포함, 겹침, 거리 함수를 제공합니다.\",\"url\":\"https://villagesql.com/docs/ko/extensions/vsql-cube\",\"mainEntityOfPage\":{\"@id\":\"https://villagesql.com/docs/ko/extensions/vsql-cube#webpage\"},\"dateModified\":\"2026-11-06T02:31:22.495Z\",\"publisher\":{\"@id\":\"https://villagesql.com/#organization\"},\"isPartOf\":{\"@id\":\"https://villagesql.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"VillageSQL Server for MySQL - Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"VillageSQL Server for MySQL - Documentation","nav":{"global":null,"languages":[{"language":"en","default":true,"pages":[{"title":"en","href":"/en/extensions/vsql-cube"}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/extensions/vsql-cube"}]},{"language":"ko","tabs":[{"tab":"개요","pages":[{"title":"개요","href":"/ko"}]},{"tab":"확장 기능","groups":[{"group":"확장 기능 설치 및 실행","pages":[{"title":"확장 설치","href":"/ko/extensions/install"},{"title":"확장 프로그램 제거","href":"/ko/extensions/uninstall"},{"title":"확장 관리","href":"/ko/extensions/managing"}]},{"group":"확장 기능 카탈로그","pages":[{"group":"사용 가능한 확장 기능","root":{"title":"사용 가능한 확장 기능","href":"/ko/extensions/catalog"},"expanded":false,"pages":[{"title":"MySQL용 vsql_ai 확장 기능","sidebarTitle":"vsql_ai","href":"/ko/extensions/vsql-ai"},{"title":"MySQL용 vsql_boolean 확장 기능","sidebarTitle":"vsql_boolean","href":"/ko/extensions/vsql-boolean"},{"title":"MySQL용 vsql_crypto 확장 기능","sidebarTitle":"vsql_crypto","description":"vsql_crypto 확장 기능은 pgcrypto 함수 세트를 MySQL에 가져와 해싱, HMAC 서명, AES 암호화, 비밀번호 해싱, 안전한 난수 데이터를 제공합니다.","href":"/ko/extensions/vsql-crypto"},{"title":"MySQL용 vsql_cube 확장 기능","sidebarTitle":"vsql_cube","href":"/ko/extensions/vsql-cube"},{"title":"MySQL용 vsql_currency 확장 기능","sidebarTitle":"vsql_currency","description":"vsql_currency 확장 기능은 164개의 ISO 4217 코드 중 하나를 1바이트에 담고 입력 시 대소문자를 구분하지 않는 currency 열 유형을 MySQL에 추가합니다.","href":"/ko/extensions/vsql-currency"},{"title":"MySQL용 vsql_duckdb 확장 기능","sidebarTitle":"vsql_duckdb","href":"/ko/extensions/vsql-duckdb"},{"title":"MySQL용 vsql_fuzzystrmatch 확장 기능","sidebarTitle":"vsql_fuzzystrmatch","href":"/ko/extensions/vsql-fuzzystrmatch"},{"title":"MySQL용 vsql_http 확장 기능","sidebarTitle":"vsql_http","href":"/ko/extensions/vsql-http"},{"title":"MySQL용 vsql_mcp 확장 기능","sidebarTitle":"vsql_mcp","href":"/ko/extensions/vsql-mcp"},{"title":"MySQL용 vsql_network_address 확장 기능","sidebarTitle":"vsql_network_address","href":"/ko/extensions/vsql-network-address"},{"title":"MySQL용 vsql_oauth2 확장 기능","sidebarTitle":"vsql_oauth2","href":"/ko/extensions/vsql-oauth2"},{"title":"MySQL용 vsql_rest 확장 기능","sidebarTitle":"vsql_rest","href":"/ko/extensions/vsql-rest"},{"title":"MySQL용 vsql_stat_ch 확장 기능","sidebarTitle":"vsql_stat_ch","href":"/ko/extensions/vsql-stat-ch"},{"title":"MySQL용 vsql_trgm 확장 기능","sidebarTitle":"vsql_trgm","href":"/ko/extensions/vsql-trgm"},{"title":"MySQL용 vsql_uuid 확장 기능","sidebarTitle":"vsql_uuid","href":"/ko/extensions/vsql-uuid"},{"title":"MySQL용 prometheus_exporter 확장 기능","sidebarTitle":"prometheus_exporter","href":"/ko/extensions/prometheus-exporter"},{"title":"MySQL용 vsql_address_standardizer 확장 기능","sidebarTitle":"vsql_address_standardizer","href":"/ko/extensions/vsql-address-standardizer"},{"title":"MySQL용 vsql_luhn 확장 기능","sidebarTitle":"vsql_luhn","href":"/ko/extensions/vsql-luhn"},{"title":"MySQL용 vsql_nanoid 확장 기능","sidebarTitle":"vsql_nanoid","href":"/ko/extensions/vsql-nanoid"},{"title":"MySQL용 vsql_pgjwt 확장 기능","sidebarTitle":"vsql_pgjwt","href":"/ko/extensions/vsql-pgjwt"},{"title":"MySQL용 vsql_slugify 확장 기능","sidebarTitle":"vsql_slugify","href":"/ko/extensions/vsql-slugify"},{"title":"MySQL용 vsql_statistics 확장 기능","sidebarTitle":"vsql_statistics","href":"/ko/extensions/vsql-statistics"},{"title":"MySQL용 vsql_complex 확장 기능","sidebarTitle":"vsql_complex","href":"/ko/extensions/vsql-complex"}]}]},{"group":"확장 기능 빌드","pages":[{"title":"C++로 확장 만들기","href":"/ko/extensions/build/create"},{"title":"Rust로 확장 만들기","href":"/ko/extensions/build/rust-sdk"},{"title":"확장 프로그램 또는 플러그인 및 컴포넌트","href":"/ko/extensions/build/extensions-or-plugins"},{"title":"확장 아키텍처","href":"/ko/extensions/build/architecture"},{"title":"확장과 ABI의 동작 방식","href":"/ko/extensions/build/extension-abi-behavior"},{"group":"고급 주제","expanded":false,"pages":[{"title":"미리보기 기능","href":"/ko/extensions/build/preview-capabilities"},{"title":"사용자 정의 인덱스","href":"/ko/extensions/build/custom-indexes"},{"title":"PostgreSQL과 비교한 VEF 커버리지","href":"/ko/extensions/build/postgresql-hooks"},{"title":"프로토콜 1 API","href":"/ko/extensions/build/protocol-1"}]}]}]},{"tab":"서버","menu":[{"item":"MySQL 8.4","icon":"database","pages":[{"title":"MySQL 8.4","href":"/ko/8.4/stable/introduction"}]},{"item":"Percona Server 8.4","icon":"database","pages":[{"title":"Percona Server 8.4","href":"/ko/8.4/stable/percona"}]},{"item":"MySQL 9.7","icon":"database","pages":[{"title":"MySQL 9.7","href":"/ko/9.7/stable/introduction"}]},{"item":"이전 릴리스","icon":"clock-rotate-left","pages":[{"title":"이전 릴리스","href":"/ko/8.4/0.0.6"}]}],"pages":[{"title":"서버","href":"/ko/8.4/stable/introduction"}]},{"tab":"참조","menu":[{"item":"C++ SDK","icon":"code","pages":[{"title":"C++ SDK","href":"/ko/sdk/cpp/extension-api-reference"}]},{"item":"Rust SDK","icon":"rust","pages":[{"title":"Rust SDK","href":"/ko/sdk/rust/api-reference"}]}],"pages":[{"title":"참조","href":"/ko/sdk/cpp/extension-api-reference"}]},{"tab":"리소스","menu":[{"item":"villagesql.com","icon":"https://mintlify.s3.us-west-1.amazonaws.com/villagesql/images/pelican.svg","href":"https://villagesql.com"},{"item":"GitHub","icon":"github","href":"https://github.com/villagesql/villagesql-server"},{"item":"이슈","icon":"bug","href":"https://github.com/villagesql/villagesql-server/issues"},{"item":"Discord","icon":"discord","href":"https://discord.gg/KSr6whd3Fr"},{"item":"블로그","icon":"newspaper","href":"https://villagesql.com/blog"},{"item":"서버에 기여","icon":"code-pull-request","href":"https://github.com/villagesql/villagesql-server/blob/main/CONTRIBUTING.md"},{"item":"문서에 기여","icon":"pen-nib","href":"https://github.com/villagesql/villagesql-docs/blob/main/CONTRIBUTING.md"}]}]},{"language":"zh","pages":[{"title":"zh","href":"/zh/extensions/vsql-cube"}]},{"language":"pt-BR","pages":[{"title":"pt-BR","href":"/pt-BR/extensions/vsql-cube"}]}]},"basePath":"","title":"MySQL용 vsql_cube 확장 기능 - VillageSQL Server for MySQL - Documentation","buildId":"dpl_CEsowfH15TDzsBT2BFbX312Be4Ct","deploymentId":"dpl_CEsowfH15TDzsBT2BFbX312Be4Ct","dynamics":[],"chunks":[]}