Excellent.

In the meantime, we extended GT4P3 a bit to also navigate Schemas and Tables' structure.


For this, I introduced a few classes such as Database, Schema or Table to ease the inspection and tool creation. It���s a bit naive for now, but it works quite well. Should these be committed to the P3 directly to enable an object-oriented API for drilling through the DB?

Cheers,
Doru



On Jan 6, 2019, at 9:17 PM, Sven Van Caekenberghe via Pharo-users <pharo-users@lists.pharo.org> wrote:


From: Sven Van Caekenberghe <sven@stfx.eu>
Subject: Re: [Pharo-users] [ANN] P3 version 1.1
Date: January 6, 2019 at 9:17:34 PM GMT+1
To: Any question about pharo is welcome <pharo-users@lists.pharo.org>


Nice, I just added convenience methods #listDatabases #listSchemas and #listTablesInSchema: to P3Client so you should be able to make a real browser, connection >> schemas >> tables >> contents (listDatabases is not so useful since you can only connect to 1 database at a time).

On 6 Jan 2019, at 00:01, Tudor Girba <tudor@tudorgirba.com> wrote:

And with a little more code, we now have a dedicated Playground form snippet that opens the database connection without requiring any Pharo code.

<gt4p3-snippet.png>

Cheers,
Doru


On Jan 5, 2019, at 12:02 AM, Tudor Girba <tudor@tudorgirba.com> wrote:

You can now query a Postgres database from the new GT. The initial code is available here:
https://github.com/feenkcom/gt4p3

It currently looks like this:
<gt-inspector-p3-query.png>

Cheers,
Doru



On Dec 31, 2018, at 12:33 PM, Sven Van Caekenberghe <sven@stfx.eu> wrote:

Hi,

I created a new release of P3, the modern, lean and mean PostgreSQL client for Pharo.

https://github.com/svenvc/P3

Version 1.1 contains the following changes:

- added support for Postgres Extended Query protocol (P3PreparedStatement) (thx Jan @jvdsandt)
- added support for reading array type values (currently INTEGER[] FLOAT[] BOOLEAN[] TEXT[] VARCHAR[])
- added P3-Tests package and moved all tests there
- more comments
- more unit tests

https://github.com/svenvc/P3/releases/tag/v1.1


Especially Jan's contribution adds a lot of functionality: the ability to work with prepared statements.

Here is an example doing a batch insert of 100 records (which is more efficient).

| client statement |

client := P3Client url: 'psql://sven@localhost'.

client execute: 'DROP TABLE IF EXISTS table1'.
client execute: 'CREATE TABLE table1 (id SERIAL PRIMARY KEY, created_at TIMESTAMP DEFAULT NOW(), name TEXT)'.

statement := client prepare: 'INSERT INTO table1 (name) VALUES ($1)'.
statement executeBatch: ((1 to: 100) collect: [ :index | Array with: ('Text #', index printString) ]).

client query: 'SELECT * FROM table1'.
client execute: 'DROP TABLE table1'.

statement close.
client close.


Season's Greetings to you all.

Sven


--
Sven Van Caekenberghe
Proudly supporting Pharo
http://pharo.org
http://association.pharo.org
http://consortium.pharo.org





--
www.feenk.com

"What is more important: To be happy, or to make happy?"


--
www.feenk.com

"Quality cannot be an afterthought."






--
www.feenk.com

"No matter how many recipes we know, we still value a chef."