On Mon, 30 Jul 2001 17:39:57 -0400, Brian Weaver wrote:
Believe me, I'm using PostgreSQL too, in a rather complex mapping in
a even more complex project. And I had the same prob, too.
And first, I made the same as you: I patched PostgreSQLFactory.java.
And later, I undid my patch again as I saw that the two statements
select * from "Blubb"
and
select * from Blubb
mean two different tables:
"Blubb" means the table Blubb (which has to be created by create
table "Blubb").
Blubb means blubb (which can be created by using
create table [BLUBB|blubb|Blubb|BlUbB]...
see?
>Um... I found an answer that worked, but it's not your solution. I'm
>really unsure on the double quotes being used at all. I edited the
>class: org.exolab.castor.jdo.drivers.PostgreSQLFactory.
>
>Below is my cvs diff of what I did. In essence I just removed the
>double quoting from the SQL factory for PostgreSQL and all is
>happy. Haven't had trouble since.
>
>
>Index: src/main/org/exolab/castor/jdo/drivers/PostgreSQLFactory.java
>===================================================================
>RCS file:
>/cvs/castor/castor/src/main/org/exolab/castor/jdo/drivers/PostgreSQLFactory.java,v
>retrieving revision 1.9
>diff -r1.9 PostgreSQLFactory.java
>94c94,95
>< int index;
>---
>> return name;
>> //int index;
>96,99c97,100
>< index = name.indexOf( '.' );
>< if ( index > 0 )
>< return "\"" + name.substring( 0, index ) + "\".\"" + name.substring(
>index + 1 ) + "\"";
>< return '"' + name + '"';
>---
>> //index = name.indexOf( '.' );
>> //if ( index > 0 )
>> //return "\"" + name.substring( 0, index ) + "\".\"" + name.substring(
>index + 1 ) + "\"";
>> //return '"' + name + '"';
>
>Later
>
>Weave
>
>
>Patric Bechtel [[EMAIL PROTECTED]] wrote:
>> On Fri, 27 Jul 2001 14:24:11 -0400, Brian Weaver wrote:
>>
>> The problem is not the statement, but your tables.
>> If you use "Foo" in a query, it will scan for a table named Foo (with
>> capital F), without the quotes it will (only!) scan for a table named
>> foo (with lower case f).
>> So what you've done is, you built your table events with a column
>> named eventid, and Castor wants it be named eventID.
>> Two solutions: Correct the mapping (sql name="eventid") or
>> rename the column inside PostgreSQL (alter table...).
>>
>> hope that helps...
>>
>>
>>
>> >Hi,
>> >
>> >I've been playing with Castor for the past few days, looking
>> >through the code when I've run into errors. I've finally
>> >got my mapping.xml, database.xml, and java classes all "working"...
>> >
>> >Now when I execute an OQL statement it returns the following
>> >error:
>> >
>> >org.exolab.castor.jdo.PersistenceException: Nested error: java.sql.SQLException:
>ERROR: No such attribute or
>> function 'eventID'
>> > while executing SELECT
>>
"events"."eventID","events"."eventUei","events"."nodeID","events"."eventTime","events"."eventHost","events"."ipAd
>>
dr","events"."eventDpName","events"."eventSnmpHost","events"."serviceID","events"."eventSnmp","events"."eventParm
>>
s","events"."eventCreateTime","events"."eventDescr","events"."eventLoggroup","events"."eventLogmsg","events"."eve
>>
ntSeverity","events"."eventPathOutage","events"."eventCorrelation","events"."eventSuppressedCount","events"."even
>>
tOperInstruct","events"."eventAutoAction","events"."eventOperAction","events"."eventOperActionMenuText","events".
>>
"eventNotification","events"."eventTticket","events"."eventTticketState","events"."eventForward","events"."eventM
>>
>ouseOverText","events"."eventLog","events"."eventDisplay","events"."eventAckUser","events"."eventAckTime"
> FROM
>> "events"
>> >java.sql.SQLException: ERROR: No such attribute or function 'eventID'
>> >
>> > at org.postgresql.Connection.ExecSQL(Connection.java:533)
>> > at org.postgresql.jdbc2.Statement.execute(Statement.java:294)
>> > at org.postgresql.jdbc2.Statement.executeQuery(Statement.java:59)
>> > at
>org.postgresql.jdbc2.PreparedStatement.executeQuery(PreparedStatement.java:108)
>> > at org.exolab.castor.jdo.engine.SQLEngine$SQLQuery.execute(SQLEngine.java:1576)
>> > at
>org.exolab.castor.persist.TransactionContext.query(TransactionContext.java:616)
>> > at org.exolab.castor.jdo.engine.OQLQueryImpl.execute(OQLQueryImpl.java:457)
>> > at org.exolab.castor.jdo.engine.OQLQueryImpl.execute(OQLQueryImpl.java:404)
>> > at org.opennms.netmgt.db.Test.run(Test.java:73)
>> > at org.opennms.netmgt.db.Test.main(Test.java:33)
>> >
>> >I took the 'SELECT ... FROM "events"' and feed that into
>> >pgsql. It didn't like it, but if I stripped out the double
>> >quotes from the entire statement it worked fine...
>> >
>> >How do I disable the quoting around each element in castor. I'm working
>> >with the latest CVS tree.
>> >
>> >Weave
>> >
>> >-----------------------------------------------------------
>> >If you wish to unsubscribe from this mailing, send mail to
>> >[EMAIL PROTECTED] with a subject of:
>> > unsubscribe castor-dev
>> >
>> >
>>
>>
>> sincerely,
>>
>> Patric Bechtel
>> IPCON Informationssysteme
>>
>> PGP Public Key Fingerprint: 5579 8D11 C4A4 DD84 1CC0 D2D1 112F A924
>>
>> -----------------------------------------------------------
>> If you wish to unsubscribe from this mailing, send mail to
>> [EMAIL PROTECTED] with a subject of:
>> unsubscribe castor-dev
>
>-----------------------------------------------------------
>If you wish to unsubscribe from this mailing, send mail to
>[EMAIL PROTECTED] with a subject of:
> unsubscribe castor-dev
>
>
sincerely,
Patric Bechtel
IPCON Informationssysteme
PGP Public Key Fingerprint: 5579 8D11 C4A4 DD84 1CC0 D2D1 112F A924
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev