AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-5921

machineghost's questions

Martin Hope
machineghost
Asked: 2025-01-20 01:15:41 +0800 CST

Por que adicionar um argumento (não utilizado) à minha função PostgreSQL faz com que ela retorne nulo?

  • 6

Tenho uma função PostgreSQL:

CREATE OR REPLACE FUNCTION test()
RETURNS some_table
LANGUAGE sql STABLE STRICT SECURITY DEFINER
AS $function$
  SELECT * FROM some_table ;
$function$;

Funciona muito bem e retorna registros some_tablecomo esperado. No entanto, se eu escrever exatamente a mesma consulta, exceto que adiciono um argumento opcional:

CREATE OR REPLACE FUNCTION test(arg VARCHAR DEFAULT NULL)

A função retorna um único resultado de:

null | null | null | null | null | null

Alguém pode explicar o porquê? Pelo que entendi, um argumento não usado ( especialmente um com um DEFAULT) não deveria nem ter impacto na função ou em sua consulta.

postgresql
  • 1 respostas
  • 35 Views
Martin Hope
machineghost
Asked: 2024-08-27 08:43:59 +0800 CST

TypeScript: é possível desativar a regra por trás do TS (1345)

  • 5

O TypeScript gerará um erro ("Uma expressão do tipo 'void' não pode ser testada para trueiness.ts(1345)") com código de depuração válido como:

const getFooPlusTwo = (foo) => console.log(foo) || foo + 2;

Existem vários hacks para contornar isso (adicionando +, ,, etc.), mas eles não funcionam em todas as circunstâncias ... e mais importante, são um trabalho desnecessário e sem nenhum benefício (JS funciona perfeitamente bem sem eles).

A maioria das regras TypeScript pode ser desativada. Existe alguma regra TypeScript (ou ESLint) que eu possa desabilitar para fazer com que o TypeScript não gere esses erros?

typescript
  • 2 respostas
  • 27 Views
Martin Hope
machineghost
Asked: 2024-02-20 03:07:38 +0800 CST

PostgreSQL: como passar um conjunto de linhas para uma função

  • 5

Estou usando o Postgraphile, que permite criar funções que usam conjuntos de linhas como argumentos. Por exemplo, tenho uma função que usa um system_versionsconjunto de linhas como parâmetro:

CREATE OR REPLACE FUNCTION public.system_versions_edition_versions(
    system_version system_versions,
    system_title character varying DEFAULT NULL::character varying
 )
 RETURNS SETOF edition_versions
 LANGUAGE sql
 STABLE STRICT SECURITY DEFINER
 AS $function$

        SELECT ev.*
        FROM public.edition_versions ev
        INNER JOIN public.editions e ON ev.edition_id  = e.id
        INNER JOIN public.systems s ON e.system_id  = s.id
        INNER JOIN public.system_versions sv ON s.id  = sv.system_id
        WHERE sv.id = system_version.id
        AND (
          system_title IS NULL
          OR
          sv.title = system_title
        )
  ;
  $function$
;

Normalmente essas funções são chamadas pelo Postgraphile, mas preciso chamar essa manualmente para testar... e não consigo descobrir como fornecer o parâmetro.

Quando eu tento:

SELECT public.system_versions_edition_versions(public.system_versions);

Eu recebo:

