You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@empire-db.apache.org by "mailinglist@j-b-s.de" <ma...@j-b-s.de> on 2012/08/06 15:15:07 UTC

Drop tables

Hi All!

I am working with empire 2.3.0 + spring and got everything working incl transactions. For testing purposes I want to drop my database (hsql in memory) between test runs. The "database" getCreateDDLScript method creates all tables and I am looking for a DropDDLScript method but can't figure it out. The method exists on the driver (OracleDDLGenerator for example) and I can call it like:
db.getDriver().getDDLScript(DBCmdType.DROP,..) but this fails with an exception "Invalid Argument null for parameter name". From the sources a schema name is missing so I am a little confused..,

Can you point me to the right direction?
Thx in advance

Jens

Re: Drop tables

Posted by "mailinglist@j-b-s.de" <ma...@j-b-s.de>.
Hi Francis, thanks for the answer and sorry for my late reply.

db.getDriver().getDDLScript(DBCmdType.DROP, db.getDatabase(), script) 

is what I am using (to drop db completely).

This calls DBDatabaseDriverHsql.getDDLScript
which calls
DBDDLGenerator:219 dropObject.
Dbo.getSchema returns null
thus an ex is thrown in :554
Do I have to specify a schema name when creating the db? and how?

Jens

Sent from my iPhone

On 07.08.2012, at 11:44, Francis De Brabandere <fr...@gmail.com> wrote:

> Hi Jens,
> 
> In DBDatabaseDriverHSqlTest this code is in use:
> 
>        script = new DBSQLScript();
>        db.getDriver().getDDLScript(DBCmdType.DROP, db.EMPLOYEE, script);
>        db.getDriver().getDDLScript(DBCmdType.DROP, db.DEPARTMENT, script);
>        script.run(db.getDriver(), conn, true);
> 
> As far as I know this is working correctly, would you mind providing
> us with some stacktrace or test to reproduce your issue? What sources
> are you talking about?
> 
> Cheers,
> Francis
> 
> On 6 August 2012 15:15, mailinglist@j-b-s.de <ma...@j-b-s.de> wrote:
>> Hi All!
>> 
>> I am working with empire 2.3.0 + spring and got everything working incl
>> transactions. For testing purposes I want to drop my database (hsql in
>> memory) between test runs. The "database" getCreateDDLScript method creates
>> all tables and I am looking for a DropDDLScript method but can't figure it
>> out. The method exists on the driver (OracleDDLGenerator for example) and I
>> can call it like:
>> db.getDriver().getDDLScript(DBCmdType.DROP,..) but this fails with an
>> exception "Invalid Argument null for parameter name". From the sources a
>> schema name is missing so I am a little confused..,
>> 
>> Can you point me to the right direction?
>> Thx in advance
>> 
>> Jens

Re: Drop tables

Posted by "mailinglist@j-b-s.de" <ma...@j-b-s.de>.
Hi Eike!

Thx for the detailed description. Maybe I am allowed to add my 2 cents. As it is an HSQL thing I believe the only place to issue "DROP SCHEMA PUBLIC CASCADE" is the HSQLDDLGenerator having a propper dropDatabase method (which indeed should be used by the generic DDL class) :-) 


Jens



Sent from my iPhone

On 09.08.2012, at 17:51, Eike Kettner <ne...@eknet.org> wrote:

