As you know SQLAlchemy has to call setinputsizes.  This is an event hook
that let's you change what it will do.   You use event.listen along with
your create_engine call and that's it.  The rest of that program is just an
example.

On Wed, Jun 27, 2018, 2:59 PM naor volkovich <naor200...@gmail.com> wrote:

> Thanks for adding this feature!
> Since I don't know SQLAlchemy that good yet, can you explain exactly
> what's going on?
> Do I have to do all the Base related lines? What do they do?
> If I add this event for an engine in one file/class, does it affect that
> engine when passed around to other files/classes too?
>
> בתאריך יום רביעי, 27 ביוני 2018 בשעה 21:15:22 UTC+3, מאת Mike Bayer:
>>
>> the feature at https://gerrit.sqlalchemy.org/#/c/zzzeek/sqlalchemy/+/795/
>> will be part of SQLAlchemy 1.2.9 and will allow the following program
>> to work:
>>
>>
>> from sqlalchemy import *
>> from sqlalchemy.orm import *
>> from sqlalchemy.ext.declarative import declarative_base
>> from sqlalchemy import event
>>
>> Base = declarative_base()
>>
>> class A(Base):
>>     __tablename__ = 'a'
>>
>>     id = Column(Integer, primary_key=True)
>>     data = Column(Text)
>>
>>
>> e = create_engine("oracle://scott:tiger@oracle1120", echo=True)
>>
>> # 200x speedup
>> @event.listens_for(e, "do_setinputsizes")
>> def _remove_type(inputsizes, cursor, statement, parameters, context):
>>     print(inputsizes)
>>     for param, dbapitype in list(inputsizes.items()):
>>         if dbapitype is e.dialect.dbapi.CLOB:
>>             del inputsizes[param]
>>
>>
>> Base.metadata.drop_all(e)
>> Base.metadata.create_all(e)
>>
>> s = Session(e)
>> s.add_all([A(id=i, data="foo%d" % i) for i in range(1000)])
>> s.commit()
>>
>>
>> On Wed, Jun 20, 2018 at 2:06 AM, naor volkovich <naor2...@gmail.com>
>> wrote:
>> > Thanks for opening an issue in cx_oracle, I hope the issue will be
>> solved in their side.
>> > You suggested using a lengthed string but I'm using sqlalchemy to
>> create my table as well and when it sees text, it uses clob
>> automatically... Is there any way around it like maybe say that small
>> strings will be of another type of even make it the default and handle
>> errors with big texts myself?
>> >
>> > --
>> > SQLAlchemy -
>> > The Python SQL Toolkit and Object Relational Mapper
>> >
>> > http://www.sqlalchemy.org/
>> >
>> > To post example code, please provide an MCVE: Minimal, Complete, and
>> Verifiable Example.  See  http://stackoverflow.com/help/mcve for a full
>> description.
>> > ---
>> > You received this message because you are subscribed to the Google
>> Groups "sqlalchemy" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> an email to sqlalchemy+...@googlegroups.com.
>> > To post to this group, send email to sqlal...@googlegroups.com.
>> > Visit this group at https://groups.google.com/group/sqlalchemy.
>> > For more options, visit https://groups.google.com/d/optout.
>>
> --
> SQLAlchemy -
> The Python SQL Toolkit and Object Relational Mapper
>
> http://www.sqlalchemy.org/
>
> To post example code, please provide an MCVE: Minimal, Complete, and
> Verifiable Example. See http://stackoverflow.com/help/mcve for a full
> description.
> ---
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sqlalchemy+unsubscr...@googlegroups.com.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> Visit this group at https://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to