OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

office message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [Fwd: Re: proposal submitted at OASIS]


Hi all,

Jarosław Staniek from the KOffice team asked me to forward his comments
regarding the Database Front End proposal to our mailing list.

Best regards

Michael


-------- Original Message --------
Subject: Re: proposal submitted at OASIS
Date: Mon, 01 Aug 2005 12:17:43 +0200
From: Jarosław Staniek <js@iidea.pl>
Organization: Open Office Polska
To: Michael.Brauer@Sun.COM
CC: Frank Schönheit - Sun Microsystems Germany <Frank.Schoenheit@Sun.COM>,
dfaure@kde.org
References: <42E72817.1040806@sun.com>

Frank Schönheit - Sun Microsystems Germany said the following, On 2005-07-27
08:22:

> I think it should cover most, if not all, of your original concerns.
> 
> Could you please have a look at it, and provide David Forr with
> feedback, so he can carry it into the OASIS TC?
[...]
 > Since David is (AFAIK) on vacation currently, you might well send them to
 > somebody else in the TC - I suggest Michael.Brauer@sun.com for simplyicity
 > Frank

Dear Michael,

I am satisfied with most of the specs, more usable than before. Small notes
for not so obvious issues follow:


1. What about moving most of elements from <db:application-connection-settings>
to <db:driver-settings> ?

Things like "db:parameter-name-substitution" attribute are even described by
statements like "Some databases do not allow named parameters in SELECT...".
"Is Table Name Length Limited" or "Suppress Version Columns" are clearly
static properties of a given db backend implementation, so we may ask: why a
user may want to restrict himself in this area. Even powerusers usually expect
things work transparently without a problem using default properies provided
by db drivers.
Summing up, many of such attributes are not user-visible and just belong to
client and/or server-side implementation, thus could belong to driver's
settings.
My note doesn't meant a user may be able to see or edit mentioned settings,
but it only means these settings can just belong to driver's attributes.
Other reasoning: what if more than one application uses a set of db
drivers? With the change I proposed, they could share settings delivered by
drivers.

General note: I am not sure about a reason for exchanging driver settings
e.g. between applications like Kexi and OO.org Base, if these settings are
hidden in implementation. The problem is that the settings define behaviour
and/or capatibilities of database backends. For example, "Row Retrieving
Statement" attribute is what application needs to know, but I am not sure how
it is related to database schema exchangeability? Could you please help me by
providing a usage scenario?
(One thing coming to my mind is that the format for describing driver's
settings can be used by database server vendors to describe requirements and
capatibilities of their backend, so 3rd party drivers impelmentation can rely
upon such description)

Related note A: I've considered "application settings" to be much
database-independent, i.e. representing a set of settings from a higher level.

Related note B: On the other hand, db:max-row-count attribute looks like a
sane application-wide setting, as it's largely driver-independent and can be
considered as one of settings provided for efficiency-tunning purposes.

2. <db:table-filter> element. Extension proposal: What if we want to exclude a
group of tables? I'd like to have such possibility to hide "KexiDB system"
table (defined by "kexi__" name prefix).


3. db:default-value attribute represents a string for a default value. Perhaps
we may want to explicity specify how to encode default values for non-string
data types, like floatin point numbers, date/time, and so on. Moreover, we've
not specified character encoding for the string (it can be inherited from
other settings though).

Related issue: db:default-value attribute is defined for both:
db-column-attlist and db-column-definition-attlist. At more general level the
question is: could information provided by <db:schema-definition> and
<db:tables> be merged? As we know, 'schema' construction is supported by some
db backends. If <db:tables> is a definition of physically existing table and
<db:schema-definition> is a definition of it's schema, then for example, for
Kexi, tables are physically created using schema defined by user, and when
schema is altered, it is used to recreate tables physically (how this is easy
to implement depends on having good ALTER TABLE support). That's why I
proposed to merge column definitions. Please tell me about additional
constraints I may not be aware of.


4. db:type-name attribute "indicates the database dependent type name of a
database column. Depending on the database vendor, different type names can
have identical data type". My proposal is to move such translation
(custom-type -> standard-SQL-type) to driver's definition, thus making
database schema more backend-independent and easier to exchange. It's often
easier to deal with predefined set of type names and only translate them to
custom names when talking to the db backend.


5. For db:is-nullable attribute, is 3rd value "nullable-unknown" needed?
I guess that since db:is-nullable is declared as optional, ommiting it could
mean the same as "nullable-unknown".

-- 
regards / pozdrawiam,
  Jaroslaw Staniek / OpenOffice Polska / Kexi Team
  http://www.openoffice.com.pl  |  http://www.kexi-project.org
  KDElibs/Windows: http://wiki.kde.org/tiki-index.php?page=KDElibs+for+win32




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]