Return-Path: Delivered-To: apmail-db-jdo-dev-archive@www.apache.org Received: (qmail 45963 invoked from network); 3 Nov 2007 20:32:23 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 3 Nov 2007 20:32:23 -0000 Received: (qmail 92048 invoked by uid 500); 3 Nov 2007 20:32:11 -0000 Mailing-List: contact jdo-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: jdo-dev@db.apache.org Delivered-To: mailing list jdo-dev@db.apache.org Received: (qmail 92037 invoked by uid 99); 3 Nov 2007 20:32:11 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 03 Nov 2007 13:32:11 -0700 X-ASF-Spam-Status: No, hits=-1.0 required=10.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: local policy) Received: from [192.18.43.133] (HELO sca-es-mail-2.sun.com) (192.18.43.133) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 03 Nov 2007 20:32:12 +0000 Received: from fe-sfbay-10.sun.com ([192.18.43.129]) by sca-es-mail-2.sun.com (8.13.7+Sun/8.12.9) with ESMTP id lA3KVq8Q014935 for ; Sat, 3 Nov 2007 13:31:52 -0700 (PDT) Received: from conversion-daemon.fe-sfbay-10.sun.com by fe-sfbay-10.sun.com (Sun Java System Messaging Server 6.2-8.04 (built Feb 28 2007)) id <0JQY00301611VC00@fe-sfbay-10.sun.com> (original mail from Craig.Russell@Sun.COM) for jdo-dev@db.apache.org; Sat, 03 Nov 2007 13:31:52 -0700 (PDT) Received: from [192.168.0.12] (c-24-6-172-77.hsd1.ca.comcast.net [24.6.172.77]) by fe-sfbay-10.sun.com (Sun Java System Messaging Server 6.2-8.04 (built Feb 28 2007)) with ESMTPSA id <0JQY00COX6D3WG10@fe-sfbay-10.sun.com> for jdo-dev@db.apache.org; Sat, 03 Nov 2007 13:31:52 -0700 (PDT) Date: Sat, 03 Nov 2007 13:31:51 -0700 From: Craig L Russell Subject: Re: Enum handling In-reply-to: <000901c81e05$20432440$60c96cc0$@org> Sender: Craig.Russell@Sun.COM To: jdo-dev@db.apache.org Cc: jdo-experts-ext@Sun.COM Message-id: MIME-version: 1.0 X-Mailer: Apple Mail (2.752.3) Content-type: multipart/signed; protocol="application/pkcs7-signature"; boundary=Apple-Mail-56-1066347117; micalg=sha1 References: <4463CFBC.2050403@sun.com> <200711021950.16592.andy@jpox.org> <472B82C4.4010000@sun.com> <200711030833.05179.andy@jpox.org> <000901c81e05$20432440$60c96cc0$@org> X-Virus-Checked: Checked by ClamAV on apache.org --Apple-Mail-56-1066347117 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed Hi Erik, This example should fit in with what Matthew is doing for more =20 flexible mapping of enums to fixed precision types. Craig On Nov 3, 2007, at 3:34 AM, Erik Bengtson wrote: > Another use case of enum persistence, is the persistence of arbitrary > values. > > public enum Test { > RED(1), BLUE(5); > > private final int value; > > Test(int v) > { > this.value =3D v; > } > > public final int getValue() > { > return this.value; > } > > public final static Enum getEnum(int i) > { > switch(i) > { > case 1: return Test.RED; > case 5: return Test.BLUE; > } > return null; > } > } > > > Refer to: > http://www.jpox.org/servlet/jira/browse/JAVAFIVEPLUGIN-51 > > > -----Message d'origine----- > De : Andy Jefferson [mailto:andy@jpox.org] > Envoy=E9 : samedi 3 novembre 2007 9:33 > =C0 : jdo-dev@db.apache.org; jdo-experts-ext@sun.com > Objet : Re: Enum handling > > Hi Craig, Michelle, > >> Makes sense to me, but the spec lead thinks the implementation should >> check the actual type in the database. > > Well while I understand what our spec lead says I also point out :- > > 1. All TCK tests so far use the table in 18.4 in the spec to define =20= > the > default jdbc-type and that is used by the implementation so they =20 > have no > need > to go to the datastore to validate the tables and hence define how =20 > they will > > be mapped. There presumably will be an entry for java.lang.Enum =20 > added that > has VARCHAR as the default jdbc-type. > > 2. The only place where the section 18.4 default mappings are not =20 > used (e.g > FieldsOfCharacter), the TCK "orm" files add jdbc-type, and so don't =20= > impose > on > the implementation the overhead of having to go to the datastore to =20= > get this > > information there either. > > 3. The spec lead has more faith than me in JDBC drivers ;-), and =20 > some (e.g > Oracle) are notoriously slow for obtaining basic schema =20 > information ... and > then we could refer to a JIRA I raised on Derby a year ago > http://issues.apache.org/jira/browse/DERBY-1996 > For this reason, and for reasons of portability (not relying on the =20= > schema > being identical, but instead imposing the requirements in the mapping > information) JPOX has always relied on jdbc-type, whilst still =20 > providing a > means of validating this mapping definition against the underlying =20 > datastore > > (if the user wishes to do so). Does the spec prohibit this mode of > operation? > > 4. The schema for the FieldsOfEnum has two types of columns ... =20 > VARCHAR(256) > > and CHAR(2). Even if JPOX went to the datastore and found CHAR(2), =20 > that > would > still imply a String based persistence (to me). INTEGER would suggest > something else. > > > > --=20 > Andy (Java Persistent Objects - http://www.jpox.org) > > Craig Russell Architect, Sun Java Enterprise System http://java.sun.com/products/jdo 408 276-5638 mailto:Craig.Russell@sun.com P.S. A good JDO? O, Gasp! --Apple-Mail-56-1066347117 Content-Transfer-Encoding: base64 Content-Type: application/pkcs7-signature; name=smime.p7s Content-Disposition: attachment; filename=smime.p7s MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIGUDCCAwkw ggJyoAMCAQICECpJVMO68ii+Xfsc1O1YYFIwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UEBhMCWkEx JTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQ ZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA2MTIwOTE5NTEwNVoXDTA3MTIwOTE5NTEw NVowbDEQMA4GA1UEBBMHUnVzc2VsbDEUMBIGA1UEKhMLQ3JhaWcgTGFpcmQxHDAaBgNVBAMTE0Ny YWlnIExhaXJkIFJ1c3NlbGwxJDAiBgkqhkiG9w0BCQEWFUNyYWlnLlJ1c3NlbGxAU3VuLkNPTTCC ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMNAB4Ih+ShsCt89HzqIdwEx8L4o1UHiY6V7 16mrCedfd4Y0/uI7z9Zam8ysgEh+F7aDnQEKmEsVFN35G4nPMfLU6dZYkvADwUjbq82t/dJ3FDDg Q945nHHpqECZff/S/UMho9AFfj6PZvZBAlDCJAayb4RdKIlfuvPW9YcQStQ1IfVJcVuKnC0Q+tdc a4A7zn7IzLOQohO1lTc3hXSBigEIGiGYn6Ny0wmexfA3X1WsXekFx5czd+M4GjDjswn8CNoBmnBr jOTGK1mOsXR6GSRHnly2s9xTdE4qv9qimM+7C2yzMHbKcszV7OQoLsRsZKDh+6u9wYU+TrjcY4ym bA8CAwEAAaMyMDAwIAYDVR0RBBkwF4EVQ3JhaWcuUnVzc2VsbEBTdW4uQ09NMAwGA1UdEwEB/wQC MAAwDQYJKoZIhvcNAQEFBQADgYEAU/EpPDztnb55Fz7iGSVm1mYEVj5m2OQKTYG26POUAomCBRrt /CdBBvqYmcHUTpra0qLELHAQadYFl2v11iQkqwF5PPJs19oU/zA0m5qFnOMTAiCvel7IprIwA2r6 eJR9siaPwDRgVJ/Sj71dD+utwf+nRrNy0/7PMNK5y+ocsYQwggM/MIICqKADAgECAgENMA0GCSqG SIb3DQEBBQUAMIHRMQswCQYDVQQGEwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQH EwlDYXBlIFRvd24xGjAYBgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZp Y2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMSQwIgYDVQQDExtUaGF3dGUgUGVyc29uYWwgRnJlZW1h aWwgQ0ExKzApBgkqhkiG9w0BCQEWHHBlcnNvbmFsLWZyZWVtYWlsQHRoYXd0ZS5jb20wHhcNMDMw NzE3MDAwMDAwWhcNMTMwNzE2MjM1OTU5WjBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3Rl IENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWls IElzc3VpbmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMSmPFVzVftOucqZWh5owHUE cJ3f6f+jHuy9zfVb8hp2vX8MOmHyv1HOAdTlUAow1wJjWiyJFXCO3cnwK4Vaqj9xVsuvPAsH5/Ef kTYkKhPPK9Xzgnc9A74r/rsYPge/QIACZNenprufZdHFKlSFD0gEf6e20TxhBEAeZBlyYLf7AgMB AAGjgZQwgZEwEgYDVR0TAQH/BAgwBgEB/wIBADBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3Js LnRoYXd0ZS5jb20vVGhhd3RlUGVyc29uYWxGcmVlbWFpbENBLmNybDALBgNVHQ8EBAMCAQYwKQYD VR0RBCIwIKQeMBwxGjAYBgNVBAMTEVByaXZhdGVMYWJlbDItMTM4MA0GCSqGSIb3DQEBBQUAA4GB AEiM0VCD6gsuzA2jZqxnD3+vrL7CF6FDlpSdf0whuPg2H6otnzYvwPQcUCCTcDz9reFhYsPZOhl+ hLGZGwDFGguCdJ4lUJRix9sncVcljd2pnDmOjCBPZV+V2vf3h9bGCE6u9uo05RAaWzVNd+NWIXiC 3CEZNd4ksdMdRv9dX2VPMYIDEDCCAwwCAQEwdjBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhh d3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVt YWlsIElzc3VpbmcgQ0ECECpJVMO68ii+Xfsc1O1YYFIwCQYFKw4DAhoFAKCCAW8wGAYJKoZIhvcN AQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDcxMTAzMjAzMTUyWjAjBgkqhkiG9w0B CQQxFgQUV1PBuA/m7XHJ8td04xZ5E4TED2wwgYUGCSsGAQQBgjcQBDF4MHYwYjELMAkGA1UEBhMC WkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0 ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAhAqSVTDuvIovl37HNTtWGBSMIGHBgsqhkiG 9w0BCRACCzF4oHYwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQ dHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAhAq SVTDuvIovl37HNTtWGBSMA0GCSqGSIb3DQEBAQUABIIBAIvPwVJST63iE8OvAbT93oD39VzEg3Pd hXjZogE6KmVGXvRkRzsenrMSbOB7HxiLTGOwmNILe1dfgk8jqQcPcFo8FlOT0w+HqsEKoxlgNgoL fHYSJpIUaMVPOFSYV8GHtJdNV6ZmkSdvUHEnNp67qizbh1zFWNrZgd8DdI3Ymygx2+lQynExYobM o2LZvxNwi8iphNsR7c8EEnN+/MzjC+wEXHFtnJ8TkUKPsM0qDQyd6SlxzsuFfNQGBB+jm7xPHKQd Tj4/i/CsJ23j9rfVHCSMpCjgo4MCkqNj/1rbgGUXTL+kVB62Dx0XwdE5HOSx/PrDyPD32WK9a9gN l9gUBwoAAAAAAAA= --Apple-Mail-56-1066347117--