Mercurial > dive4elements > river
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, |