使用 MonetDBLite C API 连接到现有的数据库场

Posted

技术标签:

【中文标题】使用 MonetDBLite C API 连接到现有的数据库场【英文标题】:Connecting to an existing db farm using MonetDBLite C API 【发布时间】:2018-10-09 07:35:49 【问题描述】:

我有一个使用数据库(例如:temp)创建的数据库场。当我尝试使用 monetdb_startup 连接时,出现以下错误。

src/gdk/gdk_utils.c:1465: GDKfree: 断言 `(asize & 2) == 0' 失败。 中止(核心转储)

    我正在使用提供的示例应用程序 tests/readme/readme.c。 monetdb_startup("/dbfarm/temp", 0, 0) 是我想要做的。 正在使用的 Monet 版本: MonetDB 5 服务器 v11.29.3 “Mar2018”(64 位、128 位整数)

    堆栈跟踪:

            #0  0x0000003f39232495 in raise () from /lib64/libc.so.6
            #1  0x0000003f39233c75 in abort () from /lib64/libc.so.6
            #2  0x0000003f3922b60e in __assert_fail_base () from /lib64/libc.so.6
            #3  0x0000003f3922b6d0 in __assert_fail () from /lib64/libc.so.6
            #4  0x00007ffff799bc3c in GDKfree (s=0x19602e0) at src/gdk/gdk_utils.c:1465
            #5  0x00007ffff79a8521 in freeException (msg=0x19602e0 '▒' <repeats 88 times>, "▒L\001") at src/mal/mal/mal_exception.c:135
            #6  0x00007ffff7b38c09 in SQLupgrades (c=0x7ffff42b2400, m=0x1815460) at src/mal/sqlbackend/sql_upgrades.c:1442
            #7  0x00007ffff7b1edb2 in SQLinitClient (c=0x7ffff42b2400) at src/mal/sqlbackend/sql_scenario.c:612
            #8  0x00007ffff7404f32 in monetdb_connect () at src/embedded/embedded.c:72
            #9  0x00007ffff74055da in monetdb_startup (dbdir=0x7fffffffd7c0 "/dbfarm/temp/", silent=0 '\000', sequential=0 '\000')
                at src/embedded/embedded.c:162
    

谢谢

【问题讨论】:

所以数据库是使用 MonetDB 创建的,而您正在尝试使用 MonetDBLite 连接到它? 是的。在调试时,发现执行方法sql_update_mar2018时出现异常(解析错误),特别是在执行时,我猜是元数据sqls。我避免调用 sql_update_mar2018 并且它有效。我能够看到现有 dbfarm 中的表。但不确定这个解决方案。如果有帮助,我可以获得确切的堆栈跟踪。 【参考方案1】:

一般来说,不支持此用例。因此,在版本之间升级 MonetDBLite 数据库应该可以正常工作,但是从 MonetDBLite 移动到 MonetDB 并返回可能会出现错误和/或崩溃。

【讨论】:

以上是关于使用 MonetDBLite C API 连接到现有的数据库场的主要内容,如果未能解决你的问题,请参考以下文章

从 MonetdbLite C API 使用 monetdb_append

为啥在连接到 mailchimp API 3.0 时出现 401 错误

连接到 Google API 客户端时出现问题

将 Notion API 连接到 Power BI 时出现错误 400

连接到我的 api 时出现电子内容安全策略错误

尝试连接到 AWS Gateway 私有 API 时出现 UnknownHostException