问题标签 [duckdb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
335 浏览

c++ - 使用 cmake 在 windows 上编译 c++ 数据库时出错

对于我的硕士学位,我需要在一个名为 daddb 的数据库上工作(它在 git hub 上)。通常在 Linux 上,您可以简单地克隆它并“制作”它来安装。

安装 CMake 和 Cygwin 后,我在 Windows 上也感到厌烦。

但是在编译过程中我得到了错误

'DUCKDB~2/duckdb/THIRD_~1/catch/catch.hpp:1445:96:
错误:ISO C++ 禁止指针和整数之间的比较 [-fpermissive]

由于我怀疑duckdb的创建者确实把这件事搞砸了,我认为尝试将C文件编译为C++文件时可能会出现编译器错误。

我的主要问题是:如何在 Windows 上配置 make 命令以阻止它产生此错误?

我在安装了 gcc 5.1 和当前 cmake 的 Windows 7 和 10 系统上都尝试了它,并且都产生了这个错误。

编辑:这是完整的错误文本

[ 87%] 构建 CXX 对象 test/sql/capi/CMakeFiles/test_sql_capi.dir/ub_test_sql_capi.cpp.obj 在来自 C:/duckdb/test/sql/capi/test_capi.cpp:1:0 的文件中,来自 test_capi。 cpp:0:

C:/DUCKDB~2/duckdb/THIRD_~1/catch/catch.hpp: 在 'bool >Catch::compareNotEqual(const LhsT&, RhsT&&) [with LhsT = void*; RhsT = const >long long int&]':

C:/DB/DUCKDB~2/duckdb/THIRD_~1/catch/catch.hpp:1471:37: 需要来自 'const >Catch::BinaryExpr Catch::ExprLhs::operator!=(const >RhsT&) [with RhsT = long long int; LhsT = void* const&]'

C:/DB/duckdb/test/sql/capi/test_capi.cpp:332:2: 从这里需要 C:/DB/DUCKDB~2/duckdb/THIRD_~1/catch/catch.hpp:1445:96: 错误: ISO C++ 禁止比较 > 在指针和整数之间 [-fpermissive] auto compareNotEqual( LhsT const& lhs, RhsT&& rhs ) -> bool { return >static_cast(lhs != rhs); }

我只在路径等中编辑了我的用户名。

0 投票
2 回答
95 浏览

c++ - 尝试使用虚拟零件手动创建 unique_ptr 类实例

作为硕士论文,我需要在github上扩展数据库duckdb的功能。

第一步是创建一个固定的内部计划,代表类似于“选择 42”;只是在物理层面上。为此,我厌倦了使用duckdb 内部使用的类手动创建这样的计划。

在编译时,我通常会收到如下错误消息:

创作是这样的:

构造函数是

基表达式为

如您所见,类表达式使用类 baseExpression 的初始化列表。据我所知,两者之间没有直接继承,但显然我需要当前缺少的东西来正确初始化构造函数。

问题是通常在duckdb中,这些东西来自解析器,然后从这些对象构建。我必须尝试猜测数据结构应该是什么样子。

我在弄清楚如何使用 make_unique 直接分配此对象时遇到问题,因为表达式显然需要某种 baseExpression,但 baseexpression 本身具有虚拟组件,因此我也不能直接创建该组件。

基本上我要问的是:当类是抽象的时,你如何创建一个新的 unique_ptr 对象?

0 投票
1 回答
170 浏览

duckdb - DuckDB 如何处理稀疏表?

我们正在评估在我们的应用程序中嵌入duckdb。我们处理很多表,其中列在大多数情况下将稀疏 60-70%。Dukedb 是用默认的空值填充它们还是在内部支持稀疏性?

0 投票
1 回答
231 浏览

duckdb - CSV 阅读器行为

我喜欢这个功能: CREATE VIEW ontime AS SELECT * FROM read_csv_auto('test.csv'); 但注意到它无法正确识别加载大型 csv 文件的列类型,并且无法读取不适合已识别列类型的行。csv阅读器用来决定列类型的默认行数是多少?是否可以调整这些行的数量?

0 投票
1 回答
130 浏览

c# - 带有嵌套结构数组的 PInvoke 结构

我正在尝试 PInvoke 一个具有嵌套结构数组指针的结构参数的方法。c 声明如下所示:

我在 C# 中这样声明它们:

但是当我尝试执行查询并读取列时,我没有得到任何有意义的数据:

列数据

我应该如何更改 PInvoke 声明,以便在执行查询后可以读取列?

在以下位置有示例 c 代码:DuckDB c 示例

更新 1

我可以使用以下代码获取列名:

type字段仍然说DUCKDB_TYPE_INVALID

在此处输入图像描述 在此处输入图像描述

更新 2

正如大卫在他的回答中所建议的那样,我改为bool nullmask;现在IntPtr nullmask;可以阅读这样的列信息:

0 投票
1 回答
217 浏览

duckdb - 如何在duckdb上真空(减少文件大小)

我正在测试用于分析的duckdb 数据库,我必须说它非常快。问题是数据库文件不断增长,但我需要将其缩小以共享它。

在 sqlite 中,我记得使用 VACUUM commadn,但这里相同的命令什么也不做。大小是一样的。

如何减少duckdb数据库的文件大小?

0 投票
1 回答
258 浏览

r - R: DuckDB DBconnect 很慢 - 为什么?

我有一个 *.csv 文件,其中包含列式数字和字符串(磁盘上 13GB),我将其导入新的duckdb(或 sqlite)数据库并将其保存,以便稍后在 R 中访问它。但是重新连接会重复它并且非常慢,这是错的吗?

在 R 中,我正在执行以下操作:

然后我关闭 R 并重新启动它以查看它是否有效:

#这超级慢(大约 10 分钟),因为它看起来像是在某处再次写入数据库。但为什么?

注意。我已将 sqlite 添加为标签,因为我认为这不是鸭子数据库特有的

0 投票
1 回答
198 浏览

r - 池:无法打开数据库

我正在尝试使用pool连接到我的 DuckDB/SQLite 数据库。

当我然后输入

我无法打开数据库。

所以我尝试:

所以我回到

这现在根本不会打开数据库(以前工作得很好)。数据库仍在磁盘上,大小约为 24G。任何关于正在发生的事情的想法都非常感谢!

0 投票
1 回答
222 浏览

r - 如何创建多列索引 DuckDB/SQLite?

我有一个 DuckDB,其中包含我想使用多列查询的数据列。我在 R 中,但我不确定如何创建多列索引(甚至是单列索引)。任何人都可以建议参考吗?我已将 SQLite 添加为标签,因为我认为这些命令可能是相同的。

编辑: 根据 kukuk1de 的建议,我正在尝试以下

但我收到以下错误:

0 投票
0 回答
53 浏览

r - R:如何在 flexdashboard 中关闭数据库?

我有一个 flexdashboard,它从本地 DuckDB(类似于 SQLite)查询,但它经常说:

我的代码中没有“onStop dbdisconnect”样式命令(我不确定将它放在 flexdashboard 中的哪个位置),因此如果我的 R 实例崩溃,它不会正确关闭。我唯一的解决方案是重新启动计算机。我怎样才能解决这个问题?