you're using a Flask extension that is attempting to apply pagination,
this plugin is not compatible with a textual query:

File 
"/opt/rh/rh-python36/root/usr/lib64/python3.6/site-packages/flask_admin/contrib/sqla/view.py",
line 995, in _apply_pagination

On Fri, May 17, 2019 at 8:31 AM Xander Cage <christian.tre...@itsv.at> wrote:
>
> here is the stack trace and there is indeed some gibberish about limit(). i 
> did not set any limit or something so i have no idea where this comes from?
>
> Traceback (most recent call last):
>   File 
> "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/flask/app.py", line 
> 2309, in __call__
>     return self.wsgi_app(environ, start_response)
>   File 
> "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/flask/app.py", line 
> 2295, in wsgi_app
>     response = self.handle_exception(e)
>   File 
> "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/flask/app.py", line 
> 1741, in handle_exception
>     reraise(exc_type, exc_value, tb)
>   File 
> "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/flask/_compat.py", 
> line 35, in reraise
>     raise value
>   File 
> "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/flask/app.py", line 
> 2292, in wsgi_app
>     response = self.full_dispatch_request()
>   File 
> "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/flask/app.py", line 
> 1815, in full_dispatch_request
>     rv = self.handle_user_exception(e)
>   File 
> "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/flask/app.py", line 
> 1718, in handle_user_exception
>     reraise(exc_type, exc_value, tb)
>   File 
> "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/flask/_compat.py", 
> line 35, in reraise
>     raise value
>   File 
> "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/flask/app.py", line 
> 1813, in full_dispatch_request
>     rv = self.dispatch_request()
>   File 
> "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/flask/app.py", line 
> 1799, in dispatch_request
>     return self.view_functions[rule.endpoint](**req.view_args)
>   File 
> "/opt/rh/rh-python36/root/usr/lib64/python3.6/site-packages/flask_admin/base.py",
>  line 69, in inner
>     return self._run_view(f, *args, **kwargs)
>   File 
> "/opt/rh/rh-python36/root/usr/lib64/python3.6/site-packages/flask_admin/base.py",
>  line 368, in _run_view
>     return fn(self, *args, **kwargs)
>   File 
> "/opt/rh/rh-python36/root/usr/lib64/python3.6/site-packages/flask_admin/model/base.py",
>  line 1960, in index_view
>     view_args.search, view_args.filters, page_size=page_size)
>   File 
> "/opt/rh/rh-python36/root/usr/lib64/python3.6/site-packages/flask_admin/contrib/sqla/view.py",
>  line 1066, in get_list
>     query = self._apply_pagination(query, page, page_size)
>   File 
> "/opt/rh/rh-python36/root/usr/lib64/python3.6/site-packages/flask_admin/contrib/sqla/view.py",
>  line 995, in _apply_pagination
>     query = query.limit(page_size)
>   File "<string>", line 2, in limit
>
>   File 
> "/opt/rh/rh-python36/root/usr/lib64/python3.6/site-packages/sqlalchemy/orm/base.py",
>  line 219, in generate
>     assertion(self, fn.__name__)
>   File 
> "/opt/rh/rh-python36/root/usr/lib64/python3.6/site-packages/sqlalchemy/orm/query.py",
>  line 483, in _no_statement_condition
>     % meth
> sqlalchemy.exc.InvalidRequestError: Query.limit() being called on a Query 
> with an existing full statement - can't apply criterion.
>
>
>
>
> On Thursday, May 16, 2019 at 5:36:12 PM UTC+2, Mike Bayer wrote:
>>
>> the stack trace would show you where it's going wrong.  Are you
>> calling first() on the query?  that applies limit().   Stack trace
>> will show this.    Can't apply limit() to a textual query because the
>> text is already written.
>>
>> On Thu, May 16, 2019 at 10:16 AM Xander Cage <christi...@itsv.at> wrote:
>> >
>> > hi all.
>> >
>> > got this error while playing around whith flask-admin and trying to fire a 
>> > sql query.
>> >
>> > class AixEditForm(ModelView):
>> >     def get_query(self):
>> >         stmt = text("select `n`.`id` AS `NODE_ID`,`n`.`name` AS `NODE`,"
>> >                     "max(if((`a`.`name` = 'LOCATION'),`e`.`value`,NULL)) 
>> > AS `LOCATION`,"
>> >                     "max(if((`a`.`name` = 'IS_CLUSTER'),`e`.`value`,NULL)) 
>> > AS `IS_CLUSTER`,"
>> >                     "max(if((`a`.`name` = 
>> > 'MAN_SYS_NAME'),`e`.`value`,NULL)) AS `MAN_SYS_NAME`,"
>> >                     "max(if((`a`.`name` = 'OS_LEVEL'),`e`.`value`,NULL)) 
>> > AS `OS_LEVEL`,"
>> >                     "max(if((`a`.`name` = 'IS_LPM'),`e`.`value`,NULL)) AS 
>> > `IS_LPM`,"
>> >                     "max(if((`a`.`name` = 'CPU_VALUE'),`e`.`value`,NULL)) 
>> > AS `CPU_VALUE`,"
>> >                     "max(if((`a`.`name` = 
>> > 'CLUSTER_RGS'),`e`.`value`,NULL)) AS `CLUSTER_RGS`,"
>> >                     "max(if((`a`.`name` = 'HA_LEVEL'),`e`.`value`,NULL)) 
>> > AS `HA_LEVEL`,"
>> >                     "max(if((`a`.`name` = 
>> > 'CLUSTER_NODES'),`e`.`value`,NULL)) AS `CLUSTER_NODES`,"
>> >                     "max(if((`a`.`name` = 
>> > 'CLUSTER_NAME'),`e`.`value`,NULL)) AS `CLUSTER_NAME`,"
>> >                     "max(if((`a`.`name` = 'CPU_POOL'),`e`.`value`,NULL)) 
>> > AS `CPU_POOL`,"
>> >                     "max(if((`a`.`name` = 'AME_FACTOR'),`e`.`value`,NULL)) 
>> > AS `AME_FACTOR`,"
>> >                     "max(if((`a`.`name` = 
>> > 'SYS_PROFILE'),`e`.`value`,NULL)) AS `SYS_PROFILE`,"
>> >                     "max(if((`a`.`name` = 'INFO_MAIL'),`e`.`value`,NULL)) 
>> > AS `INFO_MAIL`,"
>> >                     "max(if((`a`.`name` = 'HOSTNAME'),`e`.`value`,NULL)) 
>> > AS `HOSTNAME`,"
>> >                     "max(if((`a`.`name` = 'OS_TYPE'),`e`.`value`,NULL)) AS 
>> > `OS_TYPE`,"
>> >                     "max(if((`a`.`name` = 'UPTIME'),`e`.`value`,NULL)) AS 
>> > `UPTIME`,"
>> >                     "max(if((`a`.`name` = 'IP'),`e`.`value`,NULL)) AS 
>> > `IP`,"
>> >                     "max(if((`a`.`name` = 'IP_LONG'),`e`.`value`,NULL)) AS 
>> > `IP_LONG`,"
>> >                     "max(if((`a`.`name` = 
>> > 'CLUSTER_NODENAME'),`e`.`value`,NULL)) AS `CLUSTER_NODENAME`,"
>> >                     "max(if((`a`.`name` = 
>> > 'RG_SERVICE_IP_LONG'),`e`.`value`,NULL)) AS `RG_SERVICE_IP_LONG`"
>> >                     "from ((`entries` `e` left join `nodes` `n` 
>> > on((`n`.`id` = `e`.`node_id`)))"
>> >                           "left join `attribs` `a` on((`a`.`id` = 
>> > `e`.`attrib_id`)))"
>> >                           "where (`a`.`parent` = 'NODE') group by 
>> > `n`.`name` order by `n`.`id`")
>> >         return self.session.query().from_statement(stmt)
>> >
>> >
>> > sqlalchemy.exc.InvalidRequestError: Query.limit() being called on a Query 
>> > with an existing full statement - can't apply criterion.
>> >
>> > an idea what might be the problem here..i am clueless.
>> >
>> > --
>> > 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 sqlal...@googlegroups.com.
>> > To post to this group, send email to sqlal...@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/62dc9635-d617-4e80-9376-767bd0d7c559%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/a1c3cc45-ea4f-40ad-aabe-eea3db6c2641%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%2BRjkXF2aQtwhEt672fVTTi8ipg30UFDVd-SKrVgF8CRT965Eg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to