ERROR:  missing FROM-clause entry for table "public"
LINE 1: select public.system_versions_edition_versions(public.system...

Mas quando tento SELECT a tabela...

SELECT public.system_versions_edition_versions(SELECT * FROM public.
system_versions);

Eu recebo:

ERROR:  syntax error at or near "select"
LINE 1: select public.system_versions_edition_versions(select * from...

Quando tenho uma função com um parâmetro "row set", alguém pode explicar como forneço esse parâmetro?

postgresql
  • 1 respostas
  • 27 Views
Martin Hope
machineghost
Asked: 2023-12-22 02:24:11 +0800 CST

Texto datilografado: @ts-ignore não está funcionando na variável Let que não foi reatribuída?

  • 5

HISTÓRIA (sinta-se à vontade para pular para o problema)

Estou tentando desestruturar uma resposta de um Apollo useLazyQuerye depois alterar uma variável. Sem o Typescript, seriam duas linhas simples:

 let [someFunction, { data, loading }] = useLazyQuery(QUERY);
 data = 'whatever'

No entanto, isso ofende o Typescript, porque estou criando todas as variáveis let, embora a maioria não mude. Então, mudei o código para desestruturar a maior parte da resposta como constante, com uma única exceção:

 const stuff = useLazyQuery(QUERY);
 let [_, { data }] = stuff; // get one variable as a non-constant
 const [someFunction, { loading }] = stuff; // get the rest as constants

O problema é que ainda estou recebendo erros/avisos do TypeScript:

O aviso 77:8 '_' recebeu um valor, mas nunca foi usado no-unused-vars

O erro 77:8 '_' nunca é reatribuído. Use 'const' em vez de prefer-const

Claro, _é apenas um espaço reservado para me ajudar a desestruturar data, então não deveria ser reatribuído... mas é necessário na letlinha para fazer a desestruturação funcionar.

PROBLEMA

Eu teria pensado que poderia dizer ao Typescript "não se preocupe _, apenas ignore" adicionando um @ts-ignorecomentário:

 const stuff = useLazyQuery(QUERY);
 // @ts-ignore
 let [_, { data }] = stuff; // get one variable as a non-constant
 const [someFunction, { loading }] = stuff; // get the rest as constants

Mas tudo o que isso faz é adicionar um novo aviso sobre como devo usar @ts-expect-errorem vez de @ts-ignore... isso não elimina o aviso/erro sobre minha _variável.

PERGUNTAS (duas relacionadas)

  1. Achei que @ts-ignoreignorei todos os avisos/erros na próxima linha; alguém pode explicar como o Typescript decide quais avisos/erros @ts-ignorerealmente ignoram e quais não?

  2. Alguém pode explicar como posso fazer o Typescript parar de reclamar de '_' is never reassigned. Use 'const' insteaderros (de uso @ts-ignoreou qualquer outra coisa)... sem abrir mão de recursos básicos da linguagem, como desestruturação?

typescript
  • 1 respostas
  • 16 Views
Martin Hope
machineghost
Asked: 2023-12-08 07:57:39 +0800 CST

Como posso esperar duas coisas quando não sei o que acontecerá primeiro?

  • 5

Estou tentando escrever um teste de dramaturgo que faça algo após o envio de um formulário. Depois que o formulário é enviado, duas coisas acontecem:

  1. uma "gaveta" fecha
  2. uma "notificação" aparece

O problema é que a ordem dessas duas coisas pode mudar, apenas devido à aleatoriedade. Então, se eu fizer:

await expectDrawerToClose();
await expectNotification();

ou:

await expectNotification();
await expectDrawerToClose();

... de qualquer forma, às vezes será errado. Existe alguma maneira no Playwright de fazer de alguma forma:

await expectTwoThingsToHappenInAnyOrder(
    expectDrawerToClose(),
    expectNotification()
);

Eu sei que posso encadear localizadores com or, mas isso não é a mesma coisa: não quero dizer "Vou ver uma dessas duas coisas acontecer" ... quero dizer "Vou ver ambos acontecem; eu simplesmente não me importo com a ordem."

playwright
  • 1 respostas
  • 58 Views
Martin Hope
machineghost
Asked: 2023-11-27 01:46:19 +0800 CST

Cypress: Como fazer uma pausa quando uma afirmação falha?

  • 6

Isso parece tão incrivelmente básico que tenho vergonha de perguntar ao Stack Overflow, mas juro que tentei pesquisar no Google e ver os documentos do Cypress primeiro!

Pergunta simples: Cypress tem asserções ( cy.should) e uma maneira de pausar o executor de teste ( cy.pause) ... existe alguma maneira de conectar os dois, de modo que, se shouldfalhar, o executor de teste faça uma pausa?

Eu sei que posso fazer:

cy.should(whatever)
  .pause();

... mas isso sempre faz uma pausa . Eu só quero fazer uma pausa se falhar should.

PS Você pode pensar:

try {
  cy.should(whatever)
} catch (err) {
  cy.pause();
}

funcionaria ... mas não funciona, porque (como tudo no Cypress) o lançamento real do erro não acontece na shouldlinha ... acontece mais tarde (quando não pode ser detectado).

Da mesma forma, tentei fazer:

cy.on('uncaught:exception', () => {
  cy.pause();
});
cy.should(whatever);

Mas não funciona, provavelmente porque quando o erro é detectado usando cy.on, já é tarde demais para fazer uma pausa.

cypress
  • 2 respostas
  • 32 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve