Another update on this issue. It seems that the issue stems from having a
declared_attr for the __tablename__. If I remove that and make it a static
class attribute, things work as expected.

On Tue, Dec 27, 2016 at 1:36 PM, Tucker Beck <tucker.b...@gmail.com> wrote:

> Mike (or whoever else might have insight):
>
> I used the pattern above, and it worked great until I tried use it for a
> really large table that I was querying and filtering by the hybrid
> property. Something like this:
> query(HybridModel).filter_by(hybrid_type_name='alpha')
>
> The resulting query does a seq-scan applying a sub-select to get the
> hybrid_type_name and then comparing it to the filter value ('alpha' in the
> example). Obviously, this is sub-optimal, and I want the query to do an
> index-scan comparing the hybrid_type_id matching the filter_value to the
> hybrid_type_id of each row. The table has an index on hybrid_type_id, so
> that query is orders of magnitude faster. Before using this revised pattern
> we discussed, I got the query I wanted by adding a comparator to my class
> that basically inverts the select used by the hybrid property expression.
> That worked great before using this pattern.
>
> However, with the new pattern, the delcared_attr __mapper_args__ attempts
> to use the expression from the comaprator for polymorphic_on, and that
> query results in an integer (primary key) which won't work because we
> defined our polymorphic identities using the name
>
> Do you have any ideas on how I might resolve this issue?
>
> On Sat, Dec 3, 2016 at 4:25 PM, mike bayer <mike...@zzzcomputing.com>
> wrote:
>
>>
>>
>> On 12/01/2016 05:29 PM, Tucker Beck wrote:
>>
>>> This is what I ended up with, and it *seems* to work pretty well. Does
>>> my approach here pass the sniff test?
>>>
>>
>> everything looks idiomatic, so if it does what you need, then it's greatg!
>>
>>
>>
>>
>>> from sqlalchemy.ext.hybrid import hybrid_property
>>> from sqlalchemy.ext.declarative import declarative_base, declared_attr
>>> from sqlalchemy.orm import sessionmaker, relationship, column_property
>>> from sqlalchemy import (
>>>     Column, Integer, ForeignKey, Text,
>>>     select, create_engine,
>>> )
>>>
>>> Base = declarative_base()
>>>
>>>
>>> class HybridType(Base):
>>>     __tablename__ = 'hybrid_types'
>>>     id = Column(Integer, primary_key=True)
>>>     name = Column(Text)
>>>
>>>
>>> class HybridModel(Base):
>>>     __tablename__ = 'hybrids'
>>>     hybrid_type_identity = 'base'
>>>
>>>     id = Column(Integer, primary_key=True)
>>>     name = Column(Text)
>>>     hybrid_type_id = Column(Integer, ForeignKey('hybrid_types.id
>>> <http://hybrid_types.id>'))
>>>     hybrid_type = relationship('HybridType')
>>>
>>>     @declared_attr
>>>     def __mapper_args__(cls):
>>>         return dict(
>>>             polymorphic_on=cls.hybrid_type_name,
>>>             polymorphic_identity=cls.hybrid_type_identity,
>>>         )
>>>
>>>     def __repr__(self):
>>>         return "{} ({}:{})".format(type(self).__name__, self.name
>>> <http://self.name>, self.id <http://self.id>)
>>>
>>>     def __init__(self, **kwargs):
>>>         self.hybrid_type_name = self.hybrid_type_identity
>>>         super(HybridModel, self).__init__(**kwargs)
>>>
>>>     @hybrid_property
>>>     def hybrid_type_name(self):
>>>         return self.hybrid_type.name <http://self.hybrid_type.name>
>>>
>>>     @hybrid_type_name.expression
>>>     def hybrid_type_name(cls):
>>>         return (
>>>             select([HybridType.name]).
>>>             where(HybridType.id == cls.hybrid_type_id).
>>>             as_scalar()
>>>         )
>>>
>>>     @hybrid_type_name.setter
>>>     def hybrid_type_name(self, value):
>>>         self.hybrid_type_id = (
>>>             select([HybridType.id]).
>>>             where(HybridType.name == value)
>>>         )
>>>
>>>
>>> class HybridAlpha(HybridModel):
>>>     hybrid_type_identity = 'alpha'
>>>
>>>
>>> class HybridBeta(HybridModel):
>>>     hybrid_type_identity = 'beta'
>>>
>>>
>>> engine = create_engine('sqlite:///:memory:', echo=False)
>>> Base.metadata.create_all(engine)
>>> Session = sessionmaker(bind=engine)
>>> session = Session()
>>> session.add(HybridType(name='base'))
>>> session.add(HybridType(name='alpha'))
>>> session.add(HybridType(name='beta'))
>>> session.add(HybridModel(name='base_instance'))
>>> session.add(HybridAlpha(name='alpha_instance'))
>>> session.add(HybridBeta(name='beta_instance'))
>>> print(session.query(HybridModel).all())
>>> print(session.query(HybridAlpha).all())
>>> print(session.query(HybridAlpha).one().hybrid_type_name)
>>> session.query(HybridAlpha).one().hybrid_type_name = 'beta'
>>> print(session.query(HybridBeta).all())
>>>
>>>
>>> On Wed, Nov 30, 2016 at 7:20 AM, mike bayer <mike...@zzzcomputing.com
>>> <mailto:mike...@zzzcomputing.com>> wrote:
>>>
>>>
>>>
>>>     On 11/29/2016 07:31 PM, Tucker Beck wrote:
>>>
>>>         Thanks for this! What allows the query to filter in the derived
>>>         classes
>>>         when using a column property instead of a hybrid property? Is it
>>>         declaring the __mapper_args__ in the base class declaration
>>>         instead of
>>>         after it?
>>>
>>>
>>>     Yea I don't think setting __mapper_args__ after the fact on the
>>>     class does anything.   Those __mapper_args__ are only for the
>>>     mapper() constructor directly, which gets called when the class is
>>>     declared.
>>>
>>>     you can set the actual polymorphic_on property right now only using
>>>     the special class.__mapper__._set_polymorphic_on(<something>),
>>>     that's one of a very few setters that's available on the mapper
>>>     after the fact and even then it's not fully public API right now.
>>>
>>>
>>>
>>>         Also, it seems like having the hybrid_type_prop column property
>>>         obviates
>>>         the need for the hybrid property hybrid_type_name...that is,
>>>         except for
>>>         the setter. Is there a way to give a column_property a setter?
>>>
>>>
>>>     a column_property against a SQL expression is strictly a read-only
>>>     thing, since "writing" to it makes no sense in terms of persistence.
>>>
>>>
>>>     the column_property aspect here isn't strictly necessary, the mapper
>>>     will create the property internally as a special case for the
>>>     polymorphic_on setting if not provided.  the example can be
>>>     re-organized w/ your hybrid in at least two ways:
>>>
>>>
>>>     class HybridModel(Base):
>>>         # ...
>>>
>>>         @declared_attr
>>>         def __mapper_args__(cls):
>>>             return {
>>>                 "polymorphic_on": cls.hybrid_type_name
>>>             }
>>>
>>>
>>>     or
>>>
>>>
>>>     class HybridModel(Base):
>>>         # ...
>>>
>>>         _hybrid_name_expr = (
>>>             select([HybridType.name]).
>>>             where(HybridType.id == hybrid_type_id).
>>>             as_scalar()
>>>         )
>>>
>>>         __mapper_args__ = {
>>>             "polymorphic_on": _hybrid_name_expr
>>>         }
>>>
>>>         # ...
>>>
>>>         @hybrid_type_name.expression
>>>         def hybrid_type_name(cls):
>>>             return cls._hybrid_name_expr
>>>
>>>
>>>
>>>         On Tue, Nov 29, 2016 at 2:59 PM, mike bayer
>>>         <mike...@zzzcomputing.com <mailto:mike...@zzzcomputing.com>
>>>         <mailto:mike...@zzzcomputing.com
>>>         <mailto:mike...@zzzcomputing.com>>> wrote:
>>>
>>>
>>>
>>>             On 11/29/2016 05:01 PM, Tucker Beck wrote:
>>>
>>>                 The issue with using the foreign_key integer value as the
>>>                 discriminator
>>>                 is that you won't know what that is at class declaration
>>>         time. The
>>>                 type_name, however, you can declare as a part of the
>>>         class as
>>>                 you would
>>>                 with a normal string discriminator. I'm not sure how you
>>>         would do a
>>>                 correlated subquery for the polymorphic_on attribute. I
>>>         modified the
>>>                 query object so that I could filter results for the
>>> derived
>>>                 classes. It
>>>                 doesn't seem like that happens automatically. Maybe I'm
>>>         just not
>>>                 doing
>>>                 it right.
>>>
>>>
>>>             The correlated subquery will not scale as well as a direct
>>>             identifier, but here is an adaption of your test using
>>>             column_property(), and you should be able to set
>>>         polymorphic_on to
>>>             the select() object directly too.  There's another example
>>>         of this
>>>             at
>>>
>>>         http://docs.sqlalchemy.org/en/latest/orm/mapping_api.html?hi
>>> ghlight=polymorphic_on#sqlalchemy.orm.mapper.params.polymorphic_on
>>>         <http://docs.sqlalchemy.org/en/latest/orm/mapping_api.html?h
>>> ighlight=polymorphic_on#sqlalchemy.orm.mapper.params.polymorphic_on>
>>>
>>>         <http://docs.sqlalchemy.org/en/latest/orm/mapping_api.html?h
>>> ighlight=polymorphic_on#sqlalchemy.orm.mapper.params.polymorphic_on
>>>         <http://docs.sqlalchemy.org/en/latest/orm/mapping_api.html?h
>>> ighlight=polymorphic_on#sqlalchemy.orm.mapper.params.polymorphic_on>>.
>>>
>>>             For the "use the id" approach, you would need to query from
>>>             HybridType up front and populate the polymorphic_identity
>>>         attributes
>>>             after the fact, this is a feature that is not directly
>>>         supported yet
>>>             but there is a recipe to do so at
>>>
>>>         https://bitbucket.org/zzzeek/sqlalchemy/issues/2792/settable
>>> -polymorphic-identity
>>>         <https://bitbucket.org/zzzeek/sqlalchemy/issues/2792/settabl
>>> e-polymorphic-identity>
>>>
>>>         <https://bitbucket.org/zzzeek/sqlalchemy/issues/2792/settabl
>>> e-polymorphic-identity
>>>         <https://bitbucket.org/zzzeek/sqlalchemy/issues/2792/settabl
>>> e-polymorphic-identity>>.
>>>
>>>
>>>
>>>             from sqlalchemy.ext.hybrid import hybrid_property
>>>             from sqlalchemy.ext.declarative import declarative_base
>>>             from sqlalchemy.orm import sessionmaker, relationship,
>>>         column_property
>>>             from sqlalchemy import (
>>>                 Column, Integer, ForeignKey, Text,
>>>                 select, create_engine,
>>>             )
>>>
>>>             Base = declarative_base()
>>>
>>>
>>>             class HybridType(Base):
>>>                 __tablename__ = 'hybrid_types'
>>>                 id = Column(Integer, primary_key=True)
>>>                 name = Column(Text)
>>>
>>>
>>>             class HybridModel(Base):
>>>                 __tablename__ = 'hybrids'
>>>
>>>                 id = Column(Integer, primary_key=True)
>>>                 name = Column(Text)
>>>                 hybrid_type_id = Column(Integer,
>>>         ForeignKey('hybrid_types.id <http://hybrid_types.id>
>>>             <http://hybrid_types.id>'))
>>>                 hybrid_type = relationship('HybridType')
>>>
>>>                 hybrid_type_prop = column_property(
>>>                     select([HybridType.name]).
>>>                     where(HybridType.id == hybrid_type_id).
>>>                     as_scalar()
>>>                 )
>>>
>>>                 __mapper_args__ = {
>>>                     "polymorphic_on": hybrid_type_prop
>>>                 }
>>>
>>>                 def __repr__(self):
>>>                     return "{} ({}:{})".format(type(self).__name__,
>>>         self.name <http://self.name>
>>>             <http://self.name>, self.id <http://self.id> <http://self.id
>>> >)
>>>
>>>                 def __init__(self, **kwargs):
>>>                     self.hybrid_type_name =
>>>             type(self).__mapper_args__['polymorphic_identity']
>>>                     super(HybridModel, self).__init__(**kwargs)
>>>
>>>                 @hybrid_property
>>>                 def hybrid_type_name(self):
>>>                     return self.hybrid_type.name
>>>         <http://self.hybrid_type.name> <http://self.hybrid_type.name>
>>>
>>>                 @hybrid_type_name.setter
>>>                 def hybrid_type_name(self, value):
>>>                     self.hybrid_type_id = (
>>>                         select([HybridType.id]).
>>>                         where(HybridType.name == value)
>>>                     )
>>>
>>>
>>>             class HybridAlpha(HybridModel):
>>>                 __mapper_args__ = {'polymorphic_identity': 'alpha'}
>>>
>>>
>>>             class HybridBeta(HybridModel):
>>>                 __mapper_args__ = {'polymorphic_identity': 'beta'}
>>>
>>>
>>>             engine = create_engine('sqlite:///:memory:', echo=True)
>>>             Base.metadata.create_all(engine)
>>>             Session = sessionmaker(bind=engine)
>>>             session = Session()
>>>             session.add(HybridType(name='alpha'))
>>>             session.add(HybridType(name='beta'))
>>>             session.add(HybridAlpha(name='alpha_instance'))
>>>             session.add(HybridBeta(name='beta_instance'))
>>>             print(session.query(HybridAlpha).all())
>>>
>>>
>>>
>>>                 On Tue, Nov 29, 2016 at 7:16 AM, mike bayer
>>>                 <mike...@zzzcomputing.com
>>>         <mailto:mike...@zzzcomputing.com>
>>>         <mailto:mike...@zzzcomputing.com <mailto:mike_mp@zzzcomputing.c
>>> om>>
>>>                 <mailto:mike...@zzzcomputing.com
>>>         <mailto:mike...@zzzcomputing.com>
>>>
>>>                 <mailto:mike...@zzzcomputing.com
>>>         <mailto:mike...@zzzcomputing.com>>>> wrote:
>>>
>>>
>>>
>>>                     On 11/28/2016 05:58 PM, Tucker Beck wrote:
>>>
>>>                         Hello, I'm writing today about an interesting
>>>         problem we ran
>>>                         into with
>>>                         our sqlalchemy based data store api.
>>>
>>>                         Our schema is based on the star-schema idea
>>>         where we have a
>>>                         large 'fact
>>>                         table' with lots of rows. Within that table,
>>>         each row has a
>>>                         foreign key
>>>                         to a small 'dimension table' in which each row
>>>         has a unique
>>>                         name. Thus,
>>>                         the type of each row can be defined by the
>>>         relationship
>>>                 between
>>>                         the fact
>>>                         row and the dimension row.
>>>
>>>                         We wanted to be able to use SQLAlchemy to add
>>>         some custom
>>>                         functionality
>>>                         for the different types of rows we have in our
>>> 'fact
>>>                 table'. After
>>>                         learning about SQLAlchemy's inheritance models, I
>>>                 decided to see
>>>                         if we
>>>                         could support the schema that we had already
>>>         devised for our
>>>                         project.
>>>                         The single-inheritance pattern seemed to fit the
>>>         best, but I
>>>                         couldn't
>>>                         find a single case where someone was using a
>>>         star-schema and
>>>                         needed the
>>>                         type discriminator to be derived from the
>>>         foreign key to the
>>>                         dimension
>>>                         table.
>>>
>>>                         Further, I found as I was digging into the
>>>         mechanics of the
>>>                         thing that
>>>                         you could not create a row in the fact table
>>>         that was
>>>                 typed by the
>>>                         derived class at creation time. And, you cannot
>>>         limit
>>>                 queries
>>>                         from the
>>>                         fact table by creating the queries against the
>>>         derived
>>>                 classes.
>>>                         Suppose
>>>                         that (using declarative base) I have the fact
>>> table
>>>                 represented by a
>>>                         model called HybridModel. This model has two
>>>         derived classes
>>>                         HybridAlpha
>>>                         and HybridBeta. I would like to be able to
>>>         create a new
>>>                 row in
>>>                         the table
>>>                         wrapped by HybridModel by calling something like
>>>                         HybridAlpha(**kwargs)
>>>                         and have the type of the new row reflect the
>>>         inheritance
>>>                 model I've
>>>                         described above. Next I wanted to be able to
>>>         formulate a
>>>                 query
>>>                         against
>>>                         one of the derived models and have it limited by
>>> the
>>>                 type associated
>>>                         with the derived class. So, calling something
>>> like
>>>                         `session.query(HybridAlpha).all()` would only
>>> return
>>>                 rows with a
>>>                         type
>>>                         associated with the HybridAlpha model.
>>>
>>>                         After a lot of tinkering and experimentation,
>>>         I've come
>>>                 up with the
>>>                         following solution:
>>>
>>>
>>>
>>>         https://gist.github.com/dusktreader/2658dedb8ca8e2fd941f8075
>>> c75b3c89
>>>         <https://gist.github.com/dusktreader/2658dedb8ca8e2fd941f807
>>> 5c75b3c89>
>>>
>>>         <https://gist.github.com/dusktreader/2658dedb8ca8e2fd941f807
>>> 5c75b3c89
>>>         <https://gist.github.com/dusktreader/2658dedb8ca8e2fd941f807
>>> 5c75b3c89>>
>>>
>>>
>>>         <https://gist.github.com/dusktreader/2658dedb8ca8e2fd941f807
>>> 5c75b3c89
>>>         <https://gist.github.com/dusktreader/2658dedb8ca8e2fd941f807
>>> 5c75b3c89>
>>>
>>>         <https://gist.github.com/dusktreader/2658dedb8ca8e2fd941f807
>>> 5c75b3c89
>>>         <https://gist.github.com/dusktreader/2658dedb8ca8e2fd941f807
>>> 5c75b3c89>>>
>>>
>>>                         I would appreciate any thoughts and feedback on
>>> the
>>>                 matter. I'm
>>>                         not sure
>>>                         that my approach to this solution has been
>>>         sound, and I
>>>                 would
>>>                         appreciate
>>>                         feedback.
>>>
>>>
>>>                     I'd try to do things much more simply than this.
>>>  Most
>>>                 simply, just
>>>                     assign polymorphic_identity to be the integer
>>>         foreign key value.
>>>                     Otherwise, you should be able to do polymorphic_on
>>> on a
>>>                 correlated
>>>                     subquery, which itself you set up as a
>>>         column_property().
>>>                  There
>>>                     should be no need to modify Query or anything like
>>> that.
>>>
>>>
>>>                     I'm out of time today but if you need more help I
>>>         can try to
>>>                 work up
>>>                     an example later on.
>>>
>>>
>>>
>>>
>>>
>>>
>>>                         Thanks, and keep up the great work! SQLAlchemy
>>>         is just
>>>                 magic!
>>>
>>>                         --
>>>                         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
>>>         <http://stackoverflow.com/help/mcve>
>>>                 <http://stackoverflow.com/help/mcve
>>>         <http://stackoverflow.com/help/mcve>>
>>>                         <http://stackoverflow.com/help/mcve
>>>         <http://stackoverflow.com/help/mcve>
>>>                 <http://stackoverflow.com/help/mcve
>>>         <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
>>>         <mailto:sqlalchemy%2bunsubscr...@googlegroups.com>
>>>                 <mailto:sqlalchemy%2bunsubscr...@googlegroups.com
>>>         <mailto:sqlalchemy%252bunsubscr...@googlegroups.com>>
>>>
>>>         <mailto:sqlalchemy%2bunsubscr...@googlegroups.com
>>>         <mailto:sqlalchemy%252bunsubscr...@googlegroups.com>
>>>                 <mailto:sqlalchemy%252bunsubscr...@googlegroups.com
>>>         <mailto:sqlalchemy%25252bunsubscr...@googlegroups.com>>>
>>>                         <mailto:sqlalchemy+unsubscr...@googlegroups.com
>>>         <mailto:sqlalchemy%2bunsubscr...@googlegroups.com>
>>>                 <mailto:sqlalchemy%2bunsubscr...@googlegroups.com
>>>         <mailto:sqlalchemy%252bunsubscr...@googlegroups.com>>
>>>
>>>         <mailto:sqlalchemy%2bunsubscr...@googlegroups.com
>>>         <mailto:sqlalchemy%252bunsubscr...@googlegroups.com>
>>>                 <mailto:sqlalchemy%252bunsubscr...@googlegroups.com
>>>         <mailto:sqlalchemy%25252bunsubscr...@googlegroups.com>>>>.
>>>
>>>                         To post to this group, send email to
>>>                 sqlalchemy@googlegroups.com
>>>         <mailto:sqlalchemy@googlegroups.com>
>>>         <mailto:sqlalchemy@googlegroups.com
>>>         <mailto:sqlalchemy@googlegroups.com>>
>>>                         <mailto:sqlalchemy@googlegroups.com
>>>         <mailto:sqlalchemy@googlegroups.com>
>>>                 <mailto:sqlalchemy@googlegroups.com
>>>         <mailto:sqlalchemy@googlegroups.com>>>
>>>                         <mailto:sqlalchemy@googlegroups.com
>>>         <mailto:sqlalchemy@googlegroups.com>
>>>                 <mailto:sqlalchemy@googlegroups.com
>>>         <mailto:sqlalchemy@googlegroups.com>>
>>>                         <mailto:sqlalchemy@googlegroups.com
>>>         <mailto:sqlalchemy@googlegroups.com>
>>>                 <mailto:sqlalchemy@googlegroups.com
>>>         <mailto:sqlalchemy@googlegroups.com>>>>.
>>>                         Visit this group at
>>>                 https://groups.google.com/group/sqlalchemy
>>>         <https://groups.google.com/group/sqlalchemy>
>>>                 <https://groups.google.com/group/sqlalchemy
>>>         <https://groups.google.com/group/sqlalchemy>>
>>>                         <https://groups.google.com/group/sqlalchemy
>>>         <https://groups.google.com/group/sqlalchemy>
>>>                 <https://groups.google.com/group/sqlalchemy
>>>         <https://groups.google.com/group/sqlalchemy>>>.
>>>                         For more options, visit
>>>                 https://groups.google.com/d/optout
>>>         <https://groups.google.com/d/optout>
>>>                 <https://groups.google.com/d/optout
>>>         <https://groups.google.com/d/optout>>
>>>                         <https://groups.google.com/d/optout
>>>         <https://groups.google.com/d/optout>
>>>                 <https://groups.google.com/d/optout
>>>         <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
>>>         <http://stackoverflow.com/help/mcve>
>>>                 <http://stackoverflow.com/help/mcve
>>>         <http://stackoverflow.com/help/mcve>>
>>>                     <http://stackoverflow.com/help/mcve
>>>         <http://stackoverflow.com/help/mcve>
>>>                 <http://stackoverflow.com/help/mcve
>>>         <http://stackoverflow.com/help/mcve>>> for a full description.
>>>                     --- You received this message because you are
>>>         subscribed to
>>>                 a topic
>>>                     in the Google Groups "sqlalchemy" group.
>>>                     To unsubscribe from this topic, visit
>>>
>>>
>>>         https://groups.google.com/d/topic/sqlalchemy/KJXSHwbhbLA/uns
>>> ubscribe
>>>         <https://groups.google.com/d/topic/sqlalchemy/KJXSHwbhbLA/un
>>> subscribe>
>>>
>>>         <https://groups.google.com/d/topic/sqlalchemy/KJXSHwbhbLA/un
>>> subscribe
>>>         <https://groups.google.com/d/topic/sqlalchemy/KJXSHwbhbLA/un
>>> subscribe>>
>>>
>>>
>>>         <https://groups.google.com/d/topic/sqlalchemy/KJXSHwbhbLA/un
>>> subscribe
>>>         <https://groups.google.com/d/topic/sqlalchemy/KJXSHwbhbLA/un
>>> subscribe>
>>>
>>>         <https://groups.google.com/d/topic/sqlalchemy/KJXSHwbhbLA/un
>>> subscribe
>>>         <https://groups.google.com/d/topic/sqlalchemy/KJXSHwbhbLA/un
>>> subscribe>>>.
>>>                     To unsubscribe from this group and all its topics,
>>>         send an
>>>                 email to
>>>                     sqlalchemy+unsubscr...@googlegroups.com
>>>         <mailto:sqlalchemy%2bunsubscr...@googlegroups.com>
>>>                 <mailto:sqlalchemy%2bunsubscr...@googlegroups.com
>>>         <mailto:sqlalchemy%252bunsubscr...@googlegroups.com>>
>>>                     <mailto:sqlalchemy%2bunsubscr...@googlegroups.com
>>>         <mailto:sqlalchemy%252bunsubscr...@googlegroups.com>
>>>                 <mailto:sqlalchemy%252bunsubscr...@googlegroups.com
>>>         <mailto:sqlalchemy%25252bunsubscr...@googlegroups.com>>>.
>>>                     To post to this group, send email to
>>>                 sqlalchemy@googlegroups.com
>>>         <mailto:sqlalchemy@googlegroups.com>
>>>         <mailto:sqlalchemy@googlegroups.com
>>>         <mailto:sqlalchemy@googlegroups.com>>
>>>                     <mailto:sqlalchemy@googlegroups.com
>>>         <mailto:sqlalchemy@googlegroups.com>
>>>                 <mailto:sqlalchemy@googlegroups.com
>>>         <mailto:sqlalchemy@googlegroups.com>>>.
>>>                     Visit this group at
>>>                 https://groups.google.com/group/sqlalchemy
>>>         <https://groups.google.com/group/sqlalchemy>
>>>                 <https://groups.google.com/group/sqlalchemy
>>>         <https://groups.google.com/group/sqlalchemy>>
>>>                     <https://groups.google.com/group/sqlalchemy
>>>         <https://groups.google.com/group/sqlalchemy>
>>>                 <https://groups.google.com/group/sqlalchemy
>>>         <https://groups.google.com/group/sqlalchemy>>>.
>>>                     For more options, visit
>>>         https://groups.google.com/d/optout
>>>         <https://groups.google.com/d/optout>
>>>                 <https://groups.google.com/d/optout
>>>         <https://groups.google.com/d/optout>>
>>>                     <https://groups.google.com/d/optout
>>>         <https://groups.google.com/d/optout>
>>>                 <https://groups.google.com/d/optout
>>>         <https://groups.google.com/d/optout>>>.
>>>
>>>
>>>
>>>
>>>
>>>                 --
>>>                 -=Tucker A. Beck=-
>>>
>>>                 Illustrious Writer
>>>                   Devious Coder
>>>                     Last Hope for the Free World
>>>                       Also, Modest
>>>
>>>                 --
>>>                 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
>>>         <http://stackoverflow.com/help/mcve>
>>>                 <http://stackoverflow.com/help/mcve
>>>         <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
>>>         <mailto:sqlalchemy%2bunsubscr...@googlegroups.com>
>>>                 <mailto:sqlalchemy%2bunsubscr...@googlegroups.com
>>>         <mailto:sqlalchemy%252bunsubscr...@googlegroups.com>>
>>>                 <mailto:sqlalchemy+unsubscr...@googlegroups.com
>>>         <mailto:sqlalchemy%2bunsubscr...@googlegroups.com>
>>>                 <mailto:sqlalchemy%2bunsubscr...@googlegroups.com
>>>         <mailto:sqlalchemy%252bunsubscr...@googlegroups.com>>>.
>>>                 To post to this group, send email to
>>>         sqlalchemy@googlegroups.com <mailto:sqlalchemy@googlegroups.com>
>>>                 <mailto:sqlalchemy@googlegroups.com
>>>         <mailto:sqlalchemy@googlegroups.com>>
>>>                 <mailto:sqlalchemy@googlegroups.com
>>>         <mailto:sqlalchemy@googlegroups.com>
>>>                 <mailto:sqlalchemy@googlegroups.com
>>>         <mailto:sqlalchemy@googlegroups.com>>>.
>>>                 Visit this group at
>>>         https://groups.google.com/group/sqlalchemy
>>>         <https://groups.google.com/group/sqlalchemy>
>>>                 <https://groups.google.com/group/sqlalchemy
>>>         <https://groups.google.com/group/sqlalchemy>>.
>>>                 For more options, visit
>>>         https://groups.google.com/d/optout
>>>         <https://groups.google.com/d/optout>
>>>                 <https://groups.google.com/d/optout
>>>         <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
>>>         <http://stackoverflow.com/help/mcve>
>>>             <http://stackoverflow.com/help/mcve
>>>         <http://stackoverflow.com/help/mcve>> for a full description.
>>>             --- You received this message because you are subscribed to
>>>         a topic
>>>             in the Google Groups "sqlalchemy" group.
>>>             To unsubscribe from this topic, visit
>>>
>>>         https://groups.google.com/d/topic/sqlalchemy/KJXSHwbhbLA/uns
>>> ubscribe
>>>         <https://groups.google.com/d/topic/sqlalchemy/KJXSHwbhbLA/un
>>> subscribe>
>>>
>>>         <https://groups.google.com/d/topic/sqlalchemy/KJXSHwbhbLA/un
>>> subscribe
>>>         <https://groups.google.com/d/topic/sqlalchemy/KJXSHwbhbLA/un
>>> subscribe>>.
>>>             To unsubscribe from this group and all its topics, send an
>>>         email to
>>>             sqlalchemy+unsubscr...@googlegroups.com
>>>         <mailto:sqlalchemy%2bunsubscr...@googlegroups.com>
>>>             <mailto:sqlalchemy%2bunsubscr...@googlegroups.com
>>>         <mailto:sqlalchemy%252bunsubscr...@googlegroups.com>>.
>>>             To post to this group, send email to
>>>         sqlalchemy@googlegroups.com <mailto:sqlalchemy@googlegroups.com>
>>>             <mailto:sqlalchemy@googlegroups.com
>>>         <mailto:sqlalchemy@googlegroups.com>>.
>>>             Visit this group at
>>>         https://groups.google.com/group/sqlalchemy
>>>         <https://groups.google.com/group/sqlalchemy>
>>>             <https://groups.google.com/group/sqlalchemy
>>>         <https://groups.google.com/group/sqlalchemy>>.
>>>             For more options, visit https://groups.google.com/d/optout
>>>         <https://groups.google.com/d/optout>
>>>             <https://groups.google.com/d/optout
>>>         <https://groups.google.com/d/optout>>.
>>>
>>>
>>>
>>>
>>>         --
>>>         -=Tucker A. Beck=-
>>>
>>>         Illustrious Writer
>>>           Devious Coder
>>>             Last Hope for the Free World
>>>               Also, Modest
>>>
>>>         --
>>>         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
>>>         <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
>>>         <mailto:sqlalchemy%2bunsubscr...@googlegroups.com>
>>>         <mailto:sqlalchemy+unsubscr...@googlegroups.com
>>>         <mailto:sqlalchemy%2bunsubscr...@googlegroups.com>>.
>>>         To post to this group, send email to sqlalchemy@googlegroups.com
>>>         <mailto:sqlalchemy@googlegroups.com>
>>>         <mailto:sqlalchemy@googlegroups.com
>>>         <mailto:sqlalchemy@googlegroups.com>>.
>>>         Visit this group at https://groups.google.com/group/sqlalchemy
>>>         <https://groups.google.com/group/sqlalchemy>.
>>>         For more options, visit https://groups.google.com/d/optout
>>>         <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
>>>     <http://stackoverflow.com/help/mcve> for a full description.
>>>     --- You received this message because you are subscribed to a topic
>>>     in the Google Groups "sqlalchemy" group.
>>>     To unsubscribe from this topic, visit
>>>     https://groups.google.com/d/topic/sqlalchemy/KJXSHwbhbLA/unsubscribe
>>>     <https://groups.google.com/d/topic/sqlalchemy/KJXSHwbhbLA/un
>>> subscribe>.
>>>     To unsubscribe from this group and all its topics, send an email to
>>>     sqlalchemy+unsubscr...@googlegroups.com
>>>     <mailto:sqlalchemy%2bunsubscr...@googlegroups.com>.
>>>     To post to this group, send email to sqlalchemy@googlegroups.com
>>>     <mailto:sqlalchemy@googlegroups.com>.
>>>     Visit this group at https://groups.google.com/group/sqlalchemy
>>>     <https://groups.google.com/group/sqlalchemy>.
>>>     For more options, visit https://groups.google.com/d/optout
>>>     <https://groups.google.com/d/optout>.
>>>
>>>
>>>
>>>
>>> --
>>> -=Tucker A. Beck=-
>>>
>>> Illustrious Writer
>>>   Devious Coder
>>>     Last Hope for the Free World
>>>       Also, Modest
>>>
>>> --
>>> 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
>>> <mailto:sqlalchemy+unsubscr...@googlegroups.com>.
>>> To post to this group, send email to sqlalchemy@googlegroups.com
>>> <mailto:sqlalchemy@googlegroups.com>.
>>
>>
>
>
> --
> -=Tucker A. Beck=-
>
> Illustrious Writer
>   Devious Coder
>     Last Hope for the Free World
>       Also, Modest
>



-- 
-=Tucker A. Beck=-

Illustrious Writer
  Devious Coder
    Last Hope for the Free World
      Also, Modest

-- 
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