Имеет ли смысл иметь тип OID в предложении where - PullRequest
0 голосов
/ 27 августа 2018

В официальном драйвере postgresql jdbc внутри метода setBlob генерируется OID для большого объекта, который должен быть установлен.

Например:

try (Connection connection = DriverManager
                .getConnection("jdbc:pgsql://localhost:5432/typetestdb", "postgres", "123");
                PreparedStatement stmt = connection.prepareStatement("select * from BlobTable where blob_type=?")) {
            stmt.setBlob(1, new ByteArrayInputStream("someval".getBytes()));
            ResultSet resultSet = stmt.executeQuery();
        } catch (SQLException e) {
            // Handle exception
        }

Вот что мы хотим проверить, равно ли фактическое значение BLOB-объекта, но поскольку setBlob создает OID, два больших объекта будут разными. Поэтому возвращаемый набор результатов всегда будет пустым.

Поэтому кажется, что нет смысла указывать тип OID в предложении where.

Правильно ли мое понимание?

...