SET CAMINHO

Aplica-se a:com marca de verificação sim Databricks SQL marcado sim Databricks Runtime 19 e acima

O caminho é a lista ordenada de esquemas que o Azure Databricks pesquisa quando uma consulta ou instrução DML faz referência a uma tabela, visualização ou função sem um qualificador de catálogo e esquema. O sujeito não qualificado de uma instrução DDL é current_catalog.current_schema, não uma busca de caminho, então CREATE TABLE t cria t no esquema atual. Para saber como o caminho se aplica a consultas em instruções DDL e a visualizações persistentes, veja Tabela e resolução de visualização. Para órgãos rotineiros, veja Resolução de funções e procedimentos.

Syntax

SET PATH = path_element [, ...]

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

Parameters

  • DEFAULT_PATH

    Uma palavra-chave que se expande para o parâmetro de configuração PATH , que é o padrão do workspace que as novas sessões herdam. Se o parâmetro não foi sobrescrito, a expansão é system.session, system.builtin, system.ai, CURRENT_SCHEMA.

  • SYSTEM_PATH

    Uma palavra-chave que se expande para os esquemas fornecidos pelo sistema: system.builtin, system.ai.

  • CURRENT_SCHEMA

    Uma referência virtual de esquema que se resolve no momento de uso para o catálogo atual e o esquema atual (current_catalog().current_schema()). A expansão segue as mudanças feitas durante USE CATALOGUSE SCHEMA e durante a sessão do evento.

  • PATH

    Uma palavra-chave que se expande para o caminho da sessão atual. Use para estender o caminho sem repetir seu conteúdo.

  • schema_name

    É necessário um nome em duas partes (catalog.schema). Nomes com mais de duas partes são permitidos. Um nome de uma única parte levanta INVALID_SQL_PATH_SCHEMA_REFERENCE.

    O catálogo e o esquema não precisam existir no momento em que você executa SET PATH. A resolução de nomes pula entradas faltantes e continua com o próximo elemento do caminho.

Description

As seguintes regras governam quais elementos SET PATH de caminho aceitam e como o caminho resultante afeta a resolução de nomes.

  • Duplicados: Elementos de caminho duplicados não são permitidos. Após a expansão das palavras-chave, duplicados aumentam DUPLICATE_SQL_PATH_ENTRY.
  • Esquemas do sistema: system.builtin e system.ai armazenam funções de escala, tabela e IA integradas. system.session contém objetos com escopo de sessão, como variáveis temporárias, funções temporárias e vistas temporárias. Sair system.builtin do caminho geralmente não é recomendado.
  • Esquemas omitidos: Nomes não qualificados resolvem apenas contra esquemas no caminho. Se você omitir CURRENT_SCHEMA, qualifica objetos persistentes no esquema atual. Se você omitir system.builtin ou system.ai, qualificar essas funções, por system.builtin.absexemplo . Se você omitir, system.sessionvistas temporárias não qualificadas, funções temporárias e variáveis de sessão não são encontradas.
  • Visualizações e rotinas: Visualizações persistentes, funções SQL definidas pelo usuário e SQL SECURITY DEFINER procedimentos capturam o caminho em CREATE e resolvem nomes não qualificados em seus corpos contra esse caminho capturado, não contra o caminho da sessão do invocador. Um SQL SECURITY DEFINER procedimento omite system.session o caminho capturado. Um SQL SECURITY INVOKER procedimento usa o caminho ao vivo do chamador. Veja Caminho capturado.
  • Inspecionar o caminho: SET PATH; não imprime o caminho. Use current_path.

Examples

Execute as seguintes instruções em ordem, pois as instruções posteriores se baseiam no caminho que as anteriores estabelecem.

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

As seguintes instruções falham e não alteram o caminho.

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