適用対象:
、Databricks、SQL
、Databricks、ランタイム19以上
パスとは、クエリやDML文がカタログやスキーマの修飾子なしでテーブル、ビュー、関数を参照している場合にAzure Databricksが検索するスキーマの順序付けリストです。 DDL文の無条件の主語は current_catalog.current_schemaであり、パスルックアップではないため、 CREATE TABLE t 現在のスキーマで t を作成します。 DDL文のクエリや永続的なビューにパスがどのように適用されるかについては、「 Table and View resolution」を参照してください。 ルーチンボディについては、「 機能および手続き解決」を参照してください。
Syntax
SET PATH = path_element [, ...]
path_element
{ DEFAULT_PATH |
SYSTEM_PATH |
CURRENT_SCHEMA |
PATH |
schema_name }
Parameters
DEFAULT_PATH
PATH構成パラメータに展開するキーワードで、これは新しいセッションが継承するワークスペースのデフォルトです。 パラメータが上書きされていなければ、展開は
system.session, system.builtin, system.ai, CURRENT_SCHEMAとなります。SYSTEM_PATH
システム提供のスキーマに拡張されるキーワード:
system.builtin, system.ai。CURRENT_SCHEMA
使用時に現在のカタログおよび現在のスキーマ(
current_catalog().current_schema())に解決される仮想スキーマ参照。 この拡張は、セッション中に USE CATALOG と USE SCHEMA が行った変更に続くものです。PATH
現在のセッションパスに拡張されるキーワードです。 内容を改めずに経路を延長するために使うのです。
-
名前は二部構成(
catalog.schema)が必要です。 2つ以上の部分を持つ名前も許可されています。 単一の名前で INVALID_SQL_PATH_SCHEMA_REFERENCEが上がる。カタログやスキーマは、実行時に存在している必要はありません
SET PATH。 名前解決は欠落したエントリをスキップし、次のパス要素で進みます。
Description
以下のルールは、 SET PATH がどのパス要素を受け入れ、その結果得られたパスが名前解決にどのように影響するかを規定します。
- 重複:重複パス要素は許可されていません。 キーワード拡大後、重複は DUPLICATE_SQL_PATH_ENTRYを上げます。
-
システムスキーマ:
system.builtinとsystem.aiは組み込みのスカラー、テーブル、AI機能を備えています。system.session一時変数、一時関数、一時ビューなどのセッションスコープオブジェクトを保持します。system.builtinを道から外すのは一般的に推奨されません。 -
省略されたスキーマ:無条件な名前はパス上のスキーマに対してのみ解決されます。
CURRENT_SCHEMAを省略する場合は、現在のスキーマ内の永続オブジェクトを限定してください。system.builtinやsystem.aiを省略する場合は、それらの関数を条件付けて、例えばsystem.builtin.abs。system.sessionを省略すると、無条件の一時ビュー、一時関数、セッション変数は見つかりません。 -
ビューとルーチン:永続ビュー、SQLユーザー定義関数、
SQL SECURITY DEFINER手続きはCREATEのパスをキャプチャし、その取得したパスに対して修飾されていない名前を本体の上で解決します。呼び出し元のセッションパスとは照らされません。SQL SECURITY DEFINER手続きでは、捕獲された経路からsystem.sessionを除外します。SQL SECURITY INVOKER手続きは発信者のライブパスを利用します。 「 捕獲されたパス」を参照してください。 -
経路の検査:
SET PATH;は経路を印刷しません。 current_pathを使いましょう。
Examples
次の文は順番に実行してください。なぜなら、後の文は前の文が設定した経路に基づいて構築されるからです。
-- 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
以下の文は失敗し、パスは変わりません。
-- 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]