From: | Barry Lind <blind(at)xythos(dot)com> |
---|---|
To: | Jim Wright <jimw(at)paneris(dot)org> |
Cc: | "pgsql-jdbc(at)postgresql(dot)org" <pgsql-jdbc(at)postgresql(dot)org> |
Subject: | Re: Help: ResultSet..insertRow() not coping with explicit |
Date: | 2003-09-25 00:54:27 |
Message-ID: | 3F723CC3.6040506@xythos.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
Jim,
Your test case is flawed. Your select is essentially:
select oid, id, name, notselected from updateable;
Then you are binding the values for your insert positionally at
positions 1,2,3. Which means you are binding value 1 to the oid column,
'jim' to the id column, '4gotenit' to the name column and nothing to the
notselected column. If you change your indexes to be 2,3,4 everything
works correctly. Or you could alternatively 'select *, oid from
updateable and continue binding from postion 1.
thanks,
--Barry
Jim Wright wrote:
> Hi Dave,
>
> Dave Cramer wrote:
>
>> Jim,
>>
>> can you send me a test case which demonstrates this?
>>
>>
> I have edited the JDBC test suite in my cvs working directory.
> I have not done a cvs update recently so note the version number.
> Additional comments follow:
>
> ---
> src/interfaces/jdbc/org/postgresql/test/jdbc2/UpdateableResultTest.java.~1.7.~
> 2002-09-11 07:38:45.000000000 +0200
> +++
> src/interfaces/jdbc/org/postgresql/test/jdbc2/UpdateableResultTest.java
> 2003-09-24 07:19:39.000000000 +0200
> @@ -66,6 +66,17 @@
>
> rs.close();
>
> + rs = st.executeQuery( "select oid, * from updateable");
> +
> + assertNotNull( rs );
> + rs.moveToInsertRow();
> + rs.updateInt( 1, 1 );
> + rs.updateString( 2, "jim" );
> + rs.updateString( 3, "4gotenit" );
> + rs.insertRow(); +
> + rs.close();
> +
> rs = st.executeQuery("select id1, id, name, name1 from
> updateable, second" );
> try
> {
>
> My postgres installation was not built from this source:
>
>> On Mon, 2003-09-22 at 04:06, Jim Wright wrote:
>>
>>
>>> I have postgresql-7.3.1-6.src.rpm under Red Hat 8.0 and pg73jdbc3.jar.
>>>
>
> so it might conceivably work for you. Ant output:
>
> runtest:
> [junit] Testsuite: org.postgresql.test.jdbc2.Jdbc2TestSuite
> [junit] Tests run: 76, Failures: 1, Errors: 5, Time elapsed: 11.217 sec
>
> [junit] Testcase:
> testUpdateable(org.postgresql.test.jdbc2.UpdateableResultTest): FAILED
> [junit] ERROR: Relation "updateable" has no column "oid"
> [junit] junit.framework.AssertionFailedError: ERROR: Relation
> "updateable" has no column "oid"
> [junit] at
> org.postgresql.test.jdbc2.UpdateableResultTest.testUpdateable(UpdateableResultTest.java:143)
>
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> [junit] at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
> [junit] at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
>
>
> [junit] Testcase:
> testGetDouble(org.postgresql.test.jdbc2.CallableStmtTest): Caused an
> ERROR
> [junit] ERROR: language "plpgsql" does not exist
> [junit] java.sql.SQLException: ERROR: language "plpgsql" does not exist
> [junit] at
> org.postgresql.core.QueryExecutor.executeV2(QueryExecutor.java:286)
> [junit] at
> org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:104)
> [junit] at
> org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:42)
> [junit] at
> org.postgresql.jdbc1.AbstractJdbc1Statement.execute(AbstractJdbc1Statement.java:437)
>
> [junit] at
> org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:49)
>
> [junit] at
> org.postgresql.jdbc1.AbstractJdbc1Statement.execute(AbstractJdbc1Statement.java:275)
>
> [junit] at
> org.postgresql.test.jdbc2.CallableStmtTest.setUp(CallableStmtTest.java:29)
>
> [snip 4 irrelevant errors similar to the last]
>
> [junit] TEST org.postgresql.test.jdbc2.Jdbc2TestSuite FAILED
> [junit] Testsuite: org.postgresql.test.jdbc2.optional.OptionalTestSuite
> [junit] Tests run: 34, Failures: 0, Errors: 0, Time elapsed: 8.065 sec
>
> [junit] Testsuite: org.postgresql.test.jdbc3.Jdbc3TestSuite
> [junit] Tests run: 38, Failures: 0, Errors: 0, Time elapsed: 8.997 sec
>
> Hope that's all OK and if this is a valid test you have my permission
> to include it in the suite under the same license etc.
>
> BTW Why is an ERROR not a FAILURE?
>
> Regards,
>
> Jim Wright
>
From | Date | Subject | |
---|---|---|---|
Next Message | Tim McAuley | 2003-09-25 15:12:50 | Re: sequence's plpgsql |
Previous Message | Dave Cramer | 2003-09-25 00:37:27 | Re: Help: ResultSet..insertRow() not coping with explicit |