Apache JDO Project - fieldtypes metadata issues

This is Interesting: Free IT Magazines  
Home > Archive > Apache JDO Project > June 2005 > fieldtypes metadata issues





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author fieldtypes metadata issues

2005-06-06, 7:50 am

Hi,

While running the tck tests I found these issues:

1. Below the class name is incorrect

Index:
F:/eclipse-new/eclipse/workspace/tck20/test/orm/datastoreidentity/org/ap
ache/jdo/tck/pc/fieldtypes/FieldsOfPrimitiveboolean-derby.orm
========================================
===========================
---
F:/eclipse-new/eclipse/workspace/tck20/test/orm/datastoreidentity/org/ap
ache/jdo/tck/pc/fieldtypes/FieldsOfPrimitiveboolean-derby.orm
(revision 179987)
+++
F:/eclipse-new/eclipse/workspace/tck20/test/orm/datastoreidentity/org/ap
ache/jdo/tck/pc/fieldtypes/FieldsOfPrimitiveboolean-derby.orm
(working copy)
@@ -2,7 +2,7 @@
<!DOCTYPE orm PUBLIC "-//Sun Microsystems, Inc.//DTD Java Data Objects
Mapping Metadata 2.0//EN" "http://java.sun.com/dtd/orm_2_0.dtd">
<orm>
<package name="org.apache.jdo.tck.pc.fieldtypes">
- <class name="FieldsOfPrimitiveBoolean"
table="FIELDSOFPRIMITIVEBOOLEAN">
+ <class name="FieldsOfPrimitiveboolean"
table="FIELDSOFPRIMITIVEBOOLEAN">
<datastore-identity strategy="identity"
column="IDENTIFIER"/>
<field name="boolean0" column="BOOLEAN0"/>
<field name="boolean1" column="BOOLEAN1"/>


2. In datastore tests, the id field is not persistent.

Index:
F:/eclipse-new/eclipse/workspace/tck20/test/jdo/datastoreidentity/org/ap
ache/jdo/tck/pc/fieldtypes/SimpleClass.jdo
========================================
===========================
---
F:/eclipse-new/eclipse/workspace/tck20/test/jdo/datastoreidentity/org/ap
ache/jdo/tck/pc/fieldtypes/SimpleClass.jdo (revision 179987)
+++
F:/eclipse-new/eclipse/workspace/tck20/test/jdo/datastoreidentity/org/ap
ache/jdo/tck/pc/fieldtypes/SimpleClass.jdo (working copy)
@@ -4,6 +4,7 @@
<package name="org.apache.jdo.tck.pc.fieldtypes">
<class name="SimpleClass" identity-type="datastore">
<implements name="SimpleInterface"/>
+ <field name="id" persistence-modifier="none"/>
</class>
</package>
</jdo>

3. Here the simple class definition was again defined, so I removed it


Index:
F:/eclipse-new/eclipse/workspace/tck20/test/jdo/datastoreidentity/org/ap
ache/jdo/tck/package.jdo
========================================
===========================
---
F:/eclipse-new/eclipse/workspace/tck20/test/jdo/datastoreidentity/org/ap
ache/jdo/tck/package.jdo (revision 179987)
+++
F:/eclipse-new/eclipse/workspace/tck20/test/jdo/datastoreidentity/org/ap
ache/jdo/tck/package.jdo (working copy)
@@ -26,9 +26,5 @@
<class name="NoAccessToFieldsAfterPredelete"
persistence-modifier="persistence-aware"/>
<class name="TestParts"
persistence-modifier="persistence-aware"/>
</package>
- <package name="org.apache.jdo.tck.pc.fieldtypes">
- <class name="SimpleClass" identity-type="datastore">
- <implements name="SimpleInterface"/>
- </class>
- </package>
+
</jdo>

4. JPOX can't find the implementation classes.

Fixed. Get the latest nightly build.

5. Fields of simple interface are using BLOB types to store data in all
fields.

It should only use LONG VARCHAR FOR BIT DATA types for the fields that
are marked as embedded in the metadata. For all non embedded fields, the
column should have a FK to the table Simple class.

