Strange messages in Server 3.5.2 log

Hi,

We are getting lots of these messages in the logs:

2007-11-29 13:40	RMI TCP Connection(718)-192.168.2.105	ERROR	com.servoy.j2db.util.Debug	create local temporary table HT_TEMP_6328987211 ("transaction_id"_632898721" int4) on commit drop

Any ideas?

PostgreSQL 8.1.4, Win 2003, Servoy 3.5.2

can this have something to do with

controller.sort('somerelation.somefield ASC');

Sorting on a related field?

Hi Christian,

I doubt a sort on a related value will start or commit a transaction and that’s what it apparently tries to do.
Seems Servoy creates a temp table for each transaction. Do you see any messages in the postgres.log ?
Does Servoy connect to the repository with rights to create/drop (temp) tables ?

Hope this helps.

I have 1,000s of these messages in the logs…

2007-11-29 16:04	RMI TCP Connection(383)-192.168.2.105	ERROR	com.servoy.j2db.util.Debug	create local temporary table HT_TEMP_6345035149 ("transaction_id"_634503515" int4) on commit drop
org.postgresql.util.PSQLException: ERROR: unterminated quoted identifier at or near "" int4) on commit drop" 
    	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1525) 
    	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1309) 
    	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188) 
    	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452) 
    	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:354) 
    	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:308) 
    	at sun.reflect.GeneratedMethodAccessor242.invoke(Unknown Source) 
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    	at java.lang.reflect.Method.invoke(Unknown Source) 
    	at com.servoy.j2db.persistence.datasource.p.invoke(Unknown Source) 
    	at $Proxy1.executeUpdate(Unknown Source) 
    	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:207) 
    	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:207) 
    	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:207) 
    	at com.servoy.j2db.dataprocessing.SQLEngine.a(Unknown Source) 
    	at com.servoy.j2db.dataprocessing.SQLEngine.a(Unknown Source) 
    	at com.servoy.j2db.dataprocessing.SQLEngine.performQuery(Unknown Source) 
    	at sun.reflect.GeneratedMethodAccessor243.invoke(Unknown Source) 
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    	at java.lang.reflect.Method.invoke(Unknown Source) 
    	at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source) 
    	at sun.rmi.transport.Transport$1.run(Unknown Source) 
    	at java.security.AccessController.doPrivileged(Native Method) 
    	at sun.rmi.transport.Transport.serviceCall(Unknown Source) 
    	at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source) 
    	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source) 
    	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source) 
    	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    	at java.lang.Thread.run(Unknown Source)

Seems like a bug in the prepared statement.
“transaction_id”_634503515" has 1 quote too many.
Are you using the latest matching JDBC driver?

Christian,

When you load a foundset by pk list and the list is longer than 200 PKs, servoy will not generate a in-query, instead it will create a temp table, load the PKs in it and join it with your table.

The temp table column name is based on the original column name, unfortunately, when this column name is suspected to be a keyword (like transaction_id) we apply inappropriate quoting which causes your problem.

This will be fixed in release 3.5.3.

Rob

Thanks for fixing this!

:slight_smile: