github-advanced-security[bot] commented on code in PR #792:
URL: 
https://github.com/apache/incubator-baremaps/pull/792#discussion_r1372812687


##########
baremaps-core/src/main/java/org/apache/baremaps/tilestore/postgres/PostgresTileStore.java:
##########
@@ -18,249 +18,200 @@
 package org.apache.baremaps.tilestore.postgres;
 
 
-
 import java.io.ByteArrayOutputStream;
-import java.io.IOException;
+import java.io.OutputStream;
 import java.nio.ByteBuffer;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.LinkedHashMap;
-import java.util.List;
+import java.sql.*;
 import java.util.Map;
-import java.util.Optional;
-import java.util.stream.Collectors;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.zip.GZIPOutputStream;
 import javax.sql.DataSource;
-import net.sf.jsqlparser.expression.Expression;
-import net.sf.jsqlparser.expression.Parenthesis;
-import net.sf.jsqlparser.expression.operators.conditional.OrExpression;
-import net.sf.jsqlparser.schema.Column;
-import net.sf.jsqlparser.statement.select.Join;
 import org.apache.baremaps.tilestore.TileCoord;
 import org.apache.baremaps.tilestore.TileStore;
 import org.apache.baremaps.tilestore.TileStoreException;
-import org.apache.baremaps.tilestore.VariableUtils;
 import org.apache.baremaps.vectortile.tileset.Tileset;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * A read-only {@code TileStore} implementation that uses the PostgreSQL to 
generate vector tiles.
  * This {@code TileStore} combines the input queries, identifies common table 
expressions (CTE), and
- * generates a single optimized query that hits the database.
+ * generates a single optimized sql that hits the database.
  */
 public class PostgresTileStore implements TileStore {
 
   private static final Logger logger = 
LoggerFactory.getLogger(PostgresTileStore.class);
 
-  private static final String TILE_ENVELOPE = "st_tileenvelope(%1$s, %2$s, 
%3$s)";
-
-  private static final String WITH_QUERY = "with %1$s %2$s";
-
-  private static final String CTE_QUERY =
-      "%1$s as (select * from %3$s%4$s where %5$s st_intersects(%2$s, 
$envelope))";
-
-  private static final String CTE_WHERE = "(%s) and";
-
-  private static final String STATEMENT_QUERY =
-      "select st_asmvt(target, '%1$s', 4096, 'geom', 'id') from (%2$s) as 
target";
-
-  private static final String STATEMENT_LAYER_QUERY = "select " + "%1$s as id, 
"
-      + "(%2$s ||  jsonb_build_object('geometry', 
lower(replace(st_geometrytype(%3$s), 'ST_', '')))) as tags, "
-      + "st_asmvtgeom(%3$s, $envelope, 4096, 256, true) as geom " + "from %4$s 
%5$s";
-
-  private static final String STATEMENT_WHERE = "where %s";
-
-  private static final String UNION = " union all ";
-
-  private static final String COMMA = ", ";
-
-  private static final String SPACE = " ";
-
-  private static final String EMPTY = "";
-
-  public static final String CONTENT_ENCODING = "gzip";
-
-  public static final String CONTENT_TYPE = 
"application/vnd.mapbox-vector-tile";
-
   private final DataSource datasource;
 
-  private final List<PostgresQuery> queries;
+  private final Tileset tileset;
 
