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
<[email protected]
<mailto:[email protected]>>:

    thanks for the report.

    Stef

    Le 11/1/15 00:29, Stephan Eggermont a écrit :
    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 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 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








Reply via email to