Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
Databricks Runtime 12.2 LTS e superior
somente Unity Catalog
Especifica uma função que é aplicada como um filtro sempre que linhas são buscadas da relação.
Você pode adicionar filtros de linha quando:
- Crie uma tabela usando CREATE TABLE.
- Altere uma tabela usando ALTER TABLE.
- Crie uma exibição materializada usando CREATE MATERIALIZED VIEW.
- Altere uma visão materializada usando ALTER MATERIALIZED VIEW.
- Crie uma tabela de streaming usando CREATE STREAMING TABLE.
- Altere uma tabela de streaming usando ALTER STREAMING TABLE.
Importante
O filtro de linha é aplicado assim que a linha é buscada na fonte de dados.
Para obter mais informações sobre como usar filtros de linha, consulte Filtros de linha e máscaras de coluna.
Privilégios necessários
Para atribuir uma função que adicione um filtro de linha a uma tabela, deve ter o EXECUTE privilégio sobre a função, USE SCHEMA sobre o esquema e USE CATALOG sobre o catálogo pai.
Se estiver a adicionar um filtro de linha ao criar uma nova tabela, deve ter o CREATE TABLE privilégio sobre o esquema.
Se estiver a adicionar um filtro de linha a uma tabela existente , deve ser o proprietário da tabela ou ter o privilégio MANAGE sobre a tabela.
Sintaxe
ROW FILTER func_name ON ( [ column_name | constant_literal [, ...] ] ) [...]
Parâmetros
-
Um SQL UDF escalar.
O tipo de retorno da função deve ser
BOOLEAN. Se a função retornarFALSEouNULLa linha for filtrada. -
Especifica colunas da relação de assunto a ser passada para
func_name. Cadacolumn_nameum deve ser moldável para o parâmetro correspondente defunc_name. Você deve fornecer quantas colunas forem exigidas pela assinatura da função. Esta funcionalidade suporta passar zero colunas de entrada, caso em que o SQL UDF deve aceitar parâmetros zero e devolver um resultado booleano independente dos valores das linhas de entrada.Importante
Se o tipo de dado de uma coluna não corresponder exatamente ao tipo correspondente de parâmetro da função, o valor da coluna é implicitamente cast. Com ANSI_MODE desativado, os valores que não podem ser lançados são silenciosamente convertidos para
NULL, o que pode produzir resultados de filtro inesperados. Os tipos de parâmetros UDF devem corresponder aos tipos de dados das colunas que lhes são passadas. Veja comportamento de desajustamento dos tipos de dados. constant_literal
Especifica um parâmetro constante com o tipo correspondendo a um parâmetro de função. Os seguintes tipos são suportados:
STRING, numérico (INTEGER,FLOAT,DOUBLE,DECIMAL...),BOOLEAN, ,INTERVALNULL.
Exemplos
Você pode encontrar mais exemplos em Filtros de linha e máscaras de coluna.
-- Create a table with a row filter column
> CREATE FUNCTION filter_emps(dept STRING) RETURN is_account_group_member(dept);
> CREATE TABLE employees(emp_name STRING, dept STRING) WITH ROW FILTER filter_emps ON (dept);
> INSERT INTO employees VALUES ('Jones', 'Engineering'), ('Smith', 'Sales');
-- As a member of engineering
> SELECT * FROM employees;
Jones Engineering
-- As a member of sales
> SELECT * FROM employees;
Smith Sales