Hi, I raised this to the psycopg team and we may possibly not need to take care of anything on the pgAdmin side. Check the discussion here - https://github.com/psycopg/psycopg/discussions/1170
But, I will have to raise a PR to get some extra functions for our use-case. On Mon, Sep 29, 2025 at 11:23 AM Aditya Toshniwal < [email protected]> wrote: > Hi Dave, > > On Thu, Sep 25, 2025 at 7:55 PM Dave Page <[email protected]> wrote: > >> >> >> On Thu, 25 Sept 2025 at 14:44, Aditya Toshniwal < >> [email protected]> wrote: >> >>> Hi Dave, >>> >>>> >>>> If pgAdmin were a single-user application, I'd agree - however it is >>>> not when running in server mode. Other users will not know what is going on >>>> if one user exhausts memory. >>>> >>> How about allowing multi result sets only for desktop app? >>> >> >> I *really* dislike that. We should support all features in both modes, >> except where it clearly doesn't make sense. >> >> >>> The problem with memory limits is - it's an extra overhead to keep >>> checking how much memory is consumed. A row size will depend on the number >>> of columns and data. If we have a predefined algorithm which will decide >>> the limits in a performant way is desirable. >>> >> >> Well we can take the extra cycles to compute actual memory usage, or we >> can just pick an arbitrary number of rows (which as you note, will depend >> on the schema and data). The former is clearly easier to tune - it could be >> an arbitrary limit in the config, or it could be computed based on machine >> resources and utilisation, whilst the latter is always going to be a guess. >> I'm not sure I see another way. Anyone else? >> > For the first approach - python provides a function which we can use. But > deciding the limit is something tricky. A user may still get out of memory > error with a limit set. It will all depend on what is running on his > system. Setting the limit itself is like playing a video game. For the row > count based limit, we already have a per page limit - and adding more such > configs will only add more confusion. > > import sys > > my_tuple = (1, 2, 'hello', 4.5) > memory_size = sys.getsizeof(my_tuple) > print(f"The memory size of the tuple is: {memory_size} bytes") > > >> -- >> Dave Page >> pgAdmin: https://www.pgadmin.org >> PostgreSQL: https://www.postgresql.org >> pgEdge: https://www.pgedge.com >> >> > > -- > Thanks, > Aditya Toshniwal > pgAdmin Hacker | Sr. Staff SDE II | *enterprisedb.com* > <https://www.enterprisedb.com/> > "Don't Complain about Heat, Plant a TREE" > -- Thanks, Aditya Toshniwal pgAdmin Hacker | Sr. Staff SDE II | *enterprisedb.com* <https://www.enterprisedb.com/> "Don't Complain about Heat, Plant a TREE"
