comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java @ 2609:ed550e325248

Little optimization when fetching q ranges for single columns of wsts. flys-artifacts/trunk@4191 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 03 Apr 2012 14:41:31 +0000
parents 1f90fdd4fa04
children 3c907758f0ab
comparison
equal deleted inserted replaced
2608:938e2f6c0c9a 2609:ed550e325248
51 "SELECT km, w, column_pos FROM wst_w_values " + 51 "SELECT km, w, column_pos FROM wst_w_values " +
52 "WHERE wst_id = :wst_id"; 52 "WHERE wst_id = :wst_id";
53 53
54 /** Statement to query qranges of a single column. */ 54 /** Statement to query qranges of a single column. */
55 public static final String SQL_SELECT_QS_AT_COL = 55 public static final String SQL_SELECT_QS_AT_COL =
56 "SELECT column_pos, q, a, b FROM wst_q_values " + 56 "SELECT q, a, b FROM wst_q_values " +
57 "WHERE wst_id = :wst_id AND column_pos = :column_pos"; 57 "WHERE wst_id = :wst_id AND column_pos = :column_pos";
58 58
59 // (sorted by km) 59 // (sorted by km)
60 public static final String SQL_SELECT_WS_AT_COL = 60 public static final String SQL_SELECT_WS_AT_COL =
61 "SELECT km, w FROM wst_w_values " + 61 "SELECT km, w FROM wst_w_values " +
367 WstValueTable.Column [] columns, 367 WstValueTable.Column [] columns,
368 int wst_id, 368 int wst_id,
369 int column_pos 369 int column_pos
370 ) { 370 ) {
371 SQLQuery sqlQuery = session.createSQLQuery(SQL_SELECT_QS_AT_COL) 371 SQLQuery sqlQuery = session.createSQLQuery(SQL_SELECT_QS_AT_COL)
372 .addScalar("column_pos", StandardBasicTypes.INTEGER) // keep to maintain order. 372 .addScalar("q", StandardBasicTypes.DOUBLE)
373 .addScalar("q", StandardBasicTypes.DOUBLE) 373 .addScalar("a", StandardBasicTypes.DOUBLE)
374 .addScalar("a", StandardBasicTypes.DOUBLE) 374 .addScalar("b", StandardBasicTypes.DOUBLE);
375 .addScalar("b", StandardBasicTypes.DOUBLE);
376 375
377 sqlQuery.setInteger("wst_id", wst_id); 376 sqlQuery.setInteger("wst_id", wst_id);
378 sqlQuery.setInteger("column_pos", column_pos); 377 sqlQuery.setInteger("column_pos", column_pos);
379 378
380 List<Object []> qRanges = sqlQuery.list(); 379 List<Object []> qRanges = sqlQuery.list();
381 380
382 int qSize = qRanges.size(); 381 int qSize = qRanges.size();
383 382
384 QRangeTree qRangeTree = new QRangeTree(qRanges, 0, qSize); 383 QRangeTree qRangeTree = new QRangeTree(
384 qRanges, QRangeTree.WITHOUT_COLUMN, 0, qSize);
385 columns[0].setQRangeTree(qRangeTree); 385 columns[0].setQRangeTree(qRangeTree);
386 } 386 }
387 387
388 protected static void loadQRanges( 388 protected static void loadQRanges(
389 Session session, 389 Session session,

http://dive4elements.wald.intevation.org