Hi Olivier,
Native driver in Pharo is good news :)
Lack of Sql server support is bad news (I invested a lot in it for a long time, and I'm a fan)
but I'll go for postgresql, I think I should like it too,
I created a table once and did a select with it (haha)
Regards,
Alain
Le 11/01/2015 12:20, olivier auverlot a ��crit :
Developping the database protocols in Pharo is simply the best solution
because Pharo is a cross-plateforms solution and it's necessary to have
cross-plateforms frameworks for it. This solution will facilitate the
deploiement of Pharo solutions because no configuration must be doing on
the hosts. The Pharo image must be simply be copied.
But yes it's a big work and I think that the priorities must be done on
some databases servers as MySQL, Postgresql and SQLite. In the open
source world, the protocols are more accessibles and the communities can
help us.
Olivier ;-)
2015-01-11 12:16 GMT+01:00 stepharo
<stepharo@free.fr
<mailto:stepharo@free.fr>>:
�� �� thanks for the report.
�� �� Stef
�� �� Le 11/1/15 00:29, Stephan Eggermont a ��crit :
�� �� The PG3Compiler just changes the parser used to PG3Parser.�� �� 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 connection
�� �� using 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 get
�� �� data 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 different
�� �� compiler (+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 PG3Parser is a subclass from the squeak parser and so uses
�� �� some things that work a bit different
�� �� PG3Parser>>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 the
�� �� database and those in the image and select which ones to change.
�� �� Stephan