Skip to content

Add support for DB_TYPE_OBJECT in thin mode #43

@petronny

Description

@petronny

Hi, I'm working on a pull request django/django#15841 which replaces the use of cx_Oracle module with oracledb in django.

However, there is a failed test that related to DB_TYPE_OBJECT.
The reason seems to be that DB_TYPE_OBJECT is not supported in oracledb.thin_impl.MessageWithData._process_column_data.

This test could be passed with cx_Oracle. Is it possible to add the same support to oracledb.thin_impl.MessageWithData._process_column_data?

Related codes:


  1. What versions are you using?
    It's an internal database used in the CI of django. I think is version should be 19.
  1. Is it an error or a hang or a crash?
    crash
  2. What error(s) or behavior you are seeing?
Traceback (most recent call last): File "/home/jenkins/workspace/pull-requests-oracle/database/oragis19/label/oracle/python/python3.10/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) File "/home/jenkins/workspace/pull-requests-oracle/database/oragis19/label/oracle/python/python3.10/django/db/backends/oracle/base.py", line 566, in execute return self.cursor.execute(query, self._param_generator(params)) File "/home/jenkins/workspace/pull-requests-oracle/database/oragis19/label/oracle/python/python3.10/tests/.env/lib/python3.10/site-packages/oracledb/cursor.py", line 378, in execute impl.execute(self) File "src/oracledb/impl/thin/cursor.pyx", line 121, in oracledb.thin_impl.ThinCursorImpl.execute File "src/oracledb/impl/thin/protocol.pyx", line 375, in oracledb.thin_impl.Protocol._process_single_message File "src/oracledb/impl/thin/protocol.pyx", line 376, in oracledb.thin_impl.Protocol._process_single_message File "src/oracledb/impl/thin/protocol.pyx", line 336, in oracledb.thin_impl.Protocol._process_message File "src/oracledb/impl/thin/protocol.pyx", line 315, in oracledb.thin_impl.Protocol._process_message File "src/oracledb/impl/thin/messages.pyx", line 281, in oracledb.thin_impl.Message.process File "src/oracledb/impl/thin/messages.pyx", line 789, in oracledb.thin_impl.MessageWithData._process_message File "src/oracledb/impl/thin/messages.pyx", line 869, in oracledb.thin_impl.MessageWithData._process_row_data File "src/oracledb/impl/thin/messages.pyx", line 595, in oracledb.thin_impl.MessageWithData._process_column_data File "/home/jenkins/workspace/pull-requests-oracle/database/oragis19/label/oracle/python/python3.10/tests/.env/lib/python3.10/site-packages/oracledb/errors.py", line 103, in _raise_err raise exc_type(_Error(message)) from cause oracledb.exceptions.NotSupportedError: DPY-3007: database type "DB_TYPE_OBJECT" is not supported 
  1. Does your application call init_oracle_client()?
    No.
  1. Include a runnable Python script that shows the problem.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions