A major rewrite of the Postgres OLE DB Provider.

Поиск
Список
Период
Сортировка
От Jeremy Lea
Тема A major rewrite of the Postgres OLE DB Provider.
Дата
Msg-id 20061215193414.GA21110@hub.freebsd.org
обсуждение исходный текст
Ответы Re: [Oledb-dev] A major rewrite of the Postgres OLE DB Provider.  (Shachar Shemesh <shachar@shemesh.biz>)
Re: [Oledb-dev] A major rewrite of the Postgres OLE DB Provider.  ("Konstantin Izmailov" <kizmailov@gmail.com>)
Список pgsql-general
Hi all,

Because of various things, I have needed to move some stuff that I've
been working on onto a Postgres DB.  It makes very heavy use of ADO from
Excel, and so I was running into a number of little annoyances with the
existing OLE DB provider...  Especially I could not get parameterised
queries to run, nor could I run multiple commands in one block (which I
need for speed to load big chunks of data).

So, I started hacking on the Provider, and ended up almost completely
rewriting it.  I have placed a copy at:

http://people.freebsd.org/~reg/pgoledb-20061215.zip

Things that it has gained:

 - Support for the IColumnsRowset interface, which means that ADO's
   client cursor engine doesn't need to parse the SQL to make up UPDATE
   and INSERT queries.
 - Support for IDBInfo and IDBSchemaRowset interfaces, which also help
   ADO CCE.
 - Runs multiple queries (using PQexec) if you pass a command with no
   parameters and IID_NULL for the return record set.
 - Proper type handling.
 - Passing all of the connection string options (hostaddr, ssl, etc.)
 - Lots of bug fixes.
 - Much cleaner code (IMHO), no more STL or exceptions.

Things it has lost:

 - IMultipleRowsets.  libpq can't return multiple results.  What was
   there was a complete hack.
 - Parsing of parameters on stored procedures.  This was a hack, which
   was being done at the wrong place in the code.
 - Support for some types (_text, utinyint, varcharci)
 - TIMESTAMP WITH TIMEZONE is reported in GMT not local, since there is
   no OLE DB type for this (so you can't go backwards).
 - Probably some other things...

I've been testing the code some, and it's working with my application,
but there are probably still many bugs.  I would love it if people could
also test it and report errors!  I'm trying to get the OLE DB
conformance tests up and running, and hopefully I will find more bugs
that way.

I still need to:
 - redo some of the Schema support (realised my design was bad...)
 - tidy up some of the tracing.
 - prepared queries.
 - there are a number of properties where I'm not sure of the right
   value.
 - add more support for pg_types (especially the array/vector types).
 - check threading and locking.
 - check error reporting.
 - probably a few other things...

I hope this is useful to someone.  I would welcome any patches to add
other features.  I'm managing this in a local CVS repository at the
moment...  Not quite sure what I'm going to do about this and the
PgFoundry project yet.

Regards,
  -Jeremy

В списке pgsql-general по дате отправления:

Предыдущее
От: Richard Troy
Дата:
Сообщение: Re: TIMESTAMP WITHOUT TIME ZONE
Следующее
От: Martijn van Oosterhout
Дата:
Сообщение: Re: TIMESTAMP WITHOUT TIME ZONE