> Hi all,
> 
> Thank you Jens for clarifying. I could now reproduce this exception!
> The issue is, that the database is not instantiated with a schema name.
> I noticed that none of the examples is doing this. If I call the super
> constructor of "SampleDB" with a schema name of "public" there is no
> exception, but nothing is dropped either. Now, that's even worse :) The
> database is obviously happy with this instruction but it won't do what's
> expected.
> 
> The script that's created by getDDLScript(DBCmdType.DROP, db, script) is
> 
>    DROP USER public                                                    
> 
> where "public" is the schema name. As Jens already pointed out, that
> happens on DBDDLGenerator:219 (v2.4.0). This is probably doing something
> else than dropping a database, but syntactically correct as HSQL doesn't
> complain.
> 
> I suppose that needs to be fixed in either HSqlDDLGenerator or
> DBDDLGenerator. I'm not quite sure what to do, but I found some
> "inconsistencies":
> 
> * DBDDLGenerator has a protected method "dropDatabase" that is unused
>  (reported in IDEA) but overriden in OracleDDLGenerator. So maybe line
>  219 in DBDDLGenerator should call "dropDatabase" instead? This could
>  then be overriden in HSqlDDLGenerator.
> 
> * right now line 219 in DBDDLGenerator says
> 
>     dropObject(((DBDatabase) dbo).getSchema(), "USER", script);
> 
>  which is exactly how the `dropDatabase` method is overriden in
>  OracleDDLGenerator. I suspect this is the correct way to drop a
>  database in oracle?
> 
> I created a Jira issue for this now:
> https://issues.apache.org/jira/browse/EMPIREDB-155
> 
> best regards
> Eike
> 
> On [Thu, 09.08.2012 14:17], mailinglist@j-b-s.de wrote:
>> Hi Eike, hi Francis!
>> 
>> A) sorry, I did not mention clearly I use Empire in a spring env based on the sample.
>> 
>> B) I am not dropping tables (this works, but misses to drop sequences, indexes and other constraints), I am dropping a Database. See DBDDLGenerator:218. In case the HSQL DDL generator executes "DROP SCHEMA PUBLIC CASCADE" this might be a workaround. Or maybe the schema name is set to "PUBLIC" on creation time (did not try this honestly)
>> 
>> C) code: driver.getDDLScript(DBCmdType.DROP, db, script); // db is a DBDatabase
>> 
>> D) I will download the latest 2.4 and retest. 
>> 
>> Jens
>> 
>> Sent from my iPhone
>> 
>> On 09.08.2012, at 12:43, Eike Kettner <ne...@eknet.org> wrote:
>> 
>>> Hi all,
>>> 
>>> I'm looking into this today and a few questions popped up :)
>>> 
>>> At first, I thought it got forgotten to set the schema name into the
>>> driver in the EmpireDriverFactory class (as most drivers support this).
>>> But I found out that the HSql-driver does not. Unfortunately I don't
>>> have any knowledge about HSQL, so I cannot comment this any further. Is
>>> it correct for HSQL that its driver is not using a schema name?
>>> 
>>> I then added DROP TABLE code to the spring example project and started
>>> it using HSQL driver. It worked nicely (using the same lines of code
>>> Francis showed in his last mail from the DBDatabaseDriverHSqlTest).
>>> 
>>> @Jens, as Francis already asked, could you provide any stack-trace
>>> and/or a bit of code that shows this behaviour?
>>> 
>>> Best regards
>>> Eike
>>> 
>>> On [Wed, 08.08.2012 22:36], Francis De Brabandere wrote:
>>>> Hi Jens,
>>>> 
>>>> Would you mind creating an issue for this on
>>>> https://issues.apache.org/jira/browse/EMPIREDB - so we make sure this
>>>> is fixed and tracked in the release notes?
>>>> 
>>>> Thanks,
>>>> Francis
>>>> 
>>>> On 8 August 2012 16:57, mailinglist@j-b-s.de <ma...@j-b-s.de> wrote:
>>>>> HI Eike!
>>>>> 
>>>>> I buy this! I started with this sample and in the meantime figured out we can use "DROP SCHEMA PUBLIC CASCADE" in the driver in case it is HSQL and dropping a database is needed.
>>>>> 
>>>>> A fix will be nice. But I can also try to write my own driver factory class...
>>>>> 
>>>>> Sent from my iPhone
>>>>> 
>>>>> On 08.08.2012, at 15:42, Eike Kettner <ne...@eknet.org> wrote:
>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> I think that's a bug in the EmpireDriverFactory class. This class is
>>>>>> part of the sample project and was created as an example on how it could
>>>>>> work with spring. Well..., do you actually mean this class from the
>>>>>> example-spring project?
>>>>>> 
>>>>>> If so, I would recommend to not depend on this jar file but rather
>>>>>> create a new DriverFactory (without that bug :)) class in your project.
>>>>>> But, of course, the EmpireDriverFactory class in the samples should be
>>>>>> fixed. I can do that the next days.
>>>>>> 
>>>>>> best regards
>>>>>> Eike
>>>>>> 
>>>>>> On [Wed, 08.08.2012 14:51], mailinglist@j-b-s.de wrote:
>>>>>>> Hi Francis!
>>>>>>> 
>>>>>>> I digged a bit deeper: the schema name is avail as param in the EmpireDriverFactory, but not used at all in case of HSQL (see :65 in the factory). This at least explains the IllegalArgumentEx. Any ideas?
>>>>>>> 
>>>>>>> Jens
>>>>>>> 
>>>>>>> Sent from my iPhone
>>>>>>> 
>>>>>>> On 07.08.2012, at 11:44, Francis De Brabandere <fr...@gmail.com> wrote:
>>>>>>> 
>>>>>>>> Hi Jens,
>>>>>>>> 
>>>>>>>> In DBDatabaseDriverHSqlTest this code is in use:
>>>>>>>> 
>>>>>>>>     script = new DBSQLScript();
>>>>>>>>     db.getDriver().getDDLScript(DBCmdType.DROP, db.EMPLOYEE, script);
>>>>>>>>     db.getDriver().getDDLScript(DBCmdType.DROP, db.DEPARTMENT, script);
>>>>>>>>     script.run(db.getDriver(), conn, true);
>>>>>>>> 
>>>>>>>> As far as I know this is working correctly, would you mind providing
>>>>>>>> us with some stacktrace or test to reproduce your issue? What sources
>>>>>>>> are you talking about?
>>>>>>>> 
>>>>>>>> Cheers,
>>>>>>>> Francis
>>>>>>>> 
>>>>>>>> On 6 August 2012 15:15, mailinglist@j-b-s.de <ma...@j-b-s.de> wrote:
>>>>>>>>> Hi All!
>>>>>>>>> 
>>>>>>>>> I am working with empire 2.3.0 + spring and got everything working incl
>>>>>>>>> transactions. For testing purposes I want to drop my database (hsql in
>>>>>>>>> memory) between test runs. The "database" getCreateDDLScript method creates
>>>>>>>>> all tables and I am looking for a DropDDLScript method but can't figure it
>>>>>>>>> out. The method exists on the driver (OracleDDLGenerator for example) and I
>>>>>>>>> can call it like:
>>>>>>>>> db.getDriver().getDDLScript(DBCmdType.DROP,..) but this fails with an
>>>>>>>>> exception "Invalid Argument null for parameter name". From the sources a
>>>>>>>>> schema name is missing so I am a little confused..,
>>>>>>>>> 
>>>>>>>>> Can you point me to the right direction?
>>>>>>>>> Thx in advance
>>>>>>>>> 
>>>>>>>>> Jens
>>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> email: eike@eknet.org   https://eknet.org  pgp: 481161A0
>>>> 
>>> 
>>> -- 
>>> email: eike@eknet.org   https://eknet.org  pgp: 481161A0
>> 
> 
> -- 
> email: eike@eknet.org   https://eknet.org  pgp: 481161A0

