Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
Thread:
Lists: pgsql-jdbcpgsql-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

pgsql-patches by date

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

pgsql-jdbc by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group