You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by ss...@apache.org on 2014/03/31 17:06:30 UTC
git commit: performance improvements for date literals
Repository: marmotta
Updated Branches:
refs/heads/develop e30cd53f7 -> 2278b3de4
performance improvements for date literals
Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/2278b3de
Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/2278b3de
Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/2278b3de
Branch: refs/heads/develop
Commit: 2278b3de48d71c2ca9261f27e11000e0a74eacb8
Parents: e30cd53
Author: Sebastian Schaffert <ss...@apache.org>
Authored: Mon Mar 31 17:06:23 2014 +0200
Committer: Sebastian Schaffert <ss...@apache.org>
Committed: Mon Mar 31 17:06:23 2014 +0200
----------------------------------------------------------------------
.../org/apache/marmotta/commons/util/DateUtils.java | 13 +++++++++++--
.../kiwi/persistence/pgsql/create_base_tables.sql | 1 +
2 files changed, 12 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/marmotta/blob/2278b3de/commons/marmotta-commons/src/main/java/org/apache/marmotta/commons/util/DateUtils.java
----------------------------------------------------------------------
diff --git a/commons/marmotta-commons/src/main/java/org/apache/marmotta/commons/util/DateUtils.java b/commons/marmotta-commons/src/main/java/org/apache/marmotta/commons/util/DateUtils.java
index 044cdb5..98dc942 100644
--- a/commons/marmotta-commons/src/main/java/org/apache/marmotta/commons/util/DateUtils.java
+++ b/commons/marmotta-commons/src/main/java/org/apache/marmotta/commons/util/DateUtils.java
@@ -20,7 +20,6 @@ package org.apache.marmotta.commons.util;
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
-
import java.text.DateFormat;
import java.text.DateFormatSymbols;
import java.text.ParseException;
@@ -47,6 +46,9 @@ public class DateUtils {
public static final SimpleDateFormat GMTFORMAT = createDateFormat("EEE, dd MMM yyyy HH:mm:ss z", "GMT");
+
+ private static DatatypeFactory datatypeFactory;
+
/**
* Some parsers will have the date as a ISO-8601 string
* already, and will set that into the Metadata object.
@@ -93,6 +95,13 @@ public class DateUtils {
}
+ private static DatatypeFactory getDatatypeFactory() throws DatatypeConfigurationException {
+ if(datatypeFactory == null) {
+ datatypeFactory = DatatypeFactory.newInstance();
+ }
+ return datatypeFactory;
+ }
+
/**
* Parses the given date string. This method is synchronized to prevent
* concurrent access to the thread-unsafe date formats.
@@ -146,7 +155,7 @@ public class DateUtils {
c.setTimeZone(TimeZone.getTimeZone("UTC"));
c.setTime(date);
try {
- return DatatypeFactory.newInstance().newXMLGregorianCalendar(c).normalize();
+ return getDatatypeFactory().newXMLGregorianCalendar(c).normalize();
} catch (DatatypeConfigurationException e) {
return null;
}
http://git-wip-us.apache.org/repos/asf/marmotta/blob/2278b3de/libraries/kiwi/kiwi-triplestore/src/main/resources/org/apache/marmotta/kiwi/persistence/pgsql/create_base_tables.sql
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-triplestore/src/main/resources/org/apache/marmotta/kiwi/persistence/pgsql/create_base_tables.sql b/libraries/kiwi/kiwi-triplestore/src/main/resources/org/apache/marmotta/kiwi/persistence/pgsql/create_base_tables.sql
index c4d9d14..1936a6b 100644
--- a/libraries/kiwi/kiwi-triplestore/src/main/resources/org/apache/marmotta/kiwi/persistence/pgsql/create_base_tables.sql
+++ b/libraries/kiwi/kiwi-triplestore/src/main/resources/org/apache/marmotta/kiwi/persistence/pgsql/create_base_tables.sql
@@ -74,6 +74,7 @@ CREATE INDEX idx_reg_tx ON registry(txId);
CREATE INDEX idx_node_content ON nodes USING hash(svalue);
CREATE INDEX idx_node_dcontent ON nodes(dvalue) WHERE dvalue IS NOT NULL;
CREATE INDEX idx_node_icontent ON nodes(ivalue) WHERE ivalue IS NOT NULL;
+CREATE INDEX idx_node_tcontent ON nodes(tvalue) WHERE tvalue IS NOT NULL;
CREATE INDEX idx_literal_lang ON nodes(lang);
CREATE INDEX idx_triples_p ON triples(predicate) WHERE deleted = false;