Index: src/interfaces/jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java =================================================================== RCS file: /projects/cvsroot/pgsql-server/src/interfaces/jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java,v retrieving revision 1.8 diff -c -r1.8 AbstractJdbc2ResultSet.java *** src/interfaces/jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java 2002/09/11 05:38:45 1.8 --- src/interfaces/jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java 2002/10/14 17:36:51 *************** *** 623,629 **** for ( int i = 1; keys.hasMoreElements(); i++) { String key = (String) keys.nextElement(); ! insertStatement.setObject(i, updateValues.get( key ) ); } insertStatement.executeUpdate(); --- 623,633 ---- for ( int i = 1; keys.hasMoreElements(); i++) { String key = (String) keys.nextElement(); ! Object o = updateValues.get(key); ! if (o instanceof NullObject) ! insertStatement.setNull(i,java.sql.Types.NULL); ! else ! insertStatement.setObject(i, o); } insertStatement.executeUpdate(); *************** *** 774,780 **** } doingUpdates = !onInsertRow; ! updateValues.put( fields[columnIndex - 1].getName(), x ); } --- 778,787 ---- } doingUpdates = !onInsertRow; ! if (x == null) ! updateNull(columnIndex); ! else ! updateValues.put( fields[columnIndex - 1].getName(), x ); } *************** *** 855,861 **** } doingUpdates = !onInsertRow; ! updateValues.put( fields[columnIndex - 1].getName(), x ); } --- 862,871 ---- } doingUpdates = !onInsertRow; ! if (x == null) ! updateNull(columnIndex); ! else ! updateValues.put( fields[columnIndex - 1].getName(), x ); } *************** *** 904,910 **** } doingUpdates = !onInsertRow; ! updateValues.put( fields[columnIndex - 1].getName(), x ); } --- 914,923 ---- } doingUpdates = !onInsertRow; ! if (x == null) ! updateNull(columnIndex); ! else ! updateValues.put( fields[columnIndex - 1].getName(), x ); } *************** *** 986,992 **** } doingUpdates = !onInsertRow; ! updateValues.put( fields[columnIndex - 1].getName(), null); } --- 999,1005 ---- } doingUpdates = !onInsertRow; ! updateValues.put( fields[columnIndex - 1].getName(), new NullObject()); } *************** *** 1004,1010 **** Driver.debug("updating object " + fields[columnIndex - 1].getName() + " = " + x); doingUpdates = !onInsertRow; ! updateValues.put( fields[columnIndex - 1].getName(), x ); } --- 1017,1026 ---- Driver.debug("updating object " + fields[columnIndex - 1].getName() + " = " + x); doingUpdates = !onInsertRow; ! if (x == null) ! updateNull(columnIndex); ! else ! updateValues.put( fields[columnIndex - 1].getName(), x ); } *************** *** 1152,1158 **** Iterator iterator = updateValues.values().iterator(); for (; iterator.hasNext(); i++) { ! updateStatement.setObject( i + 1, iterator.next() ); } for ( int j = 0; j < numKeys; j++, i++) --- 1168,1178 ---- Iterator iterator = updateValues.values().iterator(); for (; iterator.hasNext(); i++) { ! Object o = iterator.next(); ! if (o instanceof NullObject) ! updateStatement.setNull(i+1,java.sql.Types.NULL); ! else ! updateStatement.setObject( i + 1, o ); } for ( int j = 0; j < numKeys; j++, i++) *************** *** 1209,1215 **** Driver.debug("in update String " + fields[columnIndex - 1].getName() + " = " + x); doingUpdates = !onInsertRow; ! updateValues.put( fields[columnIndex - 1].getName(), x ); } --- 1229,1238 ---- Driver.debug("in update String " + fields[columnIndex - 1].getName() + " = " + x); doingUpdates = !onInsertRow; ! if (x == null) ! updateNull(columnIndex); ! else ! updateValues.put( fields[columnIndex - 1].getName(), x ); } *************** *** 1222,1228 **** doingUpdates = !onInsertRow; ! updateValues.put( fields[columnIndex - 1].getName(), x ); } --- 1245,1254 ---- doingUpdates = !onInsertRow; ! if (x == null) ! updateNull(columnIndex); ! else ! updateValues.put( fields[columnIndex - 1].getName(), x ); } *************** *** 1234,1240 **** Driver.debug("updating Timestamp " + fields[columnIndex - 1].getName() + " = " + x); doingUpdates = !onInsertRow; ! updateValues.put( fields[columnIndex - 1].getName(), x ); } --- 1260,1269 ---- Driver.debug("updating Timestamp " + fields[columnIndex - 1].getName() + " = " + x); doingUpdates = !onInsertRow; ! if (x == null) ! updateNull(columnIndex); ! else ! updateValues.put( fields[columnIndex - 1].getName(), x ); } *************** *** 1585,1587 **** --- 1614,1619 ---- } + class NullObject { + + }