# kdb+ and q documentation > Documentation for kdb+ and the q programming language. Each linked page is the Markdown alternative to a page on the documentation site. ## Documentation - [Page not found](https://code.kx.com/kdb-x/404.md): The requested KDB-X documentation page could not be found. - [Geospatial Indexing](https://code.kx.com/kdb-x/examples/geospatial.md): A demo showing the basics of geospatial indexing with q. A 10-million-point random data set is queried from the HTML map client. Click on the map to see nearby points. - [inetd, xinetd](https://code.kx.com/kdb-x/examples/inetd.md): On *nix-like operating systems, a q server can work under inetd to provide a private server for each connection established on a designated port. - [Linear Programming](https://code.kx.com/kdb-x/examples/lp.md): Some applications of KDB-X to linear-programming problems - [Programming Examples](https://code.kx.com/kdb-x/examples/programming-examples.md): Some examples of q programs to solve various problems - [Programming Idioms](https://code.kx.com/kdb-x/examples/programming-idioms.md): Q expressions that solve some common programming problems. - [Unicode](https://code.kx.com/kdb-x/examples/unicode.md): How-to handle Unicode-encoded data in KDB-X - [Overview](https://code.kx.com/kdb-x/external/resources.md): Additional external kdb-x resources - [About KDB-X](https://code.kx.com/kdb-x/get_started/kdb-x-get-started.md): An introduction to KDB-X and its core capabilities. - [Install](https://code.kx.com/kdb-x/get_started/kdb-x-install.md): Instructions to install KDB-X - [KDB-X Python](https://code.kx.com/kdb-x/get_started/kdb-x-python-overview.md): An overview of the Python interface (formerly PyKX) for KDB-X , its design goals, benefits, and how it fits into the KDB-X ecosystem. - [Support guide](https://code.kx.com/kdb-x/help-support/support.md): How to contact KX Support and open tickets for KDB-X. - [Control Execution](https://code.kx.com/kdb-x/how_to/basics/control-execution.md): How to manage conditional logic and iteration in q — if, the conditional and vector conditional operators, do and while, iterators, early return, and trapping errors. - [Atoms](https://code.kx.com/kdb-x/how_to/basics/data_structures/atoms.md): An overview of atoms in q, covering booleans, bytes, integers, floats, text, temporal types, GUIDs, nulls, and infinities. - [Dictionaries](https://code.kx.com/kdb-x/how_to/basics/data_structures/dictionaries.md): How to create, manipulate, and use dictionaries in q. - [Keyed Tables](https://code.kx.com/kdb-x/how_to/basics/data_structures/keyed-tables.md): Create keyed tables in q, index them by key, and add or amend records with upsert. - [Lists](https://code.kx.com/kdb-x/how_to/basics/data_structures/lists.md): Create, index, combine, and iterate over lists in q. - [Overview](https://code.kx.com/kdb-x/how_to/basics/data_structures/overview.md): Compare the core q data structures — atoms, lists, dictionaries, tables, and keyed tables — and the dimensions of each. - [How to work with table dictionaries](https://code.kx.com/kdb-x/how_to/basics/data_structures/table-dictionary.md): How to create, query, and persist table dictionaries in q. - [Tables](https://code.kx.com/kdb-x/how_to/basics/data_structures/tables.md): How to create, manipulate, and query tables in q. - [How to Debug](https://code.kx.com/kdb-x/how_to/basics/debug.md): How to diagnose runtime errors in KDB-X — reading a suspension, navigating the call stack, inspecting locals frame by frame, resuming or abandoning the call, and trapping errors in production. - [Embedded Line Editor (kxline)](https://code.kx.com/kdb-x/how_to/basics/embedded-line-editor-kxline.md): Embedded line editor used by KDB-X for interactive q sessions. - [Keep a Process Running](https://code.kx.com/kdb-x/how_to/basics/keep-processes-running.md): How to keep a long-running q process such as a writer or an HDB available at all times — running it in the background, as a daemon, as a systemd service, in Docker or Docker Compose, in Kubernetes, or under your own supervisor — and how q behaves on shutdown, restart and failure. - [Develop Scripts](https://code.kx.com/kdb-x/how_to/basics/use-scripts.md): How to write, load and manage q scripts in KDB-X — loading at startup and run time, packaging code as a module, printing and logging, multiline expressions, comments, shebang scripts, and obfuscating code for distribution. - [Use the q Terminal (REPL)](https://code.kx.com/kdb-x/how_to/basics/use-the-q-terminal.md): How to work in the q terminal — starting a session, evaluating expressions, viewing and timing results, controlling the display, running system commands, recovering from errors, and exiting. - [Work with Functions](https://code.kx.com/kdb-x/how_to/basics/work-with-functions.md): A guide to defining and calling q functions, and to managing arguments, scope, projections, recursion, variadic arguments, and return values. - [Binary Files](https://code.kx.com/kdb-x/how_to/basics/work_with_files/binary-files.md) - [External File Formats](https://code.kx.com/kdb-x/how_to/basics/work_with_files/external-files.md): Reading Parquet in KDB-X, and the interfaces that reach Python, Arrow, ODBC, and HDF5 data from q. - [KDB-X Files](https://code.kx.com/kdb-x/how_to/basics/work_with_files/kdb-files.md): Persisting a q object in the native KDB-X format with save, load, set and get, appending to a file with hopen, and where the format itself is documented. - [Overview](https://code.kx.com/kdb-x/how_to/basics/work_with_files/overview.md): How q names files with handles, how it resolves relative paths, and where to read about each file format q can read and write. - [Text Files](https://code.kx.com/kdb-x/how_to/basics/work_with_files/text-files.md) - [File Utilities](https://code.kx.com/kdb-x/how_to/basics/work_with_files/utilities.md): Reporting file size, listing a directory, testing whether a file exists, deleting a file, and running system commands from q. - [Atomicity and Integrity](https://code.kx.com/kdb-x/how_to/interact_with_databases/atomicity.md): Why set is atomic for a single file but not for a splayed table, what a partially written splayed table or partition looks like, the staging-and-symlink pattern that publishes a complete write in one step, the safe order for adding, deleting, renaming and reordering columns and tables, how to delete files safely on NFS, and what fsync adds against a crash. - [Handling Concurrent Queries](https://code.kx.com/kdb-x/how_to/interact_with_databases/concurrency.md): How to serve many users from a KDB-X database — socket sharding, a kdb+ gateway, and a protocol-aware load balancer — and why the third cannot be written in q. - [Encryption](https://code.kx.com/kdb-x/how_to/interact_with_databases/dare.md): How to set up data-at-rest encryption in KDB-X — generating and loading the master key, encrypting writes, reading encrypted data, what is left unencrypted, and the operational limits. - [Compression](https://code.kx.com/kdb-x/how_to/interact_with_databases/file-compression.md): How to compress KDB-X data on disk — the compression parameters, writing and reading compressed files, converting an existing database, what compresses well, and how to choose an algorithm. - [Historical Database (HDB)](https://code.kx.com/kdb-x/how_to/interact_with_databases/hdb.md): How to serve a KDB-X database to other users as an HDB process — the startup script, why one process answers one query at a time, how to handle concurrent queries, and how to cap a runaway query with a timeout. - [Loading a Database](https://code.kx.com/kdb-x/how_to/interact_with_databases/loading-db.md): How loading a KDB-X database works — what \l assembles and maps, what it picks up from the database root — then keeping partitions mapped or pre-fetched. - [Maintenance](https://code.kx.com/kdb-x/how_to/interact_with_databases/maintenance.md): How to keep a partitioned KDB-X database consistent and evolve its schema — filling gaps with .Q.chk and .Q.bv, and changing columns, attributes, and tables with the DBmaint module. - [Overview](https://code.kx.com/kdb-x/how_to/interact_with_databases/overview.md): What a KDB-X database is, which objects it can hold, and the flat, splayed, partitioned, and segmented forms a persisted table can take. - [Partitioned Tables](https://code.kx.com/kdb-x/how_to/interact_with_databases/partition.md): File par.txt in the main database directory defines a top-level partitioning of a database into directories. - [Query Audit](https://code.kx.com/kdb-x/how_to/interact_with_databases/query-audit.md): How to log every query a KDB-X database serves, for auditing and to find slow or memory-intensive queries, by overriding .z.pg with the KX Logging module. - [Foreign Keys](https://code.kx.com/kdb-x/how_to/interact_with_databases/relationships/foreign-keys.md): How to create, query, chain, and remove foreign keys in KDB-X — simple and compound keys, referential integrity, and how they compare with joining at query time. - [Linking Columns](https://code.kx.com/kdb-x/how_to/interact_with_databases/relationships/linking-columns.md): How to create and query link columns in KDB-X — in memory, in splayed and partitioned tables, compound links, their limits, and linking across separate databases. - [Overview](https://code.kx.com/kdb-x/how_to/interact_with_databases/relationships/overview.md): Why declare a permanent relationship between two KDB-X tables instead of joining at query time, and how to choose between a foreign key and a link column. - [Segmented Databases](https://code.kx.com/kdb-x/how_to/interact_with_databases/segment.md): How to segment a KDB-X database across multiple storage devices. - [Splayed Tables](https://code.kx.com/kdb-x/how_to/interact_with_databases/splayed-tables.md): Splaying a table stores each column as a separate file, rather than using a single file for the whole table. - [Working with Sym Files](https://code.kx.com/kdb-x/how_to/interact_with_databases/symfiles.md): How the sym file enumerates a KDB-X database's symbol columns — inspecting it, migrating tables between databases over IPC, compacting it safely, and keeping it from bloating. - [Storage Tiering](https://code.kx.com/kdb-x/how_to/interact_with_databases/tiering.md): Spreading a partitioned database across storage of different speed and cost using par.txt and symlinks, choosing compression per tier, and moving data between tiers safely. - [Asynchronous Communication](https://code.kx.com/kdb-x/how_to/io_and_communication/async.md): How to send asynchronous requests over IPC, flush and broadcast messages, write asynchronous callbacks, and block on a handle for an expected reply. - [Basics](https://code.kx.com/kdb-x/how_to/io_and_communication/basics.md): How to open and close q connections and send synchronous requests over IPC. - [Deferred Response](https://code.kx.com/kdb-x/how_to/io_and_communication/deferred-response.md): How to use -30! to suspend a synchronous response and send it later from a callback or a worker completion. - [HTTP](https://code.kx.com/kdb-x/how_to/io_and_communication/http.md): How to serve HTTP requests from a q process with custom handlers and authentication, and how to send HTTP requests from q to other servers. - [IPC Protocol Details](https://code.kx.com/kdb-x/how_to/io_and_communication/ipc-protocol.md): The low-level q IPC handshake, capability bytes, and message compression rules. - [Listening Port](https://code.kx.com/kdb-x/how_to/io_and_communication/listening-port.md): How to configure a q listening port, including service names, ephemeral and ranged ports, load balancing, multi-threaded input mode, and Unix domain sockets. - [Security and Management](https://code.kx.com/kdb-x/how_to/io_and_communication/security.md): How to authenticate and authorize q IPC connections, and how to track and interrupt them. - [SSL/TLS](https://code.kx.com/kdb-x/how_to/io_and_communication/ssl.md): How to use Secure Sockets Layer (SSL) and Transport Layer Security (TLS) to encrypt q connections with the OpenSSL libraries. - [WebSockets](https://code.kx.com/kdb-x/how_to/io_and_communication/websockets.md): How to build WebSocket servers and clients in q, handle connection events, serialize data, and publish real-time updates to a browser. - [Architecture](https://code.kx.com/kdb-x/how_to/manage_streaming_data/architecture.md): How to construct systems from kdb+ processes - [TP Log (Data Recovery)](https://code.kx.com/kdb-x/how_to/manage_streaming_data/data-recovery.md): A guide to restoring KDB-X database state by replaying Tickerplant logs, including standard recovery, advanced filtering, and corruption repair. - [Disaster Recovery](https://code.kx.com/kdb-x/how_to/manage_streaming_data/disaster-recovery/index.md): Disaster recovery (DR) and failover concepts from the perspective of the gateway layer accessing a typical KDB-X tick system used in capital-markets applications - [Gateway Design](https://code.kx.com/kdb-x/how_to/manage_streaming_data/gateway-design/index.md): The most common technical challenges associated with gateways and the reasoning behind various design options - [RDB Intraday Writedown](https://code.kx.com/kdb-x/how_to/manage_streaming_data/intraday-writedown/index.md): Compares two methods for dealing with insufficient RAM on a server, when a full day’s worth of data cannot be held in memory. - [Scalable Architecture](https://code.kx.com/kdb-x/how_to/manage_streaming_data/kdb-tick.md): Deploy chained tickerplants and RDBs to throttle downstream feeds, isolate analytic queries, and optimize memory usage. - [Load Balancing](https://code.kx.com/kdb-x/how_to/manage_streaming_data/load-balancing.md): The primary server starts secondary servers; clients send requests to the primary server which chooses a secondary server with low CPU load, and forwards the request there. - [Log Files](https://code.kx.com/kdb-x/how_to/manage_streaming_data/logging.md): Software or hardware problems can cause a KDB-X server process to fail, possibly resulting in loss of data not saved to disk at the time of the failure. A KDB-X server can use logging of updates to avoid data loss when failures occur; note that the message is logged only if it changes the state of the process’ data. - [Query Routing](https://code.kx.com/kdb-x/how_to/manage_streaming_data/query-routing/index.md): The design principle of the Connection Manager Load Balancer schematic whilst providing an asynchronous-only method of communication between processes. - [Profiling](https://code.kx.com/kdb-x/how_to/manage_streaming_data/tick-profiling.md): Key factors that influence the performance and throughput of a KDB-X tickerplant, a methodology to profile its performance, and four key areas to control. - [Code Optimization](https://code.kx.com/kdb-x/how_to/performance/code-optimization.md): How to make q code faster with vector operations, efficient qSQL, less allocation and I/O, secondary threads, caching, and concurrency design. - [Containers and VMs](https://code.kx.com/kdb-x/how_to/performance/containers.md): How container and virtual-machine limits affect KDB-X CPU, memory, storage, kernel settings, and IPC, and how to configure containers and guests for performance. - [Data Layout](https://code.kx.com/kdb-x/how_to/performance/data-layout.md): How to choose KDB-X types, table layout, partitions, sort order, attributes, segments, tiers, and compression for fast queries. - [Hardware](https://code.kx.com/kdb-x/how_to/performance/hardware.md): How storage latency and throughput, memory capacity and bandwidth, CPU speed and cores, and network performance affect KDB-X workloads. - [Operating System](https://code.kx.com/kdb-x/how_to/performance/os.md): How to measure and tune NUMA placement, file systems, disk layout, read-ahead, huge pages, SMT, CPU power, resource limits, swap, and networking for KDB-X. - [Overview](https://code.kx.com/kdb-x/how_to/performance/overview.md): A measurement-first workflow for optimizing KDB-X latency and throughput across data layout, hardware, the operating system, and q code. - [Exec, Update and Delete Statements](https://code.kx.com/kdb-x/how_to/querying/exec-update-delete.md): Use the qSQL exec, update, and delete statements to return lists and dictionaries, add or change columns, and remove rows or columns, in a copy or in place. - [Query KDB-X Database](https://code.kx.com/kdb-x/how_to/querying/overview.md): What you need to query a kdb+ database - an endpoint, a client tool, and a query language. - [Pivot and Unpivot](https://code.kx.com/kdb-x/how_to/querying/pivot.md): Reshape q tables between long and wide forms, handle missing and duplicate values, and write a reusable unpivot function. - [Select Statement](https://code.kx.com/kdb-x/how_to/querying/select.md): Query tables with the qSQL select statement. Choose columns, derive new ones, filter, group, limit, sort, use variables, and keep queries fast, then see what changes when the data is on disk. - [Check Memory Usage](https://code.kx.com/kdb-x/how_to/support/check-memory-usage.md): View and manage memory usage in KDB‑X sessions. - [Overview](https://code.kx.com/kdb-x/index.md): Welcome to the home of KDB-X technical documentation. - [Dashboards](https://code.kx.com/kdb-x/integrations/dashboards.md): An overview of KDX Dashboards in KDB-X - [Overview](https://code.kx.com/kdb-x/integrations/integrations-index.md): Extensions currently available for KDB-X. - [Model Context Protocol (MCP) Server](https://code.kx.com/kdb-x/integrations/mcp-server.md) - [Examples](https://code.kx.com/kdb-x/integrations/pgwire/examples.md): End-to-end examples for querying KDB‑X with PostgreSQL clients via pgwire. - [About](https://code.kx.com/kdb-x/integrations/pgwire/introduction.md): Overview of pgwire in KDB‑X - [Quickstart](https://code.kx.com/kdb-x/integrations/pgwire/quickstart.md): Configure and query KDB‑X using pgwire. - [Reference](https://code.kx.com/kdb-x/integrations/pgwire/reference.md): List of pgwire settings, functions, supported SQL syntax, and tuning parameters. - [Examples](https://code.kx.com/kdb-x/integrations/sql/examples.md): Examples of running SQL in KDB-X, including invoking SQL, using parameters, integrating with q, and handling errors. - [About](https://code.kx.com/kdb-x/integrations/sql/introduction.md): Overview of SQL support in KDB-X, including concepts, use cases, and architecture. - [Quickstart](https://code.kx.com/kdb-x/integrations/sql/quickstart.md): Minimal steps to create, insert, query, and drop tables with SQL in KDB-X. - [Reference](https://code.kx.com/kdb-x/integrations/sql/reference.md): Reference for SQL in KDB-X including supported data types, operators, functions, statements, and compliance. - [KDB-X SQL](https://code.kx.com/kdb-x/integrations/sql/release-notes/changelog.md): Version history, fixes, and improvements for SQL in KDB-X. - [Brief introduction to q and KDB-X](https://code.kx.com/kdb-x/learn/brief-introduction.md): KDB-X is a database for streaming, real-time, and historical data. q is the general-purpose programming language upon which KDB-X is built. It offers high-performance, in-database analytic capabilities with SQL-like query syntax. - [0. Overview](https://code.kx.com/kdb-x/learn/q4m/0_Overview.md): An overview of the q programming language and kdb+ database - [10. Execution Control](https://code.kx.com/kdb-x/learn/q4m/10_Execution_Control.md): How to get started with execution control in the q programming language - [11. I/O](https://code.kx.com/kdb-x/learn/q4m/11_IO.md): How to get started with I/O in the q programming language - [12. Workspace Organization](https://code.kx.com/kdb-x/learn/q4m/12_Workspace_Organization.md): How to get started with workspace organization in the q programming language - [13. Commands and System Variables](https://code.kx.com/kdb-x/learn/q4m/13_Commands_and_System_Variables.md): How to get started with commands and system variables in the q programming language - [14. Introduction to kdb+](https://code.kx.com/kdb-x/learn/q4m/14_Introduction_to_kdb+.md): An Introduction to kdb+ - [1. Q Shock and Awe](https://code.kx.com/kdb-x/learn/q4m/1_Q_Shock_and_Awe.md): How to get started with the q programming language - [2. Basic Data Types - Atoms](https://code.kx.com/kdb-x/learn/q4m/2_Basic_Data_Types_Atoms.md) - [3. Lists](https://code.kx.com/kdb-x/learn/q4m/3_Lists.md): How to get started with lists in the q programming language - [4. Operators](https://code.kx.com/kdb-x/learn/q4m/4_Operators.md): How to get started with operators in the q programming language - [5. Dictionaries](https://code.kx.com/kdb-x/learn/q4m/5_Dictionaries.md): How to get started with dictionaries in the q programming language - [6. Functions](https://code.kx.com/kdb-x/learn/q4m/6_Functions.md): How to get started with functions in the q programming language - [7. Transforming Data](https://code.kx.com/kdb-x/learn/q4m/7_Transforming_Data.md): How to get started with transforming data in the q programming language - [8. Tables](https://code.kx.com/kdb-x/learn/q4m/8_Tables.md): How to construct and handle tables in the q programming language - [9. Queries - q-sql](https://code.kx.com/kdb-x/learn/q4m/9_Queries_q-sql.md) - [Appendix A. Built-in Functions](https://code.kx.com/kdb-x/learn/q4m/A_Built-in_Functions.md): How to get started with built-in functions in the q programming language - [Colophon](https://code.kx.com/kdb-x/learn/q4m/colophon.md): Copyright, publishing, and maintenance details for Q for Mortals v4.1 - [Contents](https://code.kx.com/kdb-x/learn/q4m/index.md): Table of Contents - [Preface](https://code.kx.com/kdb-x/learn/q4m/preface.md): A complete rewrite of the textbook Q for Mortals, revised to follow KX’s revision of terminology. - [Tutorials](https://code.kx.com/kdb-x/learn/tutorials_and_examples.md): links to our library of tutorials to get you up and running with the KDB-X feature set - [About Vector Indexes](https://code.kx.com/kdb-x/modules/ai-libs/ai-libs-indexes-overview.md): Common vector indexes that can be used in KDB-X - [About Fuzzy Filters](https://code.kx.com/kdb-x/modules/ai-libs/fuzzy-filters-overview.md): Overview of Fuzzy filters used in KDB-X - [About Search Algorithms](https://code.kx.com/kdb-x/modules/ai-libs/search-algorithms-overview.md): Search algorithms that can be used in KDB-X - [About Similarity Algorithms](https://code.kx.com/kdb-x/modules/ai-libs/tss-algorithms-overview.md): Temporal similarity algorithms that can be used in KDB-X - [AX Module](https://code.kx.com/kdb-x/modules/ax/overview.md): Overview of the KDB-X AX module - [BLAS](https://code.kx.com/kdb-x/modules/blas/overview.md): An overview of the KDB-X BLAS module - [Examples](https://code.kx.com/kdb-x/modules/cuvs/examples.md): Examples on how to use the cuVS module in KDB-X - [About](https://code.kx.com/kdb-x/modules/cuvs/introduction.md): CUDA-accelerated approximate vector search in KDB-X using Nvidia cuVS and the CAGRA algorithm. - [GPU Setup](https://code.kx.com/kdb-x/modules/cuvs/quickstart/gpu-env.md): How to configure and verify a GPU-capable environment for running KDB-X cuVS workloads - [KDB-X Setup](https://code.kx.com/kdb-x/modules/cuvs/quickstart/kdb-env.md): How to install KDB-X and the cuVS module for GPU-accelerated vector search workloads. - [Overview](https://code.kx.com/kdb-x/modules/cuvs/quickstart/quickstart.md): How to load the cuVS module, verify your environment, and run a CAGRA vector search - [Reference](https://code.kx.com/kdb-x/modules/cuvs/reference.md): Technical reference for the KDB-X cuVS CAGRA module APIs, including inputs, outputs, and examples for each function - [cuVS](https://code.kx.com/kdb-x/modules/cuvs/release-notes/changelog.md): Version history, fixes, and improvements for the KDB-X cuVS module. - [Troubleshooting](https://code.kx.com/kdb-x/modules/cuvs/troubleshooting-errors.md): Troubleshooting guide for issues encountered when using the cuVS module in KDB-X - [Datagen](https://code.kx.com/kdb-x/modules/datagen/overview.md): Generate synthetic in-memory, on-disk, and streaming data with the KDB-X Datagen module - [DBmaint](https://code.kx.com/kdb-x/modules/dbmaint/overview.md): Overview of the KDB-X DBmaint module - [Expat](https://code.kx.com/kdb-x/modules/expat/overview.md): An overview of the Expat module in KDB-X - [Overview](https://code.kx.com/kdb-x/modules/fusionx.md): An overview of the Fusionx module in KDB-X - [Examples](https://code.kx.com/kdb-x/modules/gpu/examples.md): Examples on how to use the GPU module in KDB-X - [About](https://code.kx.com/kdb-x/modules/gpu/introduction.md): GPU provides the ability to move data to and from the GPU for processing - [GPU Setup](https://code.kx.com/kdb-x/modules/gpu/quickstart/gpu-env.md): How to set up GPUs for use with KDB-X - [KDB-X Setup](https://code.kx.com/kdb-x/modules/gpu/quickstart/kdb-env.md): How to install KDB-X and the GPU module for use with KDB-X GPU-accelerated workloads. - [Overview](https://code.kx.com/kdb-x/modules/gpu/quickstart/quickstart.md): How to load the GPU module, move data to and from the GPU, and run queries - [Reference](https://code.kx.com/kdb-x/modules/gpu/reference.md): Technical reference for the KDB-X GPU module APIs, including inputs, outputs, and examples for each function - [GPU](https://code.kx.com/kdb-x/modules/gpu/release-notes/changelog.md): Version history, fixes, and improvements for the KDB-X GPU Module. - [Troubleshooting](https://code.kx.com/kdb-x/modules/gpu/troubleshooting-errors.md): Troubleshooting guide for errors returned by the KDB-X GPU module - [Workflows](https://code.kx.com/kdb-x/modules/kurl/examples.md): Examples on how to use the Kurl module in KDB-X - [About](https://code.kx.com/kdb-x/modules/kurl/introduction.md): Kurl is a REST client that lives in a worker thread, and provides sync and async methods callable from q - [Quickstart](https://code.kx.com/kdb-x/modules/kurl/quickstart.md): How to load the Kurl library and use async and sync requests to query public datasets - [Reference](https://code.kx.com/kdb-x/modules/kurl/reference.md): Kurl module APIs in KDB-X - [Kurl](https://code.kx.com/kdb-x/modules/kurl/release-notes/changelog.md): Version history, fixes, and improvements for the KDB-X kurl Module. - [Logging](https://code.kx.com/kdb-x/modules/logging/overview.md): Overview of the KDB-X Logging module - [About](https://code.kx.com/kdb-x/modules/module-framework/overview.md): The module framework in KDB-X provides a standardized way to develop, import, and manage modules. - [Quickstart](https://code.kx.com/kdb-x/modules/module-framework/quickstart.md): Get started with the module framework in KDB-X. - [Modules Overview](https://code.kx.com/kdb-x/modules/module-index.md): Modules available for KDB-X. - [Examples](https://code.kx.com/kdb-x/modules/objstor/examples.md): Additional examples to help explain Cloud Storage and KDB-X - [Caching](https://code.kx.com/kdb-x/modules/objstor/kxreaper.md): Kxreaper is a utility program to limit the amount of object storage data cached on local SSD by KDB-X - [About](https://code.kx.com/kdb-x/modules/objstor/overview.md): The object storage module in KDB-X and how it works - [Quickstart](https://code.kx.com/kdb-x/modules/objstor/quickstart.md): Get started with object storage in KDB-X - [Reference](https://code.kx.com/kdb-x/modules/objstor/reference.md): URIs, environment variables, APIs, and configuration for the objstor module - [Object Storage](https://code.kx.com/kdb-x/modules/objstor/release-notes/changelog.md): Version history, fixes, and improvements for the KDB-X Object Storage (Objstor) module. - [Examples](https://code.kx.com/kdb-x/modules/onetick-cloud/examples.md): Examples of querying and processing OneTick market data with the OneTick Cloud KDB-X module. - [About](https://code.kx.com/kdb-x/modules/onetick-cloud/introduction.md): Overview of the OneTick Cloud KDB-X module for querying OneTick Cloud market data. - [Quickstart](https://code.kx.com/kdb-x/modules/onetick-cloud/quickstart.md): Install and configure the OneTick Cloud KDB-X module to query OneTick Cloud. - [Reference](https://code.kx.com/kdb-x/modules/onetick-cloud/reference.md): API, configuration, authentication, and data conversion reference for the OneTick Cloud KDB-X module. - [OneTick Cloud](https://code.kx.com/kdb-x/modules/onetick-cloud/release-notes/changelog.md): Version history, fixes, and improvements for the OneTick Cloud KDB-X module. - [Troubleshooting](https://code.kx.com/kdb-x/modules/onetick-cloud/troubleshooting-errors.md): Troubleshoot installation, authentication, query, response, and compression issues for the OneTick Cloud KDB-X module. - [Reference](https://code.kx.com/kdb-x/modules/os/os.md): Read files, sleep, access environment variables and run subprocesses with the KDB-X OS module - [Getting Started](https://code.kx.com/kdb-x/modules/package-management/getting-started.md): Install and manage KDB-X packages from a q session with qmamba - [Overview](https://code.kx.com/kdb-x/modules/package-management/overview.md): An overview of qmamba, the package manager for KDB-X, and when to use it - [Examples](https://code.kx.com/kdb-x/modules/parquet/examples.md): Worked examples for the Parquet (pq) module in KDB-X - [Parquet for q developers](https://code.kx.com/kdb-x/modules/parquet/for-q-developers.md): How the Parquet file format differs from the kdb+ partitioned database format. - [Overview](https://code.kx.com/kdb-x/modules/parquet/overview.md): Overview of the Parquet (pq) module in KDB-X - [Quickstart](https://code.kx.com/kdb-x/modules/parquet/quickstart.md): Generate a sample trade file in Parquet format, load the Parquet (pq) module in KDB-X, and run an aggregation query with group by. - [Reference](https://code.kx.com/kdb-x/modules/parquet/reference.md): API reference for the Parquet (pq) module in KDB-X - [PCRE2](https://code.kx.com/kdb-x/modules/pcre2/overview.md): An overview of the KDB-X PCRE2 module - [Printf](https://code.kx.com/kdb-x/modules/printf/overview.md): An overview of the KDB-X Printf module - [Examples](https://code.kx.com/kdb-x/modules/rest-server/examples.md): Example of how to use the REST server in KDB-X - [About](https://code.kx.com/kdb-x/modules/rest-server/overview.md): Expose a RESTful interface to a KDB-X based system - [Quickstart](https://code.kx.com/kdb-x/modules/rest-server/quickstart.md): Expose a RESTful interface to a KDB-X based system - [Reference](https://code.kx.com/kdb-x/modules/rest-server/reference.md): Reference for the REST server API library - [REST Server](https://code.kx.com/kdb-x/modules/rest-server/release-notes/changelog.md): Version history, fixes, and improvements for the KDB-X REST Server module. - [Taq](https://code.kx.com/kdb-x/modules/taq/overview.md): Overview of the KDB-X Taq module - [Unit Test](https://code.kx.com/kdb-x/modules/unit-test/overview.md): Overview of the KDB-X Unit Test module - [abs](https://code.kx.com/kdb-x/ref/abs.md): abs is a q keyword that returns the absolute value of its argument - [Accumulators](https://code.kx.com/kdb-x/ref/accumulators.md): An accumulator is an iterator that takes an applicable value as argument and derives a function that evaluates the value, first on its entire (first) argument, then on the results of successive evaluations. - [Add](https://code.kx.com/kdb-x/ref/add.md): A q operator that returns the sum of two numeric, boolean or temporal arguments - [Overview](https://code.kx.com/kdb-x/ref/ai-libs/ai-libraries-overview.md): describes the different AI libraries available and what resources to refer to - [Anomaly Detection](https://code.kx.com/kdb-x/ref/ai-libs/anomaly-parameters.md): Anomaly Detection, finding discords (unexpected events, faulty sensors) in time series data - [Best Matching 25 (BM25)](https://code.kx.com/kdb-x/ref/ai-libs/bm25-index-parameters.md): Best Matching 25 ranking algorithm as part of AI libs - [Dynamic Time Warping (DTW)](https://code.kx.com/kdb-x/ref/ai-libs/dtw-index-parameters.md): Dynamic Time Warping (DTW) algorithm used in temporal search to find patterns or sequences within time-series data that may vary in time or speed. - [Brute Force (Flat)](https://code.kx.com/kdb-x/ref/ai-libs/flat-index-parameters.md): describes the brute force (flat) index parameters as part of AI libs - [Fuzzy Matching](https://code.kx.com/kdb-x/ref/ai-libs/fuzzy-index-parameters.md): describes the parameters for the Fuzzy Matching method as part of AI libs - [Hierarchical Navigable Small Worlds (HNSW)](https://code.kx.com/kdb-x/ref/ai-libs/hnsw-index-parameters.md): describes the parameters for Hierarchical Navigable Small Worlds calls as part of AI libs - [Hybrid Search](https://code.kx.com/kdb-x/ref/ai-libs/hybrid-index-parameters.md): describes the parameters for hybrid search as part of AI libs - [Inverted File (IVF)](https://code.kx.com/kdb-x/ref/ai-libs/ivf-index-parameters.md): describes the parameters for Inverted File (IVF) calls as part of AI libs - [Inverted File Product Quantization (IVFPQ)](https://code.kx.com/kdb-x/ref/ai-libs/ivfpq-index-parameters.md): describes the Inverted File Product Quantization parameters as part of AI libs - [Time Series Search (TSS)](https://code.kx.com/kdb-x/ref/ai-libs/tss-index-parameters.md): describes the Time Series Search (TSS) parameters as part of AI libs - [aj, aj0, ajf, ajf0](https://code.kx.com/kdb-x/ref/aj.md): As-of joins join two tables taking from the second the most recent records prior to the times in the first - [all, any](https://code.kx.com/kdb-x/ref/all-any.md): all and any are q keywords that invoke aggregator functions for vectors of flags - [Amend](https://code.kx.com/kdb-x/ref/amend.md): Operators Amend and Amend At modify one or more items in a list. - [Application](https://code.kx.com/kdb-x/ref/application.md): Everything in q is a value and almost everything can be applied to some other values. Projection (or currying) is a partial application in which one or more values are bound. - [Apply, Index, Trap](https://code.kx.com/kdb-x/ref/apply.md): Operators Apply (At), Index (At), and Trap (At) apply a function to one or more arguments, get items at depth in a list, and trap errors. - [asc, iasc, xasc](https://code.kx.com/kdb-x/ref/asc.md): Ascending sorts in q; asc returns a sortable argument in ascending order; iasc grades its items into ascending order; xasc sorts a table by columns. - [asof](https://code.kx.com/kdb-x/ref/asof.md): Where t1 is a table and t2 is a table or dictionary in which the last key or column of t2 corresponds to a time column in t1, asof[t1;t2] returns the values from the last rows matching the rest of the keys and time ≤ the time in t2. - [Assign](https://code.kx.com/kdb-x/ref/assign.md): Name a value in q - [Atomic functions](https://code.kx.com/kdb-x/ref/atomic.md): Many q functions iterate recursively through list or dictionary arguments down to items of some depth - [attr](https://code.kx.com/kdb-x/ref/attr.md): attr is a q keyword that returns the attributes of an object - [avg, avgs, mavg, wavg](https://code.kx.com/kdb-x/ref/avg.md): avg and wavg are q keywords invoking aggregate functions for the arithmetic and weighted means of a vector. avgs and mavgs are q keywords that invoke uniform functions that return the cumulative and moving means of a vector - [bin, binr](https://code.kx.com/kdb-x/ref/bin.md): bin and binr are q keywords that perform binary searches. - [By topic](https://code.kx.com/kdb-x/ref/by-topic.md): Q language resources by topic - [Cast](https://code.kx.com/kdb-x/ref/cast.md): Cast is a q operator that converts a data argument to another datatype. - [ceiling](https://code.kx.com/kdb-x/ref/ceiling.md): ceiling is a q keyword that returns the least integer greater than its numeric argument. - [Command-line options](https://code.kx.com/kdb-x/ref/cmdline.md): Command-line syntax for invoking q and list of the command-line options - [Coalesce](https://code.kx.com/kdb-x/ref/coalesce.md): Coalesce is a q operator that merges keyed tables. - [cols, xcol, xcols](https://code.kx.com/kdb-x/ref/cols.md): cols, xcol and xcols are q keywords. cols returns the column names of a table. xcol renames table columns or dictionary keys. xcols reorders table columns or dictionary keys. - [Comparison](https://code.kx.com/kdb-x/ref/comparison.md): Operators and keywords for comparing values - [Compose](https://code.kx.com/kdb-x/ref/compose.md): Compose is a q operator that composes (or curries) a unary value with another. The rank of the result is the rank of the second argument. - [Cond](https://code.kx.com/kdb-x/ref/cond.md): Cond is a q control construct for conditional evaluation. - [Conformability](https://code.kx.com/kdb-x/ref/conformable.md): Many q operators and keywords implicitly iterate through the items of their list arguments, provided that the arguments are conformable. This article describes what it means for data objects to conform. - [Evaluation control](https://code.kx.com/kdb-x/ref/control.md): Evaluation in q is controlled by [iterators](iterators.md) for iteration ; conditional evaluation; explicit return from a lambda; signalling and trapping errors; and control words. - [cor](https://code.kx.com/kdb-x/ref/cor.md): cor is a q keyword that calculates the correlation coefficient of two numeric lists. - [cos, acos](https://code.kx.com/kdb-x/ref/cos.md): cos and acos are q keywords. They return the cosine and arccosine respectively of their numeric argument. - [count, mcount](https://code.kx.com/kdb-x/ref/count.md): count and mcount are q keywords. count returns the number of items in a list. mcount returns a moving count of the non-null items of a list. - [cov, scov](https://code.kx.com/kdb-x/ref/cov.md): cov and scov are q keywords that return, respectively, the covariance and sample covariance of two conforming numeric lists. - [cross](https://code.kx.com/kdb-x/ref/cross.md): cross is a q keyword that returns the cross-product (all possible combinations) of the items of its arguments. - [csv](https://code.kx.com/kdb-x/ref/csv.md): csv is a q keyword that represents the delimiter of CSV files. - [cut](https://code.kx.com/kdb-x/ref/cut.md): Cut is a q operator that cuts a list or table into subarrays. cut is a q keyword that cuts a list or table into a matrix with a specified number of columns. - [Datatypes](https://code.kx.com/kdb-x/ref/datatypes.md): Every KDB-X object has a data type. This page tabulates the datatypes. - [Deal, Roll, Permute](https://code.kx.com/kdb-x/ref/deal.md): Roll, Deal, and Permute are q operators that return ran dom selections, with or without duplicates - [delete](https://code.kx.com/kdb-x/ref/delete.md): delete is a qSQL template that removes rows or columns from a table, entries from a dictionary, or objects from a namespace. - [deltas](https://code.kx.com/kdb-x/ref/deltas.md): deltas is a q keyword that returns the differences between adjacent list items. - [desc, idesc, xdesc](https://code.kx.com/kdb-x/ref/desc.md): Descending sorts in q; desc returns a list sorted descending; idesc returns the grade for that sort. xdesc sorts a table descending by specified columns. - [dev, mdev, sdev](https://code.kx.com/kdb-x/ref/dev.md): dev, mdev, and sdev are q keywords that return, respectively, the standard deviation, moving deviation, and sample standard deviation of their argument. - [Dict](https://code.kx.com/kdb-x/ref/dict.md): Dict is a q operator that returns a dictionary from vectors of keys and values. - [Dictionaries](https://code.kx.com/kdb-x/ref/dictsandtables.md): Operators and keywords for working with dictionaries - [differ](https://code.kx.com/kdb-x/ref/differ.md): differ is a q keyword that flags where items of a list change value. - [Display](https://code.kx.com/kdb-x/ref/display.md): Display is a q operator that writes a value to the console before returning it. - [distinct](https://code.kx.com/kdb-x/ref/distinct.md): distinct is a q keyword that returns the nub (the unique items) of a list. - [div](https://code.kx.com/kdb-x/ref/div.md): div is a q keyword that performs integer division. - [Divide](https://code.kx.com/kdb-x/ref/divide.md): Divide is a q operator that returns the ratio of its arguments. - [do](https://code.kx.com/kdb-x/ref/do.md): do is a q control word that evaluates one or more expressions a set number of times. - [.h](https://code.kx.com/kdb-x/ref/doth.md): The .h namespace contains objects useful for marking up data for an HTTP response. - [.j](https://code.kx.com/kdb-x/ref/dotj.md): the .j namespace contains objects useful for converting between JSON and and q dictionaries. - [.m](https://code.kx.com/kdb-x/ref/dotm.md): Memory can be backed by a filesystem, allowing use of DAX-enabled filesystems (e.g. AppDirect) as a non-persistent memory extension for KDB-X - [.Q](https://code.kx.com/kdb-x/ref/dotq.md): The .Q namespace contains utility objects for q programming - [.z](https://code.kx.com/kdb-x/ref/dotz.md): The .z namespace contains objects that return or set system information, and callbacks for IPC. - [Drop](https://code.kx.com/kdb-x/ref/drop.md): Drop is a q operator that drops items from a list, entries from a dictionary or columns from a table. - [dsave](https://code.kx.com/kdb-x/ref/dsave.md): dsave is a q keyword that saves global tables to disk as splayed, enumerated, indexed KDB-X tables. - [Dynamic Load](https://code.kx.com/kdb-x/ref/dynamic-load.md): Dynamic Load is a q operator that loads C shared objects for use in q programs. - [each, peach](https://code.kx.com/kdb-x/ref/each.md): each and peach are q keywords, wrappers for the map iterators Each and Each Parallel. - [ej](https://code.kx.com/kdb-x/ref/ej.md): ej is a q keyword that performs an equi join on two tables. - [ema](https://code.kx.com/kdb-x/ref/ema.md): ema is a q keyword that returns the exponential moving average of its arguments. - [Enkey, Unkey](https://code.kx.com/kdb-x/ref/enkey.md): Enkey and Unkey are q operators that respectively convert a simple tableto a keyed table and vice-versa. - [enlist](https://code.kx.com/kdb-x/ref/enlist.md): enlist is a q keyword that makes a list from its arguments. - [Enum Extend](https://code.kx.com/kdb-x/ref/enum-extend.md): Enum Extend is a q operator that extends an enumeration. - [Enumerate](https://code.kx.com/kdb-x/ref/enumerate.md): Enumerate is a q operator that returns one list as an enumeration of another. - [Enumeration](https://code.kx.com/kdb-x/ref/enumeration.md): Enumeration isd a q operator that returns an enumerated symbol list. - [Enumerations](https://code.kx.com/kdb-x/ref/enumerations.md): For a long list containing few distinct values, an enumeration can reduce storage requirements. - [Equal](https://code.kx.com/kdb-x/ref/equal.md): Equal is a q operator that flags where its arguments are equal. - [Errors](https://code.kx.com/kdb-x/ref/errors.md): Errors signalled by the interpreter, and what triggers them - [eval, reval](https://code.kx.com/kdb-x/ref/eval.md): eval and reval are q keywords that evaluate parse trees. - [except](https://code.kx.com/kdb-x/ref/except.md): except is a q keyword that excludes items from a list. - [exec](https://code.kx.com/kdb-x/ref/exec.md): exec is a q keyword that returns selected rows and columns from a table. In functional qSQL, the Exec operator `?` does the same. - [exit](https://code.kx.com/kdb-x/ref/exit.md): exit is a q keyword that ends a KDB-X process with a specified exit code. - [exp, xexp](https://code.kx.com/kdb-x/ref/exp.md): exp and xexp are q keywords. exp raises e to the power of its argument; xexp raises its left argument to the power of its right. - [Exposed infrastructure](https://code.kx.com/kdb-x/ref/exposed-infrastructure.md): Q is an embedded domain-specific language for time-series analysis, implemented in the proprietary programming language k. As such, q leaves features of k exposed. They should be avoided. - [fby](https://code.kx.com/kdb-x/ref/fby.md): fby is a q keyword that applies an aggregate function to groups. - [File Binary](https://code.kx.com/kdb-x/ref/file-binary.md): File Binary is a q operator that reads or writes a binary file. - [File Text](https://code.kx.com/kdb-x/ref/file-text.md): File Text is a q operator that reads or writes text files. - [File system](https://code.kx.com/kdb-x/ref/files.md): Operators and keywords for using the file system - [fills](https://code.kx.com/kdb-x/ref/fill.md): Fill is a q operator that replaces nulls in a vector. fills is a q keyword that replaces nulls in a vector with preceding non-nulls. - [Find](https://code.kx.com/kdb-x/ref/find.md): Find is a q operator that finds the first occurrence of an item in a list. - [first, last](https://code.kx.com/kdb-x/ref/first.md): first and last are q keywords that return respectively the first and last items from a list. - [fkeys](https://code.kx.com/kdb-x/ref/fkeys.md): fkeys is a q keyword that returns the foreign-key columns of a table. - [Flip Splayed](https://code.kx.com/kdb-x/ref/flip-splayed.md): Flip Splayed or Partitioned is a q operator that returns the flip of a splayed orpartitioned table. - [flip](https://code.kx.com/kdb-x/ref/flip.md): flip is a q keyword that transposes its argument. - [floor](https://code.kx.com/kdb-x/ref/floor.md): floor is a q keyword that returns the greatest integer less than or equal to its argument. - [Function notation](https://code.kx.com/kdb-x/ref/function-notation.md): Function notation enables the definition of functions. Function notation is also known as the lambda notation and the defined functions as lambdas. - [Functional qSQL](https://code.kx.com/kdb-x/ref/funsql.md): The functional forms of delete, exec, select and update are particularly useful for programmatically-generated queries, such as when column names are dynamically produced. - [get, set](https://code.kx.com/kdb-x/ref/get.md): get and set are q keywords that read or set the value of a variable or a KDB-X data file. - [getenv, setenv](https://code.kx.com/kdb-x/ref/getenv.md): getenv and setenv are q keywords that get or set an environment variable. - [Glossary](https://code.kx.com/kdb-x/ref/glossary.md): Glossary of terms used in documenting KDB-X and the q programming language - [Greater Than](https://code.kx.com/kdb-x/ref/greater-than.md): Greater Than and At Least are q operators that compare their arguments. - [Greater](https://code.kx.com/kdb-x/ref/greater.md): Greater is a q operator that returns the greater of its arguments. or is a q keyword that performs a logical OR. - [group](https://code.kx.com/kdb-x/ref/group.md): group is a q keyword that returns a dictionary in which the keys are the distinct items of its argument, and the values the indexes where the distinct items occur. - [gtime, ltime](https://code.kx.com/kdb-x/ref/gtime.md): gtime and ltime are q keywords that return, respectively, global and local time. - [Connection handles](https://code.kx.com/kdb-x/ref/handles.md): KDB-X communicates with the console, stdout, stderr, filesystem, and other processes through handles - [hcount](https://code.kx.com/kdb-x/ref/hcount.md): Keyword hcount returns the size in bytes of a file - [hdel](https://code.kx.com/kdb-x/ref/hdel.md): Keyword hdel deletes a file or directory - [hopen, hclose](https://code.kx.com/kdb-x/ref/hopen.md): hopen and hclose are q keywords for connecting and disconnecting files and processes. - [hsym](https://code.kx.com/kdb-x/ref/hsym.md): Keyword hsym converts symbols to file or process symbols - [Identity, Null](https://code.kx.com/kdb-x/ref/identity.md): Identity is a q operator that returns its argument unchanged. Null is a generic null value. - [if](https://code.kx.com/kdb-x/ref/if.md): if is a q control construct for conditional evaluation of one or more expressions. - [ij, ijf](https://code.kx.com/kdb-x/ref/ij.md): ij and ijf are q keywords that perform inner joins. - [Implicit iteration](https://code.kx.com/kdb-x/ref/implicit-iteration.md): Most q operators and keywords iterate when applied to lists and dictionaries. Learn when not to specify iteration, and instead leave it to q. - [in](https://code.kx.com/kdb-x/ref/in.md): in is a q keyword that flags whether its left argument is an item in its right argument. - [Reference Card for KDB-X and q](https://code.kx.com/kdb-x/ref/index.md): Quick reference for KDB-X and the q programming language - [insert](https://code.kx.com/kdb-x/ref/insert.md): insert is a q keyword that inserts or appends records to a table. - [inter](https://code.kx.com/kdb-x/ref/inter.md): inter is a q keyword that returns the intersection of two lists or dictionaries. - [Internal functions](https://code.kx.com/kdb-x/ref/internal.md): The operator ! with a negative integer as left-argument calls an internal function. - [inv](https://code.kx.com/kdb-x/ref/inv.md): inv is a q keyword that returns the matrix inverse of its argument. - [Overview](https://code.kx.com/kdb-x/ref/iteration.md): The primary means of iteration in q are its keywords and operators, the map iterators Each and its variants, and the accumulating iterators Scan and Over. - [Iterators](https://code.kx.com/kdb-x/ref/iterators.md): The iterators (earlier known as adverbs) are native higher-order operators. They take applicable values as arguments and return derived functions. - [Guide to iterators](https://code.kx.com/kdb-x/ref/iterators/index.md): Iterators (formerly known as adverbs) are the primary means of iteration in q, and in almost all cases the most efficient way to iterate. - [Join](https://code.kx.com/kdb-x/ref/join.md): Join is a q operator that joins atoms, lists, dictionaries or tables. - [Joins](https://code.kx.com/kdb-x/ref/joins.md): A join combines data from two tables, or from a table and a dictionary. Some joins are keyed, in that columns in the first argument are matched with the key columns of the second argument. Some joins are as-of, where a time column in the first argument specifies corresponding intervals in a time column of the second argument. Such joins are not keyed. - [key](https://code.kx.com/kdb-x/ref/key.md): Keys of a dictionary; key columns of a keyed table; files in a folder; whether a file or name exists, the target of a foreign key, the type of a vector, or the enumerator of a list. - [keys, xkey](https://code.kx.com/kdb-x/ref/keys.md): keys and xkey are q keywords that get or set the key columns of a table. - [Quick guide](https://code.kx.com/kdb-x/ref/languages/c-client-for-q.md): How to connect a C client program to a KDB-X server process - [C API for KDB-X](https://code.kx.com/kdb-x/ref/languages/capiref.md): A reference guide to the API for connecting a C program to a KDB-X server process - [C#](https://code.kx.com/kdb-x/ref/languages/csharp.md): How to call KDB-X from C# - [Foreign Function Interface (FFI)](https://code.kx.com/kdb-x/ref/languages/ffi.md): Foreign function interface for KDB-X - [Java](https://code.kx.com/kdb-x/ref/languages/java.md): How to call KDB-X from Java - [R](https://code.kx.com/kdb-x/ref/languages/r.md): How to enable R to connect to KDB-X and extract data; embed R inside q and invoke R routines; enable q to connect to a remote instance of R via TCP/IP and invoke R routines remotely; and enable q to load the R maths library and invoke R math routines locally. - [Rust](https://code.kx.com/kdb-x/ref/languages/rust.md): How to call KDB-X from Rust - [Extend q with C/C++](https://code.kx.com/kdb-x/ref/languages/using-c-functions.md) - [Less Than](https://code.kx.com/kdb-x/ref/less-than.md): Less Than and Up To are q operators that compare the values of their arguments. - [and](https://code.kx.com/kdb-x/ref/lesser.md): Lesser is a q operator that returns the lesser of its arguments. and is a q keyword that performs a logical AND. - [like](https://code.kx.com/kdb-x/ref/like.md): like is a q keyword that matches text to a pattern. - [lj, ljf](https://code.kx.com/kdb-x/ref/lj.md): lj is a q keyword that performs a left join. - [load, rload](https://code.kx.com/kdb-x/ref/load.md): load is a q keyword that loads binary data from a file or directory. - [log, xlog](https://code.kx.com/kdb-x/ref/log.md): log and xlog are q keywords that return logarithms, either natural or to a specified base. - [lower](https://code.kx.com/kdb-x/ref/lower.md): lower and upper are q keywords that shift text to lower or upper case respectively. - [lsq](https://code.kx.com/kdb-x/ref/lsq.md): lsq is a q keyword that performs least-squares fitting, matrix division. - [Maps](https://code.kx.com/kdb-x/ref/maps.md): Maps iterators derive uniform functions that apply their values once to each item of a dictionary, a list, or conforming lists. - [Match](https://code.kx.com/kdb-x/ref/match.md): Match is a q operator that flags whether its arguments have the same value. - [Mathematics](https://code.kx.com/kdb-x/ref/math.md): Operators and keywords that perform mathematical or statistical operations - [max, maxs, mmax](https://code.kx.com/kdb-x/ref/max.md): max, maxs, and mmax are q keywords that return respectively the largest item from a list or dictionary, the cumulative maximums, and the moving maximums. - [md5](https://code.kx.com/kdb-x/ref/md5.md): md5 is a q keyword that returns the Message Digest (MD5 hash) of a string. - [med](https://code.kx.com/kdb-x/ref/med.md): med is a q keyword that returns the median of its argument. - [meta](https://code.kx.com/kdb-x/ref/meta.md): meta is a q keyword that returns metadata for a table. - [Metadata](https://code.kx.com/kdb-x/ref/metadata.md): Operators and keywords that get or set metadata - [min, mins, mmin](https://code.kx.com/kdb-x/ref/min.md): min, mins and mmin are q keywords that return respectively the smallest item, the cumulative minimums, and the moving minimums of the argument. - [mmu](https://code.kx.com/kdb-x/ref/mmu.md): Matrix Multiply is a q operator that performs matrix multiplication; mmu is a q keyword that is a wrapper for it. - [mod](https://code.kx.com/kdb-x/ref/mod.md): mod is a q keyword that returns the modulus of a number. - [Multithreaded primitives](https://code.kx.com/kdb-x/ref/mt-primitives.md): Q primitives in V4.0 implicitly seek and use opportunities for parallel processing. Some existing q code will run significantly faster. - [Multiply](https://code.kx.com/kdb-x/ref/multiply.md): Multiply is a q operator that returns the product of its arguments. - [Multithreaded input](https://code.kx.com/kdb-x/ref/multithreaded-input.md): By default, KDB-X is single-threaded, and processes incoming queries sequentially. An additional mode exists, designed for serving in-memory static data to an externally constrained number of clients only; it is not intended for use as a gateway, or serving mutable data, or data from disk. Each incoming connection is executed in its own thread, and is unable to update globals – it is purely functional in the sense that the execution of a query should not have side-effects. - [Namespaces](https://code.kx.com/kdb-x/ref/namespaces.md): Namespaces are containers within the KDB-X workspace. Namespaces are a convenient way to divide an application between modules. - [neg](https://code.kx.com/kdb-x/ref/neg.md): neg is a q keyword that returns the negation of its argument. - [next, prev, xprev](https://code.kx.com/kdb-x/ref/next.md): next, prev, and xprev are q keywords that return the immediate or near neighbors of the items of a list. - [Not Equal](https://code.kx.com/kdb-x/ref/not-equal.md): Not Equal is a q operator that flags whether its arguments have the same value. - [not](https://code.kx.com/kdb-x/ref/not.md): not is a q keyword that flags whether its argument is false. - [null'](https://code.kx.com/kdb-x/ref/null.md): null is a q keyword that flags where its argument is null. - [or](https://code.kx.com/kdb-x/ref/or.md): or is a q keyword that performs a logical OR. - [over, scan](https://code.kx.com/kdb-x/ref/over.md): over and scan are q keywords that are wrappers for the Over and Scan accumulating iterators. - [Overloaded glyphs](https://code.kx.com/kdb-x/ref/overloads.md): Many non-alphabetic keyboard characters are overloaded by q. This page tabulates their different forms. - [Pad](https://code.kx.com/kdb-x/ref/pad.md): Pad is a q operator that pads a string or list of strings to a specified length - [parse](https://code.kx.com/kdb-x/ref/parse.md): parse is a q keyword that returns a parse tree for a string expression. - [Parse trees, functional SQL](https://code.kx.com/kdb-x/ref/parsetrees.md): A parse tree represents an expression, not immediately evaluated. Its virtue is that the expression can be evaluated whenever and in whatever context it is needed. The two main functions dealing with parse trees are eval, which evaluates a parse tree, and parse, which returns one from a string containing a valid q expression. - [Pattern matching | Basics | KDB-X and q documentation](https://code.kx.com/kdb-x/ref/pattern.md): Pattern matching in assignments and function parameters - [Arithmetic](https://code.kx.com/kdb-x/ref/phrases/arith.md): Arithmetic operations in q - [Casting](https://code.kx.com/kdb-x/ref/phrases/cast.md): casting operations and data representation in q - [Execution](https://code.kx.com/kdb-x/ref/phrases/exec.md) - [Finance](https://code.kx.com/kdb-x/ref/phrases/fin.md) - [Find](https://code.kx.com/kdb-x/ref/phrases/find.md) - [Flags](https://code.kx.com/kdb-x/ref/phrases/flag.md) - [Format](https://code.kx.com/kdb-x/ref/phrases/form.md) - [Index](https://code.kx.com/kdb-x/ref/phrases/index.md) - [index to QIdioms](https://code.kx.com/kdb-x/ref/phrases/index2.md) - [Indexes](https://code.kx.com/kdb-x/ref/phrases/indexes.md) - [Introduction](https://code.kx.com/kdb-x/ref/phrases/intro.md) - [Math](https://code.kx.com/kdb-x/ref/phrases/math.md) - [Matrixes](https://code.kx.com/kdb-x/ref/phrases/matrix.md) - [Miscellaneous](https://code.kx.com/kdb-x/ref/phrases/misc.md): Miscellaneous operations in q - [Parts and items](https://code.kx.com/kdb-x/ref/phrases/part.md) - [phrases.q](https://code.kx.com/kdb-x/ref/phrases/phrases.md): Constants and functions referred to in the Q Phrasebook - [Polynomials](https://code.kx.com/kdb-x/ref/phrases/poly.md): Polynomials in q - [Rank](https://code.kx.com/kdb-x/ref/phrases/rank.md): rank operations of array in q - [Shape](https://code.kx.com/kdb-x/ref/phrases/shape.md): dealing with data depth and shape in q - [Sort](https://code.kx.com/kdb-x/ref/phrases/sort.md): sorting and merging data in q - [Statistics](https://code.kx.com/kdb-x/ref/phrases/stat.md): examples of how Q keywords replace many phrases used in its ancestor languages - [Strings](https://code.kx.com/kdb-x/ref/phrases/string.md): operations on character vectors, known as strings - [on style](https://code.kx.com/kdb-x/ref/phrases/style.md): code style in q - [Temporal](https://code.kx.com/kdb-x/ref/phrases/temp.md): temporal operations in q - [Tests](https://code.kx.com/kdb-x/ref/phrases/test.md): comparison tests in q - [Text](https://code.kx.com/kdb-x/ref/phrases/text.md): phrases relating to character matrixes and nested lists, such as correspond to text files. - [Geometry](https://code.kx.com/kdb-x/ref/phrases/trig.md): Geometrical and trigonometrical expressions in the q programming language - [QIdioms](https://code.kx.com/kdb-x/ref/phrases/wikipage.md) - [pj](https://code.kx.com/kdb-x/ref/pj.md): pj is a q keyword that performs a plus join. - [prd, prds](https://code.kx.com/kdb-x/ref/prd.md): prd and prds are q keywords that return respectively the product and the cumulative products of their arguments. - [Precision](https://code.kx.com/kdb-x/ref/precision.md): Precision of floats is a tricky issue since floats (doubles in other languages) are actually binary rational approximations to real numbers. - [prior](https://code.kx.com/kdb-x/ref/prior.md): prior is a q keyword that is a wrapper for the Each Prior iterator. - [QSQL queries](https://code.kx.com/kdb-x/ref/qsql.md): Q-SQL expressions have their own syntax rules, with optional dependent phrases, by, from and where, and can include definitions of new, derived columns. - [rand](https://code.kx.com/kdb-x/ref/rand.md): rand is a q keyword that randomly picks a number, or an item from a list. - [rank](https://code.kx.com/kdb-x/ref/rank.md): rank is a q keyword that returns the position of the items of its argument in the sorted list. - [ratios](https://code.kx.com/kdb-x/ref/ratios.md): ratios is a q keyword that returns the ratios between successive items of a list. - [raze](https://code.kx.com/kdb-x/ref/raze.md): raze is a q keyword that returns the items of a list joined, collapsing one level of nesting. - [read0](https://code.kx.com/kdb-x/ref/read0.md): read0 is a q keyword that reads text from a file or process handle. - [read1](https://code.kx.com/kdb-x/ref/read1.md): read1 is a q keyword that reads bytes from a file or named pipe. - [reciprocal](https://code.kx.com/kdb-x/ref/reciprocal.md): reciprocal is a q keyword that returns the reciprocal of a number. - [Regular Expressions](https://code.kx.com/kdb-x/ref/regex.md): Syntax of regular expressions in q - [reverse](https://code.kx.com/kdb-x/ref/reverse.md): reverse is a q keyword that reverses the order of items in a list or dictionary. - [rotate](https://code.kx.com/kdb-x/ref/rotate.md): rotate is a q keyword that shifts the items of a list to the left or right. - [RDB (r.q)](https://code.kx.com/kdb-x/ref/rq.md): How to construct an RDB - [save, rsave](https://code.kx.com/kdb-x/ref/save.md): save and rsave are q keywords that save global data to file or splayed to a directory. - [select](https://code.kx.com/kdb-x/ref/select.md): select and Select are (respectively) a q keyword and operator that select all or part of a table, possibly with new columns. - [Set Attribute](https://code.kx.com/kdb-x/ref/set-attribute.md): Set Attribute is a q operator that assigns an attribute to a list, dictionary or table. - [show](https://code.kx.com/kdb-x/ref/show.md): show is a q keyword that formats its argument and displays it at the console. - [Signal](https://code.kx.com/kdb-x/ref/signal.md): Signal is a q operator that signals an error. - [signum](https://code.kx.com/kdb-x/ref/signum.md): signum is a q keyword that returns 1, 0, or -1 according to the sign of its argument. - [Simple Exec](https://code.kx.com/kdb-x/ref/simple-exec.md): Simple Exec is a q operator that is part of functional SQL. - [sin, asin](https://code.kx.com/kdb-x/ref/sin.md): sin and asin are q keywords that return (respectively) the sine and arcsine of their argument. - [sqrt](https://code.kx.com/kdb-x/ref/sqrt.md): sqrt is a q keyword that returns the square root of its argument. - [ss, ssr](https://code.kx.com/kdb-x/ref/ss.md): ss and ssr are q keywords that perform string search and replacement. - [string](https://code.kx.com/kdb-x/ref/string.md): string is a q keyword that casts its argument to a string. - [sublist](https://code.kx.com/kdb-x/ref/sublist.md): sublist is a q keyword that returns a sublist of a list. - [Subtract](https://code.kx.com/kdb-x/ref/subtract.md): Subtract is a q operator that returns the difference of its arguments for a wide range of datatypes. - [sum, sums, msum, wsum](https://code.kx.com/kdb-x/ref/sum.md): sum, sums, msum, and wsum are q keywords that return (respectively) the sum, cumulative sums, moving sums, and weighted sum of their argument. - [sv](https://code.kx.com/kdb-x/ref/sv.md): sv is a q keyword that performs a variety of functions under the general scheme of scalar (atom) from vector – join strings or file path elements; decode a vector to an atom. - [Syntax](https://code.kx.com/kdb-x/ref/syntax.md): Syntax of the q programming language - [System commands](https://code.kx.com/kdb-x/ref/syscmds.md): System commands control the q environment. - [system](https://code.kx.com/kdb-x/ref/system.md): system is a q keyword that executes a system command. - [Tables](https://code.kx.com/kdb-x/ref/table.md): Tables in KDB-X - [tables](https://code.kx.com/kdb-x/ref/tables.md): tables is a q keyword that returns a list of tables in a namespace. - [Take](https://code.kx.com/kdb-x/ref/take.md): Take is a q operator that selects leading or trailing items from a list or dictionary, named entries from a dictionary, or named columns from a table. - [tan, atan](https://code.kx.com/kdb-x/ref/tan.md): tan and atan are q keywords that return the tangent or arctangent of their argument. - [Temporal data](https://code.kx.com/kdb-x/ref/temporal-data.md): How to handle temporal data in q - [Tickerplant (tick.q)](https://code.kx.com/kdb-x/ref/tickq.md): How to construct a tickerplant process - [til](https://code.kx.com/kdb-x/ref/til.md): til is a q keyword that returns the natural numbers up to its argument. - [Tok](https://code.kx.com/kdb-x/ref/tok.md): Tok is a q operator that interprets string data to another datatype. - [trim, ltrim, rtrim](https://code.kx.com/kdb-x/ref/trim.md): trim, ltrim, and rtrim are q keywords that remove leading or trailing nulls from a list, such as spaces from a string. - [type](https://code.kx.com/kdb-x/ref/type.md): type is a q keyword that returns as a short int the datatype of an object. - [uj, ujf](https://code.kx.com/kdb-x/ref/uj.md): uj and ujf are q keywords that perform a union join on two tables. - [ungroup](https://code.kx.com/kdb-x/ref/ungroup.md): ungroup is a q keyword that normalizes a table whose cells contain lists, returning one row for each item of the lists. - [union](https://code.kx.com/kdb-x/ref/union.md): union is a q keyword that returns the union of two lists. - [update](https://code.kx.com/kdb-x/ref/update.md): update is a qSQL query template that adds rows or columns to a table. - [upsert](https://code.kx.com/kdb-x/ref/upsert.md): upsert is a q keyword that adds records to a table or updates matching ones. - [Tickerplant pub/sub (u.q)](https://code.kx.com/kdb-x/ref/uq.md): How to construct systems from KDB-X processes - [use](https://code.kx.com/kdb-x/ref/use.md): use is a q keyword that allows access to modules. - [value](https://code.kx.com/kdb-x/ref/value.md): value is a q keyword that returns the value of a named variable, or metadata. - [var, svar](https://code.kx.com/kdb-x/ref/var.md): var and svar are q keywords that return (respectively) the variance and sample variance of their argument. - [Variadic syntax](https://code.kx.com/kdb-x/ref/variadic.md): An applicable value is variadic if its rank is not fixed. - [Vector Conditional](https://code.kx.com/kdb-x/ref/vector-conditional.md): Vector Conditional is a q operator that replaces selected items of one list with corresponding items of another. - [view, views](https://code.kx.com/kdb-x/ref/view.md): view and views are q keywords. view returns the expression defining a view. views lists views defined in the default namespace. - [vs](https://code.kx.com/kdb-x/ref/vs.md): vs is a q keyword that performs various functions under the scheme vector-from-scalar (atom). - [where](https://code.kx.com/kdb-x/ref/where.md): where is a q keyword that returns copies of indexes of a list or keys of a dictionary. - [while](https://code.kx.com/kdb-x/ref/while.md): while is a q control word that governs iteration. - [within](https://code.kx.com/kdb-x/ref/within.md): within is a q keyword that tests whether one argument is within the bounds defined by the other. - [wj, wj1](https://code.kx.com/kdb-x/ref/wj.md): wj and wj1 are q keywords that perform window joins. - [xbar](https://code.kx.com/kdb-x/ref/xbar.md): xbar is a q keyword that returns one argument rounded down to the nearest multiple of the other. - [xgroup](https://code.kx.com/kdb-x/ref/xgroup.md): xgroup is a q keyword that groups a table by values in selected columns. - [xrank](https://code.kx.com/kdb-x/ref/xrank.md): xrank is a q keyword that assigns each item of a list to one of a given number of buckets, by rank. - [KDB-X Roadmap](https://code.kx.com/kdb-x/releases/kdb-x-roadmap.md): Upcoming features and enhancements for KDB-X - [KDB-X](https://code.kx.com/kdb-x/releases/release-notes-latest.md): Release notes for the KDB-X releases - [Telemetry](https://code.kx.com/kdb-x/releases/telemetry.md): enabling or disabling telemetry reporting - [Backup and Restore](https://code.kx.com/kdb-x/services/db-service/backup-restore.md): How to back up and restore data in the KDB-X DB Service. - [Configure](https://code.kx.com/kdb-x/services/db-service/configuration.md): How to select and export the assembly configuration in KDB-X DB Service - [Custom Code](https://code.kx.com/kdb-x/services/db-service/custom-code.md): How to load custom q code and user-defined functions (UDFs) into KDB-X DB Service - [Delete Data](https://code.kx.com/kdb-x/services/db-service/delete-data.md): How to delete rows from the KDB-X DB Service. - [Initial Import](https://code.kx.com/kdb-x/services/db-service/import-initial.md): How to migrate an existing kdb+ historical database into the KDB-X DB Service using the initial import process. - [Import](https://code.kx.com/kdb-x/services/db-service/import.md): Data import capabilities of KDB-X DB Service, covering both single-node and clustered deployments. - [About](https://code.kx.com/kdb-x/services/db-service/introduction.md): Overview of the DB Service in KDB-X, including purpose, benefits, use cases, and links to deeper documentation. - [Manage Tables (Clustered)](https://code.kx.com/kdb-x/services/db-service/manage-tables-clustered.md): How to manage tables in a clustered KDB-X DB Service deployment using YAML-based assembly configuration. - [Manage Tables](https://code.kx.com/kdb-x/services/db-service/manage-tables.md): How to manage tables in KDB-X DB Service - [Query](https://code.kx.com/kdb-x/services/db-service/query.md): How to query data in KDB-X DB Service, covering both single-node and clustered deployments. - [Quickstart](https://code.kx.com/kdb-x/services/db-service/quickstart.md): Quick start guide for the DB Service in KDB-X, covering both single-node and clustered deployments. - [Reference Data](https://code.kx.com/kdb-x/services/db-service/reference-data.md): How to define, import, and query reference data in KDB-X DB Service - [KDB-X DB Service](https://code.kx.com/kdb-x/services/db-service/release-notes/changelog.md): Version history, fixes, and improvements for the KDB-X DB Service. - [Storage Tiers](https://code.kx.com/kdb-x/services/db-service/storage-tiers.md): How the KDB-X DB Service organises data across in-memory, on-disk, and object storage tiers. - [Troubleshooting](https://code.kx.com/kdb-x/services/db-service/troubleshooting.md): Troubleshooting guide for common issues with the KDB-X DB Service. - [KDB.AI Service](https://code.kx.com/kdb-x/services/kdb.ai-introduction.md): Detailed introduction to KDB.AI, the vector database service in KDB-X, including concepts, architecture, supported operations, limitations, and performance considerations.