问题标签 [htsql]

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 投票
1 回答
171 浏览

mysql - HTSQL生成的MySQL查询极慢

我有一个包含两个表的数据库:

形容词 - ID 主键;名称 varchar; adjectives_reviews - ID 主键;ADJECTIVE_ID 外键;REVIEW_ID 外键;计数整数

我想从 adjectives_reviews 中获取不同 ADJECTIVE_ID 的列表,其中包含具有相同 ADJECTIVE_ID 的所有行的“COUNT”列中的值的总和。

adjectives 表有 46,000 行,而 adjectives_reviews 有 ~2,849,708 行。

我正在使用以下 HTSQL 查询:

/adjectives{name,sum(adjectives_reviews.count)}

它被翻译成SQL:

这个查询产生了我想要的结果,但它太慢了。事实上,它太慢了,以至于 HTTP 服务器超时,我无法获得我需要的输出 CSV 文件。我正在寻找一种优化此查询的方法,或者一种在不使用 HTSQL 的 HTTP 接口的情况下将输出作为 CSV 的方法。

0 投票
1 回答
604 浏览

uuid - 如何查询 UUID 值而不必在 HTSQL 中将它们显式转换为字符串

我有一个由 UUID 字段索引的表,使用 postgres 的uuid-ossp扩展名,所有内容都在python应用程序上运行。每次我过滤 UUID 字段时,我都必须显式转换 uuid 字段:

如果我不投id我有以下错误:

似乎 HTSQL 无法识别 UUID 类型。所以我的问题是:

有什么方法可以告诉 HTSQL 如何识别 UUID?我也可以在命令行界面上执行此操作吗?

0 投票
1 回答
162 浏览

python - 无法建立连接:通过 mod_wsgi 的 HTSQL(未找到文件)

我想使用mod_wsgiapache服务器上集成HTSQL。apache 和 mod_wsgi 均已成功配置,hello world python 脚本执行并运行!

但是,当我尝试运行 HTSQL python 脚本(名为htsql_wsgi.py并使用以下说明:http ://htsql.org/doc/admin/deploy.html )时,我收到500 Internal Server Error。你能建议我一个解决方案吗?

Apache 错误日志显示:

我已经尝试过的事情:

  1. 复制错误直接在 Linux 上工作(目前在 MAMP 上工作)

  2. 在同一服务器上托管的同一文件(htsql_demo.sqlite)上直接通过 python(cmd 和 xUbuntu 终端)成功执行脚本。

  3. 使用权限(将 777 设置为包含 htsql_demo.sqlite 的文件夹)

  4. 使用 httpd.conf 上的权限(使用目录、文件、位置更改设置)

使用 MAMP(Windows 7、Apache 2.2.、Python 2.7.)或 xUbuntu(Apache 2.4.、Python 2.7.)时会出现问题。在两台机器上,错误是相同的。

非常感谢您的建议

0 投票
1 回答
107 浏览

python - 在解析 HTSQL 时处理语法歧义

我正在编写一个语法来解析 HTSQL 语法,并且一直在思考如何处理/段和除法运算符的字符重用。所描述的语法不是很正式,所以我一直在关注 Python 实现的确切输出,粗略一看,它似乎是一个手写的解析器,而不是使用解析器生成器 - 供参考我的解析器生成器当前使用的CL-YACCCL-LEX. (FWIW 完整的东西在这里,虽然可能有点过时了。)

我正在努力解决的一个歧义是由于"/1"被解析为'(:COLLECT (:INTEGER "1"))',但"/1/2"被解析为'(:COLLECT (:OPERATOR / (:INTEGER "1") (:INTEGER "2")))',即一个是段分隔符,另一个是除法;"/1//2"又是'(:COLLECT (:OPERATOR / (:INTEGER "1") (:COLLECT (:INTEGER "2"))))'

因此,问题是,我如何在不求助于手动解析器的情况下在语法规范中处理这个问题?切换到不同的解析器生成器类(而不是 LALR(1))会有帮助吗?

到目前为止,我已经尝试了语法的不同变体,但是整个语法的优先级是固定的这一事实也干扰了斜杠的两种解释。我尝试的另一种方法是在词法分析器中消除歧义,即以不同的方式处理第一个斜杠(在每个“组”中)并返回不同的符号,例如DIV- 但是我找不到一个好的规则并且以某种方式怀疑它是否存在纯粹是看词汇结构。

最后,我很想通过完全偏离给定的解析器来解决这个问题,以使我的生活更轻松。从某种意义上说,具有可预测的语法更容易理解,您是否认为这更可取?

图表 1,检查解析树的 Python 脚本:

图表 2,我当前的解析器,它没有正确处理这个问题:

0 投票
1 回答
71 浏览

join - 如何在特定于任何列的 HTSQL 中连接两个表

当两个表与外键正确链接时,HTSQL工作。

例如:

如果我们正确地定义了一个外键say 表示学校部门表引用,那么学校可以很容易地与部门连接。school_codecode

到目前为止,我无法找到任何方法来连接其他一些列上的两个表。

谁能帮我在HTSQL中做到这一点?

0 投票
1 回答
32 浏览

htsql - 更改默认 HTSQL 输出格式

我需要将我的 HTSQL 服务器设置为 JSON API 服务器,默认情况下返回 JSON 格式的输出,而不仅仅是在查询后跟/:json. 有没有办法做到这一点?

?foo='bar'&baz='moo'原因:我需要发送由自动将参数 ( ) 放在URL末尾的软件制定的查询,但 HTSQL 仅识别输出格式说明符,例如/:json在URL 的绝对末尾,参数之后。我不知道如何构建这样的 URL,而不需要对整个 URL 进行繁琐且容易出错的直接操作。

换句话说,HTSQL 要求 URL 看起来像

但我不能把/:json参数放在后面,所以我正在寻找一种/:json自动暗示的方法。