aql error 810, Inconsistent value types

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

aql error 810, Inconsistent value types

via the vacation program-3
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: [hidden email]
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
[hidden email]
http://www.bio.net/biomail/listinfo/acedb
Reply | Threaded
Open this post in threaded view
|

Re: aql error 810, Inconsistent value types

Jean Thierry-Mieg

>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: [hidden email]
>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
>[hidden email]
>http://www.bio.net/biomail/listinfo/acedb

_______________________________________________
Acedb mailing list
[hidden email]
http://www.bio.net/biomail/listinfo/acedb
Reply | Threaded
Open this post in threaded view
|

Re: aql error 810, Inconsistent value types

via the vacation program-3
In reply to this post by via the vacation program-3
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 [hidden email]  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

_______________________________________________
Acedb mailing list
[hidden email]
http://www.bio.net/biomail/listinfo/acedb