-  public PostgresTileStore(DataSource datasource, List<PostgresQuery> queries) 
{
+  /**
+   * Constructs a {@code PostgresTileStore}.
+   *
+   * @param datasource the datasource
+   * @param tileset the tileset
+   */
+  public PostgresTileStore(DataSource datasource, Tileset tileset) {
     this.datasource = datasource;
-    this.queries = queries;
+    this.tileset = tileset;
   }
 
-  public PostgresTileStore(DataSource datasource, Tileset tileset) {
-    this.datasource = datasource;
-    this.queries = tileset.getVectorLayers().stream()
-        .flatMap(layer -> layer.getQueries().stream().map(query -> new 
PostgresQuery(layer.getId(),
-            query.getMinzoom(), query.getMaxzoom(), query.getSql())))
-        .toList();
+  /**
+   * A cache of queries.
+   */
+  private Map<Integer, Query> cache = new ConcurrentHashMap<>();
+
+  /**
+   * A record that holds the sql of a prepared statement and the number of 
parameters.
+   * 
+   * @param sql
+   * @param parameters

Review Comment:
   ## Spurious Javadoc @param tags
   
   @param tag "parameters" does not match any actual type parameter of type 
"Query".
   
   [Show more 
details](https://github.com/apache/incubator-baremaps/security/code-scanning/815)



##########
baremaps-core/src/main/java/org/apache/baremaps/tilestore/postgres/PostgresTileStore.java:
##########
@@ -18,249 +18,200 @@
 package org.apache.baremaps.tilestore.postgres;
 
 
-
 import java.io.ByteArrayOutputStream;
-import java.io.IOException;
+import java.io.OutputStream;
 import java.nio.ByteBuffer;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.LinkedHashMap;
-import java.util.List;
+import java.sql.*;
 import java.util.Map;
-import java.util.Optional;
-import java.util.stream.Collectors;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.zip.GZIPOutputStream;
 import javax.sql.DataSource;
-import net.sf.jsqlparser.expression.Expression;
-import net.sf.jsqlparser.expression.Parenthesis;
-import net.sf.jsqlparser.expression.operators.conditional.OrExpression;
-import net.sf.jsqlparser.schema.Column;
-import net.sf.jsqlparser.statement.select.Join;
 import org.apache.baremaps.tilestore.TileCoord;
 import org.apache.baremaps.tilestore.TileStore;
 import org.apache.baremaps.tilestore.TileStoreException;
-import org.apache.baremaps.tilestore.VariableUtils;
 import org.apache.baremaps.vectortile.tileset.Tileset;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * A read-only {@code TileStore} implementation that uses the PostgreSQL to 
generate vector tiles.
  * This {@code TileStore} combines the input queries, identifies common table 
expressions (CTE), and
- * generates a single optimized query that hits the database.
+ * generates a single optimized sql that hits the database.
  */
 public class PostgresTileStore implements TileStore {
 
   private static final Logger logger = 
LoggerFactory.getLogger(PostgresTileStore.class);
 
-  private static final String TILE_ENVELOPE = "st_tileenvelope(%1$s, %2$s, 
%3$s)";
-
-  private static final String WITH_QUERY = "with %1$s %2$s";
-
-  private static final String CTE_QUERY =
-      "%1$s as (select * from %3$s%4$s where %5$s st_intersects(%2$s, 
$envelope))";
-
-  private static final String CTE_WHERE = "(%s) and";
-
-  private static final String STATEMENT_QUERY =
-      "select st_asmvt(target, '%1$s', 4096, 'geom', 'id') from (%2$s) as 
target";
-
-  private static final String STATEMENT_LAYER_QUERY = "select " + "%1$s as id, 
"
-      + "(%2$s ||  jsonb_build_object('geometry', 
lower(replace(st_geometrytype(%3$s), 'ST_', '')))) as tags, "
-      + "st_asmvtgeom(%3$s, $envelope, 4096, 256, true) as geom " + "from %4$s 
%5$s";
-
-  private static final String STATEMENT_WHERE = "where %s";
-
-  private static final String UNION = " union all ";
-
-  private static final String COMMA = ", ";
-
-  private static final String SPACE = " ";
-
-  private static final String EMPTY = "";
-
-  public static final String CONTENT_ENCODING = "gzip";
-
-  public static final String CONTENT_TYPE = 
"application/vnd.mapbox-vector-tile";
-
   private final DataSource datasource;
 
-  private final List<PostgresQuery> queries;
+  private final Tileset tileset;
 
-  public PostgresTileStore(DataSource datasource, List<PostgresQuery> queries) 
{
+  /**
+   * Constructs a {@code PostgresTileStore}.
+   *
+   * @param datasource the datasource
+   * @param tileset the tileset
+   */
+  public PostgresTileStore(DataSource datasource, Tileset tileset) {
     this.datasource = datasource;
-    this.queries = queries;
+    this.tileset = tileset;
   }
 
-  public PostgresTileStore(DataSource datasource, Tileset tileset) {
-    this.datasource = datasource;
-    this.queries = tileset.getVectorLayers().stream()
-        .flatMap(layer -> layer.getQueries().stream().map(query -> new 
PostgresQuery(layer.getId(),
-            query.getMinzoom(), query.getMaxzoom(), query.getSql())))
-        .toList();
+  /**
+   * A cache of queries.
+   */
+  private Map<Integer, Query> cache = new ConcurrentHashMap<>();
+
+  /**
+   * A record that holds the sql of a prepared statement and the number of 
parameters.
+   * 
+   * @param sql

Review Comment:
   ## Spurious Javadoc @param tags
   
   @param tag "sql" does not match any actual type parameter of type "Query".
   
   [Show more 
details](https://github.com/apache/incubator-baremaps/security/code-scanning/814)



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to