Skip to content

Kx technology

I can’t understand why people are frightened of new ideas. I’m frightened of the old ones.
John Cage

The Kx technology consists of:

  • kdb+ – the database
  • q – an analytic and query language for kdb+ users
  • k – the programming language used to implement both kdb+ and q

This reference documents q – the main language for working with kdb+.

The kdb+ database and q language were introduced in 2003 as part of a 64-bit rewrite of the earlier kdb database. The underlying k language and databases have been developed since 1993.

Reporting bugs in Kx products

Licensed customers of Kx should report bugs in Kx products to the email group

Other application errors or programming assistance requests should be referred to your company’s internal support groups or via the community support channels.

When reporting a bug please don’t just email one person directly. They may be unavailable and your report would go unseen; in any case that person would automatically forward it to

When sending the bug report please ensure that you include the following information:

  • the exact version of kdb+ being used. Including the start-up banner is the simplest way to do this:

    KDB+ 3.5t 2017.02.28 Copyright (C) 1993-2017 Kx Systems
    m32/ 4()core 8192MB sjt mint.local NONEXPIRE

    If you aren’t using the latest version of kdb+, please confirm that the problem still occurs in the latest version (from – the problem may already have been reported and fixed.

  • information about the OS being used, machine configuration and file system (if relevant).

  • details of any external code (DLLs, user-written primitives) loaded into the problem session.
    If external code is being loaded into the session verify that the problem still occurs when it is not loaded.
  • every Kx customer has a designated technical contact –  please copy them on the email.
  • if appropriate, include contact details, and information about when it’s convenient to contact you.
  • detailed list of steps to be taken to reproduce the error. Try to isolate the problem to a few lines of q and a tiny sample of data.

Don’t send complete applications, or commercially sensitive code or data!

Don’t send core-dumps unless requested, they’re typically meaningful only on the machine where they were generated. If you know how to generate a backtrace from a core-dump, please do send us the backtrace.

Simon Tatham, How to Report Bugs Effectively