I started with the oracle driver and converted that to postgresql
until the examples worked, that's why some issues are left as we don't
cover all types.

F

On 3 June 2012 12:11, Rainer Döbele <[email protected]> wrote:
> Hi all,
>
> I was just about to investigate this as well, but I have no prostgre dbms 
> available.
>
> It probably only requires to set the correct type in 
> PostgreDDLGenerator.initDataTypes() similar to this:
>
> public class PostgreDDLGenerator extends 
> DBDDLGenerator<DBDatabaseDriverPostgreSQL>
> {
>    private void initDataTypes()
>    {   // Override data types
>        DATATYPE_BOOLEAN = "BOOLEAN";
>        DATATYPE_CLOB = "TEXT";
>        DATATYPE_CLOB = "{ set correct type here!}";
>    }
>
> And BTW: the Javadoc comment mentions Oracle. This should be changed to 
> Postgre as well.
>
> Best regards
> Rainer
>
>
>> from: Francis De Brabandere [mailto:[email protected]]
>> to: [email protected]
>> Cc: [email protected]
>> re: Re: empire-db possible bug: blob type is not working under
>> v2.3
>>
>> Hi Jon,
>>
>> That's indeed a bug, would you mind creating an issue on
>> https://issues.apache.org/jira/browse/EMPIREDB ?
>>
>> http://www.postgresql.org/docs/9.2/static/datatype-binary.html
>> "The SQL standard defines a different binary string type, called BLOB
>> or BINARY LARGE OBJECT. The input format is different from bytea, but
>> the provided functions and operators are mostly the same."
>>
>> PostgreSQL seems to use "bytea" instead of the iso "blob" type
>>
>> I'll try to reproduce this and fix it.
>>
>> Thanks,
>> Francis
>>
>> On 1 June 2012 13:49, Frias Inchausti, Jon <[email protected]>
>> wrote:
>> >
>> > Hello,
>> >
>> >
>> >
>> > My name is Jon Frias and I am working under the version 2.3 of empire
>> db and posgresql driver.
>> >
>> >
>> >
>> > The possible bug I have detected is that, when I am creating a data
>> table, I add a new DBTableColumn which data type is BLOB. The code is
>> compiling with no problem and no warning appears. However, when the
>> database is created by the empire-db generated script, the following
>> error occurs:
>> >
>> >
>> >
>> >
>> >
>> > ERROR org.apache.empire.db.DBSQLScript -
>> > org.postgresql.util.PSQLException: ERROR: type "blob" does not exist
>> >
>> >   Position: 178
>> >
>> > org.postgresql.util.PSQLException: ERROR: type "blob" does not exist
>> >
>> >   Position: 178
>> >
>> >       at
>> >
>> org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExe
>> > cutorImpl.java:2102)
>> >
>> >       at
>> >
>> org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorI
>> > mpl.java:1835)
>> >
>> >       at
>> >
>> org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.jav
>> > a:257)
>> >
>> >       at
>> >
>> org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2State
>> > ment.java:500)
>> >
>> >       at
>> >
>> org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJ
>> > dbc2Statement.java:374)
>> >
>> >       at
>> >
>> org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc
>> > 2Statement.java:302)
>> >
>> >       at
>> >
>> org.apache.empire.db.DBDatabaseDriver.executeSQL(DBDatabaseDriver.java
>> > :552)
>> >
>> >       at org.apache.empire.db.DBSQLScript.run(DBSQLScript.java:120)
>> >
>> >       at
>> >
>> com.tecnalia.plantcockpit.orm.testing.database.Database.createDatabase
>> > (Database.java:129)
>> >
>> >       at
>> >
>> com.tecnalia.plantcockpit.orm.database.DatabaseTest.createDB(DatabaseT
>> > est.java:39)
>> >
>> >       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> >
>> >       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>> >
>> >       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
>> > Source)
>> >
>> >       at java.lang.reflect.Method.invoke(Unknown Source)
>> >
>> >       at
>> >
>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkM
>> > ethod.java:44)
>> >
>> >       at
>> >
>> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCall
>> > able.java:15)
>> >
>> >       at
>> >
>> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMet
>> > hod.java:41)
>> >
>> >       at
>> >
>> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMeth
>> > od.java:20)
>> >
>> >       at
>> >
>> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.j
>> > ava:28)
>> >
>> >       at
>> >
>> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.jav
>> > a:31)
>> >
>> >       at
>> org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
>> >
>> >       at
>> >
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunn
>> > er.java:69)
>> >
>> >       at
>> >
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunn
>> > er.java:48)
>> >
>> >       at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
>> >
>> >       at
>> > org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
>> >
>> >       at
>> > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
>> >
>> >       at
>> > org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
>> >
>> >       at
>> > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
>> >
>> >       at org.junit.runners.ParentRunner.run(ParentRunner.java:292)
>> >
>> >       at
>> >
>> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4T
>> > estReference.java:50)
>> >
>> >       at
>> >
>> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.
>> > java:38)
>> >
>> >       at
>> >
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(Remote
>> > TestRunner.java:467)
>> >
>> >       at
>> >
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(Remote
>> > TestRunner.java:683)
>> >
>> >       at
>> >
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestR
>> > unner.java:390)
>> >
>> >       at
>> >
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTest
>> > Runner.java:197)
>> >
>> > 344 [main] INFO org.apache.empire.exceptions.EmpireException - An
>> > Error occured. Message is: The database operation failed. Native
>> error
>> > is: ERROR: type "blob" does not exist
>> >
>> >   Position: 178
>> >
>> >
>> >
>> >
>> >
>> > The code of the datatable which include the datatype BLOB in one
>> column is this:
>> >
>> >
>> >
>> > public class AddressBook extends DBTable{
>> >
>> >
>> >
>> >       /** serial id. */
>> >
>> >       private static final long serialVersionUID = 1L;
>> >
>> >
>> >
>> >       /** The ADDRESS_BOOK_ID. */
>> >
>> >       public final DBTableColumn ADDRESS_BOOK_ID;
>> >
>> >
>> >
>> >       /** The ADDRES s_ id. */
>> >
>> >       public final DBTableColumn ADDRESS_ID;
>> >
>> >
>> >
>> >       /** The LOCATION. */
>> >
>> >       public final DBTableColumn LOCATION;
>> >
>> >
>> >
>> >       public final DBTableColumn INFORMATION;
>> >
>> >
>> >
>> >       public AddressBook(DBDatabase db) {
>> >
>> >             super("address_book", db);
>> >
>> >
>> >
>> >             ADDRESS_BOOK_ID = addColumn("address_book_id",
>> > DataType.INTEGER, 0, DataMode.AutoGenerated,
>> > "address_book_address_book_id_seq");
>> >
>> >             ADDRESS_ID = addColumn("address_id", DataType.INTEGER, 0,
>> > DataMode.NotNull);
>> >
>> >             LOCATION = addColumn("location", DataType.CHAR, 60,
>> > DataMode.NotNull);
>> >
>> >             INFORMATION = addColumn("information", DataType.BLOB, 0,
>> > DataMode.NotNull);
>> >
>> >
>> >
>> >             setPrimaryKey(ADDRESS_ID);
>> >
>> >
>> >
>> >             addIndex("address_book_pk", true, new DBColumn[] {
>> > ADDRESS_BOOK_ID});
>> >
>> >
>> >
>> >       }
>> >
>> >
>> >
>> > }
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > If you require more details about the source code which can help you
>> to understand what is happening, just let me know.
>> >
>> >
>> >
>> > Thanks for your time.
>> >
>> >
>> >
>> > Best Regards,
>> >
>> >
>> >
>> > Jon Frias
>> >
>> >
>> >
>> >
>> >
>> > Jon Frias Inchausti
>> >
>> > Investigador
>> >
>> > Researcher
>> >
>> >
>> >
>> > UNIDAD DE SISTEMAS INDUSTRIALES /
>> >
>> > INDUSTRIAL SYSTEMS UNIT
>> >
>> >
>> >
>> > División Industria y Transporte /
>> >
>> > Industry and Transport Division
>> >
>> >
>> >
>> > TECNALIA
>> >
>> > Paseo Mikeletegi 7 - Parque Tecnológico
>> >
>> > E-20009 Donostia - San Sebastián (Gipuzkoa, Spain)
>> >
>> > Telf Industry & Transport Division: (+34) 943 105115 or 902 760 002
>> >
>> > Telf Tecnalia Research & Innovation: (+34) 946 430 850 or 902 760 000
>> >
>> > Fax: (+34) 946 460 900 or 901 706 009
>> >
>> > [email protected]
>> >
>> > www.tecnalia.com
>> >
>> >
>> >
>> > Este mensaje puede contener información confidencial o privilegiada.
>> Si no eres el destinatario de este mensaje, notifícaselo por favor al
>> remitente y bórralo sin reenviarlo o guardarlo dado que está legalmente
>> prohibido.
>> >
>> > Mezu honek daukan informazioa isilpekoa edo pribilegiatua izan
>> daiteke. Zuri zuzendua ez badago emaiozu, mesedez,  horren berri
>> igorleari eta ezaba ezazu bidali edo gorde gabe, legalki debekatua dago
>> eta.
>> >
>> > This message may contain confidential, proprietary or legally
>> privileged information. If you are not the intended recipient of this
>> message, please notify it to the sender and delete without resending or
>> backing it, as it is legally prohibited.
>> >
>> > Por favor, piensa en el medio ambiente antes de imprimir este e-mail.
>> >
>> > Mesedez pentsatu ingurugiroan e-mail hau imprimatu baino lehen.
>> >
>> > Please, consider the environment before printing this e-mail.
>> >
>> >

Reply via email to