Additionally, those hints seem to be a new feature
(http://mysqlserverteam.com/whats-new-in-mysql-5-7-first-release-candidate/)
for a hint format that was previously not present in MySQL and don't
seem to be present in MariaDB either, and surprisingly enough they
look just like Oracle optimizer hints.  Unfortunately the MySQL
dialect in SQLAlchemy does not support this format of MySQL optimizer
hint at this time, and this would need to be  new feature add.  It
also might be fairly complicated to pull off since these hints don't
apply to all MySQL versions, there might need to be new API features
added, not sure.

I've added https://github.com/sqlalchemy/sqlalchemy/issues/4667 to
track this feature.


On Wed, May 8, 2019 at 9:31 AM Jacob Jensen <2times...@gmail.com> wrote:
>
> I'm trying to use the query API to create a MySQL query with the the 
> MAX_EXECUTION_TIME(30000) hint.
>
> My code is roughly:
>
> from flask_sqlalchemy import SQLAlchemy
>
> class MyTable(SQLAlchemy().Model):
>   ...
>
> base_query = Sqlalchemy.session.query(MyTable) # This works when I execute it.
> base_query_with_hint = base_query.with_hint(MyTable, 
> "MAX_EXECUTION_TIME(30000)")
> base_query_with_hint.execute() # THIS DOES NOT WORK.
>
> str(base_query_with_hint)
> # Output
> # Select a, b, c from MyTable MAX_EXECUTION_TIME(30000)
>
> The hint is just rendered at the end of the query, apparently!
>
> It should render as
>
> Select /*+ MAX_EXECUTION_TIME(30000) */ a, b, c from MyTable
>
> I want it to behave exactly like 
> https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.with_hint
>  but I'm using the Query API instead of the Select API.
>
> Another possibility: A commenter in stackoverflow suggested this is an issue 
> with the MySQL dialect not the query API.
>
>
> See comments here (they suggested I come to this mailing list): 
> https://stackoverflow.com/questions/56030825/sqlalchemy-query-api-not-working-correctly-with-hints
>
> --
> 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.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sqlalchemy/789cd456-ce14-4624-a363-446845d94a2d%40googlegroups.com.
> 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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/CA%2BRjkXHowbxR-nBDqTp6xrzzD2FvDozm%3Dr9h-fMYLKGxLVsJng%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to