Same. I simplified the issue down to the bare essentials. On Mon, Nov 6, 2017 at 9:36 AM, Mike Bayer <[email protected]> wrote:
> Hey Darin - > > Are these two email threads about tztange the same issue or do I have > to consider each separately? haven't looked yet. > > On Sun, Nov 5, 2017 at 5:58 AM, Darin Gordon <[email protected]> wrote: > > Hey Mike and company, > > > > If you were to run the following code against a postgresql 9.5+ database, > > you'll see an exception because the "contains" function sqlalchemy > > associates with the func.tstzrange expression below is intended for an > > Interval type when instead it ought to use the contains for a Timestamp. > > After the code example is the exception that is raised, followed by a > query > > you can run to confirm that a Timestamp type is created. > > > > Thanks for considering! > > > > Darin > > > > > > ------------------------------------------------------------ > ------------------------------------------------------------- > > > > from sqlalchemy.dialects.postgresql import INTERVAL > > from sqlalchemy import (create_engine, select, func, literal, cast) > > > > db_url = "postgres://enter your db info here" > > > > engine = create_engine(db_url, echo=True) > > > > with engine.connect() as conn: > > > > timeslot = func.tstzrange((func.current_date() + cast('8 hours', > > INTERVAL())), > > (func.current_date() + cast('12 > > hours', INTERVAL())), > > '[]') > > > > is_ongoing = conn.scalar(select([literal(True)]). > > > > where(timeslot.contains(func.now()))) > > > > print('\n\n', is_ongoing.compile(engine)) > > > > ------------------------------------------------------------ > ------------------------------------------------------------- > > ------------------------------------------------------------ > ------------------------------------------------------------- > > > > sqlalchemy.exc.DataError: (psycopg2.DataError) invalid input syntax for > type > > interval: "%" > > LINE 2: ...T_DATE + CAST('12 hours' AS INTERVAL), '[]') LIKE '%' + > now(... > > ^ > > [SQL: "SELECT %(param_1)s AS anon_1 \nWHERE (tstzrange(CURRENT_DATE + > > CAST(%(param_2)s AS INTERVAL), CURRENT_DATE + CAST(%(param_3)s AS > INTERVAL), > > %(tstzrange_1)s) LIKE '%%' + now() || '%%')"] [parameters: {'param_1': > True, > > 'param_2': '8 hours', 'param_3': '12 hours', 'tstzrange_1': '[]'}] > > > > ------------------------------------------------------------ > ------------------------------------------------------------- > > ------------------------------------------------------------ > ------------------------------------------------------------- > > > > To confirm Timestamp type, run: SELECT pg_typeof(CURRENT_DATE + '8 > > hours'::interval); > > > > -- > > 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 [email protected]. > > To post to this group, send email to [email protected]. > > 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 a topic in the > Google Groups "sqlalchemy" group. > To unsubscribe from this topic, visit https://groups.google.com/d/ > topic/sqlalchemy/Hb-_MjoUY68/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > To post to this group, send email to [email protected]. > 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.
