SQL Power Business Intelligence Productivity Tools
Company OverviewBusiness Intelligence Productivity ToolsQuick-Start Implementation ServicesDemos & TurotialsFrequently Asked Questions (FAQ)Open Source Community ResourcesSQL Power ForumImplementation & Technology PartnersGet SQL Power SoftwareContact Us

SQL Power Software Forum

SQL Power Software Forum

  [Search] Search   [Recent Topics] Recent Topics   [Hottest Topics] Hottest Topics   [Members]  Member Listing   [Groups] Back to home page  [Register] Register /  [Login] Login 
Munge Create Failure on Postres  XML
Forum Index » SQL Power DQguru Bugs
Author Message
donn


Joined: 2009-02-04 13:44:43
Messages: 13
Offline

Match Maker version 0.9.5 build #217, first spotted in 0.9.4
JRE 1.6.0_11
MatchMaker provided postgres JDBC driver
Accessing PostgreSQL 8.2
===================

Munge creation dialog accepts all required data for step creation, correctly finds the source table and creates the RESULTs table, but fails when displaying the munge design panel.

The contents of the java error stack suggests that an attempt is being made to open the source table with the right table name, but the wrong case. Postgres object names are case sensitive as I recall.

It looks like the munge creation dialog found the source table in uppercase (public.MDM_CUSTOMER), but then tries to access it by referencing the table with a lower case table name (public.mdm_customer), and therefore does not find the table.

How about "public"."MDM_CUSTOMER"?


Alert panel messages follow ======================================

java.lang.RuntimeException

Could not setup the input Munge step!


Java error stack follows =========================================

java.lang.RuntimeException: Could not set up the input munge step!
at ca.sqlpower.matchmaker.swingui.action.NewMungeProcessAction.actionPerformed(NewMungeProcessAction.java:91)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: org.postgresql.util.PSQLException: ERROR: relation "public.mdm_customer" does not exist
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:154
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1316)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:337)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:236)
at ca.sqlpower.sql.jdbcwrapper.StatementDecorator.executeQuery(StatementDecorator.java:92)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:205)
at ca.sqlpower.matchmaker.munge.SQLInputStep.doOpen(SQLInputStep.java:190)
at ca.sqlpower.matchmaker.munge.AbstractMungeStep.open(AbstractMungeStep.java:483)
at ca.sqlpower.matchmaker.swingui.action.NewMungeProcessAction.actionPerformed(NewMungeProcessAction.java:87)
... 25 more
donn


Joined: 2009-02-04 13:44:43
Messages: 13
Offline

Match Maker version 0.9.5 build #217, first spotted in 0.9.4
JRE 1.6.0_11
MatchMaker provided postgres JDBC driver
Accessing PostgreSQL 8.2
===================

After recreating my test table with a lower-case name, I find that the incorrect case is used for referencing column names. See the java error stack below.

The source table widget still appears in the munge process definition panel however, and is defined with the correct (in my example, UPPER case column names) - so the widget definition and manifest is apparently done with the correct column name case.

Again, column 'customer_id' as seen in the error stack does not exist, but column 'CUSTOMER_IT' does and is the correct column name in the source table. Correcting the code to present the right column name case should correct this problem.

Java error stack follows ============================================

java.lang.RuntimeException: Could not set up the input munge step!
at ca.sqlpower.matchmaker.swingui.action.NewMungeProcessAction.actionPerformed(NewMungeProcessAction.java:91)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: org.postgresql.util.PSQLException: ERROR: column "customer_id" does not exist
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:154
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1316)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:337)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:236)
at ca.sqlpower.sql.jdbcwrapper.StatementDecorator.executeQuery(StatementDecorator.java:92)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:205)
at ca.sqlpower.matchmaker.munge.SQLInputStep.doOpen(SQLInputStep.java:190)
at ca.sqlpower.matchmaker.munge.AbstractMungeStep.open(AbstractMungeStep.java:483)
at ca.sqlpower.matchmaker.swingui.action.NewMungeProcessAction.actionPerformed(NewMungeProcessAction.java:87)
... 25 more
Jeff
SQL Power Developer
[Avatar]

Joined: 2007-06-27 18:31:33
Messages: 410
Offline

Hi again,

Thanks for reporting this.

It appears there are some problems with running Power*MatchMaker on a database with case-sensitive tables and columns.

Running similar operations on a PostgreSQL database running on Windows or Mac OS X appears to work because they appear to lower-case everything.

UPDATE: I should correct myself on a statement I made, in which I stated that PostgreSQL was case-sensitive on Linux. That's not really true. It still lowercases all your identifiers unless you quoted the table or column names. And this is also true with the OS X version of PostgreSQL (haven't tested the Windows one but I can only presume it behaves the same way)

When you created that table "public"."MDM_CUSTOMER", I'm presuming it was quoted, resulting in it being created in uppercase.

You're right in that it should be trying to access the table by quoting the table name.

This message was edited 4 times. Last update was at 2009-02-05 12:21:36


-Jeff
 
Forum Index » SQL Power DQguru Bugs
Go to:   
Powered by JForum 2.1.8 © JForum Team