Обсуждение: NEED HELP !

Поиск
Список
Период
Сортировка

NEED HELP !

От
Sergej Galkin
Дата:
Hello all,

I am a student-magister and I'm writting my magister work. I realized gist index TPR tree - it is like a simple R tree but moving :)
Everything is compiling ok, I creating table and index, but after whese code - DB is restarting :(((

set enable_seqscan = false
select * from table_of_moving_objects where mov_obj ~ box '(0,0) (1,1)'


I can not understand why DB is restarting ? It is restarting when SQL begins use index :(((
Can anybody help me , I would by appretiate every people who downloads my sources, try to deploy index and maybe solve where is the problem.

Best regards,
Sergej Galkin
Вложения

Re: NEED HELP !

От
Sergej Galkin
Дата:
I want to add than I have a piece of my code that looks very strange

Datum gist_mov_penalty(PG_FUNCTION_ARGS)
{
    GISTENTRY *origentry = (GISTENTRY *) PG_GETARG_POINTER(0);
    GISTENTRY *newentry  = (GISTENTRY *) PG_GETARG_POINTER(1);
    float * result = (float *) PG_GETARG_POINTER(2);
     moving_object *orig =  &(*origentry).key;
    make_now(orig);
    moving_object *new = &(*origentry).key;
    make_now(new);




Is everything ok in this code ??


On Wed, Jan 13, 2010 at 8:42 PM, Sergej Galkin <sergej.galkin@gmail.com> wrote:
Hello all,

I am a student-magister and I'm writting my magister work. I realized gist index TPR tree - it is like a simple R tree but moving :)
Everything is compiling ok, I creating table and index, but after whese code - DB is restarting :(((

set enable_seqscan = false
select * from table_of_moving_objects where mov_obj ~ box '(0,0) (1,1)'


I can not understand why DB is restarting ? It is restarting when SQL begins use index :(((
Can anybody help me , I would by appretiate every people who downloads my sources, try to deploy index and maybe solve where is the problem.

Best regards,
Sergej Galkin

Re: TPR-tree crash WAS: NEED HELP !

От
Josh Berkus
Дата:
Sergej,

> I can not understand why DB is restarting ? It is restarting when SQL
> begins use index :(((
> Can anybody help me , I would by appretiate every people who downloads
> my sources, try to deploy index and maybe solve where is the problem.

It would help if you gave people a link.

Also, if you are Russian, there is a siginficant community of PostgreSQL
russian-speakers who might be able to help you.

--Josh Berkus


Re: NEED HELP !

От
Robert Haas
Дата:
On Wed, Jan 13, 2010 at 1:42 PM, Sergej Galkin <sergej.galkin@gmail.com> wrote:
> I can not understand why DB is restarting ? It is restarting when SQL begins
> use index :(((
> Can anybody help me , I would by appretiate every people who downloads my
> sources, try to deploy index and maybe solve where is the problem.

Your code is probably crashing.  Before trying to use the index, run
"select pg_backend_pid()" in the backend that you're going to try to
use it from.  Then use "gdb -p <pid>" to attach gdb to the backend.
Type "c" for continue.  Now run the query that crashes it.  gdb will
trap the signal and you can use "bt" to get a backtrace.

I don't think it would be appropriate for us to help you debug your
class project, but learning to use gdb should help you a lot.

Also see:

http://wiki.postgresql.org/wiki/Guide_to_reporting_problems

...Robert


Re: NEED HELP !

От
Sergej Galkin
Дата:
I debugged index with gdb and  found that it is segmentation fault in my procedure named gist_mov_consistent it is only 7 lines. So I think it is worth to publish it to public,


Datum gist_mov_consistent(PG_FUNCTION_ARGS)
{
    GISTENTRY *entry = (GISTENTRY *)PG_GETARG_POINTER(0);
    BOX *query = PG_GETARG_BOX_P(1);
    StrategyNumber strategy = (StrategyNumber)PG_GETARG_UINT16(2);
   
    if (DatumGetMovP(entry->key) == NULL || query == NULL)
        PG_RETURN_BOOL(FALSE);
   
    PG_RETURN_BOOL(obj_contains(DatumGetMovP(entry->key), query));
}

Do you have any ideas where is the problem ? :)

Best regards,
Sergej Galkin

On Wed, Jan 13, 2010 at 8:42 PM, Sergej Galkin <sergej.galkin@gmail.com> wrote:
Hello all,

I am a student-magister and I'm writting my magister work. I realized gist index TPR tree - it is like a simple R tree but moving :)
Everything is compiling ok, I creating table and index, but after whese code - DB is restarting :(((

set enable_seqscan = false
select * from table_of_moving_objects where mov_obj ~ box '(0,0) (1,1)'


I can not understand why DB is restarting ? It is restarting when SQL begins use index :(((
Can anybody help me , I would by appretiate every people who downloads my sources, try to deploy index and maybe solve where is the problem.

Best regards,
Sergej Galkin

Re: NEED HELP !

От
Sergej Galkin
Дата:
And
int obj_contains(moving_object *a, BOX *b)
{
   
    if (b->low.x > a->x_low)
        return 0;
    if (b->low.y > a->y_low)
        return 0;
    if (b->high.x < a->x_high)
        return 0;
    if (b->high.y < a->y_high)
        return 0;
    return 1;
}

this is the procedure obj contains

On Wed, Jan 13, 2010 at 8:56 PM, Sergej Galkin <sergej.galkin@gmail.com> wrote:
I want to add than I have a piece of my code that looks very strange

Datum gist_mov_penalty(PG_FUNCTION_ARGS)
{
    GISTENTRY *origentry = (GISTENTRY *) PG_GETARG_POINTER(0);
    GISTENTRY *newentry  = (GISTENTRY *) PG_GETARG_POINTER(1);
    float * result = (float *) PG_GETARG_POINTER(2);
     moving_object *orig =  &(*origentry).key;
    make_now(orig);
    moving_object *new = &(*origentry).key;
    make_now(new);




Is everything ok in this code ??


On Wed, Jan 13, 2010 at 8:42 PM, Sergej Galkin <sergej.galkin@gmail.com> wrote:
Hello all,

I am a student-magister and I'm writting my magister work. I realized gist index TPR tree - it is like a simple R tree but moving :)
Everything is compiling ok, I creating table and index, but after whese code - DB is restarting :(((

set enable_seqscan = false
select * from table_of_moving_objects where mov_obj ~ box '(0,0) (1,1)'


I can not understand why DB is restarting ? It is restarting when SQL begins use index :(((
Can anybody help me , I would by appretiate every people who downloads my sources, try to deploy index and maybe solve where is the problem.

Best regards,
Sergej Galkin