Hello,

Pierre-Alain Joye wrote:
> 
> Hello,
> 
> Not really an expert in both pear or metabase (just tests experiences). imho one 
>thing is sure, both got advantage and feel with a completly different approach 
>(philosophy ?) of an db abstraction layer.
> There is many ways to create an abstractions layer, every way will be usefull for a 
>need and completly useless for another one. Just a question of what people will do, 
>got many choices increases the global goals of php.
> And I just think you will better to discuss the real goals of your own philisophy 
>and how to make it better. The way of "Mine is better, your not" just makes no sense 
>(in dev-ml ;). I just read a few weeks ago another thread from Manuel and Markus; I 
>don't remember any question about the goals, approachs or definitions of "What is a 
>real Abstraction Layer ? and for which use ?".
> Maybe you will better start at this point ? And will follow the threads with all my 
>attention.

What I think is that an abstraction package is only useful if it
provides full database independence for the applications that use it.

If you use an abstraction package and you still have to deal with
database specific ways of doing things, you'd better not use a
abstraction package because you will still have to port your application
to run with different databases and the abstraction package may even add
some runtime overhead.

Metabase API provides as much database independence to applications as
possible. It supports a rich data type set that covers almost all types
that databases use, including large objects (BLOBs/CLOBs), sequences,
transactions, direct/prepared queries, retrieving ranges of rows of
select queries result and of course database schema management.

What is missing? Stored procedures. If you really want to take the
maximum of performance of a database, you need to use stored procedures
as much as you can. These will be handled in a special way but also in a
database independent manner.

Stored procedures are not available in all databases and those that have
them have their own procedure language. The plan is to use
Meta-programming to generate stored procedures code for each database
using an high level meta-language that abstracts a common set of stored
procedures commands.

The meta-language compiler will be able to generate stored procedures
for all popular databases: PostgreSQL, Oracle, MS SQL server, etc... For
databases that do not support stored procedures, the compiler can
generate normal PHP code that uses Metabase to reproduce the store
procedure behaviour on the database client side. As a matter of fact,
since it will use Metabase, these client side procedures can be used
even with databases that support stored procedures.

This will be a subject that I will be addressing in my talk in the PHP
Conference next week in Frankfurt. If you are nearby Germany, just get
there to learn about it. For now more information about Meta-programming
is available at http://www.meta-language.net/ but I am not mentioning
anything about database procedure meta-language there yet.

Regards,
Manuel Lemos

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to