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 from 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