From matthews from greengenes.cit.cornell.edu Tue Mar 13 21:08:06 2007 From: matthews from greengenes.cit.cornell.edu (Dave Matthews) Date: Wed Mar 14 02:46:26 2007 Subject: [Acedb-soft] aql error 810, Inconsistent value types Message-ID: <200703140208.l2E286BY011572@greengenes.cit.cornell.edu> What does this error message mean? // AQL error 810 around: 'l, m, p from s in' // ^ // Inconsistent value types in table column 3 // Value type was 'g' and now the field evaluates to type 'f' in row 19822 What are value types g and f? This comes from the following aql query, explorable at http://grain.jouy.inra.fr/cgi-bin/ace/custom/aqlInterface/graingenes : select l, m, p from s in class sequence where exists_tag s->dna_homol, l in s->probe->locus, m in l->map, p in m[2] I routinely aql out every map position in the database using a different query, but it gets them all with no errors, so this is strange. This is using ace4_9t. - Dave - - - - - - - - - - - - - - - - - - - - David E. Matthews, PhD USDA-ARS Plant Genome Database Curator Cornell University Email: matthews@greengenes.cit.cornell.edu Department of Plant Breeding Phone: +1-607-255-9951 409 Bradfield Hall Fax: +1-607-255-6683 Ithaca, New York 14853, USA GrainGenes: http://wheat.pw.usda.gov From matthews from greengenes.cit.cornell.edu Wed Mar 14 12:25:43 2007 From: matthews from greengenes.cit.cornell.edu (Dave Matthews) Date: Thu Mar 15 03:45:38 2007 Subject: [Acedb-soft] aql error 810, Inconsistent value types Message-ID: <200703141725.l2EHPhLB016792@greengenes.cit.cornell.edu> Hi jean, > f is type float > g is type tag > > it means that in m[2] you had something heterogeneous > the only way i see to produce that is that the model > allowed either float or tag at this position Aha! You nailed it. I have ?Locus Location Map ?Map #map_position ?map_position Position Float Ends Left Float Right Float Changing the query to this fixes the problem: select l, m, p from s in class sequence where exists_tag s->dna_homol, l in s->probe->locus, m in l->map, p in m[Position] > 1) do you have a suggestion to improve the error message How about "Value type was 'tag' and now the field evaluates to type 'float' in row 19822" Thanks for the help!! - Dave > From mieg@ncbi.nlm.nih.gov Wed Mar 14 12:29:04 2007 > > >What does this error message mean? > > > >// AQL error 810 around: 'l, m, p from s in' > >// ^ > >// Inconsistent value types in table column 3 > >// Value type was 'g' and now the field evaluates to type 'f' in row 19822 > > > >What are value types g and f? > > > f is type float > g is type tag > > it means that in m[2] you had something heterogeneous > the only way i see to produce that is that the model > allowed either float or tag at this position > > either you did a read-model during the lifetime of the database > this does not erase the data, the dumper still works > the purpose of this is that we do not lose data in acedb > by reading a wrong model, we just loose access via queries > (direct query, table maker, aql, aceperl) > but the dumper survives > > or the schema is complex and you should select on m[1] > to be sure that m[2] is a float > > Maybe te schema is > > ?Sequence Map #map_info > > #map_info Position float > Neighbours Left ?Sequence > Right ?Sequence > > > .ace file: > > Sequence s1 > Map 2 Position 3.2 > > Sequence s2 > Map 4 Neighbours Left s1 > > > == > > not the aql query will give a float 3.2 for s1 > and a tag Left (type 'g') for s2 > > Table maker is this case would have imposed 'float' > and just export a void cell, > aql reports a detailled error message, which is nice, > although a bit cryptic, sorry > > 1) do you have a suggestion to improve the error message > 2) the solu is to select on m[1]==Position > or on selecting p from m.Position or maybe m[Position] > (i am never sure of the aql syntax, but something like this > works) > naming tags is more secure than offsets if you access > constructed types, and more robust if the schema changes in the > future and gets enriched > > > > Please let me know if the explanation is clear enough > > > >This comes from the following aql query, explorable at > >http://grain.jouy.inra.fr/cgi-bin/ace/custom/aqlInterface/graingenes : > > > >select l, m, p > >from s in class sequence where exists_tag s->dna_homol, > > l in s->probe->locus, > > m in l->map, > > p in m[2] > > > > > >I routinely aql out every map position in the database using a different > >query, but it gets them all with no errors, so this is strange. > > > >This is using ace4_9t. > > > >- Dave From mieg from ncbi.nlm.nih.gov Wed Mar 14 11:28:59 2007 From: mieg from ncbi.nlm.nih.gov (Jean Thierry-Mieg) Date: Thu Mar 15 03:45:54 2007 Subject: [Acedb-soft] aql error 810, Inconsistent value types Message-ID: <20070314162859.8166F76C2BB@mail2.ncbi.nlm.nih.gov> >What does this error message mean? > >// AQL error 810 around: 'l, m, p from s in' >// ^ >// Inconsistent value types in table column 3 >// Value type was 'g' and now the field evaluates to type 'f' in row 19822 > >What are value types g and f? > f is type float g is type tag it means that in m[2] you had something heterogeneous the only way i see to produce that is that the model allowed either float or tag at this position either you did a read-model during the lifetime of the database this does not erase the data, the dumper still works the purpose of this is that we do not lose data in acedb by reading a wrong model, we just loose access via queries (direct query, table maker, aql, aceperl) but the dumper survives or the schema is complex and you should select on m[1] to be sure that m[2] is a float Maybe te schema is ?Sequence Map #map_info #map_info Position float Neighbours Left ?Sequence Right ?Sequence .ace file: Sequence s1 Map 2 Position 3.2 Sequence s2 Map 4 Neighbours Left s1 == not the aql query will give a float 3.2 for s1 and a tag Left (type 'g') for s2 Table maker is this case would have imposed 'float' and just export a void cell, aql reports a detailled error message, which is nice, although a bit cryptic, sorry 1) do you have a suggestion to improve the error message 2) the solu is to select on m[1]==Position or on selecting p from m.Position or maybe m[Position] (i am never sure of the aql syntax, but something like this works) naming tags is more secure than offsets if you access constructed types, and more robust if the schema changes in the future and gets enriched Please let me know if the explanation is clear enough >This comes from the following aql query, explorable at >http://grain.jouy.inra.fr/cgi-bin/ace/custom/aqlInterface/graingenes : > >select l, m, p >from s in class sequence where exists_tag s->dna_homol, > l in s->probe->locus, > m in l->map, > p in m[2] > > >I routinely aql out every map position in the database using a different >query, but it gets them all with no errors, so this is strange. > >This is using ace4_9t. > >- Dave > >- - - - - - - - - - - - - - - - - - - - >David E. Matthews, PhD USDA-ARS Plant Genome Database Curator >Cornell University Email: matthews@greengenes.cit.cornell.edu >Department of Plant Breeding Phone: +1-607-255-9951 >409 Bradfield Hall Fax: +1-607-255-6683 >Ithaca, New York 14853, USA GrainGenes: http://wheat.pw.usda.gov > >_______________________________________________ >Acedb mailing list >Acedb@net.bio.net >http://www.bio.net/biomail/listinfo/acedb