Skip to main content

dataset upgrade

[Plombage] Met Ă  niveau un jeu de donnĂ©es pour que les outils actuels puissent l’utiliser.

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 dataset upgrade [--threads=<num>] [--ram=<MB>] <options>... -- <dataset>

Description

[Plombage] Met Ă  niveau un jeu de donnĂ©es pour que les outils actuels puissent l’utiliser.

Fait la mĂȘme chose que codeql database upgrade, mais fonctionne sur un jeu de donnĂ©es brut plutĂŽt que sur une base de donnĂ©es entiĂšre.

Options

Options principales

<dataset>

[Obligatoire] Chemin du jeu de données QL brut à mettre à niveau.

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

Liste des rĂ©pertoires dans lesquels des packs QL contenant des recettes de mise Ă  niveau peuvent ĂȘtre trouvĂ©s. Chaque rĂ©pertoire peut ĂȘtre un pack QL (ou un bundle de packs contenant un fichier .codeqlmanifest.json Ă  la racine) ou le parent immĂ©diat d’un ou plusieurs de ces rĂ©pertoires.

Si le chemin contient des arborescences de rĂ©pertoires, leur ordre dĂ©finit la prioritĂ© entre elles : si un nom de pack qui doit ĂȘtre rĂ©solu est mis en correspondance dans plusieurs arborescences de rĂ©pertoires, celle donnĂ©e en premier gagne.

Le pointage de ce chemin vers une extraction du dĂ©pĂŽt CodeQL open source devrait fonctionner lors de l’interrogation d’un des langages qui y rĂ©sident.

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

--additional-packs=<dir>[:<dir>...]

[AvancĂ©] Si cette liste de rĂ©pertoires est donnĂ©e, ils font l’objet d’une recherche de mises Ă  niveau avant ceux indiquĂ©s dans --search-path. L’ordre entre eux n’a pas d’importance ; il s’agit d’une erreur si un nom de pack est trouvĂ© dans deux rĂ©pertoires diffĂ©rents de cette liste.

Cette option est utile si vous dĂ©veloppez temporairement une nouvelle version d’un pack qui apparaĂźt aussi dans le chemin par dĂ©faut. En revanche, il n’est pas recommandĂ© de remplacer cette option dans un fichier de configuration ; certaines actions internes ajoutent cette option Ă  la volĂ©e, remplaçant toute valeur configurĂ©e.

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

--target-dbscheme=<file>

SchĂ©ma de base de donnĂ©es cible vers lequel nous voulons effectuer la mise Ă  niveau. S’il n’est pas fourni, un chemin de mise Ă  niveau maximal est construit

--target-sha=<sha>

[Avancé] Alternative à --target-dbscheme qui donne le hachage interne du schéma de base de données cible au lieu du fichier du schéma de base de données.

--[no-]allow-downgrades

Inclut tous les passages Ă  une version antĂ©rieure pertinents s’il n’y a aucune mise Ă  niveau

Options pour contrĂŽler l’évaluation des requĂȘtes de mise Ă  niveau

--[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.

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 pour contrîler l’utilisation de la RAM du processus de mise à niveau

-M, --ram=<MB>

L'Ă©valuateur de requĂȘtes s'efforcera de maintenir son empreinte mĂ©moire totale en dessous de cette valeur. (Toutefois, pour les grandes bases de donnĂ©es, il est possible que le seuil soit dĂ©passĂ© par les cartes mĂ©moire sauvegardĂ©es sur fichier, qui peuvent ĂȘtre basculĂ©es sur disque en cas de sollicitation de la mĂ©moire).

La valeur doit ĂȘtre d'au moins 2048 Mo ; les valeurs infĂ©rieures seront arrondies de maniĂšre transparente.

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.