SET CAMINO

Aplica a:con marca de verificación sí Databricks SQL marcado sí Databricks Runtime 19 y superiores

El path es la lista ordenada de esquemas que Azure Databricks busca cuando una consulta o una instrucción DML hace referencia a una tabla, vista o función sin un catalogo ni un calificador de esquema. El sujeto no calificado de una instrucción DDL es current_catalog.current_schema, no una búsqueda de camino, por lo que CREATE TABLE t se crea t en el esquema actual. Para saber cómo se aplica la ruta a consultas en sentencias DDL y a vistas persistentes, véase Resolución de Tabla y vista. Para organismos rutinarios, véase Resolución de función y procedimiento.

Syntax

SET PATH = path_element [, ...]

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

Parameters

  • DEFAULT_PATH

    Una palabra clave que se expande al parámetro de configuración PATH , que es el espacio de trabajo predeterminado que heredan las nuevas sesiones. Si el parámetro no ha sido anulado, la expansión es system.session, system.builtin, system.ai, CURRENT_SCHEMA.

  • SYSTEM_PATH

    Una palabra clave que se amplía a los esquemas proporcionados por el sistema: system.builtin, system.ai.

  • CURRENT_SCHEMA

    Una referencia virtual de esquema que se resuelve en el momento de uso al catálogo actual y al esquema actual (current_catalog().current_schema()). La expansión sigue los cambios realizados durante USE CATALOGUSE SCHEMA y durante la sesión.

  • PATH

    Una palabra clave que se extiende a la ruta actual de la sesión. Úsalo para extender el camino sin repetir su contenido.

  • schema_name

    Se requiere un nombre de dos partes (catalog.schema). Se permiten nombres con más de dos partes. Un nombre de una sola parte levanta INVALID_SQL_PATH_SCHEMA_REFERENCE.

    El catálogo y el esquema no necesitan existir en el momento en que ejecutas SET PATH. La resolución de nombres omite entradas faltantes y continúa con el siguiente elemento de camino.

Description

Las siguientes reglas rigen qué elementos SET PATH de camino aceptan y cómo el camino resultante afecta a la resolución de nombres.

  • Duplicados: No se permiten elementos de ruta duplicados. Tras la expansión de palabras clave, los duplicados aumentan DUPLICATE_SQL_PATH_ENTRY.
  • Esquemas del sistema: system.builtin y system.ai mantienen funciones de escalar, tabla e IA integradas. system.session contiene objetos con alcance de sesión como variables temporales, funciones temporales y vistas temporales. Generalmente no se recomienda dejar system.builtin el camino.
  • Esquemas omitidos: Los nombres no calificados resuelven solo contra los esquemas en el camino. Si omites CURRENT_SCHEMA, califica objetos persistentes en el esquema actual. Si omites system.builtin o system.ai, calificas esas funciones, por ejemplo system.builtin.abs. Si omites system.session, no se encuentran vistas temporales no calificadas, funciones temporales y variables de sesión.
  • Vistas y rutinas: Las vistas persistentes, funciones definidas por el usuario en SQL y SQL SECURITY DEFINER procedimientos capturan la ruta en CREATE y resuelven nombres no calificados en sus cuerpos contra esa ruta capturada, no contra la ruta de sesión del invocador. Un SQL SECURITY DEFINER procedimiento omite system.session el camino capturado. Un SQL SECURITY INVOKER procedimiento utiliza la ruta en directo del llamante. Ver Ruta capturada.
  • Inspeccionar el camino: SET PATH; no imprime el camino. Usa current_path.

Examples

Ejecuta las siguientes sentencias en orden, porque las sentencias posteriores se basan en el camino que las anteriores establecen.

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

Las siguientes afirmaciones fallan y no cambian el camino.

-- 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]