public inbox for pgsql-gui-dev@postgresql.org  
help / color / mirror / Atom feed
From: Сергей Соловьев <sergey.soloviev@tantorlabs.ru>
To: pgsql-gui-dev@lists.postgresql.org <pgsql-gui-dev@lists.postgresql.org>
Subject: VS Code extension to introspect Node* variables
Date: Thu, 25 Jul 2024 07:53:58 +0300
Message-ID: <11881721882631@mail.yandex.ru> (raw)

<div>Hi.</div><div>I've created VS Code extension for PostgreSQL development. <a href="https://marketplace.visualstudio.com/items?itemName=ash-blade.postgresql-hacker-helper">Link to VS Code marketplace</a>.</div><div> </div><div>During debug session, you can introspect real types of Node* variables and see</div><div>members of it according their tags. Roughly speaking, you have separate "Variables" view</div><div>(just like usual "Variables"), but when it encounters something that have tag,</div><div>it make requests to gdb: obtain NodeTag, cast to specified type and</div><div>show members of this variable using real type (members of real type).</div><div> </div><div>I've added support for List* - it displays "elements" member as array using "length" field</div><div>(according to T_List/T_IntList/T_OidList). And for PlannerInfo* it shows "simple_rte/rel_array" as</div><div>real array using "simple_rel_array_size" field.</div><div> </div><div>Also, there is button in context menu for variables - it allows to call "pprint" on selected variable.</div><div> </div><div>I would like to get feedback from you. Any suggestions on improvement or bug reports help.</div><div> </div><div>-------------------------------------</div><div>Best regards, Sergey Solovev.</div>

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-gui-dev@postgresql.org
  Cc: sergey.soloviev@tantorlabs.ru, pgsql-gui-dev@lists.postgresql.org
  Subject: Re: VS Code extension to introspect Node* variables
  In-Reply-To: <11881721882631@mail.yandex.ru>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox