Hi,

So why to play with the defaults of the databases at all? Wouldn’t it be much 
more reliable to use quoted identifiers everywhere and always? This way the 
result should be exactly the same for PostgreSQL, Oracle, SQL Server, SQLite, 
and others.

create table "MOSAIC" ("NAME" varchar(254) not null, "TileTable" 
varchar(254)not null, "minX" FLOAT8,"minY" FLOAT8, "maxX" FLOAT8, "maxY" 
FLOAT8,"resX" FLOAT8, "resY" FLOAT8, primary key ("NAME","TileTable"));


-Jukka Rahkonen-


Christian Mueller wrote:

Hi Ernest

XML names are case sensitive.

Different databases have different defaults.

PostGres converts DB names to lowercase
DB2 or Oracle convert DB names to uppercase

Cheers
Christian



On Mon, Jan 25, 2016 at 11:19 AM, Ernest CHIARELLO 
<[email protected]<mailto:[email protected]>> wrote:
Hello everybody,

i recently experimented a geoserver failure when i tried to use the 
imagemosaic-jdbc plugin.
the catalina.out file contained the following lines :

Caused by: java.lang.NullPointerException
        at 
org.geotools.gce.imagemosaic.jdbc.Config.readNameAttribute(Config.java:329)
        at 
org.geotools.gce.imagemosaic.jdbc.Config.readNameString(Config.java:298)
        at org.geotools.gce.imagemosaic.jdbc.Config.readMapping(Config.java:201)
        at org.geotools.gce.imagemosaic.jdbc.Config.readFrom(Config.java:189)
        at 
org.geotools.gce.imagemosaic.jdbc.ImageMosaicJDBCReader.<init>(ImageMosaicJDBCReader.java:133)
        ... 133 more
25 janv. 09:41:35 INFO [geoserver.web] - Getting list of coverages for saved 
store file:coverages/france_pgraster.xml
java.lang.RuntimeException: Could not list layers for this store, an error 
occurred retrieving them: Failed to create reader from 
file:coverages/france_pgraster.xml and hints null

whereas the mapping.pgraster.xml.inc file contained  the following xml 
statement :

<spatialextension name="pgraster"/>
<mapping>
      <mastertable name="mosaic" >
              <coveragenameattribute name="name"/>
              <maxxattribute name="maxx"/>
              <maxyattribute name="maxy"/>
              <minxattribute name="minx"/>
              <minyattribute name="miny"/>
              <resxattribute name="resx"/>
              <resyattribute name="resy"/>
              <tiletablenameatribute  name="tiletable" />
      </mastertable>
      <tiletable>
              <blobattributename name="rast" />
      </tiletable>
</mapping>

why did geoserver failed ?
because it expects the string "maxXAttribute" and not "maxxattribute"... !

i made this mistake because i prefer using only lower case when i work with 
postgresql, and consequently,
i used the bash command "tr [A-Z] [a-z]" to transform the original 
mapping.pgraster.xml.inc file, proposed here :
http://docs.geotools.org/latest/userguide/library/coverage/pgraster.html
it was stupid, i was too hasty !

indeed, the original file in the documentation proposes this XML statement :

<spatialExtension name="pgraster"/>

 <mapping>

      <masterTable name="MOSAIC" >

              <coverageNameAttribute name="NAME"/>

              <maxXAttribute name="maxX"/>

              <maxYAttribute name="maxY"/>

              <minXAttribute name="minX"/>

              <minYAttribute name="minY"/>

              <resXAttribute name="resX"/>

              <resYAttribute name="resY"/>

              <tileTableNameAtribute  name="TileTable" />

      </masterTable>

      <tileTable>

              <blobAttributeName name="rast" />

      </tileTable>

</mapping>
you can see that according to this XML code, the table should be named "MOSAIC" 
and not "mosaic".
but PostgreSQL will not do that !

look at this create table query :

create table MOSAIC (NAME varchar(254) not null, TileTable varchar(254)not 
null, minX FLOAT8,minY FLOAT8, maxX FLOAT8, maxY FLOAT8,resX FLOAT8, resY 
FLOAT8, primary key (NAME,TileTable));

the resulting table is :

geoserver=> \d mosaic;
              Table « public.mosaic »
  Colonne  |          Type          | Modificateurs
-----------+------------------------+---------------
 name      | character varying(254) | non NULL
 tiletable | character varying(254) | non NULL
 minx      | double precision       |
 miny      | double precision       |
 maxx      | double precision       |
 maxy      | double precision       |
 resx      | double precision       |
 resy      | double precision       |
Index :
    "mosaic_pkey" PRIMARY KEY, btree (name, tiletable)

where you can see that all strings are lower case. consequently, i think it is 
better to write everything in lower case, like that :

create table mosaic (name varchar(254) not null, tiletable varchar(254) not 
null, minx float8, miny float8, maxx float8, maxyfloat8, resx float8, resy 
float8, primary key (name, tiletable));

and finally, you will use the following XML statement in the 
mapping.pgraster.xml.inc file :

<spatialExtension name="pgraster"/>
<mapping>
      <masterTable name="mosaic" >
              <coverageNameAttribute name="name"/>
              <maxXAttribute name="maxx"/>
              <maxYAttribute name="maxy"/>
              <minXAttribute name="minx"/>
              <minYAttribute name="miny"/>
              <resXAttribute name="resx"/>
              <resYAttribute name="resy"/>
              <tileTableNameAtribute  name="tiletable" />
      </masterTable>
      <tileTable>
              <blobAttributeName name="rast" />
      </tileTable>
</mapping>


hope this helps...


Ernest.



--

Ernest CHIARELLO  -  
[email protected]<mailto:[email protected]>

UMR6049 ThéMA - Théoriser et Modiliser pour Aménager

CNRS / université de Bourgogne Franche-Comté

32 rue Mégevand 25030 BESANÇON Cedex



Tel : 03 81 66 54 80           Mob : 07 82 99 11 08





------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
Geoserver-users mailing list
[email protected]<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/geoserver-users



--
DI Christian Mueller MSc (GIS), MSc (IT-Security)
OSS Open Source Solutions GmbH

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
Geoserver-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to