Skip to main content

execute query-server2

[Plomberie] Prend en charge l’exĂ©cution de requĂȘtes dans des IDE.

Qui peut utiliser cette fonctionnalité ?

CodeQL est disponible pour les types de rĂ©fĂ©rentiels suivants :

Remarque

Ce contenu dĂ©crit la version la plus rĂ©cente de CodeQL CLI. Pour plus d’informations sur cette version, consultez https://github.com/github/codeql-cli-binaries/releases.

Pour voir les dĂ©tails des options disponibles pour cette commande dans une version antĂ©rieure, exĂ©cutez la commande avec l’option --help dans votre terminal.

Synopsis

Shell
codeql execute query-server2 [--threads=<num>] <options>...

Description

[Plomberie] Prend en charge l’exĂ©cution de requĂȘtes dans des IDE.

Cette commande s’applique uniquement aux auteurs d’extensions du langage QL pour les IDE. Elle est dĂ©marrĂ©e par le plug-in IDE en arriĂšre-plan et communique avec lui via un protocole spĂ©cial sur ses flux d’entrĂ©e et de sortie standard.

Disponible depuis v2.10.11.

Options

Options principales

--[no-]tuple-counting

[AvancĂ©] Affiche le nombre de tuples pour chaque Ă©tape d’évaluation dans les journaux de l’évaluateur de requĂȘte. Si l’option --evaluator-log est fournie, les nombres de tuples sont inclus dans les journaux JSON textuels et structurĂ©s gĂ©nĂ©rĂ©s par la commande. (Cela peut ĂȘtre utile pour l’optimisation des performances du code QL complexe.)

--timeout=<seconds>

[AvancĂ©] DĂ©finit la durĂ©e du dĂ©lai d’expiration pour l’évaluation de la requĂȘte, en secondes.

La fonctionnalitĂ© de dĂ©lai d’expiration est destinĂ©e Ă  intercepter les cas oĂč l’évaluation d’une requĂȘte complexe durerait « indĂ©finiment Â». Il ne s’agit pas d’un moyen efficace de limiter la durĂ©e totale de l’évaluation de la requĂȘte. L’évaluation est autorisĂ©e Ă  se poursuivre tant que chaque partie du calcul se termine dans le dĂ©lai d’expiration qui lui a Ă©tĂ© imparti sĂ©parĂ©ment. Pour l’instant, ces parties sont des « couches RA Â» de la requĂȘte optimisĂ©e, mais cela peut changer.

Si aucun dĂ©lai d’expiration n’est spĂ©cifiĂ© ou que 0 est fourni, aucun dĂ©lai n’est dĂ©fini (sauf pour codeql test run, oĂč le dĂ©lai d’expiration par dĂ©faut est de 5 minutes).

-j, --threads=<num>

Utilise le nombre de threads spĂ©cifiĂ© pour Ă©valuer les requĂȘtes.

La valeur par dĂ©faut est de 1. Vous pouvez passer 0 pour utiliser un thread par cƓur sur la machine ou -N pour laisser N cƓurs inutilisĂ©s (sauf si au moins un thread est toujours utilisĂ©).

--[no-]save-cache

[AvancĂ©] Écrit de maniĂšre agressive des rĂ©sultats intermĂ©diaires dans le cache de disque. Cela prend plus de temps et utilise (beaucoup) plus d’espace disque, mais peut accĂ©lĂ©rer l’exĂ©cution ultĂ©rieure de requĂȘtes similaires.

--[no-]expect-discarded-cache

[AvancĂ©] Prend des dĂ©cisions sur les prĂ©dicats Ă  Ă©valuer et sur ce qu’il faut Ă©crire dans le cache de disque, en supposant que le cache soit ignorĂ© une fois les requĂȘtes exĂ©cutĂ©es.

--[no-]keep-full-cache

[AvancĂ©] Ne nettoie pas le cache de disque une fois l’évaluation terminĂ©e. Cela peut faire gagner du temps si vous ĂȘtes amenĂ© Ă  exĂ©cuter codeql dataset cleanup ou codeql database cleanup par la suite.

--max-disk-cache=<MB>

DĂ©finit la quantitĂ© maximale d’espace que le cache de disque peut utiliser pour les rĂ©sultats de requĂȘte intermĂ©diaires.

Si cette taille n’est pas configurĂ©e explicitement, l’évaluateur essaie d’utiliser une quantitĂ© « raisonnable Â» d’espace de cache en fonction de la taille du jeu de donnĂ©es et de la complexitĂ© des requĂȘtes. La dĂ©finition explicite d’une limite supĂ©rieure Ă  cette utilisation par dĂ©faut permet une mise en cache supplĂ©mentaire qui peut accĂ©lĂ©rer les requĂȘtes ultĂ©rieures.

--min-disk-free=<MB>

[AvancĂ©] DĂ©finit la quantitĂ© cible d’espace disponible sur le systĂšme de fichiers.