Re: Drop tables

Posted by Eike Kettner <ne...@eknet.org>.
Hi all,

Thank you Jens for clarifying. I could now reproduce this exception!
The issue is, that the database is not instantiated with a schema name.
I noticed that none of the examples is doing this. If I call the super
constructor of "SampleDB" with a schema name of "public" there is no
exception, but nothing is dropped either. Now, that's even worse :) The
database is obviously happy with this instruction but it won't do what's
expected.

The script that's created by getDDLScript(DBCmdType.DROP, db, script) is
                                                                        
    DROP USER public                                                    

where "public" is the schema name. As Jens already pointed out, that
happens on DBDDLGenerator:219 (v2.4.0). This is probably doing something
else than dropping a database, but syntactically correct as HSQL doesn't
complain.

I suppose that needs to be fixed in either HSqlDDLGenerator or
DBDDLGenerator. I'm not quite sure what to do, but I found some
"inconsistencies":

* DBDDLGenerator has a protected method "dropDatabase" that is unused
  (reported in IDEA) but overriden in OracleDDLGenerator. So maybe line
  219 in DBDDLGenerator should call "dropDatabase" instead? This could
  then be overriden in HSqlDDLGenerator.

* right now line 219 in DBDDLGenerator says
                                           
     dropObject(((DBDatabase) dbo).getSchema(), "USER", script);

  which is exactly how the `dropDatabase` method is overriden in
  OracleDDLGenerator. I suspect this is the correct way to drop a
  database in oracle?

I created a Jira issue for this now:
https://issues.apache.org/jira/browse/EMPIREDB-155

best regards
Eike

