asyncpg icon indicating copy to clipboard operation
asyncpg copied to clipboard

Query does not processed

Open 0ralo opened this issue 3 months ago • 3 comments

  • asyncpg version: 0.29.0
  • PostgreSQL version: PostgreSQL 15.5 (Debian 15.5-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
  • Do you use a PostgreSQL SaaS? If so, which? Can you reproduce the issue with a local PostgreSQL install?: I use postgres on another local server
  • Python version: 3.10.0
  • Platform: Windows 10
  • Do you use pgbouncer?: No
  • Did you install asyncpg with pip?: I am not sure, I use Poetry
  • If you built asyncpg locally, which version of Cython did you use?: -
  • Can the issue be reproduced under both asyncio and uvloop?: I am not sure

Sorry if i made smt wrong, that is my first issue. I write query that works on postgres and i want to use it in my python code. Before that query there were not problems but now i have. I use python3.10.0 + fastapi + sqlalchemy + asyncpg as driver. The query -> with foo as (select en.name, en.sources, en.id, x.* from crosstab($$ with d as (select source_id, date_trunc('day',dt) dt, sum(count_ev)::bigint val from events.v_stat_count where dt>=date_trunc('day', now()-'15d'::interval) and dt<=now() group by 1,2), s as (select distinct source_id from d)select s.source_id, x.dt, sum(coalesce(val,0))::bigint val from pg_catalog.generate_series(now()::date-interval '15d', now()::date, '1d') x(dt) cross join s left join d on d.dt=x.dt and d.source_id=s.source_id group by 1,2 order by 1,2 desc; $$) as x(source_id uuid, d1 bigint, d2 bigint, d3 bigint, d4 bigint, d5 bigint, d6 bigint, d7 bigint, d8 bigint, d9 bigint, d10 bigint, d11 bigint, d12 bigint, d13 bigint, d14 bigint, d15 bigint) join meta_data.event_name en on en.id =x.source_id order by 1,nlevel(en.sources) )select foo.name, end2.description,foo.id, foo.sources, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d1+d2+d3+d4+d5+d6+d7+d8+d9+d10+d11+d12+d13+d14+d15 as sumfrom foo left join meta_data.event_name enon en.sources = foo.sources left join nd.event_name_desc end2on end2.id = en.id echo=True show sqlalchemy.engine.Engine [generatedx in 0.00xxs] () and all. I write query using session.execute(text(query))(it stops here) then _.fetchall() Others queries work. If i change driver to psycopg(3) query works.

0ralo avatar Mar 16 '24 11:03 0ralo

Do you get an error? It's not clear from the description what the actual issue is.

elprans avatar Mar 18 '24 15:03 elprans

Do you get an error? It's not clear from the description what the actual issue is.

I got infinite loading when I execute this query. It does not even in .fetchall() but in session.execute(text()) line. Also asyncpg in python terminal with no sqlalchemy does not process query either it just stops. No logs no errors

0ralo avatar Mar 18 '24 19:03 0ralo

Upd: I cannot(?) get result even when i put query into view. Select * from view_name also stops in text() block in slqalchemy. Upd2. I can get result, but it took long time that i was not wait before. (approximately 9 min instead of 0,269 secs in DBeaver for 35 lines) logs: 2024-04-03 10:11:43,328 INFO sqlalchemy.engine.Engine BEGIN (implicit) 2024-04-03 10:11:43,328 INFO sqlalchemy.engine.Engine select * from nd.get_events_15 2024-04-03 10:11:43,328 INFO sqlalchemy.engine.Engine [generated in 0.00011s] () 2024-04-03 10:20:01,330 INFO sqlalchemy.engine.Engine ROLLBACK query took 8m18.12 s

0ralo avatar Apr 03 '24 07:04 0ralo