--- /dev/null
+.. change::
+ :tags: oracle
+ :tickets: 10877
+
+ Changed the default arraysize of the Oracle dialects so that the value set
+ by the driver is used, that is 100 at the time of writing for both
+ cx_oracle and oracledb. Previously the value was set to 50 by default.
"""
from sqlalchemy import Column
from sqlalchemy import create_engine
+from sqlalchemy import Identity
from sqlalchemy import Integer
from sqlalchemy import String
from sqlalchemy.ext.declarative import declarative_base
class Customer(Base):
__tablename__ = "customer"
- id = Column(Integer, primary_key=True)
+ id = Column(Integer, Identity(), primary_key=True)
name = Column(String(255))
description = Column(String(255))
The parameters accepted by the cx_oracle dialect are as follows:
-* ``arraysize`` - set the cx_oracle.arraysize value on cursors, defaulted
- to 50. This setting is significant with cx_Oracle as the contents of LOB
- objects are only readable within a "live" row (e.g. within a batch of
- 50 rows).
+* ``arraysize`` - set the cx_oracle.arraysize value on cursors; defaults
+ to ``None``, indicating that the driver default should be used (typically
+ the value is 100). This setting controls how many rows are buffered when
+ fetching rows, and can have a significant effect on performance when
+ modified. The setting is used for both ``cx_Oracle`` as well as
+ ``oracledb``.
+
+ .. versionchanged:: 2.0.26 - changed the default value from 50 to None,
+ to use the default value of the driver itself.
* ``auto_convert_lobs`` - defaults to True; See :ref:`cx_oracle_lob`.
self,
auto_convert_lobs=True,
coerce_to_decimal=True,
- arraysize=50,
+ arraysize=None,
encoding_errors=None,
threaded=None,
**kwargs,
self,
auto_convert_lobs=True,
coerce_to_decimal=True,
- arraysize=50,
+ arraysize=None,
encoding_errors=None,
thick_mode=None,
**kwargs,
#8221.
"""
- return fails_if(["mssql", "oracle>=12"])
+ return fails_if(["mssql", "oracle < 23"])
@property
def parens_in_union_contained_select_w_limit_offset(self):