On [Thu, 09.08.2012 14:17], mailinglist@j-b-s.de wrote:
> Hi Eike, hi Francis!
> 
> A) sorry, I did not mention clearly I use Empire in a spring env based on the sample.
> 
> B) I am not dropping tables (this works, but misses to drop sequences, indexes and other constraints), I am dropping a Database. See DBDDLGenerator:218. In case the HSQL DDL generator executes "DROP SCHEMA PUBLIC CASCADE" this might be a workaround. Or maybe the schema name is set to "PUBLIC" on creation time (did not try this honestly)
> 
> C) code: driver.getDDLScript(DBCmdType.DROP, db, script); // db is a DBDatabase
> 
> D) I will download the latest 2.4 and retest. 
> 
> Jens
> 
> Sent from my iPhone
> 
> On 09.08.2012, at 12:43, Eike Kettner <ne...@eknet.org> wrote:
> 
> > Hi all,
> > 
> > I'm looking into this today and a few questions popped up :)
> > 
> > At first, I thought it got forgotten to set the schema name into the
> > driver in the EmpireDriverFactory class (as most drivers support this).
> > But I found out that the HSql-driver does not. Unfortunately I don't
> > have any knowledge about HSQL, so I cannot comment this any further. Is
> > it correct for HSQL that its driver is not using a schema name?
> > 
> > I then added DROP TABLE code to the spring example project and started
> > it using HSQL driver. It worked nicely (using the same lines of code
> > Francis showed in his last mail from the DBDatabaseDriverHSqlTest).
> > 
> > @Jens, as Francis already asked, could you provide any stack-trace
> > and/or a bit of code that shows this behaviour?
> > 
> > Best regards
> > Eike
> > 
> > On [Wed, 08.08.2012 22:36], Francis De Brabandere wrote:
> >> Hi Jens,
> >> 
> >> Would you mind creating an issue for this on
> >> https://issues.apache.org/jira/browse/EMPIREDB - so we make sure this
> >> is fixed and tracked in the release notes?
> >> 
> >> Thanks,
> >> Francis
> >> 
> >> On 8 August 2012 16:57, mailinglist@j-b-s.de <ma...@j-b-s.de> wrote:
> >>> HI Eike!
> >>> 
> >>> I buy this! I started with this sample and in the meantime figured out we can use "DROP SCHEMA PUBLIC CASCADE" in the driver in case it is HSQL and dropping a database is needed.
> >>> 
> >>> A fix will be nice. But I can also try to write my own driver factory class...
> >>> 
> >>> Sent from my iPhone
> >>> 
> >>> On 08.08.2012, at 15:42, Eike Kettner <ne...@eknet.org> wrote:
> >>> 
> >>>> Hi,
> >>>> 
> >>>> I think that's a bug in the EmpireDriverFactory class. This class is
> >>>> part of the sample project and was created as an example on how it could
> >>>> work with spring. Well..., do you actually mean this class from the
> >>>> example-spring project?
> >>>> 
> >>>> If so, I would recommend to not depend on this jar file but rather
> >>>> create a new DriverFactory (without that bug :)) class in your project.
> >>>> But, of course, the EmpireDriverFactory class in the samples should be
> >>>> fixed. I can do that the next days.
> >>>> 
> >>>> best regards
> >>>> Eike
> >>>> 
> >>>> On [Wed, 08.08.2012 14:51], mailinglist@j-b-s.de wrote:
> >>>>> Hi Francis!
> >>>>> 
> >>>>> I digged a bit deeper: the schema name is avail as param in the EmpireDriverFactory, but not used at all in case of HSQL (see :65 in the factory). This at least explains the IllegalArgumentEx. Any ideas?
> >>>>> 
> >>>>> Jens
> >>>>> 
> >>>>> Sent from my iPhone
> >>>>> 
> >>>>> On 07.08.2012, at 11:44, Francis De Brabandere <fr...@gmail.com> wrote:
> >>>>> 
> >>>>>> Hi Jens,
> >>>>>> 
> >>>>>> In DBDatabaseDriverHSqlTest this code is in use:
> >>>>>> 
> >>>>>>      script = new DBSQLScript();
> >>>>>>      db.getDriver().getDDLScript(DBCmdType.DROP, db.EMPLOYEE, script);
> >>>>>>      db.getDriver().getDDLScript(DBCmdType.DROP, db.DEPARTMENT, script);
> >>>>>>      script.run(db.getDriver(), conn, true);
> >>>>>> 
> >>>>>> As far as I know this is working correctly, would you mind providing
> >>>>>> us with some stacktrace or test to reproduce your issue? What sources
> >>>>>> are you talking about?
> >>>>>> 
> >>>>>> Cheers,
> >>>>>> Francis
> >>>>>> 
> >>>>>> On 6 August 2012 15:15, mailinglist@j-b-s.de <ma...@j-b-s.de> wrote:
> >>>>>>> Hi All!
> >>>>>>> 
> >>>>>>> I am working with empire 2.3.0 + spring and got everything working incl
> >>>>>>> transactions. For testing purposes I want to drop my database (hsql in
> >>>>>>> memory) between test runs. The "database" getCreateDDLScript method creates
> >>>>>>> all tables and I am looking for a DropDDLScript method but can't figure it
> >>>>>>> out. The method exists on the driver (OracleDDLGenerator for example) and I
> >>>>>>> can call it like:
> >>>>>>> db.getDriver().getDDLScript(DBCmdType.DROP,..) but this fails with an
> >>>>>>> exception "Invalid Argument null for parameter name". From the sources a
> >>>>>>> schema name is missing so I am a little confused..,
> >>>>>>> 
> >>>>>>> Can you point me to the right direction?
> >>>>>>> Thx in advance
> >>>>>>> 
> >>>>>>> Jens
> >>>>> 
> >>>> 
> >>>> --
> >>>> email: eike@eknet.org   https://eknet.org  pgp: 481161A0
> >> 
> > 
> > -- 
> > email: eike@eknet.org   https://eknet.org  pgp: 481161A0
> 

-- 
email: eike@eknet.org   https://eknet.org  pgp: 481161A0

Re: Drop tables

Posted by "mailinglist@j-b-s.de" <ma...@j-b-s.de>.
Hi Eike, hi Francis!

A) sorry, I did not mention clearly I use Empire in a spring env based on the sample.

B) I am not dropping tables (this works, but misses to drop sequences, indexes and other constraints), I am dropping a Database. See DBDDLGenerator:218. In case the HSQL DDL generator executes "DROP SCHEMA PUBLIC CASCADE" this might be a workaround. Or maybe the schema name is set to "PUBLIC" on creation time (did not try this honestly)

C) code: driver.getDDLScript(DBCmdType.DROP, db, script); // db is a DBDatabase

D) I will download the latest 2.4 and retest. 

Jens

Sent from my iPhone

On 09.08.2012, at 12:43, Eike Kettner <ne...@eknet.org> wrote:

