Can your programming language do this?
Piotr Szturmaj
bncrbme at jadamspam.pl
Mon Jan 24 20:57:10 PST 2011
Hi, I'm also working on postgresql client implementation and common DB
interface (in my spare time between other projects). It's using native
postgres protocol without using libpq. Tt also supports binary
formatting of row fields - that should outperform textual libraries (no
parsing/toString).
I already have working postgresql row querying. There are typed and
untyped rows. Untyped row is DBRow!(Variant[]), typed rows are
encapsulated using struct or tuple, for example:
PGConnection conn = new PGConnection;
conn.open([
"host" : "localhost",
"database": "test",
"user" : "postgres",
"password" : "postgres"
]);
auto cmd = new PGCommand(conn, "SELECT typname, typlen FROM pg_type");
struct S { string s; short l; }
auto result = cmd.executeQuery!(Tuple!(string, "s", short, "l"))();
auto result = cmd.executeQuery!S();
// those above two lines are equivalent
foreach (i, row; result)
{
// row is DBRow!Tuple or DBRow!S
writeln(i, " - ", row.s, ", ", row.l);
}
I've also written simple ORM mapping - creating and managing tables
based on struct layout. I see your solution is in opposite - creating
structs/classes based on SQL CREATE scripts.
Maybe we could join our efforts and create kind of hybrid DB library? :)
More information about the Digitalmars-d
mailing list