[mapserver-users] Errors with LAYER DATA "geom FROM (...huge SELECT...)"

Gertjan van Oosten gertjan at West.NL
Mon Mar 9 04:45:44 PDT 2015


Hi all,

We have some layers in Oracle where the map config specifies:

  LAYER
    ...
    DATA "geom FROM (
	SELECT a_very_long_select_statement_with_lots_of_%PARAMS%
	FROM some_table
      )
      USING FILTER"
    ...
  END

After a certain length of the SELECT, we get strange errors: an
imcomplete SQL statement is being sent to Oracle.

Turns out that this is due to the define in maporaclespatial.c:

  #define TABLE_NAME_SIZE            2000

Since I found no other alternatives, I was only able to fix it by
changing this define and recompiling Mapserver. This particular
assumption (that "2000 characters ought to be enough for anybody") is
still present in the Mapserver 7 source code. Additionally, the buffer
to hold the query string is hard-coded as:

  char query_str[6000];

Shouldn't this be fixed (or made configurable), or at least, clearly
documented somewhere? The current situation is, frankly, sub-optimal...

Kind regards,
-- 
-- Gertjan van Oosten, Principal Consultant, West Consulting B.V.
-- gertjan at West.NL     +31 15 2191 600       www.west.nl


More information about the mapserver-users mailing list