Skip to content

Releases: ClickHouse/clickhouse-js

1.10.0

Choose a tag to compare

@slvrtrn slvrtrn released this 17 Dec 14:12
64f266d

New features

  • Added support for JWT authentication (ClickHouse Cloud feature) in both Node.js and Web API packages (#270). JWT token can be set via access_token client configuration option.

    const client = createClient({
      // ...
      access_token: '<JWT access token>',
    })

    Access token can also be configured via the URL params, e.g., https://host:port?access_token=....
    It is also possible to override the access token for a particular request (see BaseQueryParams.auth for more details).

    NB: do not mix access token and username/password credentials in the configuration; the client will throw an error if both are set.

1.9.1 (Node.js only)

Choose a tag to compare

@slvrtrn slvrtrn released this 10 Dec 16:19
  • Fixed an uncaught exception that could happen in case of malformed ClickHouse response when response compression is enabled (#363)

1.9.0 (Common, Node.js, Web)

Choose a tag to compare

@slvrtrn slvrtrn released this 29 Nov 18:44

New features

  • Added input_format_json_throw_on_bad_escape_sequence to the ClickhouseSettings type. (#355, @emmanuel-bonin)
  • The client now exports TupleParam wrapper class, allowing tuples to be properly used as query parameters. Added support for JS Map as a query parameter. (#359)

Improvements

  • The client will throw a more informative error if the buffered response is larger than the max allowed string length in V8, which is 2**29 - 24 bytes. (#357)

1.8.1 (Node.js only)

Choose a tag to compare

@slvrtrn slvrtrn released this 14 Nov 22:15
8b41e5b

Bug fixes

  • When a custom HTTP agent is used, the HTTP or HTTPS request implementation is now correctly chosen based on the URL protocol. (#352)

1.8.0 (Common, Node.js, Web)

Choose a tag to compare

@slvrtrn slvrtrn released this 07 Nov 18:32

New features

1.7.0

Choose a tag to compare

@slvrtrn slvrtrn released this 18 Oct 14:31
a12e43f

Bug fixes

  • (Web only) Fixed an issue where streaming large datasets could provide corrupted results. See #333 (PR) for more details.

New features

  • Added JSONEachRowWithProgress format support, ProgressRow interface, and isProgressRow type guard. See this Node.js example for more details. It should work similarly with the Web version.

  • (Experimental) Exposed the parseColumnType function that takes a string representation of a ClickHouse type (e.g., FixedString(16), Nullable(Int32), etc.) and returns an AST-like object that represents the type. For example:

    for (const type of [
      'Int32',
      'Array(Nullable(String))',
      `Map(Int32, DateTime64(9, 'UTC'))`,
    ]) {
      console.log(`##### Source ClickHouse type: ${type}`)
      console.log(parseColumnType(type))
    }

    The above code will output:

    ##### Source ClickHouse type: Int32
    { type: 'Simple', columnType: 'Int32', sourceType: 'Int32' }
    ##### Source ClickHouse type: Array(Nullable(String))
    {
      type: 'Array',
      value: {
        type: 'Nullable',
        sourceType: 'Nullable(String)',
        value: { type: 'Simple', columnType: 'String', sourceType: 'String' }
      },
      dimensions: 1,
      sourceType: 'Array(Nullable(String))'
    }
    ##### Source ClickHouse type: Map(Int32, DateTime64(9, 'UTC'))
    {
      type: 'Map',
      key: { type: 'Simple', columnType: 'Int32', sourceType: 'Int32' },
      value: {
        type: 'DateTime64',
        timezone: 'UTC',
        precision: 9,
        sourceType: "DateTime64(9, 'UTC')"
      },
      sourceType: "Map(Int32, DateTime64(9, 'UTC'))"
    }
    

    While the original intention was to use this function internally for Native/RowBinaryWithNamesAndTypes data formats headers parsing, it can be useful for other purposes as well (e.g., interfaces generation, or custom JSON serializers).

    NB: currently unsupported source types to parse:

    • Geo
    • (Simple)AggregateFunction
    • Nested
    • Old/new experimental JSON
    • Dynamic
    • Variant

1.6.0

Choose a tag to compare

@slvrtrn slvrtrn released this 12 Sep 18:34
fa85613

New features

Bug fixes

  • (Node.js) Fixed unhandled exceptions produced when calling ResultSet.json if the response data was not, in fact, a valid JSON. (#311)

1.5.0 (Common, Node.js)

Choose a tag to compare

@slvrtrn slvrtrn released this 22 Aug 13:41
43751b0

New features

  • (Node.js only) It is now possible to disable the automatic decompression of the response stream with the exec method. See ExecParams.decompress_response_stream for more details. (#298).

1.4.1 (Node.js, Web)

Choose a tag to compare

@slvrtrn slvrtrn released this 07 Aug 16:53
2988c50

Improvements

  • ClickHouseClient is now exported as a value from @clickhouse/client and @clickhouse/client-web packages, allowing for better integration in dependency injection frameworks that rely on IoC (e.g., Nest.js, tsyringe) (@mathieu-bour, #292).

Bug fixes

  • Fixed a potential socket hang-up issue that could happen under 100% CPU load (#294).

1.4.0 (Node.js only)

Choose a tag to compare

@slvrtrn slvrtrn released this 12 Jul 14:04
e78b6f0

New features

  • (Node.js only) The exec method now accepts an optional values parameter, which allows you to pass the request body as a Stream.Readable. This can be useful in the case of custom insert streaming with arbitrary ClickHouse data formats (which might not be explicitly supported and allowed by the client in the insert method yet). NB: in this case, you are expected to serialize the data in the stream in the required input format yourself. See #290 for more details.

Improvements

  • (Node.js only) The client package now exports a utility method drainStream