{"_id":"@vulcan-sql/extension-driver-clickhouse","_rev":"60-d2aae393e1136b0e1ca2ddbad8a6fcb6","name":"@vulcan-sql/extension-driver-clickhouse","dist-tags":{"beta":"0.10.4-beta.0","latest":"0.10.4","dev":"0.10.4-dev.20240207.0"},"versions":{"0.6.0-beta.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.6.0-beta.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.6.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","gitHead":"6c51e0a5137f2a1108f6de1c6f0505f0604d3ef9","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.6.0-beta.0","_nodeVersion":"16.20.1","_npmVersion":"8.19.4","dist":{"integrity":"sha512-LakdFIk6Jt/DYfzai7pXpPqI14WsnMClYf5V3f458kymJ8SJP4m28wFyN07buhLzBVxosUFPN69NAFOGiCVYBA==","shasum":"b3e89f93cffadd905e1255d4bce569cb11cec516","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.6.0-beta.0.tgz","fileCount":17,"unpackedSize":39799,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICrT32FCSq3twvEoeqcEvckmcZwrJd/2h3fmrBzo6mPTAiEAw701uRWMCQbXxadziSBMQ7/mmR/zsJ5AtfHKwWv0nEk="}]},"_npmUser":{"name":"shimin.wong","email":"andreashimin@gmail.com"},"directories":{},"maintainers":[{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"cyyeh","email":"chihyu.jimmy.yeh@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.6.0-beta.0_1688729182178_0.5259812013891838"},"_hasShrinkwrap":false},"0.6.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.6.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.6.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","gitHead":"6c51e0a5137f2a1108f6de1c6f0505f0604d3ef9","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.6.0","_nodeVersion":"16.20.1","_npmVersion":"8.19.4","dist":{"integrity":"sha512-56yad/eBY/ipp/2Xh9YTCJ4TiujbHVG8BABOq9/qbbs2viC5QMh8yNCB1aM6BzQIc0hBMScYfd8IMEzUQ72Q7w==","shasum":"f3ed56fd9a386fd9ae87f18d3d25c9a16bee9fda","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.6.0.tgz","fileCount":17,"unpackedSize":39792,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHMCay+TGqA4rbO+SxR6rYORaKX8S4Oeg5F/WuIcsvdoAiA2AbyGvpa8Lje75nu1PvO3buh5DA24aeGd+FD/t3768g=="}]},"_npmUser":{"name":"shimin.wong","email":"andreashimin@gmail.com"},"directories":{},"maintainers":[{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"cyyeh","email":"chihyu.jimmy.yeh@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.6.0_1688729705032_0.43635203975327164"},"_hasShrinkwrap":false},"0.6.0-dev.20230708.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.6.0-dev.20230708.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.6.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"af2cad1995e9ee68fe03e44cdc92bb13256b7f71","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.6.0-dev.20230708.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-GFAh78XDG4dUET1oKQ1PXEmeYgfZGRP1WWR+rhdWyu00OdglsSaTVEveufLi/qSoGHpG22x3iz2dpJFF4tI3Xw==","shasum":"05232c70f6438ba4192b95866cbb33e8da6c95eb","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.6.0-dev.20230708.0.tgz","fileCount":17,"unpackedSize":39807,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICG5JN3hd/5zqR0bRB3X5bgkyrsSF6HJsh5Mur4ViBykAiEA2iuQ1OLyb/ZwzgkT7BAKFPnJAydJtDcVl1aADbgOqQA="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"cyyeh","email":"chihyu.jimmy.yeh@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.6.0-dev.20230708.0_1688830750224_0.42980381772354326"},"_hasShrinkwrap":false},"0.6.0-dev.20230709.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.6.0-dev.20230709.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.6.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"fda2ab4d40a1036e0ae2ccd2fb9c14ef5bf7e858","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.6.0-dev.20230709.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-SDtPo/RJPVEy8vegU3lBxgi6c6qbGHhdq8MwEbXGd1wM2TSbvUKeb8r2EBMKUfuWNaVL0wqvDoDiGaw3B+VPuQ==","shasum":"d288daabb47a05ee62457384766c408f857bfa48","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.6.0-dev.20230709.0.tgz","fileCount":17,"unpackedSize":39807,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBssvTZtYb38Aa95k5Nk8CEnoIHpijVaJ8hVZE+JgYw+AiEAgPBtaZ2QIUvH0z4qoldms8QQlNc+xXuJb3IjW9JNGBk="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"cyyeh","email":"chihyu.jimmy.yeh@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.6.0-dev.20230709.0_1688917176281_0.0024204418225126645"},"_hasShrinkwrap":false},"0.7.0-beta.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.7.0-beta.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.7.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"bf4b1a2d5dcd569e6a86ea7c18793b59b68e6b71","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.7.0-beta.0","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-JX5QMOrqW90MzFfJ7IY7rly9Cfs9zO5YBwMlbmSXABGgicd6MitMqVHEo+TmT83zyI1Xd2F+W87GkWkraBEEzA==","shasum":"df3dce871f5d73f242ba52325cefcfa005e43087","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.7.0-beta.0.tgz","fileCount":17,"unpackedSize":39799,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCOgsI2+asXYqmjATAlEe8tlPEWeOBH/oZB8JE+ikI9KgIhANO3FivJAyshccgda1gqpskrbx77KGvD4UNTum+sD8Hu"}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"cyyeh","email":"chihyu.jimmy.yeh@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.7.0-beta.0_1689936453374_0.7861031279369093"},"_hasShrinkwrap":false},"0.7.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.7.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.7.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","gitHead":"bf4b1a2d5dcd569e6a86ea7c18793b59b68e6b71","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.7.0","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-YBkDXJQKx5hkVyIVdY7fDS/zzj1rDLnNKrYRNyvst2QtbinOO9zidJrC1kUg9ht3uMlGkcOUcQMyuk1ssL4+vQ==","shasum":"df9cc189ffe82e1bfc0e1ab81546b15efd22e581","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.7.0.tgz","fileCount":17,"unpackedSize":39792,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG8pixEkJJSnM2C1yFxYeBcQTDn6LXc7a+6yqgaK/oNLAiBUw4UNirX1ydGZSCph9PiRzqanwa2nmTK9ZewpexhLvw=="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"cyyeh","email":"chihyu.jimmy.yeh@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.7.0_1689939052168_0.6684507677413183"},"_hasShrinkwrap":false},"0.7.1-beta.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.7.1-beta.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.7.1-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"7c0158bf033c5c74feca5afab2d735c3ff46df61","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.7.1-beta.0","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-yYocI0gmGqg8eLL1vIKznXnbqA0p9a4qgMXkdXG7t/AzWTxvt4K4qaM1Vp1Myd8Yc8/hh+giGFkqOWskemMbkQ==","shasum":"5d460ce16417e655f1f230947c1cacbf1ea74318","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.7.1-beta.0.tgz","fileCount":17,"unpackedSize":39799,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCC7lJMHiwCb2Klx+p9RjeAzE1bBxF/XToKDIrp76NYKgIhAM9Oj0xlvsETbf0gFjrFcQ7c47BrRIS5nJaXu83Z3H6p"}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"cyyeh","email":"chihyu.jimmy.yeh@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.7.1-beta.0_1690451836037_0.361268623432748"},"_hasShrinkwrap":false},"0.7.1":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.7.1","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.7.1-0"},"main":"./src/index.js","typings":"./src/index.d.ts","gitHead":"7c0158bf033c5c74feca5afab2d735c3ff46df61","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.7.1","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-Xsi0ml3d59Dp9K7TOnwz5Fpxy14l++O+Cueqk8YqhG3SXJ08fx7NK5iN63GgRGFcmtHYdLc3tF10Yot0p8w5IA==","shasum":"773d7b7b84006a61ce328a9c8e038110c240413c","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.7.1.tgz","fileCount":17,"unpackedSize":39792,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBwRXRPTAJ+Pm0Fk38RkZk8iSzMWaaokNieAglVannf9AiEA1/Pt/5VE8W7Y3hcrb6V34LIqF5e3HjeZyTtiQJU4BCY="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"cyyeh","email":"chihyu.jimmy.yeh@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.7.1_1690452747549_0.06892320723551482"},"_hasShrinkwrap":false},"0.7.1-dev.20230727.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.7.1-dev.20230727.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.7.1-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"7c0158bf033c5c74feca5afab2d735c3ff46df61","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.7.1-dev.20230727.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-VaAC0sT0rsDACBJ+InBEtCGHjgRb3yKdiY6obAzhHXY7GUnX567XFSxU3B8EtUDkg1tZ/TFRssOSEk1JW2oLuA==","shasum":"19227357e1ac899970ff0f4e913981b79428b103","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.7.1-dev.20230727.0.tgz","fileCount":17,"unpackedSize":39807,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAJ0a01OT52+fviU0Q9h9pIqj01cHmPINuF9EU2dJ/cqAiEAzBxJ0stqZNXD/dqoHYKKDDw8WNx0hrdCmBXq4tBR4Ek="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"cyyeh","email":"chihyu.jimmy.yeh@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.7.1-dev.20230727.0_1690472360982_0.5325932276185783"},"_hasShrinkwrap":false},"0.7.2-beta.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.7.2-beta.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.7.2-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"180f8a6fefba41dd9a8499dec56c8d0724fd4839","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.7.2-beta.0","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-uV7QBXVQ+z7Xeava7OJDU+FFRq/0dkkGrtqW7teQhhRiTauMwESq6QdP1GUiaU12PKjXYLcFx0c0nau/dn/I0A==","shasum":"551b84fa7bf0a64ef7ee3277093f994182a0d1a5","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.7.2-beta.0.tgz","fileCount":17,"unpackedSize":39799,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC5GoTeRbktxaF7OiYzAj/wJ+mizniFOXCip9nzm6eJzAiBEpbBeV0c0nBR1q2qDcZqwpuywRwK7vleYOVMPBm50EA=="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"cyyeh","email":"chihyu.jimmy.yeh@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.7.2-beta.0_1690792774400_0.7975958452613905"},"_hasShrinkwrap":false},"0.7.2":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.7.2","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.7.2-0"},"main":"./src/index.js","typings":"./src/index.d.ts","gitHead":"180f8a6fefba41dd9a8499dec56c8d0724fd4839","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.7.2","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-I/7ATk+RM402cSwMG1BqbXf2nBAALrHUTJYdgQYAU2CeIkFXoqhPy974ySbXpn1GDD9xfO/2FHHtB7G93QGbVw==","shasum":"2ec56ce3dbc7237f3146098b1877febeff105610","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.7.2.tgz","fileCount":17,"unpackedSize":39792,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDUtEQWrzz/NnGlP1TnsipguHMYHfNHQLi32TwQHU9IsAIhAKDPFpw6IbtgEqJzrWVa2yvW101l38fEXgt4NR9d90eg"}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"cyyeh","email":"chihyu.jimmy.yeh@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.7.2_1690793441180_0.7959771374955875"},"_hasShrinkwrap":false},"0.7.2-dev.20230804.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.7.2-dev.20230804.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.7.2-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"e60acccc5d2d2b78d466f3cd43c1bc88c141d4d9","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.7.2-dev.20230804.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-T1l/uzpCuMMlWzSOfcVXZt9tNEscRe4qcbclRAq1o4p27Nf5pFzp9zmOZZ76+5tjap7tW04/r9+zAPZGNen78Q==","shasum":"5fd54fc646dd36a61d6ffa0a9975e32734119ef9","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.7.2-dev.20230804.0.tgz","fileCount":17,"unpackedSize":39807,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDLeQnNyeWK0DqnNS2UGtQsfxvnypzlnC/8/C2UtZFm3AiEAj/Pxl2PfOU3YAQlBlEu5CVX2UGUbUsEUjEUALwTtalY="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"cyyeh","email":"chihyu.jimmy.yeh@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.7.2-dev.20230804.0_1691113663202_0.11137022085032688"},"_hasShrinkwrap":false},"0.8.0-beta.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.8.0-beta.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.8.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"6f1ffdc25a3955f66b6c6751e3b90724a911603a","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.8.0-beta.0","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-9koosZgbloLsdD4RuWcfgwgoIagaU8g6+S5PUzrkoHh4goXqx1ffoUd8Yk9TtS+yPdQcyw6Oq2FjXw/fxmKrxA==","shasum":"cfca1e9ca72984fb39e48fd1be6f35eec4ce7bb5","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.8.0-beta.0.tgz","fileCount":17,"unpackedSize":39799,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFL+G1QV63xqv9FUgX1iVSTNl0RGDk0O2iUxQXJYsolGAiAgFspQacUUNDZ6KCmanhjpMzalx4Z7Rfvei63tVGhTIg=="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"cyyeh","email":"chihyu.jimmy.yeh@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.8.0-beta.0_1691138640317_0.16007125030758007"},"_hasShrinkwrap":false},"0.8.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.8.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.8.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","gitHead":"6f1ffdc25a3955f66b6c6751e3b90724a911603a","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.8.0","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-ZYdmHcozkKvm3MKsLE5o6mZ2cUYwj6a+6rup7e7LUSDeTfZZGoyluAEXb55gtQ7tMOM8sszVbiPZ8LhmzqwlUw==","shasum":"35499f92089382ccbeff1023a28c3e1969f825d0","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.8.0.tgz","fileCount":17,"unpackedSize":39792,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFr9WVcCHbTf9cVRwrz9l/Kg0UZoXlXKczNC05ZSP09jAiBSLMkafq4HzKFkaKd8Z4D4OAjTbsGvckC3Gk9fvd7LSg=="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"cyyeh","email":"chihyu.jimmy.yeh@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.8.0_1691141246228_0.6173733077412691"},"_hasShrinkwrap":false},"0.8.0-dev.20230807.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.8.0-dev.20230807.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.8.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"6f1ffdc25a3955f66b6c6751e3b90724a911603a","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.8.0-dev.20230807.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-18piMql3bMuRftiwkOee855jfbQqJJNmCs+LZmr9vjH8AdEcyE2NnFuG3+BH8OShVVwwh8bujzz5+jLN2oJF9Q==","shasum":"b71d24e2c25670b60f5833e309050cd32e5a736b","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.8.0-dev.20230807.0.tgz","fileCount":17,"unpackedSize":39807,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA9w+hu06VUnO4iH0HrZ3lrLjYpyc+luyj8VDHKCsooqAiA5IZEez2KgJlZhlGLDtb4RU/abDU6rezfnIDnp2NtjXA=="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"cyyeh","email":"chihyu.jimmy.yeh@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.8.0-dev.20230807.0_1691376067534_0.5802300077372944"},"_hasShrinkwrap":false},"0.8.1-beta.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.8.1-beta.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.8.1-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"232f449deda1b22fdb667ad0c1be62ec4e388c5b","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.8.1-beta.0","_nodeVersion":"16.19.0","_npmVersion":"9.6.4","dist":{"integrity":"sha512-p1f1aM+/Xi5yELC9glgRI7gHPED1PmS4g1s3Du7a3ZFZEXvGBLJMXxbJyJQ0VG/B0Mbre0t9/WtIXEnX1tDGwQ==","shasum":"5cf23b11f4422f1645ef73b53ba35b3b8123321b","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.8.1-beta.0.tgz","fileCount":17,"unpackedSize":39799,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHHSJYv0ZW9qMUJY+TpUA1bzFt4L2RMU/nq7a33wCl10AiBMia0BhK2SMX8ep5v1GhTaK6fWFz5k1PbAF17gro79bg=="}]},"_npmUser":{"name":"shimin.wong","email":"andreashimin@gmail.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.8.1-beta.0_1691996860865_0.6310360198656069"},"_hasShrinkwrap":false},"0.8.1":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.8.1","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.8.1-0"},"main":"./src/index.js","typings":"./src/index.d.ts","gitHead":"232f449deda1b22fdb667ad0c1be62ec4e388c5b","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.8.1","_nodeVersion":"16.19.0","_npmVersion":"9.6.4","dist":{"integrity":"sha512-xZb1yeuFoQdQ/BoJ80NrRVTtrt+berWo3oaRTF3kNnnXD++0BckpZJZin2A6A1pP2suqDInXhrh/ib0EOfei8A==","shasum":"541060ad5b81b05351138f98fe9e65b6dbe02432","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.8.1.tgz","fileCount":17,"unpackedSize":39792,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnTD52HXv+25vDJ1m3ARx5nt3VJ4+ZXMU5a1eoMabOeQIhAL7y5BjzHzLwbGitCd74HELIs+XchIicgRV1ZUXL9aY3"}]},"_npmUser":{"name":"shimin.wong","email":"andreashimin@gmail.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.8.1_1691998165566_0.4467571584236669"},"_hasShrinkwrap":false},"0.8.1-dev.20230815.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.8.1-dev.20230815.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.8.1-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"232f449deda1b22fdb667ad0c1be62ec4e388c5b","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.8.1-dev.20230815.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-nqT66M6BeJS9YeJy2hN6kaNL0sD6kjj12f6elYDfRmn+ghnJPd8aS7/oLHe1WxSBd35npYTGty1+CLOFnE/NSw==","shasum":"d9113d47eef58e6de09dc48e4ef955996e2d61f7","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.8.1-dev.20230815.0.tgz","fileCount":17,"unpackedSize":39807,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFzq9SdLF+ZBf6XYNV48L+Dj19h9QNoY+eMLBYVsx102AiB+7nDjAcQeeWnJzIz/gDrCB/tZTBarj4aIX7HUvYhWrA=="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.8.1-dev.20230815.0_1692067220895_0.4315574690356476"},"_hasShrinkwrap":false},"0.8.1-dev.20230818.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.8.1-dev.20230818.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.8.1-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"de4fb8162e315ab2cf531958aa409239bf37f78c","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.8.1-dev.20230818.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-XURDjmEmTPz60yQeqU9rh3u0Yc1yFJ5cj0mA+83CQMsgI7nDfgdVTOh3RFBcbx9BLtLC9BgGODfmpITtYNHnAQ==","shasum":"b601070404181f88e782c15fc546cf985801b047","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.8.1-dev.20230818.0.tgz","fileCount":17,"unpackedSize":39807,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0B2f7POoCHIPaCed1gZ1BKUHWF9HQhUib3XKm251W6AIhAIOmDQDeWkVd2pcuSy160Tu5U7+5c5yqbgAFkcobZoZH"}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.8.1-dev.20230818.0_1692326393654_0.7349669795992013"},"_hasShrinkwrap":false},"0.9.0-beta.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.9.0-beta.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.9.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"56f1cdbf7b269a584ae825b590f8fb4116a47de1","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.9.0-beta.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-KajqEQXkok9RhPZ1BiLjMXu+kFpSnG7g5XhH2bm4TGvVMyXwm0U/5j41NpszsK5LkOPqzBEdvDWFyjrZ7wkg+g==","shasum":"4f678893063587b0dcbbc54a528aa0e5113eb730","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.9.0-beta.0.tgz","fileCount":17,"unpackedSize":39799,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDwmQ6xX3bsaUlPJtK848sZlm+1Mya4iM7yoTNLNnz4LAiEAy4FQR3lwnOrjlIhUMakvuBvKgOp1bMX6BGcxPD4aipM="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.9.0-beta.0_1692357478636_0.48435468572476736"},"_hasShrinkwrap":false},"0.9.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.9.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.9.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","gitHead":"56f1cdbf7b269a584ae825b590f8fb4116a47de1","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.9.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-D0Mt/pnYavH1lZd4gHqbOySoQJ7crslbTCoPZQzHNjQA+BTtsUsizWdTWaXjMk4A3aHNQx0LZXVurMuPunRCyg==","shasum":"b26f32f666a3a3ef3ebd5038d6bac05b76af2a0d","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.9.0.tgz","fileCount":17,"unpackedSize":39792,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFIaEfKCmEdcDGf0m8McMjH+yLBU9/SwJQUHMMb+tIKgAiEA77X4oDR4mr6rH7ikeIFxBlll18GoENveXq7OmnNMghc="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.9.0_1692358235302_0.7010469920012843"},"_hasShrinkwrap":false},"0.9.1-beta.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.9.1-beta.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.9.1-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"df1ba3889511513a52e5dabae64b990ae091e0f3","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.9.1-beta.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-uKDnVRyNW/Q7XNq9Hglv67rCQxJvm/o8YqDHIxjOOjL8iPnOfcu9FhkFNYbR5HdrxAgiQNKn4iamJnu7hriipA==","shasum":"85bbb61adcf73915c3995971de4c8d36ea8198c0","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.9.1-beta.0.tgz","fileCount":17,"unpackedSize":39799,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDIpqJHJM4BAWKsNg0KDyWJtidQHuefE3Pyg2nyJbKmUwIgB4p09jq1vAGAWj/cJTulW2x3H1WDzrsO2ArueAlCX58="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.9.1-beta.0_1692595995034_0.10929464151506751"},"_hasShrinkwrap":false},"0.9.1":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.9.1","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.9.1-0"},"main":"./src/index.js","typings":"./src/index.d.ts","gitHead":"df1ba3889511513a52e5dabae64b990ae091e0f3","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.9.1","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-uO8R7P1AR6+6iVTpUzNE8U9k98uTpf+jYHZiPhZwKmULMg3EcgkaPfZ2mAbfGsRCtKWE5V/vFgiSZK743QRjyw==","shasum":"83ed7aaf3c05e2e31b4bcc06ec4edbd5f57abd7d","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.9.1.tgz","fileCount":17,"unpackedSize":39792,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDNP7Ogu+o6ikcJ5X7nISdtZQNzhHxH04B2uRpnvudxPAiBu5V1pctPfd3y3DKlRbfvyyYLSICm07D0/96pEgHRJlg=="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.9.1_1692596382714_0.040422205019487345"},"_hasShrinkwrap":false},"0.9.1-dev.20230822.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.9.1-dev.20230822.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.9.1-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"0be378095e8929da1716149de61ee5017d6f52ed","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.9.1-dev.20230822.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-LCnV7wwSkwfRn1EK9IkB7jAsdaCTNEz372iQHRajsLV/OzxTlJUl6LiWj6ndlD1j9N0s0AkNUpz1JFRlJIOIzg==","shasum":"6789bfee0f1e42894043737e0908d69e43119eb5","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.9.1-dev.20230822.0.tgz","fileCount":17,"unpackedSize":39807,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICsgqCllrTHAFBaxlScxEW+wPLj4GLRpNJ8V4MZkvgtrAiB4t9aW7srNlGw8Z0WisP9VpHjwf7kCgcDHl4FeVDRXrA=="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.9.1-dev.20230822.0_1692672005779_0.1153309179692188"},"_hasShrinkwrap":false},"0.9.1-dev.20230831.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.9.1-dev.20230831.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"MIT","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.9.1-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"bc00c092d6e5f611ba93c6867cccdf4b7d5fba90","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.9.1-dev.20230831.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-l0hBd04AFQKZHVVWNxaOCrUsmxb/tJOgj1N8qk+cNRiUhPAw/rkGE7CCgEpRMC6ozDXq1RBzv9P1TJhxyq6Fow==","shasum":"5858928b041db82c916ad841b932eef563386a9a","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.9.1-dev.20230831.0.tgz","fileCount":17,"unpackedSize":39807,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDKLOdPxBcRYRu8jk0cFeJKx0RWvExNbD1D5FGIrKUm2AiAtLJUJ7dS3AG9lQKlH8Nolh4939GPCBhU/XGZiZTm9kg=="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.9.1-dev.20230831.0_1693449600038_0.1622900491378212"},"_hasShrinkwrap":false},"0.9.1-dev.20230904.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.9.1-dev.20230904.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.9.1-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"7e87aa7cf3a725be7ce3c384ef682c0a9c579d09","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.9.1-dev.20230904.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-GV5jZ64VW7s/c22jQ9TSh4i1jpcrL5Sn5Zqqqm/9187d/5wwb4l2r6ry4RWNmMHtgZ+XeJMj7TbFxcfCC+QlvA==","shasum":"7c678be1c8bbd76b942e6b4b590b38577fbd9597","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.9.1-dev.20230904.0.tgz","fileCount":17,"unpackedSize":39814,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDL4svxQd5P7ZhRmlJlnRJI6VA3PI/m3jbzF5o8aXWF5wIhAKUYI82pIdyQlxbVWg9qh04tESBg/GGrEyO/HjFpfPB/"}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.9.1-dev.20230904.0_1693795251516_0.6872011499612931"},"_hasShrinkwrap":false},"0.9.1-dev.20230912.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.9.1-dev.20230912.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.9.1-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"fa73cfd332afb169bcea799d0b8146b2e6b5e7a6","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.9.1-dev.20230912.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-MxZJZTqpr732L/ke3JLsMNzCS8E0BDdXwSe1rXWf2bVCq7DDndiPUcyUnWT8bud1AkhJ6vds8LlSoIAD54fOLQ==","shasum":"146e46df2800f3c25c0a8d585959a1c7dcddb214","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.9.1-dev.20230912.0.tgz","fileCount":17,"unpackedSize":39814,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCE8ePkvZ3IWepVuxCJmC5SGElCN54UkrbND8DI59k5hQIhAL8QW0AJFTy4kRaXXUCzGaaGF5FvW1ur/7EWKOVjdMd+"}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.9.1-dev.20230912.0_1694486411753_0.4818214230761084"},"_hasShrinkwrap":false},"0.9.1-dev.20230920.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.9.1-dev.20230920.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.9.1-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"2f212a192c6990fb4184a564e8618f697946716c","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.9.1-dev.20230920.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-2/awbwYRReEe3oqSDKzcE09bkzgz/MgOzesu7ZG9k5b4CNYGMPwWj8IWw6Q0n+CC9P7t8ZX9jcfiNBAQCBbIcQ==","shasum":"85f3cd07e3839268fc2b0a92ef2e51d4942a98cb","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.9.1-dev.20230920.0.tgz","fileCount":17,"unpackedSize":39838,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBCpyPy123ofByolX29sotEOx3Tg/l7n2Kx0gx9OZIzQIhAIfMErh0hWV6BQ1B141G30iW0kLlmAdftqH++beGrfja"}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.9.1-dev.20230920.0_1695177614884_0.3570138748398468"},"_hasShrinkwrap":false},"0.10.0-beta.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.0-beta.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"37d157e87fb569767b62f32da8aa6c90e04eec48","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.0-beta.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Q1Tu/T3J2zDxPm851JY9xg+4Bel1i57+cHh/sHx178PTnViwUznY5qmhTSmSkWGWwnsXwF1Ihz0PuLgPTFnd5A==","shasum":"7ff8b06966e09128c64434aa2e4b4400c34f8569","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.0-beta.0.tgz","fileCount":17,"unpackedSize":39832,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4sMzy0Xd/sn7AItJM3BBaPP31leoiVPBVSc15di9JIwIgLYwAbEyPu4lR4uF6Qm24/sdBLL+93QoroGAMQ9alKbE="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.0-beta.0_1695446765145_0.43200407298045973"},"_hasShrinkwrap":false},"0.10.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","gitHead":"37d157e87fb569767b62f32da8aa6c90e04eec48","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-trqAx9RgTMRUo1DFMuEfZLERzXd2Fa3VNXY27pUzmahIQxt6k97jcosY0l5uwKYQWy1MvdWOtcw51fnNzcKzzg==","shasum":"d4319f1352297e537f13c54a2542609732286f20","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.0.tgz","fileCount":17,"unpackedSize":39825,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSMhuJbzwlgZfS+R2kVuZ367mS4HwvICAGL7JBBXURvQIhANVAYpL6fA69A6DR9CYsPKy4qD6NUXR78q4MG23Q+DoP"}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.0_1695447407512_0.1380792413456733"},"_hasShrinkwrap":false},"0.10.0-dev.20230925.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.0-dev.20230925.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"d9cea9e1e80b4598ef13fb643537f548048baf0e","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.0-dev.20230925.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-n3+HBBQmgIpCoiN62jjNgil8wNDwElYOMSpVEvcqfsqnBHp867dkf0aUVg61Z51nCm/rZLXQDr9SqrtT5MEDzg==","shasum":"e03fdef24135b5783b7744641c0ddadd0f9d9a04","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.0-dev.20230925.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEgFGqRmw7mQ2M/SCiaBjFowbJR6e8+p+KWwycUVLZnpAiAbEkh43FXEvBLU4Se6Qfa8ud6vsjKt5csoSH4tgZ6MLA=="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.0-dev.20230925.0_1695609620978_0.0449419843626806"},"_hasShrinkwrap":false},"0.10.0-dev.20230927.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.0-dev.20230927.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"d9cea9e1e80b4598ef13fb643537f548048baf0e","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.0-dev.20230927.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-R3VUKJ8EzAuD885JTBmYGa9HW97hJlCh7Ap5MmPbIjenU00BxfHYLVTkoDBWnO1Re6ZLbL7XLv55O6331rSGFg==","shasum":"905027a9897eee9c8a55876f2a4252924c3eb348","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.0-dev.20230927.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHuY6CLl4DOrQwIjztFHLbPZGZ5WchDNsTp2qp76LsEmAiEA8Cxf1/xoxKmkY6XcFdOsIfWeRyxzEdau9Ew0faIivh0="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.0-dev.20230927.0_1695782517737_0.08224200688892158"},"_hasShrinkwrap":false},"0.10.0-dev.20230928.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.0-dev.20230928.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"d9cea9e1e80b4598ef13fb643537f548048baf0e","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.0-dev.20230928.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-B67ys0JDTA6IHZLr+HEalBMuv7n8LQ73Ql4FDmtkfuZhn2jVIRvQpeH56pMaNp5ewehHrd4X9QjkbW7Pl9SU/Q==","shasum":"605541d4f4e2f21c26eac7f535cdfcc98b40a77f","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.0-dev.20230928.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDubH9S+kMjVIAMBArKrJ8hxBKXim4UsgvhSOdkN/A8xwIgJO8s7/KmKsPhjmFETIHbFVQekCIxCvHdTHEdbuMozk8="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.0-dev.20230928.0_1695868871342_0.3494686608860136"},"_hasShrinkwrap":false},"0.10.0-dev.20231002.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.0-dev.20231002.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"d9cea9e1e80b4598ef13fb643537f548048baf0e","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.0-dev.20231002.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-HpL5WbSs/0EG8SIuacjfuEdn8zfGQufw1lduHIjSkh4+TK+V0BjBxSXhcnhko1DLy0Adcl6hsAZRlbBooucpYQ==","shasum":"1f00e3ac714d699d49c1a0199af0981ef6b25a36","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.0-dev.20231002.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCySrCeDyCg10ucc5z0pSq6eR5KorzIEQvpmyUwHsVmUwIgHZ9TsAcE4GDwDmnhL+6PUt/VZP84o/Lgqw2D6/nY/Rk="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.0-dev.20231002.0_1696214504580_0.28174301420147363"},"_hasShrinkwrap":false},"0.10.0-dev.20231003.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.0-dev.20231003.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"d9cea9e1e80b4598ef13fb643537f548048baf0e","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.0-dev.20231003.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-7x0D9ZI6qRIRgYZqVAE0bxM8UZ17JVp5yngP4t2REDQ9qHaxfQtW366vYIK/oAmX/YvMA8xPZiHBffPa5xkV3A==","shasum":"fcf2f89cfb3ac35838bffbd346195842dd73e020","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.0-dev.20231003.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICHdqN1CRakNBa5lnIqOGmkeTR9gAVjF4KJlGhqPZg6LAiBWEeIPUgZiL5yKEV1jlui6IuwuEGcr4sDvLKX13edW2Q=="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.0-dev.20231003.0_1696300850593_0.5139044022797026"},"_hasShrinkwrap":false},"0.10.0-dev.20231004.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.0-dev.20231004.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"d9cea9e1e80b4598ef13fb643537f548048baf0e","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.0-dev.20231004.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-RiCP0lGlBYrr7bYcO4WfQMZiyriGbf/nnaltiFGcRAZTiFPp1amXDBTorUFfpn6pVIyW72ZkkD3i0zPZKeUrsw==","shasum":"730c411fd32df291d54af13cf8d3a64e9df96f34","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.0-dev.20231004.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1ypdNkT4xGW3DUCm9cOi0NAFM5cASUmCt0txbX4Ur3gIgDKAzrC2Ciq+qM79Bt3lMSPkXVZM6uNLEVoU0DTb4Z4k="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.0-dev.20231004.0_1696387304356_0.5024498608387773"},"_hasShrinkwrap":false},"0.10.0-dev.20231005.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.0-dev.20231005.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"d9cea9e1e80b4598ef13fb643537f548048baf0e","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.0-dev.20231005.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-1YzsiBx5PpQ2HE9Bo32fR6yqeHfkgL3zbPQz0xp7ryTGl81FTZivuhW7tOdbE/G7XdJsxN0sfqJVvvyAQvLjgA==","shasum":"e15cc3407e9e036dcfe67ab8c264a4568ca04ae9","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.0-dev.20231005.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEsbMi49Jhi8faj1fyQXVPCfOI2jJs7JXKCPosyGZZtxAiBcn3oW0LU62uAbYGZgW3GvC7jL/a8KDEekfPI317toWw=="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.0-dev.20231005.0_1696473656904_0.2576946631118753"},"_hasShrinkwrap":false},"0.10.0-dev.20231006.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.0-dev.20231006.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"d9cea9e1e80b4598ef13fb643537f548048baf0e","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.0-dev.20231006.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-jw0HkDBo2fxr2yXvOasM/yl2zNp31L6Xe7zlZOpos6C2TI1rOoCgiPaMGpQueCb3QqLyJMr4e2d1OrkXPRY/8w==","shasum":"25e270072e3b21d5b9f7abdda2429788d06abbd5","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.0-dev.20231006.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvUVChaqk3KokJDEWVne6qLtjEODXC7ecjSc0duwWSPQIhAMQD5IzfkkhOFPLCx/WXotYYDAPQjrkAjYOsGL1HkIU/"}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.0-dev.20231006.0_1696560046889_0.5981219108288802"},"_hasShrinkwrap":false},"0.10.0-dev.20231012.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.0-dev.20231012.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"d9cea9e1e80b4598ef13fb643537f548048baf0e","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.0-dev.20231012.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-Frk/tc0xRuAb44bn278I+VZ6jKF12dvPZydBfOGzQwCwrf0ttyx38Pm9gna7ZQfLnnnWQ4oD47tu5GC//2flog==","shasum":"7caa9cb084f109b1c68f76e625a8e8ac3fd0b1ee","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.0-dev.20231012.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3x3vUPCl0idNrmUKFhUlKJlh+HF02XGSlnvCDM30v/gIhAP1TelDfc2Axf3f/wTThdcKt+NZrmjUhQxbelvNEfgcm"}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.0-dev.20231012.0_1697078549137_0.2816303216332561"},"_hasShrinkwrap":false},"0.10.0-dev.20231015.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.0-dev.20231015.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.0-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"83211a1eed5ab5ce23034b4d889f062254ac22a4","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.0-dev.20231015.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-PZvrhS0SlD6GgMQ7jTHYh9QsacXmqfoa5UFtJIQ26nN+Q+CqYqrc+X20bIgyVnIbK7f5CFWP65B/PDvR3ldwlQ==","shasum":"fb050eb95aff8a0b68c57269f866c26e74746462","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.0-dev.20231015.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAQhRr+juu3xCE+ITap/IPHnxJf/wpkdZt+Z3XbVbWycAiA41rXyU981xEEd7wmbBD5+1xdrxJSV3wuMgUls0hY7/Q=="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.0-dev.20231015.0_1697337628361_0.20234094115162282"},"_hasShrinkwrap":false},"0.10.1-beta.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.1-beta.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.1-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.1-beta.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-UAJaKVyrRjLGzEXLzfpGIf34Ng6g5qRXl9kSacsvUcLhf2B/JccLbhMPydjI8xqKiTJsXWT/A1iAAbsuxnd34Q==","shasum":"e183a0757913cfec1871932fc3c8f4d74284973c","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.1-beta.0.tgz","fileCount":17,"unpackedSize":39832,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCu+rw3L2wxyRpZnZ3w88vjCS2dAgrPTCH6XfqvIMl0CAIhAPQWjsFz+e/VURXyr8mm5TtgKE21ip2fNGB+yRzdXKlJ"}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.1-beta.0_1697435573174_0.2933849038368608"},"_hasShrinkwrap":false},"0.10.1":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.1","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.1-0"},"main":"./src/index.js","typings":"./src/index.d.ts","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-UCwQLkThTiUGoRAbxZKXyw1KkagYLqw6s8HIrim+fXKDBMvdAhoqhMSQ9DFN7dvBH4QTAM0PzS66dqgdSZ79lg==","shasum":"e7651dd031255b64aa40ff8f5d4d4edeabe0362c","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.1.tgz","fileCount":17,"unpackedSize":39825,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCHfJtN9s4IWbA8uTVcr8b9CaRC36/UX9zROUL7q10/TAIgb33g87LoL0iXeNzUMvBCRPIZ2R6xxmSDuWA/04sACNE="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.1_1697437155179_0.726870238950178"},"_hasShrinkwrap":false},"0.10.1-dev.20231017.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.1-dev.20231017.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.1-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"ab7411f873afb9c3e0e5ede14fb5321fd9cce659","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.1-dev.20231017.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-pDju6H/2SwLaCJCJjOBkvhWL0J8Zam7v7B8H+eTnVcgvABgVNHXpUTjio9By/h1zvuuRibKV7oscWfKohXpgmg==","shasum":"916a550a1604abb13cbdff07ba567ecaeb41944f","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.1-dev.20231017.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNfHhsvOnRClPl866D4U1ybKiuS3ulpgWA3Mi4bRPZXwIhAOJVdoQu+P9qs0IGh8PM6mD1eJZ8QTGj2JFJr7cAoCPI"}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.1-dev.20231017.0_1697510466876_0.8940002364643036"},"_hasShrinkwrap":false},"0.10.1-dev.20231018.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.1-dev.20231018.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.1-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"10ca6f7eb99b358869f0d7585cd88537590013f0","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.1-dev.20231018.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-8T4njRBYCHsDJmazTvJDb4a76RflzOD5zDmn/InrIqW6O2NohOw6DrQ73+fxxHr+VgRfFXGvG4zM3hHK0Zo4rA==","shasum":"bfe7d7631d7472f805172d28b70824bc5e524345","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.1-dev.20231018.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCza0U5a117QoUSNzf3saetNz83PpAyuKh5BV5dfnJIOQIhAL501X12UBVCvuwH5gUV9/xRtEnzqsUIVh3PRaswfhj6"}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.1-dev.20231018.0_1697596931519_0.6804071573817421"},"_hasShrinkwrap":false},"0.10.2-beta.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.2-beta.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.2-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.2-beta.0","_nodeVersion":"12.22.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-rt+yXqA535AAY7NqzEhR/sephKdoBS6dKR6D2FgmTxTbwVwql+t/rfnhMF5qF4Gek1W6IXY7mgolt3i5cdFROw==","shasum":"1779dba966e6bc8258370c7c81f67e34f6efc000","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.2-beta.0.tgz","fileCount":17,"unpackedSize":39832,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA0EQ0ktOKPfzEFJoDnjiymBL5eTmgRgLsMz+Ctj3bkTAiEA1tf9l3dw8eNIOc8x8vmEhmHA+JVyvRM5tWX1qZvqgKg="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.2-beta.0_1698143495850_0.7939562019483042"},"_hasShrinkwrap":false},"0.10.2":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.2","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.13.2","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.2-0"},"main":"./src/index.js","typings":"./src/index.d.ts","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.2","_nodeVersion":"12.22.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-BP99iz8suPQ8nFH/Q7l5EP4FP2c3m3UFpayRpz6DgXqVldUr4lUXJ7MFe62mjP8cIBf9I8PzRvurWZ22i46S2w==","shasum":"39288d7e499ad92d7c7cd319ab46d2e575866214","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.2.tgz","fileCount":17,"unpackedSize":39825,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9wzea8k8fgrPfwmjHHTzAs4lqbsVQHgOCSl+ovjm8wgIgE0Pz+ezmOV/VvwgKWv9dNQa10rh4iF62vpjj9glS0/I="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.2_1698144330676_0.333820918518537"},"_hasShrinkwrap":false},"0.10.3-beta.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.3-beta.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.14.0","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.3-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"cadf2b4d96482f18a3561da04a23421d2dd897d2","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.3-beta.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-YPVJdI2nM4I1++S/rxukgdtMiKxPLbENQ00R66xUyPi3UV/8d7sNC+19YOLl5CuORHNWjtrfUFBfrXE2FxJMHg==","shasum":"49b8a827aba4c549762ec32ee3133a5fac361f4d","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.3-beta.0.tgz","fileCount":17,"unpackedSize":39832,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+8tZKrtotBKvq33LJMwKMrPaRhyJVePJnalCizAHKmgIhAKZ2JxZUYsqSjx5IXGkbgY4tNfP4vb33OyCyHyGBzh5y"}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.3-beta.0_1704971380145_0.359488380958215"},"_hasShrinkwrap":false},"0.10.3":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.3","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.14.0","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.3-0"},"main":"./src/index.js","typings":"./src/index.d.ts","gitHead":"cadf2b4d96482f18a3561da04a23421d2dd897d2","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.3","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-3XfTKbEnei4ApcfZPpFflU7GzDObHMaIM8u/wHPuGNFLls2lpwmuhZn9ovR1Ku0G64Byb3nwyQE0vRfhTf5pyw==","shasum":"fccdae971eead39a73af603039153146386c54e7","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.3.tgz","fileCount":17,"unpackedSize":39825,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA+mGTaQXGLYeog1pk/P/Ipkq4WW+lXVHQJt7rLHdc5+AiAMf2/dsbI9DRi31C6P5LEC4d4j34F8ziUxBc9r+Sel/Q=="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.3_1704972243862_0.03797293845707328"},"_hasShrinkwrap":false},"0.10.4-beta.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.4-beta.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.14.0","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.4-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"f7c378693220c4229528d10854efce65e5703eca","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.4-beta.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-0BfkUWmYdqv2DdU6moPbQID4CvuyabT/VEuDonMwWWWSp+0VYGD0/WK4L7rkJhArmiCCyKgn+S9SyoRXdaLWvw==","shasum":"acedffbf94ab5aa27b7e749180c2d44465e8ec9f","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.4-beta.0.tgz","fileCount":17,"unpackedSize":39832,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnPC1y5lOqOeB/XSz1zgntapyjbC8SnljufZFyxYn9XAIhAKkwF7rNHogMCCRVerFkPCB3uXDjYB9Tjg3OTaT3O3Sd"}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.4-beta.0_1705573301133_0.012686412354533383"},"_hasShrinkwrap":false},"0.10.4":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.4","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.14.0","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.4-0"},"main":"./src/index.js","typings":"./src/index.d.ts","gitHead":"f7c378693220c4229528d10854efce65e5703eca","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.4","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-hIfVYkCtlMmWDEv9vV0yzpinWqAQBUuSWLVRWEYGitaO1CMeXaIHeimgUQ7eszlqdzUvepNIK8XVNjD3V4ZjuA==","shasum":"92b046f764b669f78faecadb180a7823d7349eb9","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.4.tgz","fileCount":17,"unpackedSize":39825,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIELI9uZKvPsuB4FAorbIAywKpK0BrrEewfbskTs23XWfAiBAmpAJs60RQpd5dQ7X5ErDBzNykBArKaEg2h+cRq7ZPA=="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.4_1705574196031_0.922458806494403"},"_hasShrinkwrap":false},"0.10.4-dev.20240122.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.4-dev.20240122.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.14.0","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.4-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"4e0f6ec3c8b406c255f832defab07d030d52f2ee","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.4-dev.20240122.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-J5Nz01DE9vs3QyP80ywdONwJ5nDk3ZL0i4MEhTzrhSv0hGO1n+f+lPDq0lVEVJWkhkNtAYowS44gNKdD6N8D3g==","shasum":"8f4c12099c3ac7e052316f38b843a573fad8f750","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.4-dev.20240122.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDF3+/bG8ZuRfRCf2MZHCrA8Nxoln9EtQrJI6xSqZoRpAiEA7Q+/Rw6OhHRc7S+NA4UjF9Sc+8u8hjw8Bukm+WYowew="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.4-dev.20240122.0_1705891454310_0.2752135843069745"},"_hasShrinkwrap":false},"0.10.4-dev.20240123.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.4-dev.20240123.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.14.0","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.4-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"4e0f6ec3c8b406c255f832defab07d030d52f2ee","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.4-dev.20240123.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-XVhu5ZjWGEZnMN5zbhx2X23cTFeU1B7cXFJqfPqx9hwYssm84NbNfOoYG6mMyHtQvRGPMw8Ydu6IfIQvdiJG0g==","shasum":"6ed6828852a7c717a74fa396fb4f355f76915816","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.4-dev.20240123.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRVz0KVyw/9EyCPqRx3X6Q8hvMXOpf9hVz3Mu6N2gbpAIhAMSmlU/SFUE9szDVh3u5vGf6eMXMq3NXa/mXJ1yyyJBn"}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.4-dev.20240123.0_1705977843631_0.470486321814231"},"_hasShrinkwrap":false},"0.10.4-dev.20240126.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.4-dev.20240126.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.14.0","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.4-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"4e0f6ec3c8b406c255f832defab07d030d52f2ee","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.4-dev.20240126.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-qMIe6vHTNPpvOFajsgeHZglbX0T3ZIdVwjm03XUhkFAkKnY9e1xE9lPmbDsNc9GsO/EZTKnPHLAEpHRYo3oQaw==","shasum":"a37afc7f43c1dadf66e082c8cc507abbebfe6fbd","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.4-dev.20240126.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAnVP0UgDCROaBDZQvo9SH6okqSjqgosmFbTKQRV0F+4AiA7CHt35iKFUepRofWP5sFEImGqpndXfazWgdO04aepwQ=="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.4-dev.20240126.0_1706237072699_0.7738519117036471"},"_hasShrinkwrap":false},"0.10.4-dev.20240129.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.4-dev.20240129.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.14.0","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.4-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"4e0f6ec3c8b406c255f832defab07d030d52f2ee","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.4-dev.20240129.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-uUaoClKr1m7wVabbW+0EQqkUDE88KcAQ5XsnUKPXS+ojzTIgv3xWRlbB7i4RFXnC12MDXudxRNq5/ozF+Xg+Qg==","shasum":"3a63d55511f7ff9339dd239b92c0b629e4673e7b","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.4-dev.20240129.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCjgG+Fenb/DrB4QIiELEs3nJgRhxNZNMH9YUP4SKGYOAIgWYxATxmp9oQS6tVLncfqfMmDgL/htJmqNAxVVLLSMuM="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.4-dev.20240129.0_1706496231666_0.7907061225921266"},"_hasShrinkwrap":false},"0.10.4-dev.20240130.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.4-dev.20240130.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.14.0","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.4-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"4e0f6ec3c8b406c255f832defab07d030d52f2ee","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.4-dev.20240130.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-m1X/JbDX1q1irT3BCjazkpXbX8PNrqSpdcbyZGCpTzKmKDazs9jCrv+XWQPrFL9qBONhrawTCRCMI0BWZvpiHA==","shasum":"b5d94b3ee44d2aee3cc1fb019e9b074d99cfc1d2","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.4-dev.20240130.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDgv4ywfkRh/PtIpZ6YZ4QR7J7i7WYuGmgd7Amad15dkAiAWhmC4PVnZrx6PpdsIjav+ifsXt8MzkDtoyYp+qzNFDA=="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.4-dev.20240130.0_1706582659368_0.6037756771559768"},"_hasShrinkwrap":false},"0.10.4-dev.20240131.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.4-dev.20240131.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.14.0","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.4-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"4e0f6ec3c8b406c255f832defab07d030d52f2ee","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.4-dev.20240131.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-J8wzhatpDwon4H9RjekETSXdIP09yymN9ho/f+m3gi+Hr0pmvZu9keO5eTdp4sqi4wmVkOyCu0A4Uv0ddc9EOw==","shasum":"4e57d17001c52be62dfa6907fb24f465d1a52dbe","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.4-dev.20240131.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDzcV4hJh9AlaRzn4JUHJzm55vHC8p3RzY3NS9+kxc5TAiEAtp3dqL9yK2oxQhaX2skQO267ZUmhx8YMKqAmDRLQ7SY="}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"star.you","email":"star2ver.dev@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"eason.kuo","email":"v6610688@gmail.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.4-dev.20240131.0_1706669077862_0.25007095634638365"},"_hasShrinkwrap":false},"0.10.4-dev.20240202.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.4-dev.20240202.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.14.0","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.4-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"4e0f6ec3c8b406c255f832defab07d030d52f2ee","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.4-dev.20240202.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-vqvo6ZuQkSN956gQ2Tu+lxEDB1b4yE1rOL7YsaRAJ1LSnX0zKedDgcdkr8i3nvzqUbxckZa7LcdTI8q774FvPQ==","shasum":"22aeaae402cd2c96a93f5fd7980ad989ef191ab5","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.4-dev.20240202.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmKvm5LlKd+zvtvbhZdg/FED0zCYcpHt+CWtCRxk6S8gIhAMbtJ6xDsEfp90yll+utxWo3gMqATilVlgTWWvenXyhM"}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.4-dev.20240202.0_1706841866065_0.17005725036932096"},"_hasShrinkwrap":false},"0.10.4-dev.20240207.0":{"name":"@vulcan-sql/extension-driver-clickhouse","description":"Clickhouse driver for VulcanSQL","version":"0.10.4-dev.20240207.0","type":"commonjs","publishConfig":{"access":"public"},"keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"license":"Apache-2.0","dependencies":{"@clickhouse/client":"^0.1.1","inversify":"^6.0.1","reflect-metadata":"^0.1.13","class-transformer":"^0.5.1","moment":"^2.29.4","ms":"3.0.0-canary.1","lodash":"^4.17.21","toad-scheduler":"^2.2.0","uuid":"^9.0.0","js-yaml":"^4.1.0","nunjucks":"^3.2.3","axios":"^0.27.2","glob":"^8.0.1","tslog":"^3.3.3","joi":"^17.6.0","dayjs":"^1.11.2","koa":"^2.13.4","class-validator":"^0.14.0","duckdb":"0.7.1","bluebird":"^3.7.2","tslib":"^2.3.0"},"peerDependencies":{"@vulcan-sql/core":"~0.10.4-0"},"main":"./src/index.js","typings":"./src/index.d.ts","readme":"# extension-driver-clickhouse\n\nThis is the ClickHouse driver for VulcanSQL, provided by [Canner](https://canner.io/).\n\n## Installation\n\n1. Install the package:\n\n   ```bash\n   npm i @vulcan-sql/extension-driver-clickhouse\n   ```\n\n2. Update your `vulcan.yaml` file to enable the extension:\n\n   ```yaml\n   extensions:\n     clickhouse: '@vulcan-sql/extension-driver-clickhouse'\n   ```\n\n3. Create a new profile in your `profiles.yaml` file or in the designated profile paths. For more information, please refer to the [ClickHouse Client documentation](https://clickhouse.com/docs/en/integrations/language-clients/nodejs) for the available arguments.\n\n   ```yaml\n   - name: ch # Profile name\n     type: clickhouse\n     connection:\n       # Optional: ClickHouse instance URL. Default is http://localhost:8123.\n       host: 'www.example.com:8123'\n       # Optional: Request timeout in milliseconds. Default value: 30000\n       request_timeout: 60000\n       # Optional: Maximum number of sockets to allow per host. Default value: Infinity.\n       max_open_connections: 10\n       # Optional: Compression settings for data transfer. Currently, only GZIP compression using zlib is supported. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#compression for details.\n       compression:\n         # Optional: \"response: true\" instructs ClickHouse server to respond with a compressed response body. Default: true\n         response: true\n         # Optional: \"request: true\" enables compression on the client request body. Default value: false\n         request: false\n       # Optional: The name of the user on whose behalf requests are made. Default value for username: 'default'\n       username: 'user'\n       # The user's password. Default: ''.\n       password: 'pass'\n       # Optional: The name of the application using the Node.js client. Default value: VulcanSQL\n       application: 'VulcanSQL'\n       # Optional: Database name to use. Default value: 'default'\n       database: 'hello-clickhouse'\n       # Optional: ClickHouse settings to apply to all requests. The following is a sample configuration.\n       # For all available settings, see https://clickhouse.com/docs/en/operations/settings.\n       # For the definition, see https://github.com/ClickHouse/clickhouse-js/blob/0.1.1/src/settings.ts\n       clickhouse_settings:\n         # Optional: Allow Nullable types as primary keys. Default: false\n         allow_nullable_key: true\n       # Optional: Configure TLS certificates. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#tls-certificates\n       tls:\n         # Optional: The path to the CA Cert file\n         ca_cert: 'ca-cert-file-path'\n         # Optional: The path to the Cert file\n         cert: 'cert-file-path'\n         # Optional: The path to the key file\n         key: 'key-path'\n       # Optional: ClickHouse Session ID to send with every request\n       session_id: ''\n       # Optional: HTTP Keep-Alive related settings. See https://clickhouse.com/docs/en/integrations/language-clients/nodejs#keep-alive\n       keep_alive:\n         # Optional: Enable or disable HTTP Keep-Alive mechanism. Default: true\n         enabled: true\n         # Optional: How long to keep a particular open socket alive on the client side (in milliseconds).\n         # Should be less than the server setting (see `keep_alive_timeout` in the server's `config.xml`).\n         # Currently, has no effect if unset or false. Default value: 2500 (based on the default ClickHouse server setting, which is 3000)\n         socket_ttl: 2500\n         # Optional: If the client detects a potentially expired socket based on this value, the socket will be immediately destroyed before sending the request, and the request will be retried with a new socket up to 3 times. Default: false (no retries)\n         retry_on_expired_socket: false\n   ```\n\nThe `log` option is not included above because it requires defining a Logger class and assigning it. Therefore, it cannot be set through `profiles.yaml`.\n\n## Note\n\nClickHouse supports parameterized queries to prevent SQL injection using prepared statements. Named placeholders are defined using the `{name:type}` syntax. For more information, refer to the [Query with Parameters](https://clickhouse.com/docs/en/integrations/language-clients/nodejs#queries-with-parameters) section in the ClickHouse documentation.\n\nHowever, the VulcanSQL API supports JSON format for API query parameters and does not support the full range of types available in ClickHouse. VulcanSQL only supports the conversion of the following types:\n\n- `boolean` to ClickHouse type `Bool`\n- `number` to ClickHouse types `Int` or `Float`\n- `string` to ClickHouse type `String`\n\nTherefore, if you need to query data with special types in ClickHouse, such as `Array(Unit8)`, `Record<K, V>`, `Date`, `DateTime`, and so on, you can use ClickHouse [Regular Functions](https://clickhouse.com/docs/en/sql-reference/functions) or [Type Conversion Functions](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions) to handle them.\n\nExample:\n\n```sql\n-- If the `val` from the API query parameter is '1990-11-01' and the `born_date` column is of type `Date32`,\n-- you can use the toDate function to convert the value. See https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#todate\nSELECT * FROM users WHERE born_date = toDate({val:String});\n```\n\n## ⚠️ Caution\n\nThe ClickHouse driver currently does not support caching datasets. If you use the ClickHouse driver with caching dataset features, it will result in failure.\n\n## Testing\n\nTo run tests for the `extension-driver-clickhouse` module, use the following command:\n\n```bash\nnx test extension-driver-clickhouse\n```\n","readmeFilename":"README.md","gitHead":"4e0f6ec3c8b406c255f832defab07d030d52f2ee","bugs":{"url":"https://github.com/Canner/vulcan/issues"},"homepage":"https://github.com/Canner/vulcan#readme","_id":"@vulcan-sql/extension-driver-clickhouse@0.10.4-dev.20240207.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-ASxTAN2u7yJgzN+o4crzvvecufWAhX6FAERRJU8ZJb9DQWZJz/Ylavylhjv3LKMNFOOJZ/buzzFILF2V9xJKlg==","shasum":"e352be2203e4807e0ff19864c094c45e13d2eb48","tarball":"https://registry.npmjs.org/@vulcan-sql/extension-driver-clickhouse/-/extension-driver-clickhouse-0.10.4-dev.20240207.0.tgz","fileCount":17,"unpackedSize":39840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDP7rbFHYdUzZuH4AzAhO9rf+rfeq5N8Dh2+MHR8nAL3QIhALLM/c/vqUlwgUrhFz1pPARzJBs+Yphsp/fP+8fJMVpz"}]},"_npmUser":{"name":"cannerbot","email":"william@cannerdata.com"},"directories":{},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/extension-driver-clickhouse_0.10.4-dev.20240207.0_1707273855010_0.07944161707828279"},"_hasShrinkwrap":false}},"time":{"created":"2023-07-07T11:26:22.064Z","0.6.0-beta.0":"2023-07-07T11:26:22.344Z","modified":"2024-02-07T02:44:15.435Z","0.6.0":"2023-07-07T11:35:05.223Z","0.6.0-dev.20230708.0":"2023-07-08T15:39:10.413Z","0.6.0-dev.20230709.0":"2023-07-09T15:39:36.476Z","0.7.0-beta.0":"2023-07-21T10:47:33.596Z","0.7.0":"2023-07-21T11:30:52.413Z","0.7.1-beta.0":"2023-07-27T09:57:16.181Z","0.7.1":"2023-07-27T10:12:27.716Z","0.7.1-dev.20230727.0":"2023-07-27T15:39:21.165Z","0.7.2-beta.0":"2023-07-31T08:39:34.577Z","0.7.2":"2023-07-31T08:50:41.355Z","0.7.2-dev.20230804.0":"2023-08-04T01:47:43.350Z","0.8.0-beta.0":"2023-08-04T08:44:00.513Z","0.8.0":"2023-08-04T09:27:26.366Z","0.8.0-dev.20230807.0":"2023-08-07T02:41:07.695Z","0.8.1-beta.0":"2023-08-14T07:07:41.066Z","0.8.1":"2023-08-14T07:29:25.759Z","0.8.1-dev.20230815.0":"2023-08-15T02:40:21.049Z","0.8.1-dev.20230818.0":"2023-08-18T02:39:53.817Z","0.9.0-beta.0":"2023-08-18T11:17:58.892Z","0.9.0":"2023-08-18T11:30:35.606Z","0.9.1-beta.0":"2023-08-21T05:33:15.272Z","0.9.1":"2023-08-21T05:39:42.907Z","0.9.1-dev.20230822.0":"2023-08-22T02:40:05.972Z","0.9.1-dev.20230831.0":"2023-08-31T02:40:00.235Z","0.9.1-dev.20230904.0":"2023-09-04T02:40:51.722Z","0.9.1-dev.20230912.0":"2023-09-12T02:40:12.079Z","0.9.1-dev.20230920.0":"2023-09-20T02:40:15.088Z","0.10.0-beta.0":"2023-09-23T05:26:05.418Z","0.10.0":"2023-09-23T05:36:47.774Z","0.10.0-dev.20230925.0":"2023-09-25T02:40:21.170Z","0.10.0-dev.20230927.0":"2023-09-27T02:41:57.967Z","0.10.0-dev.20230928.0":"2023-09-28T02:41:11.528Z","0.10.0-dev.20231002.0":"2023-10-02T02:41:44.832Z","0.10.0-dev.20231003.0":"2023-10-03T02:40:50.775Z","0.10.0-dev.20231004.0":"2023-10-04T02:41:44.651Z","0.10.0-dev.20231005.0":"2023-10-05T02:40:57.131Z","0.10.0-dev.20231006.0":"2023-10-06T02:40:47.109Z","0.10.0-dev.20231012.0":"2023-10-12T02:42:29.408Z","0.10.0-dev.20231015.0":"2023-10-15T02:40:28.588Z","0.10.1-beta.0":"2023-10-16T05:52:53.385Z","0.10.1":"2023-10-16T06:19:15.332Z","0.10.1-dev.20231017.0":"2023-10-17T02:41:07.123Z","0.10.1-dev.20231018.0":"2023-10-18T02:42:11.764Z","0.10.2-beta.0":"2023-10-24T10:31:36.070Z","0.10.2":"2023-10-24T10:45:31.001Z","0.10.3-beta.0":"2024-01-11T11:09:40.283Z","0.10.3":"2024-01-11T11:24:04.036Z","0.10.4-beta.0":"2024-01-18T10:21:41.302Z","0.10.4":"2024-01-18T10:36:36.204Z","0.10.4-dev.20240122.0":"2024-01-22T02:44:14.484Z","0.10.4-dev.20240123.0":"2024-01-23T02:44:03.822Z","0.10.4-dev.20240126.0":"2024-01-26T02:44:32.885Z","0.10.4-dev.20240129.0":"2024-01-29T02:43:51.805Z","0.10.4-dev.20240130.0":"2024-01-30T02:44:19.555Z","0.10.4-dev.20240131.0":"2024-01-31T02:44:38.072Z","0.10.4-dev.20240202.0":"2024-02-02T02:44:26.232Z","0.10.4-dev.20240207.0":"2024-02-07T02:44:15.235Z"},"maintainers":[{"name":"fredalai","email":"fredalai00@gmail.com"},{"name":"shimin.wong","email":"andreashimin@gmail.com"},{"name":"cannerbot","email":"william@cannerdata.com"},{"name":"wwwy3y3","email":"wwwy3y3@gmail.com"}],"description":"Clickhouse driver for VulcanSQL","homepage":"https://github.com/Canner/vulcan#readme","keywords":["vulcan","vulcan-sql","data","sql","database","data-warehouse","data-lake","api-builder","clickhouse","ch"],"repository":{"type":"git","url":"git+https://github.com/Canner/vulcan.git"},"bugs":{"url":"https://github.com/Canner/vulcan/issues"},"license":"Apache-2.0","readme":"","readmeFilename":""}