> Hi all,
> 
> I'm looking into this today and a few questions popped up :)
> 
> At first, I thought it got forgotten to set the schema name into the
> driver in the EmpireDriverFactory class (as most drivers support this).
> But I found out that the HSql-driver does not. Unfortunately I don't
> have any knowledge about HSQL, so I cannot comment this any further. Is
> it correct for HSQL that its driver is not using a schema name?
> 
> I then added DROP TABLE code to the spring example project and started
> it using HSQL driver. It worked nicely (using the same lines of code
> Francis showed in his last mail from the DBDatabaseDriverHSqlTest).
> 
> @Jens, as Francis already asked, could you provide any stack-trace
> and/or a bit of code that shows this behaviour?
> 
> Best regards
> Eike
> 
> On [Wed, 08.08.2012 22:36], Francis De Brabandere wrote:
>> Hi Jens,
>> 
>> Would you mind creating an issue for this on
>> https://issues.apache.org/jira/browse/EMPIREDB - so we make sure this
>> is fixed and tracked in the release notes?
>> 
>> Thanks,
>> Francis
>> 
>> On 8 August 2012 16:57, mailinglist@j-b-s.de <ma...@j-b-s.de> wrote:
>>> HI Eike!
>>> 
>>> I buy this! I started with this sample and in the meantime figured out we can use "DROP SCHEMA PUBLIC CASCADE" in the driver in case it is HSQL and dropping a database is needed.
>>> 
>>> A fix will be nice. But I can also try to write my own driver factory class...
>>> 
>>> Sent from my iPhone
>>> 
>>> On 08.08.2012, at 15:42, Eike Kettner <ne...@eknet.org> wrote:
>>> 
>>>> Hi,
>>>> 
>>>> I think that's a bug in the EmpireDriverFactory class. This class is
>>>> part of the sample project and was created as an example on how it could
>>>> work with spring. Well..., do you actually mean this class from the
>>>> example-spring project?
>>>> 
>>>> If so, I would recommend to not depend on this jar file but rather
>>>> create a new DriverFactory (without that bug :)) class in your project.
>>>> But, of course, the EmpireDriverFactory class in the samples should be
>>>> fixed. I can do that the next days.
>>>> 
>>>> best regards
>>>> Eike
>>>> 
>>>> On [Wed, 08.08.2012 14:51], mailinglist@j-b-s.de wrote:
>>>>> Hi Francis!
>>>>> 
>>>>> I digged a bit deeper: the schema name is avail as param in the EmpireDriverFactory, but not used at all in case of HSQL (see :65 in the factory). This at least explains the IllegalArgumentEx. Any ideas?
>>>>> 
>>>>> Jens
>>>>> 
>>>>> Sent from my iPhone
>>>>> 
>>>>> On 07.08.2012, at 11:44, Francis De Brabandere <fr...@gmail.com> wrote:
>>>>> 
>>>>>> Hi Jens,
>>>>>> 
>>>>>> In DBDatabaseDriverHSqlTest this code is in use:
>>>>>> 
>>>>>>      script = new DBSQLScript();
>>>>>>      db.getDriver().getDDLScript(DBCmdType.DROP, db.EMPLOYEE, script);
>>>>>>      db.getDriver().getDDLScript(DBCmdType.DROP, db.DEPARTMENT, script);
>>>>>>      script.run(db.getDriver(), conn, true);
>>>>>> 
>>>>>> As far as I know this is working correctly, would you mind providing
>>>>>> us with some stacktrace or test to reproduce your issue? What sources
>>>>>> are you talking about?
>>>>>> 
>>>>>> Cheers,
>>>>>> Francis
>>>>>> 
>>>>>> On 6 August 2012 15:15, mailinglist@j-b-s.de <ma...@j-b-s.de> wrote:
>>>>>>> Hi All!
>>>>>>> 
>>>>>>> I am working with empire 2.3.0 + spring and got everything working incl
>>>>>>> transactions. For testing purposes I want to drop my database (hsql in
>>>>>>> memory) between test runs. The "database" getCreateDDLScript method creates
>>>>>>> all tables and I am looking for a DropDDLScript method but can't figure it
>>>>>>> out. The method exists on the driver (OracleDDLGenerator for example) and I
>>>>>>> can call it like:
>>>>>>> db.getDriver().getDDLScript(DBCmdType.DROP,..) but this fails with an
>>>>>>> exception "Invalid Argument null for parameter name". From the sources a
>>>>>>> schema name is missing so I am a little confused..,
>>>>>>> 
>>>>>>> Can you point me to the right direction?
>>>>>>> Thx in advance
>>>>>>> 
>>>>>>> Jens
>>>>> 
>>>> 
>>>> --
>>>> email: eike@eknet.org   https://eknet.org  pgp: 481161A0
>> 
> 
> -- 
> email: eike@eknet.org   https://eknet.org  pgp: 481161A0

Re: Drop tables

Posted by Eike Kettner <ne...@eknet.org>.
Hi all,

I'm looking into this today and a few questions popped up :)

At first, I thought it got forgotten to set the schema name into the
driver in the EmpireDriverFactory class (as most drivers support this).
But I found out that the HSql-driver does not. Unfortunately I don't
have any knowledge about HSQL, so I cannot comment this any further. Is
it correct for HSQL that its driver is not using a schema name?

I then added DROP TABLE code to the spring example project and started
it using HSQL driver. It worked nicely (using the same lines of code
Francis showed in his last mail from the DBDatabaseDriverHSqlTest).

@Jens, as Francis already asked, could you provide any stack-trace
and/or a bit of code that shows this behaviour?

Best regards
Eike

