You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by bu...@apache.org on 2002/03/17 20:02:40 UTC
DO NOT REPLY [Bug 7181] New: -
esql:group behaves erratically
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7181>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7181
esql:group behaves erratically
Summary: esql:group behaves erratically
Product: Cocoon 2
Version: Current CVS
Platform: PC
OS/Version: Windows NT/2K
Status: NEW
Severity: Normal
Priority: Other
Component: general components
AssignedTo: cocoon-dev@xml.apache.org
ReportedBy: ekarak@softlab.ece.ntua.gr
this is a copy of the default ESQL sample page, changed to use <esql:group> to
group employees by department. Needless to say that the exact same query works
fine with <esql:get-columns/> (although the results then are flattened and
unusable).
______________________________________________________________________________
<esql:execute-query>
<esql:query>
SELECT department.name, employee.id FROM department, employee
WHERE department.id = employee.department_id ORDER BY department.name
</esql:query>
<esql:results>
<esql:row-results>
<esql:group group-on='name'>
<Department><xsp:attribute name='name'><esql:get-string
column='name'/></xsp:attribute>
<esql:member><employee><esql:get-int
column='id'/></employee></esql:member>
</Department>
</esql:group>
</esql:row-results>
</esql:results>
</esql:execute-query>
_________________________________________________________________________________
The XSP code above breaks when one changes 'employee.id' to 'employee.name AS
empName' in the SELECT statement, and <esql:get-int column='id'/> to
<esql:get-string column='empName'/> producing an invalid (let alone incomplete)
XML fragment, as shown below:
_________________________________________________________________________________
<content>
<Department name="Development">
<employee>
</content>
_________________________________________________________________________________
The same problem manifests itself with different RDBM's such as SQL Server,
Postgres and Access so it shouldn't be a problem with JDBC drivers or the
connection manager.
I found the problem while working on large SQL queries that use aliases on
columns to differentiate columns with same names (e.g. 'name'). I suspect the
problem lies in the way the resultset's metadata are stored and used in
ESQLQuery.[getGroupingVar/setGroupingVar].
So, I download the whole Cocoon 2 CVS source and try to locate the bug. After
taking a quick glance inside the (huge) esql.xsl stylesheet, one word comes to
mind: CHAOS. One cannot possibly figure out what happens, let alone try to fix
it. I don't think it's wise to keep the whole logic in one XSL, it's just
doesn't make any sense. I don't want to impose on the developers, but don't you
think a little "Divide and conquer" might help?
Elias
---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org