Orbeon Forms 2018.1.1 CE和MySQL:任何创建的表单的摘要页面上均收到“执行搜索时出错”

时间:2018-12-27 14:25:18

标签: mysql orbeon

我已经使用Mysql作为关系数据库( Mysql版本:8.0.13 )安装了Orbeon Forms 2018.1.1 CE。

尽管我可以创建,保存和发布任何表单,但是当我尝试访问表单摘要时,却出现“执行搜索错误”错误。每当我尝试使用页面上部的“搜索表单”控件在摘要页面上搜索表单时,也会显示相同的错误。

除此之外,尽管数据库中的相关表包含适当的记录,但是摘要页面始终为空。该应用程序在 Apache Tomcat(8.5.35)上运行,并使用 mysql-2017_2.sql脚本 创建了数据库。 >

我还检查了orbeon.log文件,发现以下条目:

  

发生错误

     

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本以获取正确的语法   在第12行的row_number FROM orbeon_i_current c, (select @rownum := 0) r附近使用

     

应用程序调用堆栈

     

oxf:/apps/fr/page-flow.xml

     

读取页面浏览数据输出46

     

element = <service path="/fr/service/(oracle|mysql|postgresql|db2|sqlserver)/search/([^/^.]+)/([^/^.]+)" view="persisten view = persistence / relational / search.xpl

     

oxf:/apps/fr/persistence/relational/search.xpl

     

读取处理器输出22

     

element = <p:output name="data" ref="data"/>

     

名称=数据

     

ref =数据

我想知道摘要页面是否还有其他必需的配置才能正常工作。

使用P6Spy应用程序,我已经意识到以下查询似乎是导致错误消息的原因:

SELECT count(*)
  FROM (
           SELECT c.data_id,
           c.document_id,
           c.draft,
           c.created,
           c.last_modified_time,
           c.last_modified_by,
           c.username,
           c.groupname,
           c.organization_id,
           @rownum := @rownum + 1 row_number
      FROM orbeon_i_current c
           , (select @rownum := 0) r
     WHERE c.app     = 'DemoApp'         AND
           c.form    = 'DemoForm'
       AND c.draft = 'N'
) a

实际上,问题可能出在该行中:     @rownum:= @rownum + 1 row_number

MySQL从8.0版开始引入了窗口函数 ROW_NUMBER(),在这一行中,sql引擎将文字“ row_number”转换为函数。

1 个答案:

答案 0 :(得分:0)

这是bug,自Orbeon Forms 2018.2.1 PE起已修复。