SET CHEMIN

S’applique à :coché oui Databricks SQL coché oui Databricks Runtime 19 et supérieur

Le chemin est la liste ordonnée des schémas que Azure Databricks recherche lorsqu’une requête ou une instruction DML fait référence à une table, une vue ou une fonction sans catalog ni qualificateur de schéma. Le sujet non qualifié d’une instruction DDL est current_catalog.current_schema, et non une recherche de chemin, donc CREATE TABLE t se crée t dans le schéma courant. Pour savoir comment le chemin s’applique aux requêtes dans les instructions DDL et aux vues persistantes, voir Résolution de table et de vue. Pour les organismes de routine, voir Résolution de la fonction et des procédures.

Syntax

SET PATH = path_element [, ...]

path_element
  { DEFAULT_PATH |
    SYSTEM_PATH |
    CURRENT_SCHEMA |
    PATH |
    schema_name }

Parameters

  • DEFAULT_PATH

    Un mot-clé qui s’étend au paramètre de configuration PATH , qui est le paramètre par défaut de l’espace de travail que les nouvelles sessions héritent. Si le paramètre n’a pas été dépassé, le développement est system.session, system.builtin, system.ai, CURRENT_SCHEMA.

  • SYSTEM_PATH

    Un mot-clé qui s’étend aux schémas fournis par le système : system.builtin, system.ai.

  • CURRENT_SCHEMA

    Une référence de schéma virtuel qui se résout au moment de l’utilisation vers le catalogue et le schéma actuels (current_catalog().current_schema()). L’extension fait suite aux changements apportés pendant USE CATALOGUSE SCHEMA et pendant la session.

  • PATH

    Un mot-clé qui s’étend au chemin de session actuel. Utilisez-le pour prolonger le chemin sans en remettre le contenu.

  • schema_name

    Un nom en deux parties (catalog.schema) est requis. Les noms comportant plus de deux parties sont autorisés. Un nom en une seule partie soulève INVALID_SQL_PATH_SCHEMA_REFERENCE.

    Le catalogue et le schéma n’ont pas besoin d’exister au moment de l’exécution SET PATH. La résolution du nom saute les entrées manquantes et continue avec l’élément suivant du chemin.

Description

Les règles suivantes régissent quels éléments SET PATH de chemin acceptent et comment le chemin résultant affecte la résolution des noms.

  • Doublons : Les éléments de chemin dupliqués ne sont pas autorisés. Après l’expansion des mots-clés, les doublons génèrent DUPLICATE_SQL_PATH_ENTRY.
  • Schémas système : system.builtin et system.ai contiennent des fonctions intégrées au scalaire, à la table et à l’IA. system.session contient des objets à portée de session tels que des variables temporaires, des fonctions temporaires et des vues temporaires. En général, il n’est pas conseillé de quitter system.builtin le sentier.
  • Schémas omés : Les noms non qualifiés ne résolvent que les schémas sur le chemin. Si vous omettez CURRENT_SCHEMA, qualifiez les objets persistants dans le schéma actuel. Si vous omettez system.builtin ou system.ai, qualifiez ces fonctions, par system.builtin.absexemple . Si vous omettez system.session, les vues temporaires non qualifiées, les fonctions temporaires et les variables de session ne sont pas trouvées.
  • Vues et routines : Les vues persistantes, les fonctions SQL définies par l’utilisateur et SQL SECURITY DEFINER les procédures capturent le chemin et CREATE résolvent les noms non qualifiés dans leur corps par rapport à ce chemin capturé, et non par rapport au chemin de session de l’invocateur. Une SQL SECURITY DEFINER procédure omet system.session le chemin capturé. Une SQL SECURITY INVOKER procédure utilise le chemin en direct de l’appelant. Voir Chemin capturé.
  • Inspecter le chemin : SET PATH; ne l’imprime pas. Utilisez current_path.

Examples

Exécutez les instructions suivantes dans l’ordre, car les instructions ultérieures s’appuient sur le chemin que les précédentes ont établi.

-- Restore the workspace default.
> SET PATH = DEFAULT_PATH;
> SELECT current_path();
  system.session,system.builtin,system.ai,main.default

-- Restrict the PATH to only the system-provided schemas.
> SET PATH = SYSTEM_PATH;
> SELECT current_path();
  system.builtin,system.ai

-- Append a schema to the existing PATH without restating it.
> SET PATH = PATH, libraries.pgsql;
> SELECT current_path();
  system.builtin,system.ai,libraries.pgsql

-- Put the current schema ahead of the system schemas so that user-defined
-- functions shadow built-in functions of the same name.
> SET PATH = CURRENT_SCHEMA, PATH;
> SELECT current_path();
  main.default,system.builtin,system.ai,libraries.pgsql

Les instructions suivantes échouent et ne modifient pas le chemin.

-- A single-part schema name is rejected.
> SET PATH = my_schema;
  [INVALID_SQL_PATH_SCHEMA_REFERENCE]

-- A duplicate path element raises an error after expansion.
> SET PATH = SYSTEM_PATH, system.builtin;
  [DUPLICATE_SQL_PATH_ENTRY]