Re: [PATCHES] isNullable()

From: Barry Lind <barry(at)xythos(dot)com>
To: Rene Pijlman <rene(at)lab(dot)applinet(dot)nl>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: [PATCHES] isNullable()
Date: 2001-09-17 04:38:03
Message-ID: 3BA57E2B.3040706@xythos.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc pgsql-patches

Patch looks good.

thanks,
--Barry

Rene Pijlman wrote:
> Attached is a patch that fixes ResultSetMetaData.isNullable() in
> the JDBC driver.
>
> This method is currently unimplemented and always returns
> ResultSetMetaData.columnNullable. This is obviously incorrect
> when a column is defined with NOT NULL or PRIMARY KEY. And we
> have to think of check constraints, views, functions etc.
>
> The patch simply changes the return value to
> ResultSetMetaData.columnNullableUnknown. This is until someone
> comes up with a real implementation of course.
>
> On Fri, 14 Sep 2001 17:53:50 +0200, Tomisaw Kityñski wrote:
>
>>Hello there,
>>
>>could someone tell me, please, do I have any chance to get
>>proper implementation of above method in JDBC (1.1+) soon?
>>
>>Current "return 1" works fine on most tables, however it seems
>>to be a little bit incorrect with some of them ;)
>>
>
>
> Regards,
> René Pijlman <rene(at)lab(dot)applinet(dot)nl
>
>>
>>------------------------------------------------------------------------
>>
>>Index: org/postgresql/jdbc1/ResultSetMetaData.java
>>===================================================================
>>RCS file: /home/projects/pgsql/cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/ResultSetMetaData.java,v
>>retrieving revision 1.5
>>diff -c -r1.5 ResultSetMetaData.java
>>*** org/postgresql/jdbc1/ResultSetMetaData.java 2001/09/06 20:43:39 1.5
>>--- org/postgresql/jdbc1/ResultSetMetaData.java 2001/09/15 19:35:09
>>***************
>>*** 136,144 ****
>> }
>>
>> /**
>>! * Can you put a NULL in this column? I think this is always
>>! * true in 6.1's case. It would only be false if the field had
>>! * been defined NOT NULL (system catalogs could be queried?)
>> *
>> * @param column the first column is 1, the second is 2...
>> * @return one of the columnNullable values
>>--- 136,142 ----
>> }
>>
>> /**
>>! * Indicates the nullability of values in the designated column.
>> *
>> * @param column the first column is 1, the second is 2...
>> * @return one of the columnNullable values
>>***************
>>*** 146,154 ****
>> */
>> public int isNullable(int column) throws SQLException
>> {
>>! return columnNullable; // We can always put NULL in
>> }
>>!
>> /**
>> * Is the column a signed number? In PostgreSQL, all numbers
>> * are signed, so this is trivial. However, strings are not
>>--- 144,157 ----
>> */
>> public int isNullable(int column) throws SQLException
>> {
>>! /*
>>! * TODO This needs a real implementation, taking into account columns
>>! * defined with NOT NULL or PRIMARY KEY, CHECK constraints, views,
>>! * functions etc.
>>! */
>>! return columnNullableUnknown;
>> }
>>!
>> /**
>> * Is the column a signed number? In PostgreSQL, all numbers
>> * are signed, so this is trivial. However, strings are not
>>Index: org/postgresql/jdbc2/ResultSetMetaData.java
>>===================================================================
>>RCS file: /home/projects/pgsql/cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc2/ResultSetMetaData.java,v
>>retrieving revision 1.5
>>diff -c -r1.5 ResultSetMetaData.java
>>*** org/postgresql/jdbc2/ResultSetMetaData.java 2001/09/06 20:43:39 1.5
>>--- org/postgresql/jdbc2/ResultSetMetaData.java 2001/09/15 19:35:09
>>***************
>>*** 131,139 ****
>> }
>>
>> /**
>>! * Can you put a NULL in this column? I think this is always
>>! * true in 6.1's case. It would only be false if the field had
>>! * been defined NOT NULL (system catalogs could be queried?)
>> *
>> * @param column the first column is 1, the second is 2...
>> * @return one of the columnNullable values
>>--- 131,137 ----
>> }
>>
>> /**
>>! * Indicates the nullability of values in the designated column.
>> *
>> * @param column the first column is 1, the second is 2...
>> * @return one of the columnNullable values
>>***************
>>*** 141,147 ****
>> */
>> public int isNullable(int column) throws SQLException
>> {
>>! return columnNullable; // We can always put NULL in
>> }
>>
>> /**
>>--- 139,150 ----
>> */
>> public int isNullable(int column) throws SQLException
>> {
>>! /*
>>! * TODO This needs a real implementation, taking into account columns
>>! * defined with NOT NULL or PRIMARY KEY, CHECK constraints, views,
>>! * functions etc.
>>! */
>>! return columnNullableUnknown;
>> }
>>
>> /**
>>
>>
>>------------------------------------------------------------------------
>>
>>
>>---------------------------(end of broadcast)---------------------------
>>TIP 2: you can get off all lists at once with the unregister command
>> (send "unregister YourEmailAddressHere" to majordomo(at)postgresql(dot)org)
>>
>> isNullable.diff
>>
>> Content-Type:
>>
>> text/plain
>> Content-Encoding:
>>
>> quoted-printable
>>
>>
>> ------------------------------------------------------------------------
>> Part 1.3
>>
>> Content-Type:
>>
>> text/plain
>> Content-Encoding:
>>
>> binary
>>
>>

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Barry Lind 2001-09-17 04:45:16 Re: UpdateableResultSet patch (not finished yet!)
Previous Message Barry Lind 2001-09-17 04:36:21 Re: default fetch size

Browse pgsql-patches by date

  From Date Subject
Next Message Vianen, Jeroen van 2001-09-17 07:59:07 Re: Fix for broken JDBC's getColumn() (take 2)
Previous Message John Summerfield 2001-09-17 04:23:34 Re: SQLCODE==-209