On [Wed, 08.08.2012 22:36], Francis De Brabandere wrote:
> Hi Jens,
> 
> Would you mind creating an issue for this on
> https://issues.apache.org/jira/browse/EMPIREDB - so we make sure this
> is fixed and tracked in the release notes?
> 
> Thanks,
> Francis
> 
> On 8 August 2012 16:57, mailinglist@j-b-s.de <ma...@j-b-s.de> wrote:
> > HI Eike!
> >
> > I buy this! I started with this sample and in the meantime figured out we can use "DROP SCHEMA PUBLIC CASCADE" in the driver in case it is HSQL and dropping a database is needed.
> >
> > A fix will be nice. But I can also try to write my own driver factory class...
> >
> > Sent from my iPhone
> >
> > On 08.08.2012, at 15:42, Eike Kettner <ne...@eknet.org> wrote:
> >
> >> Hi,
> >>
> >> I think that's a bug in the EmpireDriverFactory class. This class is
> >> part of the sample project and was created as an example on how it could
> >> work with spring. Well..., do you actually mean this class from the
> >> example-spring project?
> >>
> >> If so, I would recommend to not depend on this jar file but rather
> >> create a new DriverFactory (without that bug :)) class in your project.
> >> But, of course, the EmpireDriverFactory class in the samples should be
> >> fixed. I can do that the next days.
> >>
> >> best regards
> >> Eike
> >>
> >> On [Wed, 08.08.2012 14:51], mailinglist@j-b-s.de wrote:
> >>> Hi Francis!
> >>>
> >>> I digged a bit deeper: the schema name is avail as param in the EmpireDriverFactory, but not used at all in case of HSQL (see :65 in the factory). This at least explains the IllegalArgumentEx. Any ideas?
> >>>
> >>> Jens
> >>>
> >>> Sent from my iPhone
> >>>
> >>> On 07.08.2012, at 11:44, Francis De Brabandere <fr...@gmail.com> wrote:
> >>>
> >>>> Hi Jens,
> >>>>
> >>>> In DBDatabaseDriverHSqlTest this code is in use:
> >>>>
> >>>>       script = new DBSQLScript();
> >>>>       db.getDriver().getDDLScript(DBCmdType.DROP, db.EMPLOYEE, script);
> >>>>       db.getDriver().getDDLScript(DBCmdType.DROP, db.DEPARTMENT, script);
> >>>>       script.run(db.getDriver(), conn, true);
> >>>>
> >>>> As far as I know this is working correctly, would you mind providing
> >>>> us with some stacktrace or test to reproduce your issue? What sources
> >>>> are you talking about?
> >>>>
> >>>> Cheers,
> >>>> Francis
> >>>>
> >>>> On 6 August 2012 15:15, mailinglist@j-b-s.de <ma...@j-b-s.de> wrote:
> >>>>> Hi All!
> >>>>>
> >>>>> I am working with empire 2.3.0 + spring and got everything working incl
> >>>>> transactions. For testing purposes I want to drop my database (hsql in
> >>>>> memory) between test runs. The "database" getCreateDDLScript method creates
> >>>>> all tables and I am looking for a DropDDLScript method but can't figure it
> >>>>> out. The method exists on the driver (OracleDDLGenerator for example) and I
> >>>>> can call it like:
> >>>>> db.getDriver().getDDLScript(DBCmdType.DROP,..) but this fails with an
> >>>>> exception "Invalid Argument null for parameter name". From the sources a
> >>>>> schema name is missing so I am a little confused..,
> >>>>>
> >>>>> Can you point me to the right direction?
> >>>>> Thx in advance
> >>>>>
> >>>>> Jens
> >>>
> >>
> >> --
> >> email: eike@eknet.org   https://eknet.org  pgp: 481161A0
> 

-- 
email: eike@eknet.org   https://eknet.org  pgp: 481161A0

Re: Drop tables

Posted by Francis De Brabandere <fr...@gmail.com>.
Hi Jens,

Would you mind creating an issue for this on
https://issues.apache.org/jira/browse/EMPIREDB - so we make sure this
is fixed and tracked in the release notes?

Thanks,
Francis

