Stef wrote:>Now I do not get it.�
> �Did you port it to Pharo?
I spend about a day evaluating it in 40272.�I looked at three packages (and their two test packages).
PostgresV3-Core handles the V3 protocol, makes a connectionusing a socket, provides a result set with rows, columns and�text converters.
I got a few problems in the unit tests, looks like something in the�way floats are handled is different (PG3SocketReadStream>>parseFloatLength:and there is a method missing PG3SocketReadStream>>parseScaledDecimal
PostgresV3-Pool provides a connection pool.�
I was able to use that to connect to a database, execute queries and getdata out of it. Issues there are trivial:
PG3Connection>>md5HashMessage: aString
^Smalltalk globals
at: #MD5
ifPresent: [ :md5 | (md5 hashMessage: aString) hex asLowercase ]
ifAbsent: [ WebUtils md5Digest: aString ]
We don't have WebUtils, but we have MD5
Then there is PostgresV3-CodeMirror.
In PG3SchemaMirror there are some overrides to select a differentcompiler (+parser) and code highlighter. That allows subclasses�to have plsql functions as methods, using the PG3FunctionMirror.
In Pharo, I couldn't easily find how to change the code�highlighter in Nautilus.
The PG3Compiler just changes the parser used to PG3Parser.�The PG3Parser is a subclass from the squeak parser and so uses some things that work a bit differentPG3Parser>>checkSyntaxFor: uses a cue instance variable. It is not a full plsql parser, relying on the�database to check syntax.�
PG3SchemaChanges uses Toolbuilder to show a window with the differences between the functions in thedatabase and those in the image and select which ones to change.�
Stephan