package com.revolsys.gis.postgresql.type; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Types; import java.util.Collections; import com.revolsys.datatype.DataTypes; import com.revolsys.jdbc.field.JdbcFieldDefinition; import com.revolsys.record.Record; public class PostgreSQLOidFiedDefinition extends JdbcFieldDefinition { public PostgreSQLOidFiedDefinition() { super("ctid", "ctid", DataTypes.LONG, Types.OTHER, 0, 0, true, "Row Identifier", Collections.emptyMap()); } @Override public void addInsertStatementPlaceHolder(final StringBuilder sql, final boolean generateKeys) { } @Override public int setFieldValueFromResultSet(final ResultSet resultSet, final int columnIndex, final Record record) throws SQLException { Object value = resultSet.getObject(columnIndex); if (value instanceof PostgreSQLTidWrapper) { final PostgreSQLTidWrapper wrapper = (PostgreSQLTidWrapper)value; value = wrapper.getTid(); } setValue(record, value); return columnIndex + 1; } @Override public int setInsertPreparedStatementValue(final PreparedStatement statement, final int parameterIndex, final Record record) throws SQLException { return parameterIndex; } @Override public int setPreparedStatementValue(final PreparedStatement statement, final int parameterIndex, Object value) throws SQLException { value = new PostgreSQLTidWrapper(value); statement.setObject(parameterIndex, value); return parameterIndex + 1; } }