由于 mysqldb 区分大小写,Presto show tables 显示一个不存在的表

问题描述

就这个问题而言,我指的是品牌重塑后的 prestosql.ioTrino

我在这里有一张桌子(细节已编辑):

presto> SHOW TABLES FROM a.b;
     Table
----------------
 foo
...

presto> DESCRIBE a.b.foo;
Query <id> failed: line 1:1: Table 'a.b.foo' does not exist
DESCRIBE a.b.foo

它存在于一个 mysql 数据库中。我有一个 presto 目录 a,它有一个 mysqldb 连接器可以从 presto 查询其数据。

奇怪的是,即使我与 foo 的联系告诉我它是 mysql(f 大写),它仍然显示 Foo

mysql> describe b.Foo;
+--------------+------------------+------+-----+---------------------+----------------+
| Field        | Type             | Null | Key | Default             | Extra          |
+--------------+------------------+------+-----+---------------------+----------------+
...

mysql> describe b.foo;
ERROR 1146 (42S02): Table 'b.foo' doesn't exist

当我尝试在 presto 中描述这个表时,它失败了:

presto> DESCRIBE a.b.Foo;
Query <id> failed: line 1:1: Table 'a.b.foo' does not exist
DESCRIBE a.b.Foo

检查后,请注意它是如何说“表 'a.b.foo' 不存在”的,而不是 'a.b.Foo'。看看 mysql is case sensitive in most unices 的情况,在我看来,连接器正在从 Presto 传入一个无效的表名,我无法访问实际的表。

如果我的假设是正确的,我该如何解决这种情况?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)