Skip to content

Commit 6455491

Browse files
committed
Merge pull request #670 from css-iter/master
#433 PostGres Archive Stored Procedures + ITER specific
2 parents cd0cfe5 + 579d2f5 commit 6455491

File tree

8 files changed

+67
-19
lines changed

8 files changed

+67
-19
lines changed

applications/plugins/org.csstudio.archive.reader.rdb/preferences.ini

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,8 @@ fetch_size=1000
2727
# MySQL:
2828
# use_stored_procedure=archive.get_browser_data
2929

30+
# PostgreSQL
31+
# use_stored_procedure=public.get_browser_data
32+
3033
# Don't use stored procedure
31-
use_stored_procedure=
34+
use_stored_procedure=

applications/plugins/org.csstudio.archive.reader.rdb/src/org/csstudio/archive/reader/rdb/RDBArchiveReader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ public RDBArchiveReader(final String url, final String user,
114114
break;
115115
case PostgreSQL:
116116
is_oracle = false;
117-
this.stored_procedure = "";
117+
this.stored_procedure = stored_procedure;
118118
break;
119119
case Oracle:
120120
is_oracle = true;

applications/plugins/org.csstudio.archive.reader.rdb/src/org/csstudio/archive/reader/rdb/StoredProcedureValueIterator.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,12 @@
1010
import java.sql.CallableStatement;
1111
import java.sql.ResultSet;
1212
import java.sql.ResultSetMetaData;
13+
import java.sql.Types;
14+
import java.text.SimpleDateFormat;
1315
import java.util.ArrayList;
16+
import java.sql.Date;
1417
import java.util.List;
18+
import java.util.TimeZone;
1519
import java.util.logging.Level;
1620
import java.util.logging.Logger;
1721

@@ -81,6 +85,9 @@ private void executeProcedure(final Timestamp start, final Timestamp end,
8185
case MySQL:
8286
sql = "{call " + stored_procedure + "(?, ?, ?, ?)}";
8387
break;
88+
case PostgreSQL:
89+
sql = "{? = call " + stored_procedure + "(?, ?, ?, ?)}";
90+
break;
8491
case Oracle:
8592
sql = "begin ? := " + stored_procedure + "(?, ?, ?, ?); end;";
8693
break;
@@ -104,6 +111,26 @@ private void executeProcedure(final Timestamp start, final Timestamp end,
104111
statement.setInt(4, count);
105112
result = statement.executeQuery();
106113
}
114+
else if(dialect == RDBUtil.Dialect.PostgreSQL)
115+
{ //PostgreSQL
116+
boolean autoCommit = reader.getRDB().getConnection().getAutoCommit();
117+
// Disable auto-commit to determine sample with PostgreSQL when fetch direction is FETCH_FORWARD
118+
if (autoCommit) {
119+
reader.getRDB().getConnection().setAutoCommit(false);
120+
}
121+
statement.registerOutParameter(1, Types.OTHER);
122+
statement.setLong(2, channel_id);
123+
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
124+
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
125+
statement.setString(3, sdf.format(new Date(TimestampHelper.toSQLTimestamp(start).getTime())));
126+
statement.setString(4, sdf.format(new Date(TimestampHelper.toSQLTimestamp(end).getTime())));
127+
statement.setLong(5, count);
128+
statement.setFetchDirection(ResultSet.FETCH_FORWARD);
129+
statement.setFetchSize(1000);
130+
statement.execute();
131+
result = (ResultSet) statement.getObject(1);
132+
}
133+
107134
else
108135
{ //ORACLE
109136
statement.registerOutParameter(1, OracleTypes.CURSOR);
@@ -246,5 +273,14 @@ public void close()
246273
super.close();
247274
index = -1;
248275
values = null;
276+
if (reader.getRDB().getDialect() == Dialect.PostgreSQL) {
277+
// Restore default auto-commit on result set close
278+
try {
279+
reader.getRDB().getConnection().setAutoCommit(true);
280+
} catch (Exception e) {
281+
// Ignore
282+
}
283+
}
284+
249285
}
250286
}

products/ITER/features/org.eclipse.iter.ui.feature/feature.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ of the distribution package.
8888
<import plugin="org.eclipse.wst.validation"/>
8989
<import plugin="org.eclipse.wst.validation.ui"/>
9090
<import plugin="org.apache.jasper.glassfish"/>
91-
<import plugin="org.w3c.dom.smil" version="1.0.0" match="compatible"/>
91+
<import plugin="org.w3c.dom.smil"/>
9292
</requires>
9393

9494
<plugin
@@ -646,7 +646,7 @@ of the distribution package.
646646
id="org.w3c.dom.smil"
647647
download-size="0"
648648
install-size="0"
649-
version="0.0.0"
649+
version="1.0.0.v200806040011"
650650
unpack="false"/>
651651

652652
</feature>
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
org.csstudio.logging.jms2rdb/httpd_port=4914
22
org.csstudio.logging.jms2rdb/jms_url=failover:(tcp://localhost:61616)
33
org.csstudio.logging.jms2rdb/jms_topic=demo_SERVER, demo_CLIENT, demo_TALK, LOG, TALK, WRITE
4-
org.csstudio.logging.jms2rdb/rdb_url=jdbc:postgresql://localhost/css_log_3_0_0?user=log&password=$log
4+
org.csstudio.logging.jms2rdb/rdb_url=jdbc:postgresql://localhost/css_log_3_0_0
5+
org.csstudio.logging.jms2rdb/rdb_user=log_ro
6+
org.csstudio.logging.jms2rdb/rdb_password=$log
57
org.csstudio.logging.jms2rdb/rdb_schema=
68

79

products/ITER/products/org.csstudio.iter.css.product/css.sh

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#!/bin/bash
22

33
#+======================================================================
4-
# $HeadURL: https://svnpub.iter.org/codac/iter/codac/dev/units/m-css-iter/trunk/org.csstudio.iter.css.product/css.sh $
5-
# $Id: css.sh 31100 2012-10-23 20:17:15Z zagara $
4+
# $HeadURL: https://svnpub.iter.org/codac/iter/codac/dev/units/m-css/trunk/products/ITER/products/org.csstudio.iter.css.product/css.sh $
5+
# $Id: css.sh 49232 2014-08-25 15:17:45Z zagara $
66
#
77
# Project : CODAC Core System
88
#
@@ -28,23 +28,25 @@ CODAC_ROOT=$(readlink -f "$0" | sed -n -e 's|^\(/[^/]*/[^/]*\)/.*|\1|p')
2828

2929
# If user args do not contain any argument starting with -
3030
# add --launcher.openFile before to interpret them as files to open
31-
OPEN_FILE_ARG="--launcher.openFile"
32-
USER_ARGS=""
31+
OPEN_FILES=()
32+
USER_ARGS=()
3333
while [ -n "$1" ]; do
3434
case $1 in
35+
--launcher.openFile)
36+
;;
37+
-*)
38+
USER_ARGS=("${USER_ARGS[@]}" "$1")
39+
;;
3540
*)
36-
USER_ARGS="${USER_ARGS:+${USER_ARGS} }\"$1\"";
37-
if [[ "${1:0:1}" == "-" ]]; then
38-
OPEN_FILE_ARG="";
39-
fi
40-
shift 1;;
41+
OPEN_FILES=("${OPEN_FILES[@]}" "$(readlink -fm "$1")")
42+
;;
4143
esac
44+
shift 1
4245
done
43-
if [[ USER_ARGS != "" ]]; then
44-
USER_ARGS="${OPEN_FILE_ARG} ${USER_ARGS}"
46+
if [ ${#OPEN_FILES[@]} -gt 0 ]; then
47+
USER_ARGS=("${USER_ARGS[@]}" "--launcher.openFile" "${OPEN_FILES[@]}")
4548
fi
46-
47-
set -- ${USER_ARGS} -share_link /opt/codac/opi=CSS/opi,/opt/codac/examples=CSS/examples,/opt/codac/opi/boy/SymbolLibrary=CSS/SymbolLibrary
49+
set -- -share_link /opt/codac/opi=CSS/opi,/opt/codac/examples=CSS/examples,/opt/codac/opi/boy/SymbolLibrary=CSS/SymbolLibrary "${USER_ARGS[@]}"
4850

4951
. ${CODAC_ROOT}/bin/codacenv
5052
. ${CODAC_ROOT}/bin/css-wrapper-script

products/ITER/products/org.csstudio.iter.css.product/plugin_customization.ini

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,9 @@ org.csstudio.utility.pvmanager.loc/zero_initialization=true
113113
org.csstudio.trends.databrowser2/urls=jdbc:postgresql://localhost/css_archive_3_0_0|Archive RDB
114114
org.csstudio.trends.databrowser2/email_default_sender=CSS Data Browser <[email protected]>
115115

116+
#PostgreSQL stored procedure
117+
org.csstudio.archive.reader.rdb/use_stored_procedure=public.get_browser_data
118+
116119
# Default data sources for newly added channels
117120
# Format: <name>|<key>|<url>
118121
# xnds: URLs use the key. Other URLs might ignore the key.

products/ITER/products/org.csstudio.iter.jms2rdb.product/plugin_customization.ini

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
org.csstudio.logging.jms2rdb/jms_topic=CODAC_AlarmHandler_SERVER, CODAC_AlarmHandler_CLIENT, CODAC_AlarmHandler_TALK, LOG, TALK, WRITE
33

44
# Database connection
5-
org.csstudio.logging.jms2rdb/rdb_url=jdbc:postgresql://localhost/css_log_3_0_0?user=log&password=$log
5+
org.csstudio.logging.jms2rdb/rdb_url=jdbc:postgresql://localhost/css_log_3_0_0
6+
org.csstudio.logging.jms2rdb/rdb_user=log_ro
7+
org.csstudio.logging.jms2rdb/rdb_password=$log
68

79
# Logging preferences
810
org.csstudio.logging/file_level=CONFIG

0 commit comments

Comments
 (0)