gvSIG bugs #5834

Falla al crear una tabla con una geometria 3D en oracle.

Added by Joaquín del Cerro Murciano about 1 month ago. Updated about 1 month ago.

Status:Fixed% Done:

0%

Priority:NormalSpent time:-
Assignee:Joaquín del Cerro Murciano
Category:Database
Target version:2.6.1-4006
Severity:Minor Add-on version:
gvSIG version:2.6.0 Add-on build:
gvSIG build:4000 Add-on resolve version:
Operative System: Add-on resolve build:
Keywords: Proyecto:
Has patch: Hito:
Add-on name:Unknown

Description

El error que se produce tiene que ver con las dimensiones de la geometria.
Falla con geometrias 3D; pero no esta claro si es al crear el indice o al hacer la query.

Documentacion al respecto se puede consultar Aqui

Associated revisions

Revision 913
Added by Joaquín del Cerro Murciano about 1 month ago

refs #5834, correcciones en la creacion de indices espaciales con mas de 2 dimensiones.

History

#1 Updated by Joaquín del Cerro Murciano about 1 month ago

Parece que habia una incongruencia en como se estaba creando la columna geometria.
Para crearla, por un lado se insertaban las cosas en la tabla OGIS_GEOMETRY_COLUMNS y por otro se creaba el indice:

INSERT INTO MDSYS.OGIS_GEOMETRY_COLUMNS (
    F_TABLE_SCHEMA, F_TABLE_NAME, F_GEOMETRY_COLUMN, GEOMETRY_TYPE) 
    VALUES ('P1', 'TEST', 'GEOMETRY', 1001);

CREATE INDEX "SDX_TEST_GEOMETRY" ON "TEST" ("Geometry") 
    INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS ('LAYER_GTYPE=POINT');

El problema es que al insertar los datos en la tabla OGIS_GEOMETRY_COLUMNS se indicaba que era una geometria de tipo punto 3d (1001), y al crear el indice, en los PARAMETERS no se indicaba dimensiones y por defecto se asume 2D.

Tras la correccion las sentencias que se crean son:

INSERT INTO MDSYS.OGIS_GEOMETRY_COLUMNS (
    F_TABLE_SCHEMA, F_TABLE_NAME, F_GEOMETRY_COLUMN, GEOMETRY_TYPE) 
    VALUES ('P1', 'TEST', 'GEOMETRY', 1001);

CREATE INDEX "SDX_TEST_GEOMETRY" ON "TEST" ("Geometry") 
    INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS ('SDO_INDX_DIMS=3,LAYER_GTYPE=POINT');

Ahora siempre se indica el parametro SDO_INDX_DIMS, siendo de 2 para geometrias 2D, 3 para las 3D y 2DM, y de 4 para las 3DM.

#2 Updated by Joaquín del Cerro Murciano about 1 month ago

  • Status changed from New to Fixed

Also available in: Atom PDF