Re: [HACKERS] Exception in select IN with index - Mailing list pgsql-hackers
From | Thomas A. Szybist |
---|---|
Subject | Re: [HACKERS] Exception in select IN with index |
Date | |
Msg-id | 199809121535.LAA11386@carmina.boxhill Whole thread Raw |
In response to | Exception in select IN with index (Keith Parks <emkxp01@mtcc.demon.co.uk>) |
List | pgsql-hackers |
In message <199809121356.OAA21197@mtcc.demon.co.uk>, Keith Parks writes: > Hi, > > Can anyone else reproduce this problem? > (Maybe a signal handling problem on S/Linux??) > > Using the regression database... > > Keith. > > > regression=> select * from person where age in (38,68); > name |age|location > -------+---+---------- > teresa | 38|(7.7,1.8) > leah | 68|(0.6,3.37) > liza | 38|(9.76,6.9) > jenifer| 38|(6.6,23.3) > sumi | 38|(1.15,0.6) > paula | 68|(0.5,0.5) > julie | 68|(3.6,7.2) > belinda| 38|(8.9,1.7) > sandy | 38|(3.8,0.2) > velma | 68|(8.8,8.9) > (10 rows) > > regression=> create index p_age_idx on person (age); > CREATE > regression=> select * from person where age in (38,68); > ERROR: floating point exception! The last floating point operation either > exceeded legal ranges or was a divide by zero > regression=> drop index p_age_idx; > DROP > regression=> select * from person where age in (38,68); > name |age|location > -------+---+---------- > teresa | 38|(7.7,1.8) > leah | 68|(0.6,3.37) > liza | 38|(9.76,6.9) > jenifer| 38|(6.6,23.3) > sumi | 38|(1.15,0.6) > paula | 68|(0.5,0.5) > julie | 68|(3.6,7.2) > belinda| 38|(8.9,1.7) > sandy | 38|(3.8,0.2) > velma | 68|(8.8,8.9) > (10 rows) > > regression=> > > Here's a trace. > > Program received signal SIGFPE, Arithmetic exception. > 0x931c4 in create_or_index_paths (root=0x1d7d10, rel=0x1efb90, clauses=0x1f9270) > at orindxpath.c:128 > 128 t_list = lappend(t_list, pathnode); > (gdb) bt > #0 0x931c4 in create_or_index_paths (root=0x1d7d10, rel=0x1efb90, > clauses=0x1f9270) at orindxpath.c:128 > #1 0x8f0fc in find_rel_paths (root=0x1d7d10, rels=0x1f9510) at allpaths.c:130 > #2 0x8f06c in find_paths (root=0x1d7d10, rels=0x1f9510) at allpaths.c:77 > #3 0x94d48 in subplanner (root=0x1d7d10, flat_tlist=0x1f96f0, qual=0x1f9950) at > planmain.c:279 > #4 0x94c30 in query_planner (root=0x1d7d10, command_type=1, tlist=0x1f43f0, > qual=0x1f9950) at planmain.c:183 > #5 0x953c0 in union_planner (parse=0x1d7d10) at planner.c:151 > #6 0x95228 in planner (parse=0x1d7d10) at planner.c:72 > #7 0xccf1c in pg_parse_and_plan (query_string=0xefffd1a0 "select * from person > where age in (38,68);", > typev=0x0, nargs=0, queryListP=0xefffd09c, dest=Remote, aclOverride=0 > '\000') at postgres.c:626 > #8 0xcd040 in pg_exec_query_dest (query_string=0xefffd1a0 "select * from person > where age in (38,68);", > dest=Remote, aclOverride=0 '\000') at postgres.c:720 > #9 0xccff4 in pg_exec_query (query_string=0xefffd1a0 "select * from person > where age in (38,68);") > at postgres.c:697 > #10 0xce2e4 in PostgresMain (argc=10, argv=0xeffff268, real_argc=10, > real_argv=0xeffffd84) at postgres.c:1611 > #11 0xb1fcc in DoBackend (port=0x12d800) at postmaster.c:1528 > #12 0xb1a44 in BackendStartup (port=0x190c00) at postmaster.c:1299 > #13 0xb0ebc in ServerLoop () at postmaster.c:757 > #14 0xb0a04 in PostmasterMain (argc=0, argv=0xeffffd84) at postmaster.c:563 > #15 0x83870 in main (argc=10, argv=0xeffffd84) at main.c:93 > (gdb) print t_list > $1 = (List *) 0x0 > (gdb) print pathnode > $2 = (IndexPath *) 0x1ef210 > (gdb) print *pathnode > $3 = {path = {type = T_IndexPath, parent = 0x1efb90, path_cost = 4.0999999, > pathtype = T_IndexScan, > p_ordering = {ordtype = MERGE_ORDER, ord = {sortop = 0x0, merge = 0x0}}, > keys = 0x0, outerjoincost = 0, > joinid = 0x0, locclauseinfo = 0x0}, indexid = 0x1e5dd0, indexqual = > 0x1e5b90, indexkeys = 0x0} > (gdb) > > > Sorry Keith, It works on my Sparc 20 running S/Linux. I'm using a cvs copy from sometime on Sept 10. It also works on my solaris 2.6 box (ultra 30). Tom Szybist szybist@boxhill.com
pgsql-hackers by date: