From 8044f33450ab5143b5316304b36f39537623c7ea Mon Sep 17 00:00:00 2001 From: hns Date: Mon, 29 Aug 2005 15:25:30 +0000 Subject: [PATCH] * Only prepend table name to query if access name doesn't contain "(" or "." This makes it possible to use an SQL function as group criterium --- src/helma/objectmodel/db/NodeManager.java | 9 +++++---- src/helma/objectmodel/db/Relation.java | 6 ++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/helma/objectmodel/db/NodeManager.java b/src/helma/objectmodel/db/NodeManager.java index 2cfd8963..24b294d3 100644 --- a/src/helma/objectmodel/db/NodeManager.java +++ b/src/helma/objectmodel/db/NodeManager.java @@ -908,9 +908,10 @@ public final class NodeManager { b.append(rel.queryHints).append(" "); } - b.append(table).append('.') - .append(idfield).append(" FROM ") - .append(table); + if (idfield.indexOf('(') == -1 && idfield.indexOf('.') == -1) { + b.append(table).append('.'); + } + b.append(idfield).append(" FROM ").append(table); rel.appendAdditionalTables(b); @@ -1345,7 +1346,7 @@ public final class NodeManager { // if we do a groupby query (creating an intermediate layer of groupby nodes), // retrieve the value of that field instead of the primary key - String namefield = (rel.groupby == null) ? rel.accessName : rel.groupby; + String namefield = (rel.groupby == null) ? rel.accessName : rel.groupby; Connection con = rel.otherType.getConnection(); // set connection to read-only mode if (!con.isReadOnly()) con.setReadOnly(true); diff --git a/src/helma/objectmodel/db/Relation.java b/src/helma/objectmodel/db/Relation.java index 9a3c858b..54a2269b 100644 --- a/src/helma/objectmodel/db/Relation.java +++ b/src/helma/objectmodel/db/Relation.java @@ -1242,8 +1242,10 @@ public final class Relation { local = ref.getString(homeprop); } - q.append(otherType.getTableName()); - q.append("."); + if (foreignName.indexOf('(') == -1 && foreignName.indexOf('.') == -1) { + q.append(otherType.getTableName()); + q.append("."); + } q.append(foreignName); q.append(" = ");