huh?  we have no <table/> element...

I'll check it in like this.  If you feel that strongly about it, feel
free to change it.

-----Original Message-----
From: Max Andersen 
Sent: Tuesday, August 09, 2005 2:20 PM
To: Steve Ebersole; Hibernate devel
Subject: Re: [Hibernate] RE: testing question


the trimming were not about the CDATA, but about the <definition>.
Did not think about the mutally-exclusive choice thing - but we don't
do that normally, e.g. table and <table>.

/max

> And the reason I did "definition" as a separate nested element was so
> that I could enforce this as a mutually-exclusive choice in the DTD.
In
> DTD I can say "this nested element OR those other two nested
elements".
>
> Plus, you realize that there is no trimming involved at all in your
> first example compared to my first example, right?  I simply chose
CDATA
> tags to enclose my text, where you did not...
>
>
> -----Original Message-----
> From: Max Andersen
> Sent: Tuesday, August 09, 2005 5:58 AM
> To: Steve Ebersole; Hibernate devel
> Subject: Re: [Hibernate] RE: testing question
>
>
> i don't like database-object, but I don't have a better suggestion,
> so...(maybe just <ddl> ?)
>
> I do though have some trimming suggestions:
>
> <database-object name="blahBlah">
>   <create>CREATE INDEX ...</create>
>   <drop>...</drop>
>   <scope dialect="org.hibernate.dialect.Oracle9Dialect"/>
> </database-object>
>
> and
>
> <database-object name="blaBlah" class="MyPLSQLTrigger"/> (don't see
much
>
> need for a separate <definition> tag for the class)
>
> btw. the reason for my wish for multiple create/drop's were simply to
> allow grouping
> of these construct to ensure proper ordering. Can we guarantee that
with
>
> single drop/create's ?
>
> /max
>
>> So I have this implemented locally.  It actually uses the
>> org.hibernate.mapping.RelationModel interface.  It allows definition
>> through the mapping file or programmatically via the Configuration.
>> There are two basic usages:
>>
>> #1:
>>     <database-object>
>>         <create>
>>             <![CDATA[CREATE OR REPLACE TRIGGER t_iu_gen_prop
>>             BEFORE INSERT OR UPDATE ON gen_prop
>>             FOR EACH ROW
>>             BEGIN
>>                 IF INSERTING THEN
>>                     :new.lastModified := HEXTORAW( '1' );
>>                 ELSE
>>                     :new.lastModified := HEXTORAW(
>>                         TO_NUMBER( RAWTOHEX( :old.lastModified ) ) +
1
>>                     );
>>                 END IF;
>>             END;]]>
>>         </create>
>>         <drop>
>>             <![CDATA[DROP TRIGGER t_iu_gen_prop]]>
>>         </drop>
>>         <!-- again, completely optional -->
>>         <dialect-scope name="org.hibernate.dialect.Oracle9Dialect"/>
>>         <dialect-scope name="org.hibernate.dialect.OracleDialect"/>
>>     </database-object>
>>
>> #2:
>>     <database-object>
>>         <definition class="MyPLSQLTrigger"/>
>>         <!-- again, completely optional -->
>>         <dialect-scope name="org.hibernate.dialect.Oracle9Dialect"/>
>>         <dialect-scope name="org.hibernate.dialect.OracleDialect"/>
>>     </database-object>
>>
>> If anyone wants different name(s), speak now or forever hold your
>> peace...
>>
>> Steve
>>
>>
>> -----Original Message-----
>> From: [EMAIL PROTECTED]
>> [mailto:[EMAIL PROTECTED] On Behalf Of
> Steve
>> Ebersole
>> Sent: Monday, August 08, 2005 8:01 AM
>> To: Hibernate devel
>> Subject: RE: [Hibernate] RE: testing question
>>
>> Actually, probably even better:
>>
>> public interface DatabaseObject {
>>     public String sqlCreateString();
>>     public String sqlDropString();
>> }
>>
>> ;)
>>
>> -----Original Message-----
>> From: [EMAIL PROTECTED]
>> [mailto:[EMAIL PROTECTED] On Behalf Of
> Steve
>> Ebersole
>> Sent: Monday, August 08, 2005 7:54 AM
>> To: Hibernate devel
>> Subject: RE: [Hibernate] RE: testing question
>>
>> Yes, but I was more thinking:
>>
>> public interface DatabaseObject {
>>     public String getCreateCommand();
>>     public String getDropCommand();
>> }
>>
>> because the CREATE/DROP SQL commands explicit operate on a single
>> database object...
>>
>> -----Original Message-----
>> From: Max Andersen
>> Sent: Monday, August 08, 2005 7:49 AM
>> To: Steve Ebersole; Hibernate devel
>> Subject: Re: [Hibernate] RE: testing question
>>
>>
>> And here MyTransactSQLTrigger would be a userprovided class that has
>> String[] createSQL/dropSQL methods ?
>>
>> Sounds good.
>> I was more thinking like:
>>
>> <database-object name="WhateverMostlyForLogging">
>>   <create-ddl>
>>    CREATE ...
>>   </create-ddl>
>>   <create-ddl>
>>    CREATE ...
>>   </create-ddl>
>>   <drop-ddl>
>>    DROP ..
>>   </drop-ddl>
>> </database-object>
>>
>> but I guess both are usable.
>>
>> /max
>>> If we just let them register something like the DatabaseObject
>> mentioned
>>> (keyed by dialect) I guess I'm fine with that.  Maybe something
like:
>>>
>>> <database-object class="MyTransactSQLTrigger ">
>>>     <!-- optional "dialect scoping" -->
>>>     <dialect class="o.h.d.SybaseDialect"/>
>>>     <dialect class="o.h.d.SQLServerDialect"/>
>>> </database-object>
>>>
>>> <database-object class="MyPLSQLTrigger">
>>>     <!-- optional "dialect scoping" -->
>>>     <dialect class="o.h.d.OracleDialect"/>
>>>     <dialect class="o.h.d.Oracle9Dialect"/>
>>> </database-object>
>>>
>>> Due to "export" feature, I guess DatabaseObject would really instead
>>> need to expose the create/drop strings.
>>>
>>> -----Original Message-----
>>> From: Max Andersen
>>> Sent: Monday, August 08, 2005 6:36 AM
>>> To: Steve Ebersole; [EMAIL PROTECTED]; Hibernate devel
>>> Subject: Re: testing question
>>>
>>>
>>>>
>>>> This is the same reason why I always get failures on the tests
>>> relating
>>>> to stored procedure support.
>>>>
>>>
>>> These tests creates the SP's before testing - thus if you get errors
>>> while
>>> running
>>> junit test then that is something that should be failing.
>>>
>>> How about simply extending hibernate with the possibility for user
>>> provided additional DDL's ?
>>> (been suggested before by users, but not had any compelling usecase
>> for
>>>
>>> it...maybe our own
>>> testing is ?)
>>>
>>> /max
>>>
>>>> I think we should come up with a unified way to approach this.  So
>>> I'll
>>>> throw out my proposal as a starting point and see if anyone has
>> better
>>>> solutions.
>>>>
>>>> The basic idea is to have the individual tests in this category
>>> register
>>>> "additional db objects" with the base test case class; these would
> be
>>>> used during setUp() and tearDown() processing.  DatabaseObject
might
>>>> look like:
>>>>
>>>> interface DatabaseObject {
>>>>     void doCreate(Connection conn);
>>>>     void doDrop(Connection conn);
>>>> }
>>>>
>>>> I am thinking of a new test base class that tests relying on
>> non-table
>>>> db-object creation could extend; or even add this functionality to
>> the
>>>> existing TestCase.  It would add a single new method
>> "DatabaseObject[]
>>>> getAdditionalDatabaseObjects(Dialect dialect)" which it would call
>>>> during setUp() processing.  The reason for this instead of just
>>>> overriding setUp()/tearDown() would be to only execute this stuff
>> when
>>>> we actually rebuild the session fatory.
>>>>
>>>> The simple option would be to have each test class do this work
>>>> themselves in setUp() and tearDown() for each test execution even
>>> though
>>>> we are not necessarily creating/dropping the schema at that
>> frequency.
>>>>
>>>> Anyway, thoughts?
>>>>
>>>> Steve
>>>>
>>>
>>>
>>>
>>>
>>> -------------------------------------------------------
>>> SF.Net email is Sponsored by the Better Software Conference & EXPO
>>> September 19-22, 2005 * San Francisco, CA * Development Lifecycle
>>> Practices
>>> Agile & Plan-Driven Development * Managing Projects & Teams *
Testing
>> &
>>> QA
>>> Security * Process Improvement & Measurement *
>> http://www.sqe.com/bsce5sf
>>> _______________________________________________
>>> hibernate-devel mailing list
>>> hibernate-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/hibernate-devel
>>
>>
>>
>>
>> -------------------------------------------------------
>> SF.Net email is Sponsored by the Better Software Conference & EXPO
>> September 19-22, 2005 * San Francisco, CA * Development Lifecycle
>> Practices
>> Agile & Plan-Driven Development * Managing Projects & Teams * Testing
> &
>> QA
>> Security * Process Improvement & Measurement *
>> http://www.sqe.com/bsce5sf
>> _______________________________________________
>> hibernate-devel mailing list
>> hibernate-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/hibernate-devel
>>
>>
>> -------------------------------------------------------
>> SF.Net email is Sponsored by the Better Software Conference & EXPO
>> September 19-22, 2005 * San Francisco, CA * Development Lifecycle
>> Practices
>> Agile & Plan-Driven Development * Managing Projects & Teams * Testing
> &
>> QA
>> Security * Process Improvement & Measurement *
>> http://www.sqe.com/bsce5sf
>> _______________________________________________
>> hibernate-devel mailing list
>> hibernate-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/hibernate-devel
>>
>>
>> -------------------------------------------------------
>> SF.Net email is Sponsored by the Better Software Conference & EXPO
>> September 19-22, 2005 * San Francisco, CA * Development Lifecycle
>> Practices
>> Agile & Plan-Driven Development * Managing Projects & Teams * Testing
> &
>> QA
>> Security * Process Improvement & Measurement *
> http://www.sqe.com/bsce5sf
>> _______________________________________________
>> hibernate-devel mailing list
>> hibernate-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/hibernate-devel
>
>
>
>
> -------------------------------------------------------
> SF.Net email is Sponsored by the Better Software Conference & EXPO
> September 19-22, 2005 * San Francisco, CA * Development Lifecycle  
> Practices
> Agile & Plan-Driven Development * Managing Projects & Teams * Testing
&  
> QA
> Security * Process Improvement & Measurement *
http://www.sqe.com/bsce5sf
> _______________________________________________
> hibernate-devel mailing list
> hibernate-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/hibernate-devel




-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
hibernate-devel mailing list
hibernate-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hibernate-devel

Reply via email to