On 8 August 2012 16:57, mailinglist@j-b-s.de <ma...@j-b-s.de> wrote:
> HI Eike!
>
> I buy this! I started with this sample and in the meantime figured out we can use "DROP SCHEMA PUBLIC CASCADE" in the driver in case it is HSQL and dropping a database is needed.
>
> A fix will be nice. But I can also try to write my own driver factory class...
>
> Sent from my iPhone
>
> On 08.08.2012, at 15:42, Eike Kettner <ne...@eknet.org> wrote:
>
>> Hi,
>>
>> I think that's a bug in the EmpireDriverFactory class. This class is
>> part of the sample project and was created as an example on how it could
>> work with spring. Well..., do you actually mean this class from the
>> example-spring project?
>>
>> If so, I would recommend to not depend on this jar file but rather
>> create a new DriverFactory (without that bug :)) class in your project.
>> But, of course, the EmpireDriverFactory class in the samples should be
>> fixed. I can do that the next days.
>>
>> best regards
>> Eike
>>
>> On [Wed, 08.08.2012 14:51], mailinglist@j-b-s.de wrote:
>>> Hi Francis!
>>>
>>> I digged a bit deeper: the schema name is avail as param in the EmpireDriverFactory, but not used at all in case of HSQL (see :65 in the factory). This at least explains the IllegalArgumentEx. Any ideas?
>>>
>>> Jens
>>>
>>> Sent from my iPhone
>>>
>>> On 07.08.2012, at 11:44, Francis De Brabandere <fr...@gmail.com> wrote:
>>>
>>>> Hi Jens,
>>>>
>>>> In DBDatabaseDriverHSqlTest this code is in use:
>>>>
>>>>       script = new DBSQLScript();
>>>>       db.getDriver().getDDLScript(DBCmdType.DROP, db.EMPLOYEE, script);
>>>>       db.getDriver().getDDLScript(DBCmdType.DROP, db.DEPARTMENT, script);
>>>>       script.run(db.getDriver(), conn, true);
>>>>
>>>> As far as I know this is working correctly, would you mind providing
>>>> us with some stacktrace or test to reproduce your issue? What sources
>>>> are you talking about?
>>>>
>>>> Cheers,
>>>> Francis
>>>>
>>>> On 6 August 2012 15:15, mailinglist@j-b-s.de <ma...@j-b-s.de> wrote:
>>>>> Hi All!
>>>>>
>>>>> I am working with empire 2.3.0 + spring and got everything working incl
>>>>> transactions. For testing purposes I want to drop my database (hsql in
>>>>> memory) between test runs. The "database" getCreateDDLScript method creates
>>>>> all tables and I am looking for a DropDDLScript method but can't figure it
>>>>> out. The method exists on the driver (OracleDDLGenerator for example) and I
>>>>> can call it like:
>>>>> db.getDriver().getDDLScript(DBCmdType.DROP,..) but this fails with an
>>>>> exception "Invalid Argument null for parameter name". From the sources a
>>>>> schema name is missing so I am a little confused..,
>>>>>
>>>>> Can you point me to the right direction?
>>>>> Thx in advance
>>>>>
>>>>> Jens
>>>
>>
>> --
>> email: eike@eknet.org   https://eknet.org  pgp: 481161A0

Re: Drop tables

Posted by "mailinglist@j-b-s.de" <ma...@j-b-s.de>.
HI Eike!

I buy this! I started with this sample and in the meantime figured out we can use "DROP SCHEMA PUBLIC CASCADE" in the driver in case it is HSQL and dropping a database is needed.

A fix will be nice. But I can also try to write my own driver factory class...

Sent from my iPhone

On 08.08.2012, at 15:42, Eike Kettner <ne...@eknet.org> wrote:

> Hi,
> 
> I think that's a bug in the EmpireDriverFactory class. This class is
> part of the sample project and was created as an example on how it could
> work with spring. Well..., do you actually mean this class from the
> example-spring project?
> 
> If so, I would recommend to not depend on this jar file but rather
> create a new DriverFactory (without that bug :)) class in your project.
> But, of course, the EmpireDriverFactory class in the samples should be
> fixed. I can do that the next days.
> 
> best regards
> Eike
> 
> On [Wed, 08.08.2012 14:51], mailinglist@j-b-s.de wrote:
>> Hi Francis!
>> 
>> I digged a bit deeper: the schema name is avail as param in the EmpireDriverFactory, but not used at all in case of HSQL (see :65 in the factory). This at least explains the IllegalArgumentEx. Any ideas?
>> 
>> Jens
>> 
>> Sent from my iPhone
>> 
>> On 07.08.2012, at 11:44, Francis De Brabandere <fr...@gmail.com> wrote:
>> 
>>> Hi Jens,
>>> 
>>> In DBDatabaseDriverHSqlTest this code is in use:
>>> 
>>>       script = new DBSQLScript();
>>>       db.getDriver().getDDLScript(DBCmdType.DROP, db.EMPLOYEE, script);
>>>       db.getDriver().getDDLScript(DBCmdType.DROP, db.DEPARTMENT, script);
>>>       script.run(db.getDriver(), conn, true);
>>> 
>>> As far as I know this is working correctly, would you mind providing
>>> us with some stacktrace or test to reproduce your issue? What sources
>>> are you talking about?
>>> 
>>> Cheers,
>>> Francis
>>> 
>>> On 6 August 2012 15:15, mailinglist@j-b-s.de <ma...@j-b-s.de> wrote:
>>>> Hi All!
>>>> 
>>>> I am working with empire 2.3.0 + spring and got everything working incl
>>>> transactions. For testing purposes I want to drop my database (hsql in
>>>> memory) between test runs. The "database" getCreateDDLScript method creates
>>>> all tables and I am looking for a DropDDLScript method but can't figure it
>>>> out. The method exists on the driver (OracleDDLGenerator for example) and I
>>>> can call it like:
>>>> db.getDriver().getDDLScript(DBCmdType.DROP,..) but this fails with an
>>>> exception "Invalid Argument null for parameter name". From the sources a
>>>> schema name is missing so I am a little confused..,
>>>> 
>>>> Can you point me to the right direction?
>>>> Thx in advance
>>>> 
>>>> Jens
>> 
> 
> -- 
> email: eike@eknet.org   https://eknet.org  pgp: 481161A0

Re: Drop tables

Posted by Eike Kettner <ne...@eknet.org>.
Hi,

I think that's a bug in the EmpireDriverFactory class. This class is
part of the sample project and was created as an example on how it could
work with spring. Well..., do you actually mean this class from the
example-spring project?

If so, I would recommend to not depend on this jar file but rather
create a new DriverFactory (without that bug :)) class in your project.
But, of course, the EmpireDriverFactory class in the samples should be
fixed. I can do that the next days.

