Saltar al contenido principal
Página traducida

Esta página se tradujo del inglés con ayuda de IA. Si hay diferencias entre ambas, la versión en inglés es la referencia.

UNSET

Elimina una variable de sesión o quita la configuración de tiempo de ejecución establecida con SET para la sesión actual. Disponible a partir de StackQL v1.0.

Consulte también:
[SET] [ Variables de sesión ] [ Sesiones de provider ]


Sintaxis​

unsetStatement::=

UNSETSESSIONvariableNameconfigurationPath','variableNameconfigurationPath';'

 
 

UNSET [ SESSION ] <target> [, <target> ...];

target
Cualquier destino aceptado por SET: un nombre de variable simple o entre comillas dobles, o una ruta de configuración entre comillas dobles y con prefijo de dólar.

SESSION
Opcional, y el único ámbito que existe: UNSET SESSION name y UNSET name son la misma instrucción, porque cada variable y cada ajuste de configuración pertenece a la sesión actual. UNSET GLOBAL se rechaza con configuration scope "global" is not supported; use SESSION.

UNSET name equivale a SET name = DEFAULT. Los destinos de una lista se eliminan en orden, y eliminar un nombre que no está asignado no es un error. Desreferenciar una variable después de eliminarla falla antes de que se haga ninguna solicitud al provider.

DestinoEfecto
nameElimina la variable de sesión.
"$.auth.<provider>.<field>"Elimina ese campo del contexto de autenticación de sesión del provider. El valor vigente antes de la sobrescritura no se restaura.
"$.providers.<alias>"Elimina la vinculación del alias de provider.
"$.secrets.<name>"Elimina el secreto del almacén de la sesión. En un almacén persistente del sistema operativo, esto elimina el valor almacenado.
"$.secret_store"Descarta la vinculación actual del almacén y comienza con la memoria de sesión vacía. Los valores ya persistidos en un almacén del sistema operativo no se eliminan.

Ejemplos​

Eliminar una variable​

La variable se elimina de la sesión, de modo que la consulta comentada falla con variable "$region" is not defined en lugar de ejecutarse con un valor obsoleto o vacío. Vuelva a asignar el nombre para reutilizarlo.

SET region = 'ap-southeast-2';
UNSET region;

/*
SELECT name FROM aws.s3.buckets WHERE region = $region;
-- FAILS with variable "$region" is not defined
*/

Eliminar varios destinos​

Una sola instrucción puede eliminar variables y rutas de configuración a la vez, y los destinos se procesan en orden. Aquí se eliminan en una sola lista una variable simple, una variable con un nombre con puntos y una sobrescritura de credenciales.

UNSET region, "providers.saved", "$.auth.github.credentialsenvvar";

Hacer explícito el ámbito de sesión​

Estas dos instrucciones hacen lo mismo: SESSION nombra el único ámbito que existe. La forma explícita es adecuada para los scripts que también se ejecutan en bases de datos que distinguen entre el estado de sesión y el estado global. La instrucción comentada falla porque no existe ningún estado compartido.

UNSET region;
UNSET SESSION region;

/*
UNSET GLOBAL region;
-- FAILS with configuration scope "global" is not supported; use SESSION
*/

Quitar una sobrescritura de credenciales​

El campo establecido antes con SET "$.auth.github.credentialsenvvar" se elimina del contexto de autenticación de sesión del provider de GitHub, y los demás campos de ese contexto no se modifican. El valor vigente antes de la sobrescritura no se restaura, así que vuelva a establecer el campo si el provider aún lo necesita.

UNSET "$.auth.github.credentialsenvvar";

Eliminar un alias de provider y su secreto​

El alias production se vinculó con SET "$.providers.production" y hace referencia, mediante auth_secret, a un secreto almacenado en $.secrets.production. Al eliminar ambos en una sola instrucción se descarta la vinculación, de modo que production.s3.buckets deja de ser una relación válida, y se elimina el secreto del almacén de la sesión. SESSION es opcional aquí, como en todas partes.

UNSET SESSION "$.providers.production", "$.secrets.production";