Re: psycopg is the new psycopg3?

2021-06-29 Thread Denis Laxalde
Devrim Gündüz a écrit : On Mon, 2021-06-28 at 15:05 +0200, Denis Laxalde wrote: That's a good point; so I agree moving to psycopg makes sense. You folks also should talk to the RPM and deb packagers before making the final decision ;) RPM packager speaking: This change does not seem to

Re: psycopg is the new psycopg3?

2021-06-28 Thread Denis Laxalde
Daniele Varrazzo a écrit : On Wed, 11 Nov 2020 at 08:47, Federico Di Gregorio wrote: Reading all the messages I have second toughts. If psycopg2 is here to stay, i.e., if it will not be completely replaced by "psycopg3" (and by completely I mean shutting down everything about it) then we will

Re: about client-side cursors

2021-02-10 Thread Denis Laxalde
Daniele Varrazzo a écrit : So, in the server-side branch, I've made the function non-async on AsyncConnection too. This makes also context manager better to use, as now you can do: async with aconn.cursor() as cur: # use it whereas previously it would have taken an `async with awa

Re: Latest developments in psycopg3

2021-02-08 Thread Denis Laxalde
Daniele Varrazzo a écrit : On Mon, 8 Feb 2021 at 12:14, Denis Laxalde wrote: - It seems to me that the conn-info developments work fine (also looked at the commits, which look fine as well to me): what needs to be done here? Any help needed? I can't remember what is missing: probabl

Re: Latest developments in psycopg3

2021-02-08 Thread Denis Laxalde
Hello Daniele, Daniele Varrazzo a écrit : If anyone would like to contribute, in ways other than funding, there is also fun code to write (strictly typed, async, Cython if you wish) and you are welcome to get in touch: I am sure there are practical ways to contribute! I spent a bit of time loo

Re: about client-side cursors

2021-02-05 Thread Denis Laxalde
Christophe Pettus a écrit : On Feb 4, 2021, at 09:21, Denis Laxalde wrote: Well, maybe I'm missing something... In the examples above, (written down explicitly to understand where IO happens), if I shut down postgres between 'await conn.execute()' and 'await cur.fetchall()

Re: about client-side cursors

2021-02-04 Thread Denis Laxalde
Daniele Varrazzo a écrit : > On Thu, 4 Feb 2021 at 12:16, Denis Laxalde wrote: > > > Daniele Varrazzo a écrit : > > > This is understandable, so much that in psycopg3 I've added > > > conn.execute, which is implemented as: > > > I am aware of

Re: about client-side cursors

2021-02-04 Thread Denis Laxalde
Christophe Pettus a écrit : > But it's not just CURSORs that have this behavior. libpq allows the > client to the send the query, and then make separate requests for each > row, even without a database cursor; this maps almost exactly to > .execute() and .fetchone(). Is this related to prepared s

Re: about client-side cursors

2021-02-04 Thread Denis Laxalde
Christophe Pettus a écrit : > > On Feb 4, 2021, at 03:16, Denis Laxalde wrote: > > But, unless I missed it, the PEP does not state how to implement query > > execution and result fetch operations if the database does not need a > > cursor. > > First, any change li

Re: about client-side cursors

2021-02-04 Thread Denis Laxalde
Hi, Daniele Varrazzo a écrit : > On Wed, 3 Feb 2021 at 17:16, Denis Laxalde wrote: > > > I'd like to discuss about the concept of client-side cursor as defined > > in psycopg. > > Welcome Denis! > > > > This is a concept I've always been quite u

about client-side cursors

2021-02-03 Thread Denis Laxalde
Hi, I'd like to discuss about the concept of client-side cursor as defined in psycopg. This is a concept I've always been quite uncomfortable with; I'll try to explain why. First, from a practical point of view: cur = connection.cursor() cur.execute(...) result = cur.fetchxxx() This ty

Re: Executing on the connection?

2020-12-08 Thread Denis Laxalde
Daniele Varrazzo a écrit : On Wed, 2 Dec 2020 at 11:20, Daniele Varrazzo wrote: I'm toying with the idea of adding a 'connection.execute(query, [params])' methd, which would basically just create a cursor internally, query on it, and return it. No parameter could be passed to the cursor() call