Re: Enums as PK?

From: Michael Gentry (blacknex..mail.com)
Date: Fri Apr 25 2008 - 10:01:49 EDT

  • Next message: Andrus Adamchik: "Re: Enums as PK?"

    I just did a simple test using the enum PK in a relationship. I
    inserted, queried, and deleted an object pointing to the reference
    table. All worked fine except one cosmetic glitch:

    SELECT t0.state_fk, t0.first_name, t0.last_name, t0.pk FROM test_peeps
    t0, test_enums t1 WHERE t0.state_fk = t1.state AND (t1.state = ?)
    [bind: 1->state:test.Stat..084820]

    The bind should show the actual enum value. This is with M3, though.

    With the current trunk:

    SELECT t0.state_fk, t0.first_name, t0.last_name, t0.pk FROM test_peeps
    t0, test_enums t1 WHERE t0.state_fk = t1.state AND (t1.state = ?)
    [bind: 1->state:VA=7]

    So, the state gets cleaned up in the current build, which is what I
    was hoping since I had changed the enum logging code (the 7 is the
    ordinal position and the value it would be if mapped to an integer in
    the DB). Switching to the extended enumerations gives:

    SELECT t0.state_fk, t0.first_name, t0.last_name, t0.pk FROM test_peeps
    t0, test_enums t1 WHERE t0.state_fk = t1.state AND (t1.state = ?)
    [bind: 1->state:VIRGINIA='VA']

    So ... I'm thinking it is OK.

    On Thu, Apr 24, 2008 at 10:19 AM, Andrus Adamchik
    <andru..bjectstyle.org> wrote:
    > That's the thing - I opened that Jira as a note to self without doing
    > immediate deeper investigation. So now I don't recall the exact details. :-)
    >
    > As for relationships, ideally it should work ... of course ... But since FK
    > is not an ObjAttribute, it may get translated incorrectly when a related
    > to-one fault ObjectId is instantiated. That would be a bug of course.
    >
    > Andrus
    >
    >
    >
    > On Apr 24, 2008, at 5:14 PM, Michael Gentry wrote:
    >
    >
    > > I didn't try doing a relationship using the enum in the join. Did
    > > you? I can try that, too, but I believe all of the translation code
    > > goes through the same routines, so it should work there, too.
    > >
    > > Thanks,
    > >
    > > /dev/mrg
    > >
    > >
    > > On Thu, Apr 24, 2008 at 10:11 AM, Andrus Adamchik
    > > <andru..bjectstyle.org> wrote:
    > >
    > > > Yeah, your example works in all combinations of M3/trunk and Extended
    > enum
    > > > vs. Java enum... I guess there was some other thing in my project (that
    > I
    > > > since remapped as String) that made it blow... I can think of two things
    > -
    > > > relationships and inheritance. I am pretty sure inheritance wasn't
    > involved.
    > > > So it was probably an issue similar to this:
    > > >
    > > > https://issues.apache.org/cayenne/browse/CAY-1034
    > > >
    > > > I guess we can close CAY-1014 and see if we can improve relationship
    > > > validation...
    > > >
    > > > Andrus
    > > >
    > > >
    > > >
    > > >
    > > > On Apr 24, 2008, at 4:35 PM, Michael Gentry wrote:
    > > >
    > > >
    > > > > Hmm, I used the ExtendedEnumerations which aren't in M3. When I
    > > > > changed my State class to look like:
    > > > >
    > > > > public enum State
    > > > > {
    > > > > AL, AK, AR, AZ, DC, MD, TN, VA;
    > > > > }
    > > > >
    > > > > It still worked with M3.
    > > > >
    > > > >
    > > > > On Thu, Apr 24, 2008 at 9:22 AM, Michael Gentry <blacknex..mail.com>
    > > > >
    > > > wrote:
    > > >
    > > > >
    > > > >
    > > > > > Sorry, already sent the attachment. Nothing sensitive in it, though
    > > > > > (custom test db/table).
    > > > > >
    > > > > > Let me see if I have M3 lying around and I'll try it.
    > > > > >
    > > > > > /dev/mrg
    > > > > >
    > > > > >
    > > > > >
    > > > > >
    > > > > > On Thu, Apr 24, 2008 at 9:19 AM, Andrus Adamchik
    > > > > >
    > > > >
    > > > <andru..bjectstyle.org> wrote:
    > > >
    > > > >
    > > > > >
    > > > > >
    > > > > > > Sure, or you can attach it to CAY-1014 if you don't have any
    > sensitive
    > > > > > >
    > > > > >
    > > > >
    > > > info
    > > >
    > > > >
    > > > > >
    > > > > > > in it.
    > > > > > >
    > > > > > > Wonder if my related fix had any effect on this? Could you try it
    > with
    > > > > > >
    > > > > >
    > > > >
    > > > M3
    > > >
    > > > >
    > > > > >
    > > > > > > if possible?
    > > > > > >
    > > > > > > Thanks,
    > > > > > > Andrus
    > > > > > >
    > > > > > >
    > > > > > >
    > > > > > > On Apr 24, 2008, at 4:16 PM, Michael Gentry wrote:
    > > > > > >
    > > > > > >
    > > > > > >
    > > > > > >
    > > > > > > > Andrus, I'm going to send you a test I just did via e-mail since
    > the
    > > > > > > > list doesn't support attachments. Enums as PKs worked for me.
    > What
    > > > > > > > issue were you seeing?
    > > > > > > >
    > > > > > > > Thanks,
    > > > > > > >
    > > > > > > > /dev/mrg
    > > > > > > >
    > > > > > > >
    > > > > > > >
    > > > > > > >
    > > > > > >
    > > > > > >
    > > > > > >
    > > > > > >
    > > > > >
    > > > > >
    > > > > >
    > > > >
    > > > >
    > > > >
    > > >
    > > >
    > > >
    > >
    > >
    >
    >



    This archive was generated by hypermail 2.0.0 : Fri Apr 25 2008 - 10:02:33 EDT