CREATE TABLE FIELDSOFSIMPLEINTERFACE
(
IDENTIFIER INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY,
SIMPLEINTERFACE1 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE102 LONG VARCHAR FOR BIT DATA,
...



Erik Bengtson


Craig Russell

2005-06-06, 7:50 am

2005-06-06, 7:50 am


=A0[vbcol=seagreen]
=A0[vbcol=seagreen]
to be fixed to have the id fields be persistent, and add a column to be
used for the datastore identity.
[vbcol=seagreen]
it
=A0[vbcol=seagreen]
for the class SimpleClass before it read any of the metadata that used
the SimpleInterface. The duplicate definition in pc.fieldtypes should be
ignored according to the specification.=20
=A0
Fine, not an issue here, but dependency of fixing the schema for
including the id column as said in issue 2.
[vbcol=seagreen]
all fields.
=A0[vbcol=seagreen]

Not really, this is another big issue

Another look at the FieldsOfSimpleClass brings up another issue. All
fields have a column with FK to SIMPLECLASS (see schema), including
those marked as embedded. Should it not serialize embedded fields to a
blob column. That's what I understand by embedded.

I have a patch here if my understanding is correct on the embedded
fields to BLOB columns:

CREATE TABLE FIELDSOFSIMPLEINTERFACE
(
IDENTIFIER INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY,
SIMPLEINTERFACE1 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE102 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE103 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE104 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE109 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE11 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE110 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE112 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE113 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE114 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE119 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE12 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE120 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE121 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE125 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE126 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE128 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE129 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE13 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE130 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE138 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE139 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE140 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE17 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE18 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE2 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE20 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE21 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE22 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE30 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE31 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE32 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE37 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE38 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE4 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE40 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE41 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE42 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE47 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE48 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE49 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE5 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE53 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE54 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE56 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE57 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE58 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE6 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE66 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE67 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE68 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE73 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE74 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE76 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE77 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE78 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE83 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE84 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE85 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE89 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE90 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE92 BIGINT REFERENCES SIMPLE_CLASS,
SIMPLEINTERFACE93 LONG VARCHAR FOR BIT DATA,
SIMPLEINTERFACE94 BIGINT REFERENCES SIMPLE_CLASS
);
[vbcol=seagreen]
tests?

Yes. Looking at the fieldtypes package, the remaining issues are on
mapping jdo files to the schema.


Michelle Caisse

2005-06-07, 8:45 pm

Hi, Erik,

I've changed all the BLOB fields to LONG VARCHAR FOR BIT DATA (not yet
checked in) and I'm running the TCK. I'm getting errors like: "Table
'MAP_OF_BIG_DECIMAL45_STRJU' does not exist." I assume that JPOX thinks
the table names are too long and is truncating them. However the
originals work just fine in Derby. I believe that all the names are 30
characters or less.

Another issue is performance. As I mentioned in another email, the TCK
ran 10x slower on the 6/6 build than on the 6/3 build. I'm now running
the 6/7 build and it seemed quick enough until it hit the fieldtypes
tests. Maybe it is just getting farther in the tests because of the
various fixes we've made, and so takes longer? I'm not sure. But it
makes it difficult to do a full test run before check-in. Do you have
any thoughts about the performance issue?

-- Michelle

erik@jpox.org wrote:

> ...
>
>all fields.
>
>
>
>
>Not really, this is another big issue
>
>Another look at the FieldsOfSimpleClass brings up another issue. All
>fields have a column with FK to SIMPLECLASS (see schema), including
>those marked as embedded. Should it not serialize embedded fields to a
>blob column. That's what I understand by embedded.
>
>I have a patch here if my understanding is correct on the embedded
>fields to BLOB columns:
>
>CREATE TABLE FIELDSOFSIMPLEINTERFACE
>(
> IDENTIFIER INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY,
> SIMPLEINTERFACE1 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE102 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE103 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE104 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE109 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE11 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE110 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE112 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE113 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE114 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE119 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE12 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE120 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE121 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE125 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE126 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE128 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE129 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE13 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE130 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE138 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE139 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE140 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE17 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE18 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE2 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE20 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE21 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE22 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE30 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE31 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE32 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE37 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE38 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE4 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE40 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE41 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE42 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE47 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE48 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE49 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE5 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE53 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE54 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE56 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE57 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE58 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE6 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE66 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE67 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE68 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE73 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE74 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE76 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE77 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE78 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE83 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE84 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE85 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE89 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE90 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE92 BIGINT REFERENCES SIMPLE_CLASS,
> SIMPLEINTERFACE93 LONG VARCHAR FOR BIT DATA,
> SIMPLEINTERFACE94 BIGINT REFERENCES SIMPLE_CLASS
> );
>
>
>
>tests?
>
>Yes. Looking at the fieldtypes package, the remaining issues are on
>mapping jdo files to the schema.
>
>
>



Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com