Skip to content

[Query] Signature

github-actions[bot] edited this page Jul 21, 2026 · 1 revision

This document was generated from 'src/documentation/wiki-query.ts' on 2026-07-21, 13:40:53 UTC presenting an overview of flowR's query API (v2.13.1). Please do not edit this file/wiki page directly.

Signature Query [overview]

Inspects the signature database: packages, function signatures, source and documentation links.
This query is requested with the type signature.
Run in the REPL: :query @signature [<pkg>[@<version>]] [<pkg>::<fn> | <fn>] [--param <name>[,...]] [--required <n>] [--cg] [--help]

This query is the read-side interface to flowR's signature database—the very same database that resolves library() and :: calls during the dataflow analysis. It lets you ask what flowR actually knows about a package or a function, without needing R or a network connection.

What you get back depends on how specific you are:

Given Result
nothing a summary of the loaded databases
package the full package view: version, CRAN links, dependencies, exports
package + function the full function view: parameters, definition site, source and documentation links, S3 relations
a glob in either (gg*, geom_*) the set of matching packages or functions

The version property accepts an exact version, a glob (3.*), a semver range (>=3.0.0), or a release-date bound (<=2026, >=2021.05). Without it, the release that flowR resolved for the analyzed script is used, so the signature you see is the one the analysis actually assumed.

Given a script such as:

library(dplyr)
lead(1:10, n = 1)

we can inspect the signature of the function it calls:

[
  {
    "type": "signature",
    "package": "dplyr",
    "function": "lead"
  }
]
Show Results

Results (prettified and summarized):

Query: signature (1 ms)
   ╰ The signature database does not know the package 'dplyr'.
All queries together required ≈2 ms (1ms accuracy, total 2 ms)

Show Detailed Results as Json

The analysis required 1.8 ms (including parsing and normalization and the query) within the generation environment.

In general, the JSON contains the Ids of the nodes in question as they are present in the normalized AST or the dataflow graph of flowR. Please consult the Interface wiki page for more information on how to get those.

{
  "signature": {
    ".meta": {
      "timing": 1
    },
    "databases": [],
    "packageCount": 0,
    "sourceCount": 0,
    "message": "The signature database does not know the package 'dplyr'.",
    "suggestions": []
  },
  ".meta": {
    "timing": 2
  }
}

The parameters and requiredParameters properties additionally filter by the shape of a function, which is useful to find functions you only half-remember: { package: '*', parameters: ['data', 'mapping'] } finds every known function taking both of these.

Note

The results depend on which database shards are mounted; with none available the query reports that no database is loaded rather than failing. See the Signature Database page for the storage format, the configuration under solver.sigdb, and how to obtain further shards. To find out what a script uses, reach for the Dependencies Query; to find out which versions it is compatible with, see the Guess Dependency Versions Query.

Implementation Details

Responsible for the execution of the Signature Query query is executeSignatureQuery in ./src/queries/catalog/signature-query/signature-query-executor.ts.

Clone this wiki locally