do not forget to add dbutils to the pom.xml _and_ lib/ folder, in case you 
commit something. ..ede

On 13.01.2016 18:10, Nicolas Ribot wrote:
> ;)
> Ok, I finaluze code with  DbUtils and test it.
> 
> Nicolas
> 
> On 13 January 2016 at 18:00, <edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>> wrote:
> 
>     On 13.01.2016 17:19, Nicolas Ribot wrote:
>     > Ouch ;)
>     >
>     > With DButils approach though, we still have to build queries manually 
> to add schema and table names for some databases.
> 
>     true.. but we use prepared statements and utilize it's magic to 1. escape 
> identifiers properly, 2. usually only allow one statement, no appending w/ 
> semicolon possible
> 
>     > SQLBuilder on the other side, encapsulates the FROM/JOIN clause in a 
> object. It seems safer (though not tested against SQL injection), but needs 
> more code to write.
> 
>     if i had the choice i'd try dbutils or plain prepared statements first
> 
>     > For me, the 2 doors for SQL injections are custom WHERE clause in 
> Datasource queries and adhoc queries.
> 
>     well, wrong! that is plain user input, that the user sees and puts in in 
> the first place. real issue here are eg. shapefiles with weird column names 
> or row content that when simply put into a sql string and run against a db 
> dorp tables or such. see http://imgs.xkcd.com/comics/exploits_of_a_mom.png
> 
>     > It can't be easily fixed except if we could find a good java SQL parser 
> that can tell if query seems valid before executing it (with all OJ db 
> supported, I doubt such a parser exists). Here, other GIS I know of are also 
> sensitive to SQL injection as soon as user can enter free parameters.
> 
>     no need to fix anything on that front.. see above.
> 
>     >
>     > DBUtil and SQLBuilder are useless here.
>     >
>     > I would say that using SQBuilder is a bit heavy to use just to avoid 
> building SQL strings.
>     > What do you think ?
> 
>     using dbutils or prepared statement should suffice. ..ede
> 
> 
>     > Nicolas
>     >
>     > On 13 January 2016 at 16:26, <edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>>> wrote:
>     >
>     >     am looking forward to your implementation ;).. ede
>     >
>     >     On 13.01.2016 16:18, Nicolas Ribot wrote:
>     >     > Yes, really worth the size (also integrates well conceptually 
> with other commons libs used).
>     >     >
>     >     > Very few impact indeed:
>     >     > • A new JDBCUtil.query method to mimic existing execute
>     >     > • A ResultSetHandler interface offered by the lib instead of 
> ResultSetBlock: same convenient usage in anonymous blocks.
>     >     > • Query parameters are passed directly by 
> SpatialDatabasesMetadata methods to JDBCUtils.query instead of building a 
> final SQL query with formatted parameters.
>     >     > • SQL queries parameters are replaced by ? instead of %s.
>     >     >
>     >     > Nicolas
>     >     >
>     >     > On 13 January 2016 at 16:10, <edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>>>> wrote:
>     >     >
>     >     >     if you say that it's worth a 77k jar, i won't object. i'd 
> suggest you try out one code path and see how it goes and come back w/ a 
> result.
>     >     >
>     >     >     ..ede
>     >     >
>     >     >     On 13.01.2016 16:03, Nicolas Ribot wrote:
>     >     >     > It provides varargs query method taking a SQL query and the 
> list of parameters to bind.
>     >     >     > No need to call ps.setXXX to bind parameters.
>     >     >     >
>     >     >     > On 13 January 2016 at 15:42, <edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>>>>> wrote:
>     >     >     >
>     >     >     >     how do you mean? ..ede
>     >     >     >
>     >     >     >     On 13.01.2016 15:40, Nicolas Ribot wrote:
>     >     >     >     > It could be useful to encapsulate parameters binding, 
> though.
>     >     >     >     >
>     >     >     >     > On 13 January 2016 at 15:21, Nicolas Ribot 
> <nicolas.ri...@gmail.com <mailto:nicolas.ri...@gmail.com> 
> <mailto:nicolas.ri...@gmail.com <mailto:nicolas.ri...@gmail.com>> 
> <mailto:nicolas.ri...@gmail.com <mailto:nicolas.ri...@gmail.com> 
> <mailto:nicolas.ri...@gmail.com <mailto:nicolas.ri...@gmail.com>>> 
> <mailto:nicolas.ri...@gmail.com <mailto:nicolas.ri...@gmail.com> 
> <mailto:nicolas.ri...@gmail.com <mailto:nicolas.ri...@gmail.com>> 
> <mailto:nicolas.ri...@gmail.com <mailto:nicolas.ri...@gmail.com> 
> <mailto:nicolas.ri...@gmail.com <mailto:nicolas.ri...@gmail.com>>>> 
> <mailto:nicolas.ri...@gmail.com <mailto:nicolas.ri...@gmail.com> 
> <mailto:nicolas.ri...@gmail.com <mailto:nicolas.ri...@gmail.com>> 
> <mailto:nicolas.ri...@gmail.com <mailto:nicolas.ri...@gmail.com> 
> <mailto:nicolas.ri...@gmail.com <mailto:nicolas.ri...@gmail.com>>> 
> <mailto:nicolas.ri...@gmail.com <mailto:nicolas.ri...@gmail.com> 
> <mailto:nicolas.ri...@gmail.com <mailto:nicolas.ri...@gmail.com>> 
> <mailto:nicola
s.ri...@gmail.com <mailto:nicolas.ri...@gmail.com>
>     <mailto:nicolas.ri...@gmail.com <mailto:nicolas.ri...@gmail.com>>>>>> 
> wrote:
>     >     >     >     >
>     >     >     >     >     Yes, indeed, as we trap exceptions ourselves for 
> JDBC stuff, simple PreparedStatement should be enough.
>     >     >     >     >     I will give it a test.
>     >     >     >     >
>     >     >     >     >     Nicolas
>     >     >     >     >
>     >     >     >     >     On 13 January 2016 at 15:17, <edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>>>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>>>>>> wrote:
>     >     >     >     >
>     >     >     >     >         hmm.. don't see what the advantage is besides 
> as they call it "abstract out all of the cleanup tasks" .
>     >     >     >     >
>     >     >     >     >         you might as well work w/ plain prepared 
> statements before using it.
>     >     >     >     >
>     >     >     >     >         Mike: wanna pitch in :) ?
>     >     >     >     >
>     >     >     >     >         ..ede
>     >     >     >     >
>     >     >     >     >         On 13.01.2016 14:57, Nicolas Ribot wrote:
>     >     >     >     >         > Maybe the lightweight Apache commons DB 
> Utils would be enough ?
>     >     >     >     >         > 
> https://commons.apache.org/proper/commons-dbutils/examples.html
>     >     >     >     >         >
>     >     >     >     >         > It provides preparedStatement and a very 
> thin interface for resultSets. It seems to integrate well with current code.
>     >     >     >     >         >
>     >     >     >     >         > Nicolas
>     >     >     >     >         >
>     >     >     >     >         > On 13 January 2016 at 14:35, 
> <edgar.sol...@web.de <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>>>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>>>>> <mailto:edga
r.sol...@web.de <mailto:edgar.sol...@web.de>
>     <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>>>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>>>>>>> wrote:
>     >     >     >     >         >
>     >     >     >     >         >     there are probably other alternatives 
> out there, don't feel obliged to use the first one i found ;) .
>     >     >     >     >         >
>     >     >     >     >         >     ..ede
>     >     >     >     >         >
>     >     >     >     >         >     On 13.01.2016 14:28, Nicolas Ribot 
> wrote:
>     >     >     >     >         >     > Yes, definitely agree it would be far 
> better than current code.
>     >     >     >     >         >     > Will look at sqlbuilder.
>     >     >     >     >         >     >
>     >     >     >     >         >     > Nicolas
>     >     >     >     >         >     >
>     >     >     >     >         >     > On 13 January 2016 at 14:25, 
> <edgar.sol...@web.de <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>>>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>>>>> <mailt
o:edgar.sol...@web.de <mailto:edgar.sol...@web.de>
>     <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>>>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>>>>>> <mailto:edga 
> <mailto:edga>
>     r.sol...@web.de <mailto:r.sol...@web.de> <mailto:edgar.sol...@web.de 
> <mailto:edgar.sol...@web.de>>
>     >     <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>>>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>>>>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>
>     <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>>>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de> 
> <mailto:edgar.sol...@web.de <mailto:edgar.sol...@web.de>>>>>>>> wrote:
>     >     >     >     >         >     >
>     >     >     >     >         >     >     hey Nico,
>     >     >     >     >         >     >
>     >     >     >     >         >     >     good start. but before escaping 
> every little speciality consider using prepared statements again ;).
>     >     >     >     >         >     >
>     >     >     >     >         >     >     or how about
>     >     >     >     >         >     >      
> http://openhms.sourceforge.net/sqlbuilder/
>     >     >     >     >         >     >     looks fairly simple and w/ 200k 
> size affordable.
>     >     >     >     >         >     >
>     >     >     >     >         >     >     ..ede
>     >     >     >     >         >     >
>     >     >     >     >         >     >
>     >     >     >     >         >     >     On 13.01.2016 14:02, 
> jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>>>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>> <mailto:jump-pilot-s
v...@lists.sourceforge.net
>     <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>>>>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>>> <mailto:jump-pilot-svn@lis 
> <mailto:jump-pilot-svn@lis>
>     ts.sourceforge.net <http://ts.sourceforge.net>
>     >     <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>>>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net
>     <mailto:jump-pilot-...@lists.sourceforge.net>>>>>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>>>> 
> <mailto:jump-pilot-...@lists.sou <mailto:jump-pilot-...@lists.sou> 
> <mailto:jump-pilot-...@lists.sou <mailto:jump-pilot-...@lists.sou>>
>     >     rceforge.net <http://rceforge.net> <http://rceforge.net>
>     >     >     <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>>>>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>>> 
> <mailto:jump-pilot-...@lists.sourceforge.net
>     <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>>>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>> 
> <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>
>     >     <mailto:jump-pilot-...@lists.sourceforge.net 
> <mailto:jump-pilot-...@lists.sourceforge.net>>>>>>> wrote:
>     >     >     >     >         >     >     > Revision: 4784
>     >     >     >     >         >     >     >           
> http://sourceforge.net/p/jump-pilot/code/4784
>     >     >     >     >         >     >     > Author:   elnico
>     >     >     >     >         >     >     > Date:     2016-01-13 13:02:12 
> +0000 (Wed, 13 Jan 2016)
>     >     >     >     >         >     >     > Log Message:
>     >     >     >     >         >     >     > -----------
>     >     >     >     >         >     >     > Escape of single quotes in SQL 
> identifiers names, as most database identifiers can contain quotes.
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     > Modified Paths:
>     >     >     >     >         >     >     > --------------
>     >     >     >     >         >     >     >     
> core/trunk/src/com/vividsolutions/jump/datastore/h2/H2DSMetadata.java
>     >     >     >     >         >     >     >     
> core/trunk/src/com/vividsolutions/jump/datastore/mariadb/MariadbDSMetadata.java
>     >     >     >     >         >     >     >     
> core/trunk/src/com/vividsolutions/jump/datastore/oracle/OracleDSMetadata.java
>     >     >     >     >         >     >     >     
> core/trunk/src/com/vividsolutions/jump/datastore/postgis/PostgisDSMetadata.java
>     >     >     >     >         >     >     >     
> core/trunk/src/com/vividsolutions/jump/datastore/spatialdatabases/SpatialDatabasesDSMetadata.java
>     >     >     >     >         >     >     >     
> core/trunk/src/com/vividsolutions/jump/datastore/spatialdatabases/SpatialDatabasesSQLBuilder.java
>     >     >     >     >         >     >     >     
> core/trunk/src/com/vividsolutions/jump/datastore/spatialite/SpatialiteDSMetadata.java
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     > Modified: 
> core/trunk/src/com/vividsolutions/jump/datastore/h2/H2DSMetadata.java
>     >     >     >     >         >     >     > 
> ===================================================================
>     >     >     >     >         >     >     > --- 
> core/trunk/src/com/vividsolutions/jump/datastore/h2/H2DSMetadata.java     
> 2016-01-13 10:49:14 UTC (rev 4783)
>     >     >     >     >         >     >     > +++ 
> core/trunk/src/com/vividsolutions/jump/datastore/h2/H2DSMetadata.java     
> 2016-01-13 13:02:12 UTC (rev 4784)
>     >     >     >     >         >     >     > @@ -3,6 +3,7 @@
>     >     >     >     >         >     >     >  import 
> com.vividsolutions.jump.datastore.DataStoreConnection;
>     >     >     >     >         >     >     >  import 
> com.vividsolutions.jump.datastore.GeometryColumn;
>     >     >     >     >         >     >     >  import 
> com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDSMetadata;
>     >     >     >     >         >     >     > +import 
> com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesSQLBuilder;
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >  import java.util.List;
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     > @@ -18,7 +19,7 @@
>     >     >     >     >         >     >     >          defaultSchemaName = 
> "PUBLIC";
>     >     >     >     >         >     >     >          spatialDbName = "H2";
>     >     >     >     >         >     >     >          //spatialExtentQuery1 
> = "SELECT ST_AsBinary(ST_Estimated_Extent( '%s', '%s', '%s' ))";
>     >     >     >     >         >     >     > -        spatialExtentQuery1 = 
> "SELECT ST_AsBinary(ST_Envelope(ST_Extent(%s))) FROM %s.%s";
>     >     >     >     >         >     >     > +        spatialExtentQuery1 = 
> "SELECT ST_AsBinary(ST_Envelope(ST_Extent(%s))) FROM \"%s\".\"%s\"";
>     >     >     >     >         >     >     >          geoColumnsQuery = 
> "SELECT f_geometry_column, srid, type FROM geometry_columns where 
> f_table_schema = '%s' and f_table_name = '%s'";
>     >     >     >     >         >     >     >          sridQuery = "SELECT 
> srid FROM geometry_columns where f_table_schema = '%s' and f_table_name = 
> '%s' and f_geometry_column = '%s'";
>     >     >     >     >         >     >     >      }
>     >     >     >     >         >     >     > @@ -35,13 +36,18 @@
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >      @Override
>     >     >     >     >         >     >     >      public String 
> getGeoColumnsQuery(String datasetName) {
>     >     >     >     >         >     >     > -        return 
> String.format(this.geoColumnsQuery, getSchemaName(datasetName), 
> getTableName(datasetName));
>     >     >     >     >         >     >     > +        // escape single quotes
>     >     >     >     >         >     >     > +        return 
> String.format(this.geoColumnsQuery,
>     >     >     >     >         >     >     > +            
> SpatialDatabasesSQLBuilder.escapeSingleQuote(getSchemaName(datasetName)),
>     >     >     >     >         >     >     > +            
> SpatialDatabasesSQLBuilder.escapeSingleQuote(getTableName(datasetName)));
>     >     >     >     >         >     >     >      }
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >      @Override
>     >     >     >     >         >     >     >      public String 
> getSridQuery(String schemaName, String tableName, String colName) {
>     >     >     >     >         >     >     > -        // TODO
>     >     >     >     >         >     >     > -        return 
> String.format(this.sridQuery, schemaName, tableName, colName);
>     >     >     >     >         >     >     > +        // escape single quotes
>     >     >     >     >         >     >     > +        return 
> String.format(this.sridQuery,
>     >     >     >     >         >     >     > +            
> SpatialDatabasesSQLBuilder.escapeSingleQuote(schemaName),
>     >     >     >     >         >     >     > +            
> SpatialDatabasesSQLBuilder.escapeSingleQuote(tableName), colName);
>     >     >     >     >         >     >     >      }
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >      @Override
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     > Modified: 
> core/trunk/src/com/vividsolutions/jump/datastore/mariadb/MariadbDSMetadata.java
>     >     >     >     >         >     >     > 
> ===================================================================
>     >     >     >     >         >     >     > --- 
> core/trunk/src/com/vividsolutions/jump/datastore/mariadb/MariadbDSMetadata.java
>    2016-01-13 10:49:14 UTC (rev 4783)
>     >     >     >     >         >     >     > +++ 
> core/trunk/src/com/vividsolutions/jump/datastore/mariadb/MariadbDSMetadata.java
>    2016-01-13 13:02:12 UTC (rev 4784)
>     >     >     >     >         >     >     > @@ -3,12 +3,8 @@
>     >     >     >     >         >     >     >  import 
> com.vividsolutions.jump.datastore.DataStoreConnection;
>     >     >     >     >         >     >     >  import 
> com.vividsolutions.jump.datastore.spatialdatabases.*;
>     >     >     >     >         >     >     >  import 
> com.vividsolutions.jump.datastore.GeometryColumn;
>     >     >     >     >         >     >     > -import 
> com.vividsolutions.jump.datastore.jdbc.JDBCUtil;
>     >     >     >     >         >     >     > -import 
> com.vividsolutions.jump.datastore.jdbc.ResultSetBlock;
>     >     >     >     >         >     >     >  import 
> java.sql.DatabaseMetaData;
>     >     >     >     >         >     >     >  import java.sql.ResultSet;
>     >     >     >     >         >     >     > -import java.sql.SQLException;
>     >     >     >     >         >     >     > -import java.util.ArrayList;
>     >     >     >     >         >     >     >  import java.util.List;
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >  public class MariadbDSMetadata 
> extends SpatialDatabasesDSMetadata {
>     >     >     >     >         >     >     > @@ -73,6 +69,7 @@
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >      // query according to 
> detected layout:
>     >     >     >     >         >     >     >      geoColumnsQuery = "SELECT 
> f_geometry_column, srid, type FROM geometry_columns where f_table_name = 
> '%s'";
>     >     >     >     >         >     >     > +    // TODO: not the same 
> number of param to replace...
>     >     >     >     >         >     >     >      if (geometryColumnsLayout 
> == GeometryColumnsLayout.NO_LAYOUT) {
>     >     >     >     >         >     >     >        geoColumnsQuery = 
> "select c.COLUMN_NAME, 0, 'geometry' \n"
>     >     >     >     >         >     >     >          + "from 
> information_schema.TABLES t join information_schema.COLUMNS C \n"
>     >     >     >     >         >     >     > @@ -86,8 +83,9 @@
>     >     >     >     >         >     >     >      // query according to 
> detected layout:
>     >     >     >     >         >     >     >      sridQuery = "SELECT srid 
> FROM geometry_columns where f_table_name = '%s' and f_geometry_column = '%s'";
>     >     >     >     >         >     >     >      if (geometryColumnsLayout 
> == GeometryColumnsLayout.NO_LAYOUT) {
>     >     >     >     >         >     >     > -      sridQuery = "select case 
> when min(st_srid(%s)) <> max(st_srid(%s)) then 0 else min(st_srid(%s)) end as 
> srid\n"
>     >     >     >     >         >     >     > -        + "from %s.%s";
>     >     >     >     >         >     >     > +      // quote identifiers
>     >     >     >     >         >     >     > +      sridQuery2 = "select 
> case when min(st_srid(%s)) <> max(st_srid(%s)) then 0 else min(st_srid(%s)) 
> end as srid\n"
>     >     >     >     >         >     >     > +        + "from `%s`.`%s`";
>     >     >     >     >         >     >     >      }
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >    }
>     >     >     >     >         >     >     > @@ -104,7 +102,9 @@
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >    @Override
>     >     >     >     >         >     >     >    public String 
> getGeoColumnsQuery(String datasetName) {
>     >     >     >     >         >     >     > -    return 
> String.format(this.geoColumnsQuery, getTableName(datasetName));
>     >     >     >     >         >     >     > +    // escape single quotes in 
> identifier
>     >     >     >     >         >     >     > +    return 
> String.format(this.geoColumnsQuery,
>     >     >     >     >         >     >     > +        
> SpatialDatabasesSQLBuilder.escapeSingleQuote(getTableName(datasetName)));
>     >     >     >     >         >     >     >    }
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >    public String 
> getGeoColumnsQuery2(String datasetName) {
>     >     >     >     >         >     >     > @@ -113,11 +113,16 @@
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >    @Override
>     >     >     >     >         >     >     >    public String 
> getSridQuery(String schemaName, String tableName, String colName) {
>     >     >     >     >         >     >     > -    return 
> String.format(this.sridQuery, tableName, colName);
>     >     >     >     >         >     >     > +    // escape single quotes in 
> identifier
>     >     >     >     >         >     >     > +    // TODO: geom ?
>     >     >     >     >         >     >     > +    return 
> String.format(this.sridQuery,
>     >     >     >     >         >     >     > +        
> SpatialDatabasesSQLBuilder.escapeSingleQuote(tableName), colName);
>     >     >     >     >         >     >     >    }
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >    public String 
> getSridQuery2(String schemaName, String tableName, String colName) {
>     >     >     >     >         >     >     > -    return 
> String.format(this.sridQuery2, colName, colName, colName, schemaName, 
> tableName);
>     >     >     >     >         >     >     > +    return 
> String.format(this.sridQuery2, colName, colName, colName,
>     >     >     >     >         >     >     > +        
> SpatialDatabasesSQLBuilder.escapeSingleQuote(schemaName),
>     >     >     >     >         >     >     > +        
> SpatialDatabasesSQLBuilder.escapeSingleQuote(tableName));
>     >     >     >     >         >     >     >    }
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >    @Override
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     > Modified: 
> core/trunk/src/com/vividsolutions/jump/datastore/oracle/OracleDSMetadata.java
>     >     >     >     >         >     >     > 
> ===================================================================
>     >     >     >     >         >     >     > --- 
> core/trunk/src/com/vividsolutions/jump/datastore/oracle/OracleDSMetadata.java 
>     2016-01-13 10:49:14 UTC (rev 4783)
>     >     >     >     >         >     >     > +++ 
> core/trunk/src/com/vividsolutions/jump/datastore/oracle/OracleDSMetadata.java 
>     2016-01-13 13:02:12 UTC (rev 4784)
>     >     >     >     >         >     >     > @@ -45,9 +45,9 @@
>     >     >     >     >         >     >     >              "                  
>      (select sdo_lb from tmp where sdo_dimname = 'Y'))\n" +
>     >     >     >     >         >     >     >              "  )) as geom \n" +
>     >     >     >     >         >     >     >              "from dual";
>     >     >     >     >         >     >     > +        // double quotes 
> identifiers
>     >     >     >     >         >     >     > +        spatialExtentQuery2 = 
> "select sdo_util.to_wktgeometry(sdo_aggr_mbr(%s)) as geom from \"%s\".\"%s\"";
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     > -        spatialExtentQuery2 = 
> "select sdo_util.to_wktgeometry(sdo_aggr_mbr(%s)) as geom from %s.%s";
>     >     >     >     >         >     >     > -
>     >     >     >     >         >     >     >          geoColumnsQuery = 
> "select t.column_name, t.srid, 'SDO_GEOMETRY' as type from 
> ALL_SDO_GEOM_METADATA t "
>     >     >     >     >         >     >     >              + "where t.owner = 
> '%s' and t.table_name = '%s'";
>     >     >     >     >         >     >     >          sridQuery = "select 
> t.srid from ALL_SDO_GEOM_METADATA t "
>     >     >     >     >         >     >     > @@ -56,7 +56,10 @@
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >      @Override
>     >     >     >     >         >     >     >      public String 
> getSpatialExtentQuery1(String schema, String table, String attributeName) {
>     >     >     >     >         >     >     > -        return 
> String.format(this.spatialExtentQuery1, schema, table, attributeName);
>     >     >     >     >         >     >     > +        // escape single quote 
> for table name:
>     >     >     >     >         >     >     > +        // TODO: do it for 
> schema/user name ?
>     >     >     >     >         >     >     > +        return 
> String.format(this.spatialExtentQuery1, schema,
>     >     >     >     >         >     >     > +            
> SpatialDatabasesSQLBuilder.escapeSingleQuote(table), attributeName);
>     >     >     >     >         >     >     >      }
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >      @Override
>     >     >     >     >         >     >     > @@ -66,13 +69,18 @@
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >      @Override
>     >     >     >     >         >     >     >      public String 
> getGeoColumnsQuery(String datasetName) {
>     >     >     >     >         >     >     > -        return 
> String.format(this.geoColumnsQuery, getSchemaName(datasetName), 
> getTableName(datasetName));
>     >     >     >     >         >     >     > +        // escape single quote 
> for table name:
>     >     >     >     >         >     >     > +        // TODO: do it for 
> schema/user name ?
>     >     >     >     >         >     >     > +        return 
> String.format(this.geoColumnsQuery, getSchemaName(datasetName),
>     >     >     >     >         >     >     > +            
> SpatialDatabasesSQLBuilder.escapeSingleQuote(getTableName(datasetName)));
>     >     >     >     >         >     >     >      }
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >      @Override
>     >     >     >     >         >     >     >      public String 
> getSridQuery(String schemaName, String tableName, String colName) {
>     >     >     >     >         >     >     > -        // TODO
>     >     >     >     >         >     >     > -        return 
> String.format(this.sridQuery, schemaName, tableName, colName);
>     >     >     >     >         >     >     > +        // escape single quote 
> for table name:
>     >     >     >     >         >     >     > +        // TODO: do it for 
> schema/user name ?
>     >     >     >     >         >     >     > +        return 
> String.format(this.sridQuery, schemaName,
>     >     >     >     >         >     >     > +            
> SpatialDatabasesSQLBuilder.escapeSingleQuote(tableName), colName);
>     >     >     >     >         >     >     >      }
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >      @Override
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     > Modified: 
> core/trunk/src/com/vividsolutions/jump/datastore/postgis/PostgisDSMetadata.java
>     >     >     >     >         >     >     > 
> ===================================================================
>     >     >     >     >         >     >     > --- 
> core/trunk/src/com/vividsolutions/jump/datastore/postgis/PostgisDSMetadata.java
>    2016-01-13 10:49:14 UTC (rev 4783)
>     >     >     >     >         >     >     > +++ 
> core/trunk/src/com/vividsolutions/jump/datastore/postgis/PostgisDSMetadata.java
>    2016-01-13 13:02:12 UTC (rev 4784)
>     >     >     >     >         >     >     > @@ -14,14 +14,19 @@
>     >     >     >     >         >     >     >          defaultSchemaName = 
> "public";
>     >     >     >     >         >     >     >          spatialDbName = 
> "PostGIS";
>     >     >     >     >         >     >     >          spatialExtentQuery1 = 
> "SELECT ST_AsBinary(ST_Estimated_Extent( '%s', '%s', '%s' ))";
>     >     >     >     >         >     >     > -        spatialExtentQuery2 = 
> "SELECT ST_AsBinary(ST_Envelope(ST_Extent(\"%s\"))) FROM %s.%s";
>     >     >     >     >         >     >     > +        // Nicolas Ribot: add 
> double quotes for identifiers
>     >     >     >     >         >     >     > +        spatialExtentQuery2 = 
> "SELECT ST_AsBinary(ST_Envelope(ST_Extent(\"%s\"))) FROM \"%s\".\"%s\"";
>     >     >     >     >         >     >     >          geoColumnsQuery = 
> "SELECT f_geometry_column, srid, type FROM geometry_columns where 
> f_table_schema='%s' and f_table_name = '%s'";
>     >     >     >     >         >     >     >          sridQuery = "SELECT 
> srid FROM geometry_columns where f_table_schema = '%s' and f_table_name = 
> '%s' and f_geometry_column = '%s'";
>     >     >     >     >         >     >     >      }
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >      @Override
>     >     >     >     >         >     >     >      public String 
> getSpatialExtentQuery1(String schema, String table, String attributeName) {
>     >     >     >     >         >     >     > -        return 
> String.format(this.spatialExtentQuery1, schema, table, attributeName);
>     >     >     >     >         >     >     > +        //must escape single 
> quote in idenfifiers before formatting query
>     >     >     >     >         >     >     > +        return 
> String.format(this.spatialExtentQuery1,
>     >     >     >     >         >     >     > +            
> SpatialDatabasesSQLBuilder.escapeSingleQuote(schema),
>     >     >     >     >         >     >     > +            
> SpatialDatabasesSQLBuilder.escapeSingleQuote(table),
>     >     >     >     >         >     >     > +            
> SpatialDatabasesSQLBuilder.escapeSingleQuote(attributeName));
>     >     >     >     >         >     >     >      }
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >      @Override
>     >     >     >     >         >     >     > @@ -31,13 +36,19 @@
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >      @Override
>     >     >     >     >         >     >     >      public String 
> getGeoColumnsQuery(String datasetName) {
>     >     >     >     >         >     >     > -        return 
> String.format(this.geoColumnsQuery, getSchemaName(datasetName), 
> getTableName(datasetName));
>     >     >     >     >         >     >     > +        //must escape single 
> quote in idenfifiers before formatting query
>     >     >     >     >         >     >     > +        return 
> String.format(this.geoColumnsQuery,
>     >     >     >     >         >     >     > +            
> SpatialDatabasesSQLBuilder.escapeSingleQuote(getSchemaName(datasetName)),
>     >     >     >     >         >     >     > +            
> SpatialDatabasesSQLBuilder.escapeSingleQuote(getTableName(datasetName)));
>     >     >     >     >         >     >     >      }
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >      @Override
>     >     >     >     >         >     >     >      public String 
> getSridQuery(String schemaName, String tableName, String colName) {
>     >     >     >     >         >     >     > -        // TODO
>     >     >     >     >         >     >     > -        return 
> String.format(this.sridQuery, schemaName, tableName, colName);
>     >     >     >     >         >     >     > +        //must escape single 
> quote in idenfifiers before formatting query
>     >     >     >     >         >     >     > +        return 
> String.format(this.sridQuery,
>     >     >     >     >         >     >     > +            
> SpatialDatabasesSQLBuilder.escapeSingleQuote(schemaName),
>     >     >     >     >         >     >     > +            
> SpatialDatabasesSQLBuilder.escapeSingleQuote(tableName),
>     >     >     >     >         >     >     > +            
> SpatialDatabasesSQLBuilder.escapeSingleQuote(colName));
>     >     >     >     >         >     >     >      }
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >      @Override
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     > Modified: 
> core/trunk/src/com/vividsolutions/jump/datastore/spatialdatabases/SpatialDatabasesDSMetadata.java
>     >     >     >     >         >     >     > 
> ===================================================================
>     >     >     >     >         >     >     > --- 
> core/trunk/src/com/vividsolutions/jump/datastore/spatialdatabases/SpatialDatabasesDSMetadata.java
>  2016-01-13 10:49:14 UTC (rev 4783)
>     >     >     >     >         >     >     > +++ 
> core/trunk/src/com/vividsolutions/jump/datastore/spatialdatabases/SpatialDatabasesDSMetadata.java
>  2016-01-13 13:02:12 UTC (rev 4784)
>     >     >     >     >         >     >     > @@ -93,9 +93,6 @@
>     >     >     >     >         >     >     >    }
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >    public 
> SpatialDatabasesDSMetadata(DataStoreConnection conn) {
>     >     >     >     >         >     >     > -    
> JUMPWorkbench.getInstance().getFrame().log("creating a 
> SpatialDatabasesDSMetadata (class:" + this.getClass()
>     >     >     >     >         >     >     > -        + " ) (con: " + 
> conn.toString() + ") id"
>     >     >     >     >         >     >     > -        + this.hashCode(), 
> this.getClass());
>     >     >     >     >         >     >     >      this.conn = conn;
>     >     >     >     >         >     >     >      // TODO: use bind 
> parameters to avoid SQL injection
>     >     >     >     >         >     >     >      this.datasetNameQuery = "";
>     >     >     >     >         >     >     > @@ -289,6 +286,7 @@
>     >     >     >     >         >     >     >          new ResultSetBlock() {
>     >     >     >     >         >     >     >            public void 
> yield(ResultSet resultSet) throws SQLException {
>     >     >     >     >         >     >     >              while 
> (resultSet.next()) {
>     >     >     >     >         >     >     > +              // TODO: escape 
> single quotes in geo column name ?
>     >     >     >     >         >     >     >                
> geometryAttributes.add(new GeometryColumn(
>     >     >     >     >         >     >     >                        
> resultSet.getString(1),
>     >     >     >     >         >     >     >                        
> resultSet.getInt(2),
>     >     >     >     >         >     >     > @@ -353,6 +351,7 @@
>     >     >     >     >         >     >     >        DatabaseMetaData dbMd = 
> this.conn.getJdbcConnection().getMetaData();
>     >     >     >     >         >     >     >        rs = 
> dbMd.getColumns(null, getSchemaName(datasetName), getTableName(datasetName), 
> null);
>     >     >     >     >         >     >     >        while (rs.next()) {
>     >     >     >     >         >     >     > +        // TODO: escape quotes 
> in column names ?
>     >     >     >     >         >     >     >          
> cols.add(rs.getString(4));
>     >     >     >     >         >     >     >        }
>     >     >     >     >         >     >     >      } catch (SQLException 
> sqle) {
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     > Modified: 
> core/trunk/src/com/vividsolutions/jump/datastore/spatialdatabases/SpatialDatabasesSQLBuilder.java
>     >     >     >     >         >     >     > 
> ===================================================================
>     >     >     >     >         >     >     > --- 
> core/trunk/src/com/vividsolutions/jump/datastore/spatialdatabases/SpatialDatabasesSQLBuilder.java
>  2016-01-13 10:49:14 UTC (rev 4783)
>     >     >     >     >         >     >     > +++ 
> core/trunk/src/com/vividsolutions/jump/datastore/spatialdatabases/SpatialDatabasesSQLBuilder.java
>  2016-01-13 13:02:12 UTC (rev 4784)
>     >     >     >     >         >     >     > @@ -69,4 +69,14 @@
>     >     >     >     >         >     >     >      else
>     >     >     >     >         >     >     >        return srid.getString();
>     >     >     >     >         >     >     >    }
>     >     >     >     >         >     >     > +
>     >     >     >     >         >     >     > +  /**
>     >     >     >     >         >     >     > +   * Utility method to escape 
> single quotes in given identifier.
>     >     >     >     >         >     >     > +   * Replace all single quotes 
> ("'") by double single quotes ("''")
>     >     >     >     >         >     >     > +   * @param identifier
>     >     >     >     >         >     >     > +   * @return the identifier 
> with single quotes escaped, or identifier if no string found
>     >     >     >     >         >     >     > +   */
>     >     >     >     >         >     >     > +  public static String 
> escapeSingleQuote(String identifier) {
>     >     >     >     >         >     >     > +    return identifier == null 
> ? null : identifier.replaceAll("'", "''");
>     >     >     >     >         >     >     > +  }
>     >     >     >     >         >     >     >  }
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     > Modified: 
> core/trunk/src/com/vividsolutions/jump/datastore/spatialite/SpatialiteDSMetadata.java
>     >     >     >     >         >     >     > 
> ===================================================================
>     >     >     >     >         >     >     > --- 
> core/trunk/src/com/vividsolutions/jump/datastore/spatialite/SpatialiteDSMetadata.java
>      2016-01-13 10:49:14 UTC (rev 4783)
>     >     >     >     >         >     >     > +++ 
> core/trunk/src/com/vividsolutions/jump/datastore/spatialite/SpatialiteDSMetadata.java
>      2016-01-13 13:02:12 UTC (rev 4784)
>     >     >     >     >         >     >     > @@ -84,7 +84,7 @@
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >     >      defaultSchemaName = "";
>     >     >     >     >         >     >     >      spatialDbName = 
> isSpatialiteLoaded() ? "Spatialite" : "SQLite";
>     >     >     >     >         >     >     > -    spatialExtentQuery1 = 
> "SELECT %s from %s";
>     >     >     >     >         >     >     > +    spatialExtentQuery1 = 
> "SELECT %s from \"%s\"";
>     >     >     >     >         >     >     >      // no second query for 
> spatialite
>     >     >     >     >         >     >     >      spatialExtentQuery2 = null;
>     >     >     >     >         >     >     >      if 
> (this.geometryColumnsLayout == GeometryColumnsLayout.OGC_GEOPACKAGE_LAYOUT) {
>     >     >     >     >         >     >     > @@ -129,11 +129,12 @@
>     >     >     >     >         >     >     >      // TODO: switch case
>     >     >     >     >         >     >     >      if 
> (this.isSpatialiteLoaded()) {
>     >     >     >     >         >     >     >        if (gcType == 
> GeometricColumnType.WKB) {
>     >     >     >     >         >     >     > -        ret = 
> String.format("select st_asBinary(extent(st_geomFromWkb(%s))) from %s", 
> attributeName, table);
>     >     >     >     >         >     >     > +        // quotes identifier.
>     >     >     >     >         >     >     > +        ret = 
> String.format("select st_asBinary(extent(st_geomFromWkb(%s))) from \"%s\"", 
> attributeName, table);
>     >     >     >     >         >     >     >        } else if (gcType == 
> GeometricColumnType.WKT) {
>     >     >     >     >         >     >     > -        ret = 
> String.format("select st_asBinary(extent(st_geomFromText(%s))) from %s", 
> attributeName, table);
>     >     >     >     >         >     >     > +        ret = 
> String.format("select st_asBinary(extent(st_geomFromText(%s))) from \"%s\"", 
> attributeName, table);
>     >     >     >     >         >     >     >        } else if (gcType == 
> GeometricColumnType.SPATIALITE) {
>     >     >     >     >         >     >     > -        ret = 
> String.format("select st_asBinary(extent(CastAutomagic(%s))) from %s", 
> attributeName, table);
>     >     >     >     >         >     >     > +        ret = 
> String.format("select st_asBinary(extent(CastAutomagic(%s))) from \"%s\"", 
> attributeName, table);
>     >     >     >     >         >     >     >        } else {
>     >     >     >     >         >     >     >          // unknown geom type
>     >     >     >     >         >     >     >          // TODO: log
>     >     >     >     >         >     >     >
>     >     >     >     >         >     >
>     >     >     >     >         >     >     
> ------------------------------------------------------------------------------
>     >     >     >     >         >     >     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
>     >     >     >     >         >     >     
> _______________________________________________
>     >     >     >     >         >     >     Jump-pilot-devel mailing list
>     >     >     >     >         >     >     
> Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>
>     <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>
>     >     <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>
>     <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>>
>     >     >     <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>
>     <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>
>     >     <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>>>>>
>     >     >     >     >         >     >     
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>     >     >     >     >         >     >
>     >     >     >     >         >     >
>     >     >     >     >         >     >
>     >     >     >     >         >     >
>     >     >     >     >         >     > 
> ------------------------------------------------------------------------------
>     >     >     >     >         >     > 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
>     >     >     >     >         >     >
>     >     >     >     >         >     >
>     >     >     >     >         >     >
>     >     >     >     >         >     > 
> _______________________________________________
>     >     >     >     >         >     > Jump-pilot-devel mailing list
>     >     >     >     >         >     > 
> Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>
>     <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>
>     >     <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>
>     <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>>>>
>     >     >     >     >         >     > 
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>     >     >     >     >         >     >
>     >     >     >     >         >
>     >     >     >     >         >     
> ------------------------------------------------------------------------------
>     >     >     >     >         >     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
>     >     >     >     >         >     
> _______________________________________________
>     >     >     >     >         >     Jump-pilot-devel mailing list
>     >     >     >     >         >     Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>
>     <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>
>     >     <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>
>     <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>>>>
>     >     >     >     >         >     
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>     >     >     >     >         >
>     >     >     >     >         >
>     >     >     >     >         >
>     >     >     >     >         >
>     >     >     >     >         > 
> ------------------------------------------------------------------------------
>     >     >     >     >         > 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
>     >     >     >     >         >
>     >     >     >     >         >
>     >     >     >     >         >
>     >     >     >     >         > 
> _______________________________________________
>     >     >     >     >         > Jump-pilot-devel mailing list
>     >     >     >     >         > Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>
>     <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>>>
>     >     >     >     >         > 
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>     >     >     >     >         >
>     >     >     >     >
>     >     >     >     >         
> ------------------------------------------------------------------------------
>     >     >     >     >         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
>     >     >     >     >         
> _______________________________________________
>     >     >     >     >         Jump-pilot-devel mailing list
>     >     >     >     >         Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>
>     <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>>>
>     >     >     >     >         
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>     >     >     >     >
>     >     >     >     >
>     >     >     >     >
>     >     >     >     >
>     >     >     >     >
>     >     >     >     > 
> ------------------------------------------------------------------------------
>     >     >     >     > 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
>     >     >     >     >
>     >     >     >     >
>     >     >     >     >
>     >     >     >     > _______________________________________________
>     >     >     >     > Jump-pilot-devel mailing list
>     >     >     >     > Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>>
>     >     >     >     > 
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>     >     >     >     >
>     >     >     >
>     >     >     >     
> ------------------------------------------------------------------------------
>     >     >     >     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
>     >     >     >     _______________________________________________
>     >     >     >     Jump-pilot-devel mailing list
>     >     >     >     Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>>
>     >     >     >     
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>     >     >     >
>     >     >     >
>     >     >     >
>     >     >     >
>     >     >     > 
> ------------------------------------------------------------------------------
>     >     >     > 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
>     >     >     >
>     >     >     >
>     >     >     >
>     >     >     > _______________________________________________
>     >     >     > Jump-pilot-devel mailing list
>     >     >     > Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>
>     >     >     > 
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>     >     >     >
>     >     >
>     >     >     
> ------------------------------------------------------------------------------
>     >     >     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
>     >     >     _______________________________________________
>     >     >     Jump-pilot-devel mailing list
>     >     >     Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>>
>     >     >     https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>     >     >
>     >     >
>     >     >
>     >     >
>     >     > 
> ------------------------------------------------------------------------------
>     >     > 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
>     >     >
>     >     >
>     >     >
>     >     > _______________________________________________
>     >     > Jump-pilot-devel mailing list
>     >     > Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>
>     >     > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>     >     >
>     >
>     >     
> ------------------------------------------------------------------------------
>     >     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
>     >     _______________________________________________
>     >     Jump-pilot-devel mailing list
>     >     Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net> 
> <mailto:Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>>
>     >     https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>     >
>     >
>     >
>     >
>     > 
> ------------------------------------------------------------------------------
>     > 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
>     >
>     >
>     >
>     > _______________________________________________
>     > Jump-pilot-devel mailing list
>     > Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>
>     > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>     >
> 
>     
> ------------------------------------------------------------------------------
>     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
>     _______________________________________________
>     Jump-pilot-devel mailing list
>     Jump-pilot-devel@lists.sourceforge.net 
> <mailto:Jump-pilot-devel@lists.sourceforge.net>
>     https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
> 
> 
> 
> 
> ------------------------------------------------------------------------------
> 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
> 
> 
> 
> _______________________________________________
> Jump-pilot-devel mailing list
> Jump-pilot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
> 

------------------------------------------------------------------------------
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
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to