best regards
Eike

On [Wed, 08.08.2012 14:51], mailinglist@j-b-s.de wrote:
> Hi Francis!
> 
> I digged a bit deeper: the schema name is avail as param in the EmpireDriverFactory, but not used at all in case of HSQL (see :65 in the factory). This at least explains the IllegalArgumentEx. Any ideas?
> 
> Jens
> 
> Sent from my iPhone
> 
> On 07.08.2012, at 11:44, Francis De Brabandere <fr...@gmail.com> wrote:
> 
> > Hi Jens,
> > 
> > In DBDatabaseDriverHSqlTest this code is in use:
> > 
> >        script = new DBSQLScript();
> >        db.getDriver().getDDLScript(DBCmdType.DROP, db.EMPLOYEE, script);
> >        db.getDriver().getDDLScript(DBCmdType.DROP, db.DEPARTMENT, script);
> >        script.run(db.getDriver(), conn, true);
> > 
> > As far as I know this is working correctly, would you mind providing
> > us with some stacktrace or test to reproduce your issue? What sources
> > are you talking about?
> > 
> > Cheers,
> > Francis
> > 
> > On 6 August 2012 15:15, mailinglist@j-b-s.de <ma...@j-b-s.de> wrote:
> >> Hi All!
> >> 
> >> I am working with empire 2.3.0 + spring and got everything working incl
> >> transactions. For testing purposes I want to drop my database (hsql in
> >> memory) between test runs. The "database" getCreateDDLScript method creates
> >> all tables and I am looking for a DropDDLScript method but can't figure it
> >> out. The method exists on the driver (OracleDDLGenerator for example) and I
> >> can call it like:
> >> db.getDriver().getDDLScript(DBCmdType.DROP,..) but this fails with an
> >> exception "Invalid Argument null for parameter name". From the sources a
> >> schema name is missing so I am a little confused..,
> >> 
> >> Can you point me to the right direction?
> >> Thx in advance
> >> 
> >> Jens
> 

-- 
email: eike@eknet.org   https://eknet.org  pgp: 481161A0

Re: Drop tables

Posted by "mailinglist@j-b-s.de" <ma...@j-b-s.de>.
Hi Francis!

I digged a bit deeper: the schema name is avail as param in the EmpireDriverFactory, but not used at all in case of HSQL (see :65 in the factory). This at least explains the IllegalArgumentEx. Any ideas?

Jens

Sent from my iPhone

On 07.08.2012, at 11:44, Francis De Brabandere <fr...@gmail.com> wrote:

> Hi Jens,
> 
> In DBDatabaseDriverHSqlTest this code is in use:
> 
>        script = new DBSQLScript();
>        db.getDriver().getDDLScript(DBCmdType.DROP, db.EMPLOYEE, script);
>        db.getDriver().getDDLScript(DBCmdType.DROP, db.DEPARTMENT, script);
>        script.run(db.getDriver(), conn, true);
> 
> As far as I know this is working correctly, would you mind providing
> us with some stacktrace or test to reproduce your issue? What sources
> are you talking about?
> 
> Cheers,
> Francis
> 
> On 6 August 2012 15:15, mailinglist@j-b-s.de <ma...@j-b-s.de> wrote:
>> Hi All!
>> 
>> I am working with empire 2.3.0 + spring and got everything working incl
>> transactions. For testing purposes I want to drop my database (hsql in
>> memory) between test runs. The "database" getCreateDDLScript method creates
>> all tables and I am looking for a DropDDLScript method but can't figure it
>> out. The method exists on the driver (OracleDDLGenerator for example) and I
>> can call it like:
>> db.getDriver().getDDLScript(DBCmdType.DROP,..) but this fails with an
>> exception "Invalid Argument null for parameter name". From the sources a
>> schema name is missing so I am a little confused..,
>> 
>> Can you point me to the right direction?
>> Thx in advance
>> 
>> Jens

Re: Drop tables

Posted by Francis De Brabandere <fr...@gmail.com>.
Hi Jens,

In DBDatabaseDriverHSqlTest this code is in use:

        script = new DBSQLScript();
        db.getDriver().getDDLScript(DBCmdType.DROP, db.EMPLOYEE, script);
        db.getDriver().getDDLScript(DBCmdType.DROP, db.DEPARTMENT, script);
        script.run(db.getDriver(), conn, true);

As far as I know this is working correctly, would you mind providing
us with some stacktrace or test to reproduce your issue? What sources
are you talking about?

Cheers,
Francis

On 6 August 2012 15:15, mailinglist@j-b-s.de <ma...@j-b-s.de> wrote:
> Hi All!
>
> I am working with empire 2.3.0 + spring and got everything working incl
> transactions. For testing purposes I want to drop my database (hsql in
> memory) between test runs. The "database" getCreateDDLScript method creates
> all tables and I am looking for a DropDDLScript method but can't figure it
> out. The method exists on the driver (OracleDDLGenerator for example) and I
> can call it like:
> db.getDriver().getDDLScript(DBCmdType.DROP,..) but this fails with an
> exception "Invalid Argument null for parameter name". From the sources a
> schema name is missing so I am a little confused..,
>
> Can you point me to the right direction?
> Thx in advance
>
> Jens