AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-5921

machineghost's questions

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

为什么向我的 PostgreSQL 函数添加(未使用的)参数会使其返回 Null?

  • 6

我有一个 PostgreSQL 函数:

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

它运行良好,并按some_table预期返回记录。但是,如果我编写完全相同的查询,除了添加一个可选参数:

CREATE OR REPLACE FUNCTION test(arg VARCHAR DEFAULT NULL)

该函数返回单个结果:

null | null | null | null | null | null

有人能解释一下为什么吗?据我了解,未使用的参数(尤其是带有 的参数DEFAULT)甚至不应该对函数或其查询产生任何影响。

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

TypeScript:是否可以禁用TS背后的规则(1345)

  • 5

TypeScript 将抛出一个错误(“无法测试类型为‘void’的表达式的真实性。ts(1345)”),有效的调试代码如下:

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

有多种方法可以解决这个问题(添加+、,等),但它们并不在所有情况下都有效......更重要的是,它们是不必要的工作,没有任何好处(没有它们,JS 也能很好地工作)。

大多数 TypeScript 规则都可以关闭。是否有任何 TypeScript(或 ESLint)规则可以禁用以使 TypeScript 不会抛出这些错误?

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

PostgreSQL:如何将行集传递给函数

  • 5

我正在使用 Postgraphile,它可以让您创建以行集作为参数的函数。例如,我有一个将system_versions行集作为参数的函数:

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

通常这些函数是由 Postgraphile 调用的,但我需要手动调用这个函数进行测试......而且我不知道如何提供参数。

当我尝试时:

SELECT public.system_versions_edition_versions(public.system_versions);

我得到:

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

但是当我尝试选择表时......

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

我得到:

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

当我有一个带有“行集”参数的函数时,任何人都可以解释我如何提供该参数吗?

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

Typescript:@ts-ignore 不适用于未重新分配的 Let 变量?

  • 5

背景故事(请随意跳到问题所在)

我正在尝试解构来自 Apollo 的响应useLazyQuery,然后更改一个变量。如果没有 Typescript,这将是两行简单的代码:

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

然而,这冒犯了 Typescript,因为我正在创建所有变量let,即使大多数变量没有改变。因此,我更改了代码以将大部分响应解构为常量,但有一个例外:

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

问题是,我仍然收到 TypeScript 错误/警告:

77:8 警告 '_' 被分配了一个值但从未使用过 no-unused-vars

77:8 错误“_”永远不会重新分配。使用'const'代替prefer-const

当然,_只是一个帮助我解构的占位符data,所以不应该重新分配它......但需要它才能let使解构工作。

问题

我本以为我可以_通过添加@ts-ignore评论来告诉 Typescript“不用担心,只需忽略它”:

 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

但所做的只是添加一个关于我应该如何使用的新警告,@ts-expect-error而不是@ts-ignore......它并没有消除关于我的_变量的警告/错误。

问题(两个相关的问题)

  1. 我认为@ts-ignore忽略了下一行的所有警告/错误;谁能解释一下 Typescript 如何决定哪些警告/错误@ts-ignore实际上被忽略,哪些不被忽略?

  2. 谁能解释一下我如何才能让 Typescript 停止抱怨'_' is never reassigned. Use 'const' instead错误(使用@ts-ignore或其他任何东西)......而不放弃解构等基本语言功能?

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

当我不知道哪件事先发生时,我怎么能期待两件事呢?

  • 5

我正在尝试编写一个剧作家测试,该测试在提交表单后执行某些操作。提交表单后,会发生两件事:

  1. “抽屉”关闭
  2. 弹出“通知”

问题是,这两件事的顺序可能会因为随机性而改变。那么我是否这样做:

await expectDrawerToClose();
await expectNotification();

或者:

await expectNotification();
await expectDrawerToClose();

...无论哪种方式,有时都会出错。Playwright 有什么办法可以做到:

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

我知道我可以将定位器与 链接在一起or,但这不是同一件事:我不想说“我会看到这两件事之一发生”......我想说“我会看到两者都会发生;我只是不关心顺序。”

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

Cypress:断言失败时如何暂停?

  • 6

这看起来非常基础,我不好意思问 Stack Overflow,但我发誓我先尝试过谷歌搜索并查看 Cypress 文档!

简单的问题:Cypress 有断言 ( cy.should) 和一种暂停测试运行程序的方法 ( cy.pause) ...有什么方法可以连接这两者,这样如果 ashould失败,测试运行程序就会暂停?

我知道我能做到:

cy.should(whatever)
  .pause();

...但每次都会暂停。我只想在失败时暂停should。

PS 你可能会想:

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

会起作用...但事实并非如此,因为(就像赛普拉斯中的所有内容一样)实际抛出的错误不会在线上发生should...它会在稍后发生(当它无法被捕获时)。

同样,我尝试这样做:

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

但它不起作用,大概是因为当使用 捕获错误时cy.on,已经来不及暂停了。

cypress
  • 2 个回答
  • 32 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

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

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve