diff --git a/bigdata-core/bigdata-rdf/src/java/com/bigdata/rdf/internal/LexiconConfiguration.java b/bigdata-core/bigdata-rdf/src/java/com/bigdata/rdf/internal/LexiconConfiguration.java index 587e8138a9..d7ab6c90be 100644 --- a/bigdata-core/bigdata-rdf/src/java/com/bigdata/rdf/internal/LexiconConfiguration.java +++ b/bigdata-core/bigdata-rdf/src/java/com/bigdata/rdf/internal/LexiconConfiguration.java @@ -173,6 +173,11 @@ public class LexiconConfiguration */ final boolean rejectInvalidXSDValues; + /** + * @see AbstractTripleStore.Options#ENABLE_RAW_RECORDS_SUPPORT + */ + final boolean enableRawRecordsSupport; + /** * @see AbstractTripleStore.Options#EXTENSION_FACTORY_CLASS */ @@ -320,6 +325,9 @@ public String toString() { sb.append(", " + AbstractTripleStore.Options.REJECT_INVALID_XSD_VALUES + "=" + rejectInvalidXSDValues); + + sb.append(", " + AbstractTripleStore.Options.ENABLE_RAW_RECORDS_SUPPORT + "=" + + enableRawRecordsSupport); sb.append(", " + AbstractTripleStore.Options.EXTENSION_FACTORY_CLASS+ "=" + xFactory.getClass().getName()); @@ -349,6 +357,7 @@ public LexiconConfiguration(// final boolean inlineDateTimes,// final TimeZone inlineDateTimesTimeZone, final boolean rejectInvalidXSDValues, + final boolean enableRawRecordsSupport,// final IExtensionFactory xFactory,// final Vocabulary vocab, final BigdataValueFactory valueFactory,// @@ -376,6 +385,7 @@ public LexiconConfiguration(// this.inlineDateTimes = inlineDateTimes; this.inlineDateTimesTimeZone = inlineDateTimesTimeZone; this.rejectInvalidXSDValues = rejectInvalidXSDValues; + this.enableRawRecordsSupport = enableRawRecordsSupport; this.xFactory = xFactory; this.vocab = vocab; this.valueFactory = valueFactory; diff --git a/bigdata-core/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/LexiconRelation.java b/bigdata-core/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/LexiconRelation.java index 68b0a5bcf5..4a7bad7e3c 100644 --- a/bigdata-core/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/LexiconRelation.java +++ b/bigdata-core/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/LexiconRelation.java @@ -587,6 +587,9 @@ public LexiconRelation(final AbstractTripleStore container, AbstractTripleStore.Options.REJECT_INVALID_XSD_VALUES, AbstractTripleStore.Options.DEFAULT_REJECT_INVALID_XSD_VALUES)); + enableRawRecordsSupport = Boolean.parseBoolean(getProperty( + AbstractTripleStore.Options.ENABLE_RAW_RECORDS_SUPPORT, + AbstractTripleStore.Options.DEFAULT_ENABLE_RAW_RECORDS_SUPPORT)); // Resolve the vocabulary. vocab = getContainer().getVocabulary(); @@ -649,8 +652,8 @@ public LexiconRelation(final AbstractTripleStore container, inlineLiterals, inlineTextLiterals, maxInlineTextLength, inlineBNodes, inlineDateTimes, inlineDateTimesTimeZone, - rejectInvalidXSDValues, xFactory, vocab, valueFactory, - uriFactory, geoSpatial, geoSpatialConfig); + rejectInvalidXSDValues, enableRawRecordsSupport, xFactory, + vocab, valueFactory, uriFactory, geoSpatial, geoSpatialConfig); } @@ -931,6 +934,13 @@ public void destroy() { */ final private boolean rejectInvalidXSDValues; + /** + * When false, raw records will not be used to store + * the lexical forms of the RDF Values + * {@link AbstractTripleStore.Options#ENABLE_RAW_RECORDS_SUPPORT}. + */ + final private boolean enableRawRecordsSupport; + /** * The default time zone to be used for decoding inline xsd:datetime * literals from the statement indices. Will use the current timezeon @@ -1338,7 +1348,7 @@ protected IndexMetadata getId2TermIndexMetadata(final String name) { * @see https://sourceforge.net/apps/trac/bigdata/ticket/506 (Load, * closure and query performance in 1.1.x versus 1.0.x) */ - if(true) { + if (enableRawRecordsSupport) { // enable raw record support. metadata.setRawRecords(true); diff --git a/bigdata-core/bigdata-rdf/src/java/com/bigdata/rdf/store/AbstractTripleStore.java b/bigdata-core/bigdata-rdf/src/java/com/bigdata/rdf/store/AbstractTripleStore.java index e138f43d59..309615d159 100644 --- a/bigdata-core/bigdata-rdf/src/java/com/bigdata/rdf/store/AbstractTripleStore.java +++ b/bigdata-core/bigdata-rdf/src/java/com/bigdata/rdf/store/AbstractTripleStore.java @@ -1326,6 +1326,16 @@ public static interface Options extends AbstractResource.Options, .getName() + ".computeClosureForSids"; public static String DEFAULT_COMPUTE_CLOSURE_FOR_SIDS = "true"; + + /** + * If this option is set to false, turn off using raw records + * to store the lexical forms of the RDF Values. + */ + public static String ENABLE_RAW_RECORDS_SUPPORT = AbstractTripleStore.class + .getName() + ".enableRawRecordsSupport"; + + public static String DEFAULT_ENABLE_RAW_RECORDS_SUPPORT = "true"; + }