Si --max-disk-cache n’est pas donnĂ©, l’évaluateur s’efforce de limiter l’utilisation du cache de disque si l’espace disponible sur le systĂšme de fichiers passe en dessous de cette valeur.

--min-disk-free-pct=<pct>

[AvancĂ©] DĂ©finit la fraction cible d’espace disponible sur le systĂšme de fichiers.

Si --max-disk-cache n’est pas donnĂ©, l’évaluateur s’efforce de limiter l’utilisation du cache de disque si l’espace disponible sur le systĂšme de fichiers passe en dessous de ce pourcentage.

--external=<pred>=<file.csv>

Fichier CSV qui contient des lignes pour le prédicat <pred> externe. Vous pouvez fournir plusieurs options --external.

--xterm-progress=<mode>

[AvancĂ©] ContrĂŽle s’il faut afficher le suivi de la progression pendant l’évaluation du code QL avec des sĂ©quences de contrĂŽle xterm. Les valeurs possibles sont les suivantes :

no : ne produit jamais de progression fantaisiste ; suppose qu’il s’agit d’un terminal idiot.

auto (par dĂ©faut)  : dĂ©termine automatiquement si la commande s’exĂ©cute dans un terminal appropriĂ©.

yes : suppose que le terminal peut comprendre les sĂ©quences de contrĂŽle xterm. La fonctionnalitĂ© dĂ©pend toujours de la capacitĂ© Ă  dĂ©tecter automatiquement la taille du terminal (ce qui n’est pas implĂ©mentĂ© sous Windows, dĂ©solĂ©), et sera Ă©galement dĂ©sactivĂ©e si -q est spĂ©cifiĂ©.

25x80 (ou similaire) : comme yes, et donne aussi explicitement la taille du terminal. (Contrairement Ă  yes, cela devrait fonctionner sous Windows.)

25x80:/dev/pts/17 (ou similaire) : affiche une progression fantaisiste sur un terminal diffĂ©rent de stderr. Principalement utile pour les tests internes.

--search-path=<dir>[:<dir>...]

Fonctionne comme l’option similaire de codeql query compile (q.v.).

Il n’existe aucune option --additional-packs ou --library-path, car les valeurs correspondantes sont fournies par requĂȘte

(Remarque : Sur Windows, le sĂ©parateur de chemin est ;.)

Options pour contrĂŽler la sortie des journaux structurĂ©s de l’évaluateur

--evaluator-log=<file>

[AvancĂ©] GĂ©nĂšre des journaux structurĂ©s sur les performances de l’évaluateur dans le fichier donnĂ©. Le format de ce fichier journal est susceptible d’ĂȘtre modifiĂ© sans prĂ©avis, mais il s’agit d’un flux d’objets JSON sĂ©parĂ©s par deux caractĂšres de nouvelle ligne (par dĂ©faut) ou un seul si l’option --evaluator-log-minify est transmise. Utilisez codeql generate log-summary <file> pour produire un rĂ©sumĂ© plus stable de ce fichier et Ă©vitez d’analyser le fichier directement. Le fichier est remplacĂ©, s’il existe dĂ©jĂ .

--evaluator-log-minify

[AvancĂ©] Si l’option --evaluator-log est transmise, le passage de cette option rĂ©duit Ă©galement la taille du journal JSON produit, mais celui-ci devient beaucoup moins lisible par les ĂȘtres humains en contrepartie.

Options courantes

-h, --help

Affiche ce texte d’aide.

-J=<opt>

[AvancĂ©] Donne une option Ă  l’environnement JVM exĂ©cutant la commande.

(Attention, les options contenant des espaces ne sont pas gérées correctement.)

-v, --verbose

Augmente de façon incrémentielle le nombre de messages de progression affichés.

-q, --quiet

Diminue de façon incrémentielle le nombre de messages de progression affichés.

--verbosity=<level>

[Avancé] Définit explicitement le niveau de détail sur errors, warnings, progress, progress+, progress++ ou progress+++. Remplace -v et -q.

--logdir=<dir>

[AvancĂ©] Écrit des journaux dĂ©taillĂ©s dans un ou plusieurs fichiers du rĂ©pertoire donnĂ©, avec des noms gĂ©nĂ©rĂ©s qui incluent des horodatages et le nom de la sous-commande en cours d’exĂ©cution.

(Pour écrire un fichier journal avec un nom sur lequel vous avez un contrÎle total, donnez plutÎt --log-to-stderr et redirigez stderr comme vous le souhaitez.)

--common-caches=<dir>

[AvancĂ©] ContrĂŽle l’emplacement des donnĂ©es en cache sur le disque qui persisteront entre plusieurs exĂ©cutions de l’interface CLI, telles que les packs QL tĂ©lĂ©chargĂ©s et les plans de requĂȘte compilĂ©s. S’il n’est pas dĂ©fini explicitement, il s’agit par dĂ©faut d’un rĂ©pertoire nommĂ© .codeql dans le rĂ©pertoire de base de l’utilisateur. S’il n’existe pas dĂ©jĂ , il est créé.

Disponible depuis v2.15.2.