You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by sj...@apache.org on 2016/05/17 23:09:52 UTC

[39/40] vxquery git commit: Merged Master

Merged Master


Project: http://git-wip-us.apache.org/repos/asf/vxquery/repo
Commit: http://git-wip-us.apache.org/repos/asf/vxquery/commit/f90d5873
Tree: http://git-wip-us.apache.org/repos/asf/vxquery/tree/f90d5873
Diff: http://git-wip-us.apache.org/repos/asf/vxquery/diff/f90d5873

Branch: refs/heads/steven/hdfs
Commit: f90d5873761de94c64b6d20fcd0216d7f565d972
Parents: 4bd85a1 0ad460a
Author: Steven Jacobs <sj...@ucr.edu>
Authored: Mon May 16 16:01:10 2016 -0700
Committer: Steven Jacobs <sj...@ucr.edu>
Committed: Mon May 16 16:01:10 2016 -0700

----------------------------------------------------------------------
 .gitignore                                      |   1 +
 pom.xml                                         | 140 ++--
 src/site/apt/developer_get_started.apt          |   8 +-
 .../apt/development_update_xqts_results.apt     |   4 +-
 src/site/apt/index.apt                          |   5 +-
 src/site/apt/user_cluster_installation.apt      |  30 +-
 src/site/apt/user_running_tests.apt             |  22 +-
 .../images/eclipse_xml_editor_screen.png        | Bin 0 -> 75948 bytes
 src/site/resources/images/vxquery_cluster.png   | Bin 0 -> 22024 bytes
 .../images/vxquery_cluster_with_hdfs.png        | Bin 0 -> 31459 bytes
 src/site/resources/images/vxquery_stack.png     | Bin 0 -> 13264 bytes
 src/site/site.xml                               |  17 +-
 vxquery-benchmark/pom.xml                       |   1 -
 .../noaa-ghcn-daily/other_systems/basex/q00.xq  |  32 +
 .../noaa-ghcn-daily/other_systems/basex/q01.xq  |  25 +
 .../noaa-ghcn-daily/other_systems/basex/q02.xq  |  31 +
 .../noaa-ghcn-daily/other_systems/basex/q03.xq  |  25 +
 .../noaa-ghcn-daily/other_systems/basex/q04.xq  |  30 +
 .../noaa-ghcn-daily/other_systems/basex/q05.xq  |  33 +
 .../noaa-ghcn-daily/other_systems/basex/q06.xq  |  30 +
 .../noaa-ghcn-daily/other_systems/basex/q07.xq  |  32 +
 .../other_systems/basex_index/q00.xq            |  32 +
 .../other_systems/basex_index/q01.xq            |  25 +
 .../other_systems/basex_index/q02.xq            |  31 +
 .../other_systems/basex_index/q03.xq            |  25 +
 .../other_systems/basex_index/q04.xq            |  30 +
 .../other_systems/basex_index/q05.xq            |  33 +
 .../other_systems/basex_index/q06.xq            |  30 +
 .../other_systems/basex_index/q07.xq            |  32 +
 .../basex_index/sensors_database_add.bxs        |   2 +
 .../basex_index/sensors_database_remove.bxs     |   1 +
 .../basex_index/stations_database_add.bxs       |   2 +
 .../basex_index/stations_database_remove.bxs    |   1 +
 .../other_systems/basex_scripts/.basex          |   0
 .../other_systems/basex_scripts/README          |   9 +
 .../basex_scripts/run_basex_index_tests.sh      |  63 ++
 .../basex_scripts/run_basex_tests.sh            |  45 ++
 .../mrql_scripts/run_group_test.sh              |   3 +-
 .../mrql_scripts/run_mrql_tests.sh              |   2 +-
 .../saxon_scripts/run_saxon_tests.sh            |   9 +-
 vxquery-benchmark/src/site/site.xml             |   6 +-
 vxquery-cli/pom.xml                             |  20 +-
 .../java/org/apache/vxquery/cli/VXQuery.java    | 782 +++++++++----------
 vxquery-cli/src/site/site.xml                   |   6 +-
 vxquery-core/pom.xml                            |  16 +-
 .../vxquery/collations/CodepointCollation.java  |   2 +-
 .../apache/vxquery/collations/Collation.java    |   2 +-
 .../vxquery/compiler/CompilerControlBlock.java  |   2 +-
 .../VXQueryBinaryBooleanInspectorFactory.java   |  10 +-
 .../VXQueryBinaryIntegerInspectorFactory.java   |  10 +-
 .../VXQueryComparatorFactoryProvider.java       |  11 +-
 .../algebricks/VXQueryConstantValue.java        |   4 +-
 .../VXQueryExpressionRuntimeProvider.java       |  48 +-
 .../algebricks/VXQueryGlobalDataFactory.java    |   6 +-
 .../algebricks/VXQueryNullWriterFactory.java    |  10 +-
 .../algebricks/VXQueryPrinterFactory.java       |   6 +-
 .../VXQueryPrinterFactoryProvider.java          |   8 +-
 ...ueryLogicalExpressionPrettyPrintVisitor.java |  30 +-
 .../compiler/rewriter/RewriteRuleset.java       |  99 +--
 .../rewriter/VXQueryOptimizationContext.java    |  18 +-
 .../rewriter/rules/AbstractCollectionRule.java  |  49 +-
 ...tractRemoveRedundantTypeExpressionsRule.java |  14 +-
 .../AbstractUsedVariablesProcessingRule.java    |  18 +-
 .../rules/AbstractVXQueryAggregateRule.java     |   6 +-
 .../rewriter/rules/CollectionFileDomain.java    |   2 +-
 .../rules/ConsolidateAssignAggregateRule.java   |  34 +-
 .../rules/ConsolidateDescandantChild.java       |  22 +-
 .../rewriter/rules/ConsolidateUnnestsRule.java  |  20 +-
 ...tAssignSortDistinctNodesToOperatorsRule.java |  53 +-
 .../rules/ConvertAssignToAggregateRule.java     |  36 +-
 .../rules/ConvertAssignToUnnestRule.java        |  22 +-
 .../ConvertFromAlgebricksExpressionsRule.java   |  24 +-
 .../ConvertToAlgebricksExpressionsRule.java     |  26 +-
 .../EliminateSubplanForSingleItemsRule.java     |  32 +-
 .../EliminateSubplanForSinglePathsRule.java     |  14 +-
 .../EliminateUnnestAggregateSequencesRule.java  |  28 +-
 .../EliminateUnnestAggregateSubplanRule.java    |  30 +-
 .../rewriter/rules/IntroduceCollectionRule.java |  36 +-
 .../rules/IntroduceTwoStepAggregateRule.java    |  28 +-
 .../rules/PushChildIntoDataScanRule.java        |  24 +-
 .../rules/PushFunctionsOntoEqJoinBranches.java  |  32 +-
 .../RemoveRedundantBooleanExpressionsRule.java  |   2 +-
 .../RemoveRedundantCastExpressionsRule.java     |   2 +-
 .../RemoveRedundantDataExpressionsRule.java     |   2 +-
 .../RemoveRedundantPromoteExpressionsRule.java  |   2 +-
 .../RemoveRedundantTreatExpressionsRule.java    |   2 +-
 .../RemoveUnusedSortDistinctNodesRule.java      |  80 +-
 .../rules/RemoveUnusedUnnestIterateRule.java    |  44 +-
 .../rules/ReplaceSourceMapInDocExpression.java  |  26 +-
 .../rules/SetCollectionDataSourceRule.java      |  15 +-
 .../rules/SetVariableIdContextRule.java         |  14 +-
 .../ExtractFunctionsFromJoinConditionRule.java  |  47 +-
 .../InlineNestedVariablesRule.java              |  26 +-
 ...oveFreeVariableOperatorOutOfSubplanRule.java |  22 +-
 .../ConstantPropertyPropagationPolicy.java      |   2 +-
 .../IPropertyPropagationPolicy.java             |   2 +-
 .../InputPropertyPropagationPolicy.java         |   2 +-
 .../cardinality/Cardinality.java                |   2 +-
 .../documentorder/DocumentOrder.java            |   2 +-
 .../DocumentOrderNOPropagationPolicy.java       |   2 +-
 .../DocumentOrderYESPropagationPolicy.java      |   2 +-
 .../uniquenodes/UniqueNodes.java                |   2 +-
 .../UniqueNodesNOPropagationPolicy.java         |   2 +-
 .../UniqueNodesYESPropagationPolicy.java        |   2 +-
 .../rules/util/CardinalityRuleToolbox.java      |  22 +-
 .../rewriter/rules/util/ExpressionToolbox.java  |  36 +-
 .../rewriter/rules/util/OperatorToolbox.java    |  22 +-
 .../context/DefaultDocumentURIResolverImpl.java |   2 +-
 .../context/DelegatingStaticContextImpl.java    |   2 +-
 .../vxquery/context/DocumentURIResolver.java    |   2 +-
 .../apache/vxquery/context/DynamicContext.java  |   6 +-
 .../vxquery/context/DynamicContextImpl.java     |   8 +-
 .../context/DynamicContextImplFactory.java      |   8 +-
 .../vxquery/context/IDynamicContextFactory.java |   4 +-
 .../vxquery/context/IStaticContextFactory.java  |   2 +-
 .../vxquery/context/ModuleURIResolver.java      |   2 +-
 .../context/RootStaticContextFactory.java       |   2 +-
 .../vxquery/context/RootStaticContextImpl.java  |   2 +-
 .../apache/vxquery/context/StaticContext.java   |   2 +-
 .../vxquery/context/StaticContextImpl.java      |   2 +-
 .../context/StaticContextImplFactory.java       |   2 +-
 .../vxquery/context/ThinStaticContextImpl.java  |   2 +-
 .../context/ThinStaticContextImplFactory.java   |   2 +-
 .../apache/vxquery/context/XQueryVariable.java  |   4 +-
 .../datamodel/accessors/PointableCache.java     |   4 +-
 .../datamodel/accessors/PointablePool.java      |   6 +-
 .../accessors/PointablePoolFactory.java         |  20 +-
 .../datamodel/accessors/SequencePointable.java  |  14 +-
 .../accessors/TaggedValuePointable.java         |  14 +-
 .../datamodel/accessors/TypedPointables.java    |  16 +-
 .../accessors/atomic/CodedQNamePointable.java   |  12 +-
 .../accessors/atomic/XSBinaryPointable.java     |   8 +-
 .../accessors/atomic/XSDatePointable.java       |  14 +-
 .../accessors/atomic/XSDateTimePointable.java   |  16 +-
 .../accessors/atomic/XSDecimalPointable.java    |  20 +-
 .../accessors/atomic/XSDurationPointable.java   |  14 +-
 .../accessors/atomic/XSQNamePointable.java      |  10 +-
 .../accessors/atomic/XSTimePointable.java       |  14 +-
 .../accessors/nodes/AbstractNodePointable.java  |   4 +-
 .../accessors/nodes/AttributeNodePointable.java |  10 +-
 .../accessors/nodes/DocumentNodePointable.java  |  10 +-
 .../accessors/nodes/ElementNodePointable.java   |  14 +-
 .../accessors/nodes/NodeTreePointable.java      |  22 +-
 .../accessors/nodes/PINodePointable.java        |  12 +-
 .../nodes/TextOrCommentNodePointable.java       |  10 +-
 .../builders/atomic/StringValueBuilder.java     |   4 +-
 .../builders/atomic/UTF8StringBuilder.java      |   6 +-
 .../builders/base/AbstractBuilder.java          |   4 +-
 .../builders/base/AbstractValueBuilder.java     |   2 +-
 .../datamodel/builders/base/IValueBuilder.java  |   2 +-
 .../builders/nodes/AbstractNodeBuilder.java     |   4 +-
 .../builders/nodes/AttributeNodeBuilder.java    |   6 +-
 .../builders/nodes/CommentNodeBuilder.java      |   6 +-
 .../builders/nodes/DictionaryBuilder.java       |  14 +-
 .../builders/nodes/DocumentNodeBuilder.java     |   6 +-
 .../builders/nodes/ElementNodeBuilder.java      |  12 +-
 .../builders/nodes/NodeSubTreeBuilder.java      |   4 +-
 .../datamodel/builders/nodes/PINodeBuilder.java |   6 +-
 .../builders/nodes/TextNodeBuilder.java         |   6 +-
 .../builders/sequence/SequenceBuilder.java      |   8 +-
 .../apache/vxquery/datamodel/util/DateTime.java |  44 +-
 .../vxquery/datamodel/values/ValueTag.java      |   2 +-
 .../vxquery/datamodel/values/XDMConstants.java  |   8 +-
 .../DefaultSystemExceptionFactory.java          |   2 +-
 .../vxquery/exceptions/ErrorReporter.java       |   2 +-
 .../vxquery/exceptions/SystemException.java     |   2 +-
 .../exceptions/SystemExceptionFactory.java      |   2 +-
 .../exceptions/VXQueryDataException.java        |   2 +-
 .../vxquery/exceptions/WarningReporter.java     |   2 +-
 .../vxquery/functions/BuiltinFunction.java      |   2 +-
 .../vxquery/functions/ExternalFunction.java     |   2 +-
 .../org/apache/vxquery/functions/Function.java  |  10 +-
 .../org/apache/vxquery/functions/Operator.java  |   2 +-
 .../org/apache/vxquery/functions/Signature.java |   4 +-
 .../functions/UserDefinedXQueryFunction.java    |   4 +-
 .../vxquery/metadata/QueryResultDataSink.java   |  12 +-
 .../metadata/QueryResultSetDataSink.java        |  12 +-
 .../metadata/VXQueryCollectionDataSource.java   |  16 +-
 .../VXQueryCollectionOperatorDescriptor.java    |  38 +-
 .../vxquery/metadata/VXQueryIOFileFilter.java   |   2 +-
 .../metadata/VXQueryMetadataProvider.java       |  58 +-
 .../org/apache/vxquery/result/ResultUtils.java  |   6 +-
 .../VXQueryRawBinaryHashFunctionFactory.java    |   6 +-
 ...AbstractMaxMinAggregateEvaluatorFactory.java |  14 +-
 .../AbstractMaxMinScalarEvaluatorFactory.java   |  14 +-
 .../AvgGlobalAggregateEvaluatorFactory.java     |  16 +-
 .../AvgLocalAggregateEvaluatorFactory.java      |  14 +-
 .../FnAvgAggregateEvaluatorFactory.java         |  14 +-
 .../aggregate/FnAvgScalarEvaluatorFactory.java  |  14 +-
 .../FnCountAggregateEvaluatorFactory.java       |  14 +-
 .../FnCountScalarEvaluatorFactory.java          |  14 +-
 .../FnMaxAggregateEvaluatorFactory.java         |   4 +-
 .../aggregate/FnMaxScalarEvaluatorFactory.java  |   4 +-
 .../FnMinAggregateEvaluatorFactory.java         |   4 +-
 .../aggregate/FnMinScalarEvaluatorFactory.java  |   4 +-
 .../FnSumAggregateEvaluatorFactory.java         |  14 +-
 .../aggregate/FnSumScalarEvaluatorFactory.java  |  16 +-
 .../arithmetic/AbstractArithmeticOperation.java |  10 +-
 ...bstractArithmeticScalarEvaluatorFactory.java |  12 +-
 .../functions/arithmetic/AddOperation.java      |  12 +-
 .../arithmetic/AddScalarEvaluatorFactory.java   |   4 +-
 .../functions/arithmetic/DivideOperation.java   |  12 +-
 .../DivideScalarEvaluatorFactory.java           |   4 +-
 .../arithmetic/IntegerDivideOperation.java      |  12 +-
 .../IntegerDivideScalarEvaluatorFactory.java    |   4 +-
 .../functions/arithmetic/ModOperation.java      |  12 +-
 .../arithmetic/ModScalarEvaluatorFactory.java   |   4 +-
 .../functions/arithmetic/MultiplyOperation.java |  12 +-
 .../MultiplyScalarEvaluatorFactory.java         |   4 +-
 .../functions/arithmetic/SubtractOperation.java |  12 +-
 .../SubtractScalarEvaluatorFactory.java         |   4 +-
 ...ctTaggedValueArgumentAggregateEvaluator.java |  10 +-
 ...dValueArgumentAggregateEvaluatorFactory.java |  14 +-
 ...tractTaggedValueArgumentScalarEvaluator.java |  10 +-
 ...ggedValueArgumentScalarEvaluatorFactory.java |  10 +-
 ...ctTaggedValueArgumentUnnestingEvaluator.java |  10 +-
 ...dValueArgumentUnnestingEvaluatorFactory.java |  14 +-
 .../bool/AndScalarEvaluatorFactory.java         |  16 +-
 .../bool/FnBooleanScalarEvaluatorFactory.java   |  26 +-
 .../bool/FnFalseScalarEvaluatorFactory.java     |  12 +-
 .../bool/FnNotScalarEvaluatorFactory.java       |  14 +-
 .../bool/FnTrueScalarEvaluatorFactory.java      |  12 +-
 .../bool/OrScalarEvaluatorFactory.java          |  16 +-
 .../functions/cast/AbstractCastToOperation.java |  38 +-
 .../cast/CastScalarEvaluatorFactory.java        |  14 +-
 .../functions/cast/CastToAnyURIOperation.java   |   4 +-
 .../cast/CastToBase64BinaryOperation.java       |   7 +-
 .../functions/cast/CastToBooleanOperation.java  |  12 +-
 .../functions/cast/CastToByteOperation.java     |  20 +-
 .../cast/CastToDTDurationOperation.java         |   8 +-
 .../functions/cast/CastToDateOperation.java     |   4 +-
 .../functions/cast/CastToDateTimeOperation.java |   4 +-
 .../functions/cast/CastToDecimalOperation.java  |  22 +-
 .../functions/cast/CastToDoubleOperation.java   |  20 +-
 .../functions/cast/CastToDurationOperation.java |   8 +-
 .../functions/cast/CastToEntityOperation.java   |   2 +-
 .../functions/cast/CastToFloatOperation.java    |  20 +-
 .../functions/cast/CastToGDayOperation.java     |   4 +-
 .../cast/CastToGMonthDayOperation.java          |   4 +-
 .../functions/cast/CastToGMonthOperation.java   |   4 +-
 .../cast/CastToGYearMonthOperation.java         |   4 +-
 .../functions/cast/CastToGYearOperation.java    |   4 +-
 .../cast/CastToHexBinaryOperation.java          |   6 +-
 .../functions/cast/CastToIDOperation.java       |   2 +-
 .../functions/cast/CastToIDREFOperation.java    |   2 +-
 .../functions/cast/CastToIntOperation.java      |  20 +-
 .../functions/cast/CastToIntegerOperation.java  |  20 +-
 .../functions/cast/CastToLanguageOperation.java |   2 +-
 .../functions/cast/CastToLongOperation.java     |   2 +-
 .../functions/cast/CastToNCNameOperation.java   |   2 +-
 .../functions/cast/CastToNMTokenOperation.java  |   2 +-
 .../functions/cast/CastToNameOperation.java     |   2 +-
 .../cast/CastToNegativeIntegerOperation.java    |   2 +-
 .../cast/CastToNonNegativeIntegerOperation.java |   2 +-
 .../cast/CastToNonPositiveIntegerOperation.java |   2 +-
 .../cast/CastToNormalizedStringOperation.java   |   2 +-
 .../functions/cast/CastToNotationOperation.java |   4 +-
 .../cast/CastToPositiveIntegerOperation.java    |   2 +-
 .../functions/cast/CastToQNameOperation.java    |   6 +-
 .../functions/cast/CastToShortOperation.java    |  20 +-
 .../functions/cast/CastToStringOperation.java   |  22 +-
 .../functions/cast/CastToTimeOperation.java     |   4 +-
 .../functions/cast/CastToTokenOperation.java    |   2 +-
 .../cast/CastToUnsignedByteOperation.java       |   2 +-
 .../cast/CastToUnsignedIntOperation.java        |   2 +-
 .../cast/CastToUnsignedLongOperation.java       |   2 +-
 .../cast/CastToUnsignedShortOperation.java      |   2 +-
 .../cast/CastToUntypedAtomicOperation.java      |   2 +-
 .../cast/CastToYMDurationOperation.java         |   8 +-
 .../castable/AbstractCastableAsOperation.java   |  22 +-
 .../castable/CastableAsAnyURIOperation.java     |   4 +-
 .../CastableAsBase64BinaryOperation.java        |   6 +-
 .../castable/CastableAsBooleanOperation.java    |  14 +-
 .../castable/CastableAsByteOperation.java       |  16 +-
 .../castable/CastableAsDTDurationOperation.java |  10 +-
 .../castable/CastableAsDateOperation.java       |   6 +-
 .../castable/CastableAsDateTimeOperation.java   |   6 +-
 .../castable/CastableAsDecimalOperation.java    |  14 +-
 .../castable/CastableAsDoubleOperation.java     |  20 +-
 .../castable/CastableAsDurationOperation.java   |  10 +-
 .../castable/CastableAsFloatOperation.java      |  20 +-
 .../castable/CastableAsGDayOperation.java       |   6 +-
 .../castable/CastableAsGMonthDayOperation.java  |   6 +-
 .../castable/CastableAsGMonthOperation.java     |   6 +-
 .../castable/CastableAsGYearMonthOperation.java |   6 +-
 .../castable/CastableAsGYearOperation.java      |   6 +-
 .../castable/CastableAsHexBinaryOperation.java  |   6 +-
 .../castable/CastableAsIntOperation.java        |  20 +-
 .../castable/CastableAsIntegerOperation.java    |  20 +-
 .../castable/CastableAsLongOperation.java       |   2 +-
 .../CastableAsNegativeIntegerOperation.java     |   2 +-
 .../CastableAsNonNegativeIntegerOperation.java  |   2 +-
 .../CastableAsNonPositiveIntegerOperation.java  |   2 +-
 .../castable/CastableAsNotationOperation.java   |  14 +-
 .../CastableAsPositiveIntegerOperation.java     |   2 +-
 .../castable/CastableAsQNameOperation.java      |   4 +-
 .../castable/CastableAsShortOperation.java      |  18 +-
 .../castable/CastableAsStringOperation.java     |  14 +-
 .../castable/CastableAsTimeOperation.java       |   6 +-
 .../CastableAsUnsignedByteOperation.java        |   2 +-
 .../CastableAsUnsignedIntOperation.java         |   2 +-
 .../CastableAsUnsignedLongOperation.java        |   2 +-
 .../CastableAsUnsignedShortOperation.java       |   2 +-
 .../CastableAsUntypedAtomicOperation.java       |   2 +-
 .../castable/CastableAsYMDurationOperation.java |  10 +-
 .../CastableScalarEvaluatorFactory.java         |  14 +-
 .../AbstractDisjunctiveComparisonOperation.java |  14 +-
 .../AbstractNegatingComparisonOperation.java    |  14 +-
 .../AbstractValueComparisonOperation.java       |  14 +-
 ...ctValueComparisonScalarEvaluatorFactory.java |  16 +-
 .../comparison/ValueEqComparisonOperation.java  |  16 +-
 ...ValueEqComparisonScalarEvaluatorFactory.java |   4 +-
 .../comparison/ValueGeComparisonOperation.java  |   2 +-
 ...ValueGeComparisonScalarEvaluatorFactory.java |   4 +-
 .../comparison/ValueGtComparisonOperation.java  |   2 +-
 ...ValueGtComparisonScalarEvaluatorFactory.java |   4 +-
 .../comparison/ValueLeComparisonOperation.java  |   2 +-
 ...ValueLeComparisonScalarEvaluatorFactory.java |   4 +-
 .../comparison/ValueLtComparisonOperation.java  |  16 +-
 ...ValueLtComparisonScalarEvaluatorFactory.java |   4 +-
 .../comparison/ValueNeComparisonOperation.java  |   2 +-
 ...ValueNeComparisonScalarEvaluatorFactory.java |   4 +-
 ...GeneralComparisonScalarEvaluatorFactory.java |  18 +-
 ...neralEqComparisonScalarEvaluatorFactory.java |   4 +-
 ...neralGeComparisonScalarEvaluatorFactory.java |   4 +-
 ...neralGtComparisonScalarEvaluatorFactory.java |   4 +-
 ...neralLeComparisonScalarEvaluatorFactory.java |   4 +-
 ...neralLtComparisonScalarEvaluatorFactory.java |   4 +-
 ...neralNeComparisonScalarEvaluatorFactory.java |   4 +-
 .../IfThenElseScalarEvaluatorFactory.java       |  16 +-
 ...ValueFromDateTimeScalarEvaluatorFactory.java |  12 +-
 ...ValueFromDurationScalarEvaluatorFactory.java |  16 +-
 ...ateTimeToTimezoneScalarEvaluatorFactory.java |  14 +-
 ...ustDateToTimezoneScalarEvaluatorFactory.java |  14 +-
 ...ustTimeToTimezoneScalarEvaluatorFactory.java |  14 +-
 .../FnCurrentDateScalarEvaluatorFactory.java    |  12 +-
 ...FnCurrentDateTimeScalarEvaluatorFactory.java |  14 +-
 .../FnCurrentTimeScalarEvaluatorFactory.java    |  14 +-
 .../FnDateTimeScalarEvaluatorFactory.java       |  12 +-
 .../FnDayFromDateScalarEvaluatorFactory.java    |   2 +-
 ...FnDayFromDateTimeScalarEvaluatorFactory.java |   2 +-
 ...nDaysFromDurationScalarEvaluatorFactory.java |   2 +-
 ...HoursFromDateTimeScalarEvaluatorFactory.java |   2 +-
 ...HoursFromDurationScalarEvaluatorFactory.java |   2 +-
 .../FnHoursFromTimeScalarEvaluatorFactory.java  |   2 +-
 ...nImplicitTimezoneScalarEvaluatorFactory.java |  12 +-
 ...nutesFromDateTimeScalarEvaluatorFactory.java |   2 +-
 ...nutesFromDurationScalarEvaluatorFactory.java |   2 +-
 ...FnMinutesFromTimeScalarEvaluatorFactory.java |   2 +-
 .../FnMonthFromDateScalarEvaluatorFactory.java  |   2 +-
 ...MonthFromDateTimeScalarEvaluatorFactory.java |   2 +-
 ...onthsFromDurationScalarEvaluatorFactory.java |   2 +-
 ...condsFromDateTimeScalarEvaluatorFactory.java |   2 +-
 ...condsFromDurationScalarEvaluatorFactory.java |   2 +-
 ...FnSecondsFromTimeScalarEvaluatorFactory.java |   2 +-
 ...nTimezoneFromDateScalarEvaluatorFactory.java |   2 +-
 ...ezoneFromDateTimeScalarEvaluatorFactory.java |   2 +-
 ...nTimezoneFromTimeScalarEvaluatorFactory.java |   2 +-
 .../FnYearFromDateScalarEvaluatorFactory.java   |   2 +-
 ...nYearFromDateTimeScalarEvaluatorFactory.java |   2 +-
 ...YearsFromDurationScalarEvaluatorFactory.java |   2 +-
 .../error/FnErrorScalarEvaluatorFactory.java    |  18 +-
 .../misc/FnDataScalarEvaluatorFactory.java      |  14 +-
 .../AbstractNodeConstructorScalarEvaluator.java |  12 +-
 .../AbstractNodePositionalCheckEvaluator.java   |   6 +-
 ...AttributeNodeConstructorScalarEvaluator.java |  10 +-
 ...teNodeConstructorScalarEvaluatorFactory.java |  10 +-
 .../CommentNodeConstructorScalarEvaluator.java  |  10 +-
 ...ntNodeConstructorScalarEvaluatorFactory.java |  10 +-
 .../ElementNodeConstructorScalarEvaluator.java  |  14 +-
 ...ntNodeConstructorScalarEvaluatorFactory.java |  10 +-
 .../FnDocAvailableScalarEvaluatorFactory.java   |  18 +-
 .../node/FnDocScalarEvaluatorFactory.java       |  18 +-
 .../node/FnNumberScalarEvaluatorFactory.java    |  12 +-
 .../node/IdFromNodeScalarEvaluatorFactory.java  |  12 +-
 .../LocalIdFromNodeScalarEvaluatorFactory.java  |  12 +-
 .../functions/node/OpNodeAfterEvaluator.java    |   2 +-
 .../node/OpNodeAfterEvaluatorFactory.java       |   8 +-
 .../functions/node/OpNodeBeforeEvaluator.java   |   2 +-
 .../node/OpNodeBeforeEvaluatorFactory.java      |   8 +-
 .../node/PINodeConstructorScalarEvaluator.java  |  10 +-
 ...PINodeConstructorScalarEvaluatorFactory.java |  10 +-
 .../TextNodeConstructorScalarEvaluator.java     |  10 +-
 ...xtNodeConstructorScalarEvaluatorFactory.java |  10 +-
 .../TreeIdFromNodeScalarEvaluatorFactory.java   |  12 +-
 ...NodesAscOrAtomicsScalarEvaluatorFactory.java |  12 +-
 .../numeric/AbstractNumericOperation.java       |   6 +-
 .../AbstractNumericScalarEvaluatorFactory.java  |  16 +-
 .../functions/numeric/FnAbsOperation.java       |   8 +-
 .../numeric/FnAbsScalarEvaluatorFactory.java    |   4 +-
 .../functions/numeric/FnCeilingOperation.java   |   8 +-
 .../FnCeilingScalarEvaluatorFactory.java        |   4 +-
 .../functions/numeric/FnFloorOperation.java     |   8 +-
 .../numeric/FnFloorScalarEvaluatorFactory.java  |   4 +-
 ...FnRoundHalfToEvenScalarEvaluatorFactory.java |  26 +-
 .../functions/numeric/FnRoundOperation.java     |   8 +-
 .../numeric/FnRoundScalarEvaluatorFactory.java  |   4 +-
 ...ocalNameFromQNameScalarEvaluatorFactory.java |  16 +-
 ...spaceUriFromQNameScalarEvaluatorFactory.java |  16 +-
 ...FnPrefixFromQNameScalarEvaluatorFactory.java |  16 +-
 .../qname/FnQNameScalarEvaluatorFactory.java    |  16 +-
 .../ConcatenateScalarEvaluatorFactory.java      |  16 +-
 .../FnDistinctValuesScalarEvaluatorFactory.java |  18 +-
 .../sequence/FnEmptyScalarEvaluatorFactory.java |  12 +-
 .../FnExactlyOneScalarEvaluatorFactory.java     |  12 +-
 .../FnExistsScalarEvaluatorFactory.java         |  12 +-
 .../FnIndexOfScalarEvaluatorFactory.java        |  16 +-
 .../FnInsertBeforeScalarEvaluatorFactory.java   |  18 +-
 .../FnOneOrMoreScalarEvaluatorFactory.java      |  12 +-
 .../FnRemoveScalarEvaluatorFactory.java         |  18 +-
 .../FnReverseScalarEvaluatorFactory.java        |  16 +-
 .../FnSubsequenceScalarEvaluatorFactory.java    |  24 +-
 .../FnUnorderedScalarEvaluatorFactory.java      |  12 +-
 .../FnZeroOrOneScalarEvaluatorFactory.java      |  12 +-
 .../IterateUnnestingEvaluatorFactory.java       |  14 +-
 .../sequence/OpToScalarEvaluatorFactory.java    |  16 +-
 .../SequenceAggregateEvaluatorFactory.java      |  16 +-
 ...stractDescendantPathStepScalarEvaluator.java |  12 +-
 .../step/AbstractForwardAxisPathStep.java       |   8 +-
 .../step/AbstractPathStepScalarEvaluator.java   |  10 +-
 .../AbstractSinglePathStepScalarEvaluator.java  |  12 +-
 .../step/AttributePathStepScalarEvaluator.java  |   6 +-
 ...AttributePathStepScalarEvaluatorFactory.java |  10 +-
 .../step/ChildPathStepOperatorDescriptor.java   |  24 +-
 .../step/ChildPathStepScalarEvaluator.java      |  12 +-
 .../ChildPathStepScalarEvaluatorFactory.java    |  10 +-
 .../functions/step/ChildPathStepUnnesting.java  |  22 +-
 .../step/ChildPathStepUnnestingEvaluator.java   |  10 +-
 .../ChildPathStepUnnestingEvaluatorFactory.java |  12 +-
 ...DescendantOrSelfPathStepScalarEvaluator.java |  12 +-
 ...antOrSelfPathStepScalarEvaluatorFactory.java |  10 +-
 .../step/DescendantOrSelfPathStepUnnesting.java |  23 +-
 ...cendantOrSelfPathStepUnnestingEvaluator.java |  10 +-
 ...OrSelfPathStepUnnestingEvaluatorFactory.java |  12 +-
 .../step/DescendantPathStepScalarEvaluator.java |  12 +-
 ...escendantPathStepScalarEvaluatorFactory.java |  10 +-
 .../DescendantPathStepUnnestingEvaluator.java   |  10 +-
 ...endantPathStepUnnestingEvaluatorFactory.java |  12 +-
 .../runtime/functions/step/NodeTestFilter.java  |   8 +-
 .../step/SelfPathStepScalarEvaluator.java       |  10 +-
 .../SelfPathStepScalarEvaluatorFactory.java     |  10 +-
 ...stractCharacterIteratorCopyingEvaluator.java |   6 +-
 ...haracterIteratorCopyingEvaluatorFactory.java |   2 +-
 .../FnCodepointEqualEvaluatorFactory.java       |  12 +-
 .../FnCodepointsToStringEvaluatorFactory.java   |  16 +-
 .../strings/FnCompareEvaluatorFactory.java      |  14 +-
 .../strings/FnConcatEvaluatorFactory.java       |  14 +-
 .../strings/FnContainsEvaluatorFactory.java     |  12 +-
 .../strings/FnEndsWithEvaluatorFactory.java     |  12 +-
 .../strings/FnLowerCaseEvaluatorFactory.java    |  10 +-
 .../strings/FnStartsWithEvaluatorFactory.java   |  12 +-
 .../strings/FnStringJoinEvaluatorFactory.java   |  14 +-
 .../strings/FnStringLengthEvaluatorFactory.java |  14 +-
 .../strings/FnStringScalarEvaluatorFactory.java |  14 +-
 .../FnStringToCodepointsEvaluatorFactory.java   |  14 +-
 .../FnSubstringAfterEvaluatorFactory.java       |  10 +-
 .../FnSubstringBeforeEvaluatorFactory.java      |  10 +-
 .../strings/FnSubstringEvaluatorFactory.java    |  16 +-
 .../strings/FnUpperCaseEvaluatorFactory.java    |  10 +-
 .../strings/UTF8StringCharacterIterator.java    |   2 +-
 .../AbstractTypeScalarEvaluatorFactory.java     |  12 +-
 .../type/InstanceOfScalarEvaluatorFactory.java  |  12 +-
 .../type/PromoteScalarEvaluatorFactory.java     |  14 +-
 .../functions/type/SequenceTypeMatcher.java     |   4 +-
 .../type/TreatScalarEvaluatorFactory.java       |  12 +-
 .../unary/AbstractNumericUnaryOperation.java    |   6 +-
 ...tractNumericUnaryScalarEvaluatorFactory.java |  16 +-
 .../unary/NumericUnaryMinusOperation.java       |   8 +-
 ...NumericUnaryMinusScalarEvaluatorFactory.java |   4 +-
 .../unary/NumericUnaryPlusOperation.java        |   8 +-
 .../NumericUnaryPlusScalarEvaluatorFactory.java |   4 +-
 .../functions/util/ArithmeticHelper.java        |   8 +-
 .../runtime/functions/util/AtomizeHelper.java   |   6 +-
 .../runtime/functions/util/FunctionHelper.java  |  47 +-
 ...XQueryBinaryHashFunctionFactoryProvider.java |   6 +-
 ...VXQueryBinaryHashFunctionFamilyProvider.java |   8 +-
 .../vxquery/serializer/XMLSerializer.java       |  26 +-
 .../apache/vxquery/types/AbstractNodeType.java  |   4 +-
 .../org/apache/vxquery/types/AnyItemType.java   |   1 +
 .../org/apache/vxquery/types/AnyNodeType.java   |   3 +-
 .../org/apache/vxquery/types/AnySimpleType.java |   3 +-
 .../java/org/apache/vxquery/types/AnyType.java  |   3 +-
 .../org/apache/vxquery/types/AtomicType.java    |   2 +-
 .../org/apache/vxquery/types/AttributeType.java |   4 +-
 .../apache/vxquery/types/BuiltinAtomicType.java |   2 +-
 .../vxquery/types/BuiltinTypeConstants.java     |   2 +-
 .../apache/vxquery/types/BuiltinTypeQNames.java |   2 +-
 .../vxquery/types/BuiltinTypeRegistry.java      |   2 +-
 .../org/apache/vxquery/types/CommentType.java   |   3 +-
 .../org/apache/vxquery/types/ComplexType.java   |   2 +-
 .../apache/vxquery/types/DerivationProcess.java |   2 +-
 .../org/apache/vxquery/types/DocumentType.java  |   4 +-
 .../org/apache/vxquery/types/ElementType.java   |   4 +-
 .../apache/vxquery/types/EmptySequenceType.java |   3 +-
 .../java/org/apache/vxquery/types/ItemType.java |   2 +-
 .../java/org/apache/vxquery/types/NameTest.java |   4 +-
 .../java/org/apache/vxquery/types/NodeKind.java |   2 +-
 .../java/org/apache/vxquery/types/NodeType.java |   2 +-
 .../java/org/apache/vxquery/types/NoneType.java |   3 +-
 .../types/ProcessingInstructionType.java        |   6 +-
 .../org/apache/vxquery/types/SchemaType.java    |   2 +-
 .../org/apache/vxquery/types/SimpleType.java    |   2 +-
 .../java/org/apache/vxquery/types/TextType.java |   3 +-
 .../org/apache/vxquery/types/TypeHelper.java    |   2 +-
 .../org/apache/vxquery/types/TypeUtils.java     |   2 +-
 .../java/org/apache/vxquery/types/XQType.java   |   2 +-
 .../java/org/apache/vxquery/util/Filter.java    |   2 +-
 .../apache/vxquery/util/GrowableIntArray.java   |   2 +-
 .../org/apache/vxquery/util/SourceLocation.java |   2 +-
 .../vxquery/xmlparser/ITreeNodeIdProvider.java  |   2 +-
 .../vxquery/xmlparser/SAXContentHandler.java    |  77 +-
 .../vxquery/xmlparser/TreeNodeIdProvider.java   |   2 +-
 .../org/apache/vxquery/xmlparser/XMLParser.java |  29 +-
 .../apache/vxquery/xmlquery/ast/ASTNode.java    |   2 +-
 .../org/apache/vxquery/xmlquery/ast/ASTTag.java |   2 +-
 .../vxquery/xmlquery/ast/AnyNodeTestNode.java   |   2 +-
 .../vxquery/xmlquery/ast/AtomicTypeNode.java    |   2 +-
 .../vxquery/xmlquery/ast/AttributeTestNode.java |   2 +-
 .../vxquery/xmlquery/ast/AxisStepNode.java      |   2 +-
 .../vxquery/xmlquery/ast/BaseUriDeclNode.java   |   2 +-
 .../xmlquery/ast/BoundarySpaceDeclNode.java     |   2 +-
 .../vxquery/xmlquery/ast/CDataSectionNode.java  |   2 +-
 .../vxquery/xmlquery/ast/CaseClauseNode.java    |   2 +-
 .../vxquery/xmlquery/ast/CommentTestNode.java   |   2 +-
 .../ast/ComputedAttributeConstructorNode.java   |   2 +-
 .../ast/ComputedCommentConstructorNode.java     |   2 +-
 .../ast/ComputedDocumentConstructorNode.java    |   2 +-
 .../ast/ComputedElementConstructorNode.java     |   2 +-
 .../xmlquery/ast/ComputedPIConstructorNode.java |   2 +-
 .../ast/ComputedTextConstructorNode.java        |   2 +-
 .../xmlquery/ast/ConstructionDeclNode.java      |   2 +-
 .../vxquery/xmlquery/ast/ContentCharsNode.java  |   2 +-
 .../xmlquery/ast/ContextItemExprNode.java       |   2 +-
 .../xmlquery/ast/CopyNamespacesDeclNode.java    |   2 +-
 .../ast/DQuotedAttributeContentNode.java        |   2 +-
 .../xmlquery/ast/DefaultCollationDeclNode.java  |   2 +-
 .../ast/DefaultElementNamespaceDeclNode.java    |   2 +-
 .../ast/DefaultFunctionNamespaceDeclNode.java   |   2 +-
 .../ast/DirectAttributeConstructorNode.java     |   2 +-
 .../ast/DirectCommentConstructorNode.java       |   2 +-
 .../ast/DirectElementConstructorNode.java       |   2 +-
 .../xmlquery/ast/DirectPIConstructorNode.java   |   2 +-
 .../vxquery/xmlquery/ast/DocumentTestNode.java  |   2 +-
 .../vxquery/xmlquery/ast/ElementTestNode.java   |   2 +-
 .../xmlquery/ast/EmptyOrderDeclNode.java        |   2 +-
 .../xmlquery/ast/EmptySequenceTypeNode.java     |   2 +-
 .../vxquery/xmlquery/ast/EnclosedExprNode.java  |   2 +-
 .../apache/vxquery/xmlquery/ast/ExprNode.java   |   2 +-
 .../vxquery/xmlquery/ast/ExtensionExprNode.java |   2 +-
 .../vxquery/xmlquery/ast/FLWORClauseNode.java   |   2 +-
 .../vxquery/xmlquery/ast/FLWORExprNode.java     |   2 +-
 .../vxquery/xmlquery/ast/FTOptionDeclNode.java  |   2 +-
 .../vxquery/xmlquery/ast/FilterExprNode.java    |   2 +-
 .../vxquery/xmlquery/ast/ForClauseNode.java     |   2 +-
 .../vxquery/xmlquery/ast/ForVarDeclNode.java    |   2 +-
 .../vxquery/xmlquery/ast/FunctionDeclNode.java  |   2 +-
 .../vxquery/xmlquery/ast/FunctionExprNode.java  |   2 +-
 .../apache/vxquery/xmlquery/ast/IfExprNode.java |   2 +-
 .../vxquery/xmlquery/ast/InfixExprNode.java     |   2 +-
 .../vxquery/xmlquery/ast/ItemTestNode.java      |   2 +-
 .../vxquery/xmlquery/ast/ItemTypeNode.java      |   2 +-
 .../vxquery/xmlquery/ast/LetClauseNode.java     |   2 +-
 .../vxquery/xmlquery/ast/LetVarDeclNode.java    |   2 +-
 .../vxquery/xmlquery/ast/LibraryModuleNode.java |   2 +-
 .../vxquery/xmlquery/ast/LiteralNode.java       |   2 +-
 .../vxquery/xmlquery/ast/MainModuleNode.java    |   2 +-
 .../vxquery/xmlquery/ast/ModuleDeclNode.java    |   2 +-
 .../vxquery/xmlquery/ast/ModuleImportNode.java  |   2 +-
 .../apache/vxquery/xmlquery/ast/ModuleNode.java |   2 +-
 .../apache/vxquery/xmlquery/ast/NCNameNode.java |   2 +-
 .../vxquery/xmlquery/ast/NameTestNode.java      |   2 +-
 .../vxquery/xmlquery/ast/NamespaceDeclNode.java |   2 +-
 .../vxquery/xmlquery/ast/OptionDeclNode.java    |   2 +-
 .../vxquery/xmlquery/ast/OrderSpecNode.java     |   2 +-
 .../vxquery/xmlquery/ast/OrderbyClauseNode.java |   2 +-
 .../vxquery/xmlquery/ast/OrderedExprNode.java   |   2 +-
 .../xmlquery/ast/OrderingModeDeclNode.java      |   2 +-
 .../apache/vxquery/xmlquery/ast/PITestNode.java |   2 +-
 .../apache/vxquery/xmlquery/ast/ParamNode.java  |   2 +-
 .../xmlquery/ast/ParenthesizedExprNode.java     |   2 +-
 .../vxquery/xmlquery/ast/PathExprNode.java      |   2 +-
 .../apache/vxquery/xmlquery/ast/PragmaNode.java |   2 +-
 .../apache/vxquery/xmlquery/ast/PrologNode.java |   2 +-
 .../apache/vxquery/xmlquery/ast/QNameNode.java  |   2 +-
 .../xmlquery/ast/QuantifiedExprNode.java        |   2 +-
 .../xmlquery/ast/QuantifiedVarDeclNode.java     |   2 +-
 .../vxquery/xmlquery/ast/QueryBodyNode.java     |   2 +-
 .../xmlquery/ast/RelativePathExprNode.java      |   2 +-
 .../ast/SQuotedAttributeContentNode.java        |   2 +-
 .../xmlquery/ast/SchemaAttributeTestNode.java   |   2 +-
 .../xmlquery/ast/SchemaElementTestNode.java     |   2 +-
 .../vxquery/xmlquery/ast/SchemaImportNode.java  |   2 +-
 .../vxquery/xmlquery/ast/SequenceTypeNode.java  |   2 +-
 .../vxquery/xmlquery/ast/SingleTypeNode.java    |   2 +-
 .../vxquery/xmlquery/ast/TextTestNode.java      |   2 +-
 .../xmlquery/ast/TextualNodeContentNode.java    |   2 +-
 .../vxquery/xmlquery/ast/TypeDeclNode.java      |   2 +-
 .../vxquery/xmlquery/ast/TypeExprNode.java      |   2 +-
 .../xmlquery/ast/TypeswitchExprNode.java        |   2 +-
 .../vxquery/xmlquery/ast/UnaryExprNode.java     |   2 +-
 .../vxquery/xmlquery/ast/UnorderedExprNode.java |   2 +-
 .../vxquery/xmlquery/ast/ValidateExprNode.java  |   2 +-
 .../vxquery/xmlquery/ast/VarDeclNode.java       |   2 +-
 .../apache/vxquery/xmlquery/ast/VarRefNode.java |   2 +-
 .../vxquery/xmlquery/ast/VersionDeclNode.java   |   2 +-
 .../vxquery/xmlquery/ast/WhereClauseNode.java   |   2 +-
 .../apache/vxquery/xmlquery/query/Module.java   |   6 +-
 .../query/NoopXQueryCompilationListener.java    |   2 +-
 .../vxquery/xmlquery/query/PrologVariable.java  |   2 +-
 .../query/VXQueryCompilationListener.java       |  10 +-
 .../xmlquery/query/XMLQueryCompiler.java        |  66 +-
 .../vxquery/xmlquery/query/XMLQueryParser.java  |   2 +-
 .../xmlquery/query/XMLQueryTypeChecker.java     |   2 +-
 .../query/XQueryCompilationListener.java        |   2 +-
 .../vxquery/xmlquery/query/XQueryConstants.java |   2 +-
 .../translator/VXQueryPositionWriter.java       |   5 +-
 .../xmlquery/translator/XMLQueryTranslator.java | 178 ++---
 .../src/main/xslt/generate-fn-defns.xsl         |   6 +-
 .../src/main/xslt/generate-op-defns.xsl         |   6 +-
 vxquery-core/src/site/site.xml                  |   6 +-
 .../xmlquery/query/SimpleXQueryTest.java        |   2 +-
 vxquery-server/pom.xml                          |  10 +-
 .../vxquery/cli/VXQueryClusterShutdown.java     |   4 +-
 .../src/main/resources/conf/cluster.properties  |   2 +-
 vxquery-server/src/site/site.xml                |   6 +-
 vxquery-xtest/pom.xml                           |  12 +-
 vxquery-xtest/results/xqts.txt                  | 742 +++++++++---------
 .../vxquery/xtest/AbstractTestCaseFactory.java  |   2 +-
 .../apache/vxquery/xtest/ExpectedResult.java    |   2 +-
 .../vxquery/xtest/HTMLFileReporterImpl.java     |   2 +-
 .../vxquery/xtest/LineFileReporterImpl.java     |   2 +-
 .../apache/vxquery/xtest/ResultReporter.java    |   2 +-
 .../vxquery/xtest/ServletReporterImpl.java      |   2 +-
 .../java/org/apache/vxquery/xtest/TestCase.java |   2 +-
 .../apache/vxquery/xtest/TestCaseFactory.java   |   2 +-
 .../apache/vxquery/xtest/TestCaseResult.java    |   2 +-
 .../org/apache/vxquery/xtest/TestRunner.java    |  57 +-
 .../apache/vxquery/xtest/TestRunnerFactory.java |   2 +-
 .../vxquery/xtest/XMLFileReporterImpl.java      |   2 +-
 .../java/org/apache/vxquery/xtest/XTest.java    |   2 +-
 .../org/apache/vxquery/xtest/XTestOptions.java  |   2 +-
 .../vxquery/xtest/util/DiskPerformance.java     | 215 -----
 .../xtest/util/tests/AbstractDiskTest.java      |  90 ---
 .../tests/BufferedParsedCharacterStream.java    |  45 --
 .../tests/BufferedReaderBufferedStream.java     |  48 --
 .../xtest/util/tests/BufferedReaderStream.java  |  46 --
 .../xtest/util/tests/BufferedStream.java        |  45 --
 .../vxquery/xtest/util/tests/IDiskTest.java     |  31 -
 .../util/tests/ParsedBufferedByteStream.java    |  48 --
 .../tests/ParsedBufferedCharacterStream.java    |  48 --
 .../xtest/util/tests/ParsedByteStream.java      |  46 --
 .../xtest/util/tests/ParsedCharacterStream.java |  47 --
 .../xtest/util/tests/ReaderBufferedStream.java  |  46 --
 .../vxquery/xtest/util/tests/ReaderStream.java  |  45 --
 .../apache/vxquery/xtest/util/tests/Stream.java |  44 --
 vxquery-xtest/src/site/site.xml                 |   6 +-
 .../vxquery/xtest/JUnitTestCaseFactory.java     |   2 +-
 657 files changed, 4349 insertions(+), 4405 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/vxquery/blob/f90d5873/pom.xml
----------------------------------------------------------------------
diff --cc pom.xml
index 8128251,8a97a92..4cabe8e
--- a/pom.xml
+++ b/pom.xml
@@@ -278,25 -295,6 +296,25 @@@
              </dependency>
  
              <dependency>
-                 <groupId>edu.uci.ics.hyracks</groupId>
++                <groupId>org.apache.hyracks</groupId>
 +                <artifactId>hyracks-hdfs-2.x</artifactId>
 +                <version>${hyracks.version}</version>
 +            </dependency>
 +
 +            <dependency>
-                 <groupId>edu.uci.ics.hyracks</groupId>
++                <groupId>org.apache.hyracks</groupId>
 +                <artifactId>hyracks-hdfs-core</artifactId>
 +                <version>${hyracks.version}</version>
 +                <type>jar</type>
 +            </dependency>
 +
 +            <dependency>
 +                <groupId>org.apache.hadoop</groupId>
 +                <artifactId>hadoop-hdfs</artifactId>
 +                <version>2.7.0</version>
 +            </dependency>
 +
 +            <dependency>
                  <groupId>ant</groupId>
                  <artifactId>ant-trax</artifactId>
                  <version>1.6.5</version>

http://git-wip-us.apache.org/repos/asf/vxquery/blob/f90d5873/src/site/site.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/vxquery/blob/f90d5873/vxquery-cli/pom.xml
----------------------------------------------------------------------
diff --cc vxquery-cli/pom.xml
index 2c4515e,7bf1ff9..c4e11cb
--- a/vxquery-cli/pom.xml
+++ b/vxquery-cli/pom.xml
@@@ -123,22 -123,10 +123,22 @@@
          </dependency>
  
          <dependency>
-             <groupId>edu.uci.ics.hyracks</groupId>
+             <groupId>org.apache.hyracks</groupId>
              <artifactId>hyracks-dataflow-std</artifactId>
          </dependency>
 +        
 +        <dependency>
-                 <groupId>edu.uci.ics.hyracks</groupId>
++                <groupId>org.apache.hyracks</groupId>
 +                <artifactId>hyracks-hdfs-core</artifactId>
 +        </dependency>
 +        
 +        <dependency>
-                 <groupId>edu.uci.ics.hyracks</groupId>
++                <groupId>org.apache.hyracks</groupId>
 +                <artifactId>hyracks-hdfs-2.x</artifactId>
 +        </dependency>
      </dependencies>
 +    
 +    
  
      <reporting>
          <plugins>

http://git-wip-us.apache.org/repos/asf/vxquery/blob/f90d5873/vxquery-cli/src/main/java/org/apache/vxquery/cli/VXQuery.java
----------------------------------------------------------------------
diff --cc vxquery-cli/src/main/java/org/apache/vxquery/cli/VXQuery.java
index db95468,a02c65d..a6ef702
--- a/vxquery-cli/src/main/java/org/apache/vxquery/cli/VXQuery.java
+++ b/vxquery-cli/src/main/java/org/apache/vxquery/cli/VXQuery.java
@@@ -45,401 -63,367 +63,373 @@@ import org.kohsuke.args4j.Argument
  import org.kohsuke.args4j.CmdLineParser;
  import org.kohsuke.args4j.Option;
  
- import edu.uci.ics.hyracks.api.client.HyracksConnection;
- import edu.uci.ics.hyracks.api.client.IHyracksClientConnection;
- import edu.uci.ics.hyracks.api.client.NodeControllerInfo;
- import edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor;
- import edu.uci.ics.hyracks.api.dataset.IHyracksDataset;
- import edu.uci.ics.hyracks.api.dataset.IHyracksDatasetReader;
- import edu.uci.ics.hyracks.api.dataset.ResultSetId;
- import edu.uci.ics.hyracks.api.job.JobFlag;
- import edu.uci.ics.hyracks.api.job.JobId;
- import edu.uci.ics.hyracks.api.job.JobSpecification;
- import edu.uci.ics.hyracks.client.dataset.HyracksDataset;
- import edu.uci.ics.hyracks.control.cc.ClusterControllerService;
- import edu.uci.ics.hyracks.control.common.controllers.CCConfig;
- import edu.uci.ics.hyracks.control.common.controllers.NCConfig;
- import edu.uci.ics.hyracks.control.nc.NodeControllerService;
- import edu.uci.ics.hyracks.dataflow.common.comm.io.ResultFrameTupleAccessor;
- 
  public class VXQuery {
- 	private final CmdLineOptions opts;
- 
- 	private ClusterControllerService cc;
- 	private NodeControllerService[] ncs;
- 	private IHyracksClientConnection hcc;
- 	private IHyracksDataset hds;
- 
- 	private ResultSetId resultSetId;
- 	private static List<String> timingMessages = new ArrayList<String>();
- 	private static long sumTiming;
- 	private static long sumSquaredTiming;
- 	private static long minTiming = Long.MAX_VALUE;
- 	private static long maxTiming = Long.MIN_VALUE;
- 
- 	/**
- 	 * Constructor to use command line options passed.
- 	 *
- 	 * @param opts
- 	 *            Command line options object
- 	 */
- 	public VXQuery(CmdLineOptions opts) {
- 		this.opts = opts;
- 	}
- 
- 	/**
- 	 * Main method to get command line options and execute query process.
- 	 *
- 	 * @param args
- 	 * @throws Exception
- 	 */
- 	public static void main(String[] args) throws Exception {
- 		Date start = new Date();
- 		final CmdLineOptions opts = new CmdLineOptions();
- 		CmdLineParser parser = new CmdLineParser(opts);
- 
- 		// parse command line options, give error message if no arguments passed
- 		try {
- 			parser.parseArgument(args);
- 		} catch (Exception e) {
- 			parser.printUsage(System.err);
- 			return;
- 		}
- 		if (opts.arguments.isEmpty()) {
- 			parser.printUsage(System.err);
- 			return;
- 		}
- 		VXQuery vxq = new VXQuery(opts);
- 		vxq.execute();
- 		// if -timing argument passed, show the starting and ending times
- 		if (opts.timing) {
- 			Date end = new Date();
- 			timingMessage("Execution time: " + (end.getTime() - start.getTime()) + " ms");
- 			if (opts.repeatExec > opts.timingIgnoreQueries) {
- 				long mean = sumTiming / (opts.repeatExec - opts.timingIgnoreQueries);
- 				double sd = Math
- 						.sqrt(sumSquaredTiming / (opts.repeatExec - new Integer(opts.timingIgnoreQueries).doubleValue())
- 								- mean * mean);
- 				timingMessage("Average execution time: " + mean + " ms");
- 				timingMessage("Standard deviation: " + String.format("%.4f", sd));
- 				timingMessage("Coefficient of variation: " + String.format("%.4f", (sd / mean)));
- 				timingMessage("Minimum execution time: " + minTiming + " ms");
- 				timingMessage("Maximum execution time: " + maxTiming + " ms");
- 			}
- 			System.out.println("Timing Summary:");
- 			for (String time : timingMessages) {
- 				System.out.println("  " + time);
- 			}
- 		}
- 
- 	}
- 
- 	/**
- 	 * Creates a new Hyracks connection with: the client IP address and port
- 	 * provided, if IP address is provided in command line. Otherwise create a
- 	 * new virtual cluster with Hyracks nodes. Queries passed are run either
- 	 * way. After running queries, if a virtual cluster has been created, it is
- 	 * shut down.
- 	 *
- 	 * @throws Exception
- 	 */
- 	private void execute() throws Exception {
- 		System.setProperty("vxquery.buffer_size", Integer.toString(opts.bufferSize));
- 
- 		if (opts.clientNetIpAddress != null) {
- 			hcc = new HyracksConnection(opts.clientNetIpAddress, opts.clientNetPort);
- 			runQueries();
- 		} else {
- 			if (!opts.compileOnly) {
- 				startLocalHyracks();
- 			}
- 			try {
- 				runQueries();
- 			} finally {
- 				if (!opts.compileOnly) {
- 					stopLocalHyracks();
- 				}
- 			}
- 		}
- 	}
- 
- 	/**
- 	 * Reads the contents of the files passed in the list of arguments to a
- 	 * string. If -showquery argument is passed, output the query as string. Run
- 	 * the query for the string.
- 	 *
- 	 * @throws IOException
- 	 * @throws SystemException
- 	 * @throws Exception
- 	 */
- 	private void runQueries() throws IOException, SystemException, Exception {
- 		Date start = null;
- 		Date end = null;
- 		for (String query : opts.arguments) {
- 			String qStr = slurp(query);
- 			if (opts.showQuery) {
- 				System.err.println(qStr);
- 			}
- 
- 			VXQueryCompilationListener listener = new VXQueryCompilationListener(opts.showAST, opts.showTET,
- 					opts.showOET, opts.showRP);
- 			start = opts.timing ? new Date() : null;
- 			XMLQueryCompiler compiler = new XMLQueryCompiler(listener, getNodeList(), opts.frameSize,
- 					opts.availableProcessors, opts.joinHashSize, opts.maximumDataSize, opts.hdfsConf);
- 			resultSetId = createResultSetId();
- 			CompilerControlBlock ccb = new CompilerControlBlock(new StaticContextImpl(RootStaticContextImpl.INSTANCE),
- 					resultSetId, null);
- 			compiler.compile(query, new StringReader(qStr), ccb, opts.optimizationLevel);
- 			// if -timing argument passed, show the starting and ending times
- 			if (opts.timing) {
- 				end = new Date();
- 				timingMessage("Compile time: " + (end.getTime() - start.getTime()) + " ms");
- 			}
- 			if (opts.compileOnly) {
- 				continue;
- 			}
- 
- 			Module module = compiler.getModule();
- 			JobSpecification js = module.getHyracksJobSpecification();
- 			js.setProperty("hdfsConf", opts.hdfsConf);
- 
- 			DynamicContext dCtx = new DynamicContextImpl(module.getModuleContext());
- 			js.setGlobalJobDataFactory(new VXQueryGlobalDataFactory(dCtx.createFactory()));
- 			OutputStream resultStream = System.out;
- 			if (opts.resultFile != null) {
- 				resultStream = new FileOutputStream(new File(opts.resultFile));
- 			}
- 
- 			PrintWriter writer = new PrintWriter(resultStream, true);
- 			// Repeat execution for number of times provided in -repeatexec
- 			// argument
- 			for (int i = 0; i < opts.repeatExec; ++i) {
- 				start = opts.timing ? new Date() : null;
- 				runJob(js, writer);
- 				// if -timing argument passed, show the starting and ending
- 				// times
- 				if (opts.timing) {
- 					end = new Date();
- 					long currentRun = end.getTime() - start.getTime();
- 					if ((i + 1) > opts.timingIgnoreQueries) {
- 						sumTiming += currentRun;
- 						sumSquaredTiming += currentRun * currentRun;
- 						if (currentRun < minTiming) {
- 							minTiming = currentRun;
- 						}
- 						if (maxTiming < currentRun) {
- 							maxTiming = currentRun;
- 						}
- 					}
- 					timingMessage("Job (" + (i + 1) + ") execution time: " + currentRun + " ms");
- 				}
- 			}
- 		}
- 	}
- 
- 	/**
- 	 * Get cluster node configuration.
- 	 *
- 	 * @return Configuration of node controllers as array of Strings.
- 	 * @throws Exception
- 	 */
- 	private String[] getNodeList() throws Exception {
- 		Map<String, NodeControllerInfo> nodeControllerInfos = hcc.getNodeControllerInfos();
- 		String[] nodeList = new String[nodeControllerInfos.size()];
- 		int index = 0;
- 		for (String node : nodeControllerInfos.keySet()) {
- 			nodeList[index++] = node;
- 		}
- 		return nodeList;
- 	}
- 
- 	/**
- 	 * Creates a Hyracks dataset, if not already existing with the job frame
- 	 * size, and 1 reader. Allocates a new buffer of size specified in the frame
- 	 * of Hyracks node. Creates new dataset reader with the current job ID and
- 	 * result set ID. Outputs the string in buffer for each frame.
- 	 *
- 	 * @param spec
- 	 *            JobSpecification object, containing frame size. Current
- 	 *            specified job.
- 	 * @param writer
- 	 *            Writer for output of job.
- 	 * @throws Exception
- 	 */
- 	private void runJob(JobSpecification spec, PrintWriter writer) throws Exception {
- 		int nReaders = 1;
- 		if (hds == null) {
- 			hds = new HyracksDataset(hcc, spec.getFrameSize(), nReaders);
- 		}
- 
- 		JobId jobId = hcc.startJob(spec, EnumSet.of(JobFlag.PROFILE_RUNTIME));
- 
- 		ByteBuffer buffer = ByteBuffer.allocate(spec.getFrameSize());
- 		IHyracksDatasetReader reader = hds.createReader(jobId, resultSetId);
- 		IFrameTupleAccessor frameTupleAccessor = new ResultFrameTupleAccessor(spec.getFrameSize());
- 		buffer.clear();
- 
- 		while (reader.read(buffer) > 0) {
- 			buffer.clear();
- 			writer.print(ResultUtils.getStringFromBuffer(buffer, frameTupleAccessor));
- 			writer.flush();
- 		}
- 
- 		hcc.waitForCompletion(jobId);
- 	}
- 
- 	/**
- 	 * Create a unique result set id to get the correct query back from the
- 	 * cluster.
- 	 *
- 	 * @return Result Set id generated with current system time.
- 	 */
- 	protected ResultSetId createResultSetId() {
- 		return new ResultSetId(System.nanoTime());
- 	}
- 
- 	/**
- 	 * Start local virtual cluster with cluster controller node and node
- 	 * controller nodes. IP address provided for node controller is localhost.
- 	 * Unassigned ports 39000 and 39001 are used for client and cluster port
- 	 * respectively. Creates a new Hyracks connection with the IP address and
- 	 * client ports.
- 	 *
- 	 * @throws Exception
- 	 */
- 	public void startLocalHyracks() throws Exception {
- 		CCConfig ccConfig = new CCConfig();
- 		ccConfig.clientNetIpAddress = "127.0.0.1";
- 		ccConfig.clientNetPort = 39000;
- 		ccConfig.clusterNetIpAddress = "127.0.0.1";
- 		ccConfig.clusterNetPort = 39001;
- 		ccConfig.httpPort = 39002;
- 		ccConfig.profileDumpPeriod = 10000;
- 		cc = new ClusterControllerService(ccConfig);
- 		cc.start();
- 
- 		ncs = new NodeControllerService[opts.localNodeControllers];
- 		for (int i = 0; i < ncs.length; i++) {
- 			NCConfig ncConfig = new NCConfig();
- 			ncConfig.ccHost = "localhost";
- 			ncConfig.ccPort = 39001;
- 			ncConfig.clusterNetIPAddress = "127.0.0.1";
- 			ncConfig.dataIPAddress = "127.0.0.1";
- 			ncConfig.resultIPAddress = "127.0.0.1";
- 			ncConfig.nodeId = "nc" + (i + 1);
- 			ncConfig.ioDevices = Files.createTempDirectory(ncConfig.nodeId).toString();
- 			ncs[i] = new NodeControllerService(ncConfig);
- 			ncs[i].start();
- 		}
- 
- 		hcc = new HyracksConnection(ccConfig.clientNetIpAddress, ccConfig.clientNetPort);
- 	}
- 
- 	/**
- 	 * Shuts down the virtual cluster, along with all nodes and node execution,
- 	 * network and queue managers.
- 	 *
- 	 * @throws Exception
- 	 */
- 	public void stopLocalHyracks() throws Exception {
- 		for (int i = 0; i < ncs.length; i++) {
- 			ncs[i].stop();
- 		}
- 		cc.stop();
- 	}
- 
- 	/**
- 	 * Reads the contents of file given in query into a String. The file is
- 	 * always closed. For XML files UTF-8 encoding is used.
- 	 *
- 	 * @param query
- 	 *            The query with filename to be processed
- 	 * @return UTF-8 formatted query string
- 	 * @throws IOException
- 	 */
- 	private static String slurp(String query) throws IOException {
- 		return FileUtils.readFileToString(new File(query), "UTF-8");
- 	}
- 
- 	/**
- 	 * Save and print out the timing message.
- 	 *
- 	 * @param message
- 	 */
- 	private static void timingMessage(String message) {
- 		System.out.println(message);
- 		timingMessages.add(message);
- 	}
- 
- 	/**
- 	 * Helper class with fields and methods to handle all command line options
- 	 */
- 	private static class CmdLineOptions {
- 		@Option(name = "-available-processors", usage = "Number of available processors. (default: java's available processors)")
- 		private int availableProcessors = -1;
- 
- 		@Option(name = "-client-net-ip-address", usage = "IP Address of the ClusterController.")
- 		private String clientNetIpAddress = null;
- 
- 		@Option(name = "-client-net-port", usage = "Port of the ClusterController. (default: 1098)")
- 		private int clientNetPort = 1098;
- 
- 		@Option(name = "-local-node-controllers", usage = "Number of local node controllers. (default: 1)")
- 		private int localNodeControllers = 1;
- 
- 		@Option(name = "-frame-size", usage = "Frame size in bytes. (default: 65,536)")
- 		private int frameSize = 65536;
- 
- 		@Option(name = "-join-hash-size", usage = "Join hash size in bytes. (default: 67,108,864)")
- 		private long joinHashSize = -1;
- 
- 		@Option(name = "-maximum-data-size", usage = "Maximum possible data size in bytes. (default: 150,323,855,000)")
- 		private long maximumDataSize = -1;
- 
- 		@Option(name = "-buffer-size", usage = "Disk read buffer size in bytes.")
- 		private int bufferSize = -1;
- 
- 		@Option(name = "-O", usage = "Optimization Level. (default: Full Optimization)")
- 		private int optimizationLevel = Integer.MAX_VALUE;
- 
- 		@Option(name = "-showquery", usage = "Show query string.")
- 		private boolean showQuery;
- 
- 		@Option(name = "-showast", usage = "Show abstract syntax tree.")
- 		private boolean showAST;
- 
- 		@Option(name = "-showtet", usage = "Show translated expression tree.")
- 		private boolean showTET;
- 
- 		@Option(name = "-showoet", usage = "Show optimized expression tree.")
- 		private boolean showOET;
- 
- 		@Option(name = "-showrp", usage = "Show Runtime plan.")
- 		private boolean showRP;
- 
- 		@Option(name = "-compileonly", usage = "Compile the query and stop.")
- 		private boolean compileOnly;
- 
- 		@Option(name = "-repeatexec", usage = "Number of times to repeat execution.")
- 		private int repeatExec = 1;
- 
- 		@Option(name = "-result-file", usage = "File path to save the query result.")
- 		private String resultFile = null;
- 
- 		@Option(name = "-timing", usage = "Produce timing information.")
- 		private boolean timing;
- 
- 		@Option(name = "-timing-ignore-queries", usage = "Ignore the first X number of quereies.")
- 		private int timingIgnoreQueries = 2;
- 
- 		@Option(name = "-x", usage = "Bind an external variable")
- 		private Map<String, String> bindings = new HashMap<String, String>();
- 
- 		@Option(name = "-hdfs-conf", usage = "Directory path to Hadoop configuration files")
- 		private String hdfsConf = null;
- 
- 		@Argument
- 		private List<String> arguments = new ArrayList<String>();
- 	}
+     private final CmdLineOptions opts;
+ 
+     private ClusterControllerService cc;
+     private NodeControllerService[] ncs;
+     private IHyracksClientConnection hcc;
+     private IHyracksDataset hds;
+ 
+     private ResultSetId resultSetId;
+     private static List<String> timingMessages = new ArrayList<String>();
+     private static long sumTiming;
+     private static long sumSquaredTiming;
+     private static long minTiming = Long.MAX_VALUE;
+     private static long maxTiming = Long.MIN_VALUE;
+ 
+     /**
+      * Constructor to use command line options passed.
+      *
 -     * @param opts Command line options object
++     * @param opts
++     *            Command line options object
+      */
+     public VXQuery(CmdLineOptions opts) {
+         this.opts = opts;
+     }
+ 
+     /**
+      * Main method to get command line options and execute query process.
+      *
+      * @param args
+      * @throws Exception
+      */
+     public static void main(String[] args) throws Exception {
+         Date start = new Date();
+         final CmdLineOptions opts = new CmdLineOptions();
+         CmdLineParser parser = new CmdLineParser(opts);
+ 
+         // parse command line options, give error message if no arguments passed
+         try {
+             parser.parseArgument(args);
+         } catch (Exception e) {
+             parser.printUsage(System.err);
+             return;
+         }
+         if (opts.arguments.isEmpty()) {
+             parser.printUsage(System.err);
+             return;
+         }
+         VXQuery vxq = new VXQuery(opts);
+         vxq.execute();
+         // if -timing argument passed, show the starting and ending times
+         if (opts.timing) {
+             Date end = new Date();
+             timingMessage("Execution time: " + (end.getTime() - start.getTime()) + " ms");
+             if (opts.repeatExec > opts.timingIgnoreQueries) {
+                 long mean = sumTiming / (opts.repeatExec - opts.timingIgnoreQueries);
+                 double sd = Math
+                         .sqrt(sumSquaredTiming / (opts.repeatExec - new Integer(opts.timingIgnoreQueries).doubleValue())
+                                 - mean * mean);
+                 timingMessage("Average execution time: " + mean + " ms");
+                 timingMessage("Standard deviation: " + String.format("%.4f", sd));
+                 timingMessage("Coefficient of variation: " + String.format("%.4f", (sd / mean)));
+                 timingMessage("Minimum execution time: " + minTiming + " ms");
+                 timingMessage("Maximum execution time: " + maxTiming + " ms");
+             }
+             System.out.println("Timing Summary:");
+             for (String time : timingMessages) {
+                 System.out.println("  " + time);
+             }
+         }
+ 
+     }
+ 
+     /**
+      * Creates a new Hyracks connection with: the client IP address and port provided, if IP address is provided in command line. Otherwise create a new virtual
+      * cluster with Hyracks nodes. Queries passed are run either way. After running queries, if a virtual cluster has been created, it is shut down.
+      *
+      * @throws Exception
+      */
+     private void execute() throws Exception {
+         System.setProperty("vxquery.buffer_size", Integer.toString(opts.bufferSize));
+ 
+         if (opts.clientNetIpAddress != null) {
+             hcc = new HyracksConnection(opts.clientNetIpAddress, opts.clientNetPort);
+             runQueries();
+         } else {
+             if (!opts.compileOnly) {
+                 startLocalHyracks();
+             }
+             try {
+                 runQueries();
+             } finally {
+                 if (!opts.compileOnly) {
+                     stopLocalHyracks();
+                 }
+             }
+         }
+     }
+ 
+     /**
+      * Reads the contents of the files passed in the list of arguments to a string. If -showquery argument is passed, output the query as string. Run the query
+      * for the string.
+      *
+      * @throws IOException
+      * @throws SystemException
+      * @throws Exception
+      */
+     private void runQueries() throws IOException, SystemException, Exception {
+         Date start = null;
+         Date end = null;
+         for (String query : opts.arguments) {
+             String qStr = slurp(query);
+             if (opts.showQuery) {
+                 System.err.println(qStr);
+             }
+ 
+             VXQueryCompilationListener listener = new VXQueryCompilationListener(opts.showAST, opts.showTET,
+                     opts.showOET, opts.showRP);
+ 
+             start = opts.timing ? new Date() : null;
+             XMLQueryCompiler compiler = new XMLQueryCompiler(listener, getNodeList(), opts.frameSize,
 -                    opts.availableProcessors, opts.joinHashSize, opts.maximumDataSize);
++                    opts.availableProcessors, opts.joinHashSize, opts.maximumDataSize, opts.hdfsConf);
+             resultSetId = createResultSetId();
+             CompilerControlBlock ccb = new CompilerControlBlock(new StaticContextImpl(RootStaticContextImpl.INSTANCE),
+                     resultSetId, null);
+             compiler.compile(query, new StringReader(qStr), ccb, opts.optimizationLevel);
+             // if -timing argument passed, show the starting and ending times
+             if (opts.timing) {
+                 end = new Date();
+                 timingMessage("Compile time: " + (end.getTime() - start.getTime()) + " ms");
+             }
+             if (opts.compileOnly) {
+                 continue;
+             }
+ 
+             Module module = compiler.getModule();
+             JobSpecification js = module.getHyracksJobSpecification();
+ 
+             DynamicContext dCtx = new DynamicContextImpl(module.getModuleContext());
+             js.setGlobalJobDataFactory(new VXQueryGlobalDataFactory(dCtx.createFactory()));
+ 
+             OutputStream resultStream = System.out;
+             if (opts.resultFile != null) {
+                 resultStream = new FileOutputStream(new File(opts.resultFile));
+             }
+ 
+             PrintWriter writer = new PrintWriter(resultStream, true);
+             // Repeat execution for number of times provided in -repeatexec argument
+             for (int i = 0; i < opts.repeatExec; ++i) {
+                 start = opts.timing ? new Date() : null;
+                 runJob(js, writer);
+                 // if -timing argument passed, show the starting and ending times
+                 if (opts.timing) {
+                     end = new Date();
+                     long currentRun = end.getTime() - start.getTime();
+                     if ((i + 1) > opts.timingIgnoreQueries) {
+                         sumTiming += currentRun;
+                         sumSquaredTiming += currentRun * currentRun;
+                         if (currentRun < minTiming) {
+                             minTiming = currentRun;
+                         }
+                         if (maxTiming < currentRun) {
+                             maxTiming = currentRun;
+                         }
+                     }
+                     timingMessage("Job (" + (i + 1) + ") execution time: " + currentRun + " ms");
+                 }
+             }
+         }
+     }
+ 
+     /**
+      * Get cluster node configuration.
+      *
+      * @return Configuration of node controllers as array of Strings.
+      * @throws Exception
+      */
+     private String[] getNodeList() throws Exception {
+         if (hcc != null) {
+             Map<String, NodeControllerInfo> nodeControllerInfos = hcc.getNodeControllerInfos();
+             String[] nodeList = new String[nodeControllerInfos.size()];
+             int index = 0;
+             for (String node : nodeControllerInfos.keySet()) {
+                 nodeList[index++] = node;
+             }
+             return nodeList;
+         }
+         return new String[0];
+     }
+ 
+     /**
+      * Creates a Hyracks dataset, if not already existing with the job frame size, and 1 reader. Allocates a new buffer of size specified in the frame of Hyracks
+      * node. Creates new dataset reader with the current job ID and result set ID. Outputs the string in buffer for each frame.
+      *
 -     * @param spec   JobSpecification object, containing frame size. Current specified job.
 -     * @param writer Writer for output of job.
++     * @param spec
++     *            JobSpecification object, containing frame size. Current specified job.
++     * @param writer
++     *            Writer for output of job.
+      * @throws Exception
+      */
+     private void runJob(JobSpecification spec, PrintWriter writer) throws Exception {
+         int nReaders = 1;
+         if (hds == null) {
+             hds = new HyracksDataset(hcc, spec.getFrameSize(), nReaders);
+         }
+ 
+         JobId jobId = hcc.startJob(spec, EnumSet.of(JobFlag.PROFILE_RUNTIME));
+ 
+         FrameManager resultDisplayFrameMgr = new FrameManager(spec.getFrameSize());
+         IFrame frame = new VSizeFrame(resultDisplayFrameMgr);
+         IHyracksDatasetReader reader = hds.createReader(jobId, resultSetId);
+         IFrameTupleAccessor frameTupleAccessor = new ResultFrameTupleAccessor();
+ 
+         while (reader.read(frame) > 0) {
+             writer.print(ResultUtils.getStringFromBuffer(frame.getBuffer(), frameTupleAccessor));
+             writer.flush();
+             frame.getBuffer().clear();
+         }
+ 
+         hcc.waitForCompletion(jobId);
+     }
+ 
+     /**
+      * Create a unique result set id to get the correct query back from the cluster.
+      *
+      * @return Result Set id generated with current system time.
+      */
+     protected ResultSetId createResultSetId() {
+         return new ResultSetId(System.nanoTime());
+     }
+ 
+     /**
+      * Start local virtual cluster with cluster controller node and node controller nodes. IP address provided for node controller is localhost. Unassigned ports
+      * 39000 and 39001 are used for client and cluster port respectively. Creates a new Hyracks connection with the IP address and client ports.
+      *
+      * @throws Exception
+      */
+     public void startLocalHyracks() throws Exception {
+         CCConfig ccConfig = new CCConfig();
+         ccConfig.clientNetIpAddress = "127.0.0.1";
+         ccConfig.clientNetPort = 39000;
+         ccConfig.clusterNetIpAddress = "127.0.0.1";
+         ccConfig.clusterNetPort = 39001;
+         ccConfig.httpPort = 39002;
+         ccConfig.profileDumpPeriod = 10000;
+         cc = new ClusterControllerService(ccConfig);
+         cc.start();
+ 
+         ncs = new NodeControllerService[opts.localNodeControllers];
+         for (int i = 0; i < ncs.length; i++) {
+             NCConfig ncConfig = new NCConfig();
+             ncConfig.ccHost = "localhost";
+             ncConfig.ccPort = 39001;
+             ncConfig.clusterNetIPAddress = "127.0.0.1";
+             ncConfig.dataIPAddress = "127.0.0.1";
+             ncConfig.resultIPAddress = "127.0.0.1";
+             ncConfig.nodeId = "nc" + (i + 1);
+             ncConfig.ioDevices = Files.createTempDirectory(ncConfig.nodeId).toString();
+             ncs[i] = new NodeControllerService(ncConfig);
+             ncs[i].start();
+         }
+ 
+         hcc = new HyracksConnection(ccConfig.clientNetIpAddress, ccConfig.clientNetPort);
+     }
+ 
+     /**
+      * Shuts down the virtual cluster, along with all nodes and node execution, network and queue managers.
+      *
+      * @throws Exception
+      */
+     public void stopLocalHyracks() throws Exception {
+         for (int i = 0; i < ncs.length; i++) {
+             ncs[i].stop();
+         }
+         cc.stop();
+     }
+ 
+     /**
+      * Reads the contents of file given in query into a String. The file is always closed. For XML files UTF-8 encoding is used.
+      *
 -     * @param query The query with filename to be processed
++     * @param query
++     *            The query with filename to be processed
+      * @return UTF-8 formatted query string
+      * @throws IOException
+      */
+     private static String slurp(String query) throws IOException {
+         return FileUtils.readFileToString(new File(query), "UTF-8");
+     }
+ 
+     /**
+      * Save and print out the timing message.
+      *
+      * @param message
+      */
+     private static void timingMessage(String message) {
+         System.out.println(message);
+         timingMessages.add(message);
+     }
+ 
+     /**
+      * Helper class with fields and methods to handle all command line options
+      */
+     private static class CmdLineOptions {
 -        @Option(name = "-available-processors",
 -                usage = "Number of available processors. (default: java's available processors)")
++        @Option(name = "-available-processors", usage = "Number of available processors. (default: java's available processors)")
+         private int availableProcessors = -1;
+ 
+         @Option(name = "-client-net-ip-address", usage = "IP Address of the ClusterController.")
+         private String clientNetIpAddress = null;
+ 
+         @Option(name = "-client-net-port", usage = "Port of the ClusterController. (default: 1098)")
+         private int clientNetPort = 1098;
+ 
+         @Option(name = "-local-node-controllers", usage = "Number of local node controllers. (default: 1)")
+         private int localNodeControllers = 1;
+ 
+         @Option(name = "-frame-size", usage = "Frame size in bytes. (default: 65,536)")
+         private int frameSize = 65536;
+ 
+         @Option(name = "-join-hash-size", usage = "Join hash size in bytes. (default: 67,108,864)")
+         private long joinHashSize = -1;
+ 
+         @Option(name = "-maximum-data-size", usage = "Maximum possible data size in bytes. (default: 150,323,855,000)")
+         private long maximumDataSize = -1;
+ 
+         @Option(name = "-buffer-size", usage = "Disk read buffer size in bytes.")
+         private int bufferSize = -1;
+ 
+         @Option(name = "-O", usage = "Optimization Level. (default: Full Optimization)")
+         private int optimizationLevel = Integer.MAX_VALUE;
+ 
+         @Option(name = "-showquery", usage = "Show query string.")
+         private boolean showQuery;
+ 
+         @Option(name = "-showast", usage = "Show abstract syntax tree.")
+         private boolean showAST;
+ 
+         @Option(name = "-showtet", usage = "Show translated expression tree.")
+         private boolean showTET;
+ 
+         @Option(name = "-showoet", usage = "Show optimized expression tree.")
+         private boolean showOET;
+ 
+         @Option(name = "-showrp", usage = "Show Runtime plan.")
+         private boolean showRP;
+ 
+         @Option(name = "-compileonly", usage = "Compile the query and stop.")
+         private boolean compileOnly;
+ 
+         @Option(name = "-repeatexec", usage = "Number of times to repeat execution.")
+         private int repeatExec = 1;
+ 
+         @Option(name = "-result-file", usage = "File path to save the query result.")
+         private String resultFile = null;
+ 
+         @Option(name = "-timing", usage = "Produce timing information.")
+         private boolean timing;
+ 
+         @Option(name = "-timing-ignore-queries", usage = "Ignore the first X number of quereies.")
+         private int timingIgnoreQueries = 2;
+ 
+         @Option(name = "-x", usage = "Bind an external variable")
+         private Map<String, String> bindings = new HashMap<String, String>();
+ 
++        @Option(name = "-hdfs-conf", usage = "Directory path to Hadoop configuration files")
++        private String hdfsConf = null;
++
+         @Argument
+         private List<String> arguments = new ArrayList<String>();
+     }
  
  }

http://git-wip-us.apache.org/repos/asf/vxquery/blob/f90d5873/vxquery-core/pom.xml
----------------------------------------------------------------------
diff --cc vxquery-core/pom.xml
index 3c409c8,59cc987..38b8030
--- a/vxquery-core/pom.xml
+++ b/vxquery-core/pom.xml
@@@ -209,17 -209,6 +209,17 @@@
          </dependency>
  
          <dependency>
-             <groupId>edu.uci.ics.hyracks</groupId>
++            <groupId>org.apache.hyracks</groupId>
 +            <artifactId>hyracks-hdfs-2.x</artifactId>
 +        </dependency>
 +
 +        <dependency>
-             <groupId>edu.uci.ics.hyracks</groupId>
++            <groupId>org.apache.hyracks</groupId>
 +            <artifactId>hyracks-hdfs-core</artifactId>
 +            <type>jar</type>
 +        </dependency>
 +
 +        <dependency>
              <groupId>ant</groupId>
              <artifactId>ant-trax</artifactId>
              <scope>provided</scope>

http://git-wip-us.apache.org/repos/asf/vxquery/blob/f90d5873/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/RewriteRuleset.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/vxquery/blob/f90d5873/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/AbstractCollectionRule.java
----------------------------------------------------------------------
diff --cc vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/AbstractCollectionRule.java
index 0695e00,53011d2..dd9965b
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/AbstractCollectionRule.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/AbstractCollectionRule.java
@@@ -22,31 -22,31 +22,30 @@@ import java.nio.ByteBuffer
  import java.util.Arrays;
  
  import org.apache.commons.lang3.mutable.Mutable;
 -import org.apache.vxquery.compiler.algebricks.VXQueryConstantValue;
 -import org.apache.vxquery.compiler.rewriter.rules.util.OperatorToolbox;
 -import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
 -import org.apache.vxquery.datamodel.values.ValueTag;
 -import org.apache.vxquery.functions.BuiltinFunctions;
 -import org.apache.vxquery.types.BuiltinTypeRegistry;
 -import org.apache.vxquery.types.Quantifier;
 -import org.apache.vxquery.types.SequenceType;
 -
+ import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+ import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+ import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
+ import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
+ import org.apache.hyracks.algebricks.core.algebra.base.LogicalExpressionTag;
+ import org.apache.hyracks.algebricks.core.algebra.base.LogicalOperatorTag;
+ import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
+ import org.apache.hyracks.algebricks.core.algebra.expressions.ConstantExpression;
+ import org.apache.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
+ import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
+ import org.apache.hyracks.algebricks.core.algebra.operators.logical.AssignOperator;
+ import org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
+ import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
+ import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+ import org.apache.hyracks.dataflow.common.comm.util.ByteBufferInputStream;
 +import org.apache.vxquery.compiler.algebricks.VXQueryConstantValue;
 +import org.apache.vxquery.compiler.rewriter.rules.util.OperatorToolbox;
 +import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
 +import org.apache.vxquery.datamodel.values.ValueTag;
 +import org.apache.vxquery.functions.BuiltinFunctions;
 +import org.apache.vxquery.types.BuiltinTypeRegistry;
 +import org.apache.vxquery.types.Quantifier;
 +import org.apache.vxquery.types.SequenceType;
  
- import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
- import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
- import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
- import edu.uci.ics.hyracks.algebricks.core.algebra.base.IOptimizationContext;
- import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalExpressionTag;
- import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalOperatorTag;
- import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
- import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.ConstantExpression;
- import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
- import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
- import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.AssignOperator;
- import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
- import edu.uci.ics.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
- import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
- import edu.uci.ics.hyracks.dataflow.common.comm.util.ByteBufferInputStream;
- 
  public abstract class AbstractCollectionRule implements IAlgebraicRewriteRule {
      final ByteBufferInputStream bbis = new ByteBufferInputStream();
      final DataInputStream di = new DataInputStream(bbis);
@@@ -54,9 -54,15 +53,14 @@@
      final TaggedValuePointable tvp = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
  
      /**
 -     * Get the constant value for the collection. Return null for not a collection.
 +     * Get the arguments for the collection and collection-with-tag. Return null for not a collection.
+      *
+      * @param opRef
+      *            Logical operator
+      * @return collection name
       */
 -    protected String getCollectionName(Mutable<ILogicalOperator> opRef) {
 -        VXQueryConstantValue constantValue;
 +    protected String[] getCollectionName(Mutable<ILogicalOperator> opRef) throws AlgebricksException {
+ 
          AbstractLogicalOperator op = (AbstractLogicalOperator) opRef.getValue();
          if (op.getOperatorTag() != LogicalOperatorTag.UNNEST) {
              return null;
@@@ -76,10 -82,7 +80,10 @@@
              return null;
          }
          AbstractFunctionCallExpression functionCall = (AbstractFunctionCallExpression) logicalExpression;
-         if (!functionCall.getFunctionIdentifier().equals(
-                 BuiltinFunctions.FN_COLLECTION_WITH_TAG_2.getFunctionIdentifier())
-                 && !functionCall.getFunctionIdentifier().equals(
-                         BuiltinFunctions.FN_COLLECTION_1.getFunctionIdentifier())) {
 -        if (!functionCall.getFunctionIdentifier().equals(BuiltinFunctions.FN_COLLECTION_1.getFunctionIdentifier())) {
++        if (!functionCall.getFunctionIdentifier()
++                .equals(BuiltinFunctions.FN_COLLECTION_WITH_TAG_2.getFunctionIdentifier())
++                && !functionCall.getFunctionIdentifier()
++                        .equals(BuiltinFunctions.FN_COLLECTION_1.getFunctionIdentifier())) {
              return null;
          }
  
@@@ -130,11 -118,9 +134,10 @@@
          if (tvp.getTag() == ValueTag.XS_STRING_TAG) {
              tvp.getValue(stringp);
              try {
-                 bbis.setByteBuffer(
-                         ByteBuffer.wrap(Arrays.copyOfRange(stringp.getByteArray(), stringp.getStartOffset(),
-                                 stringp.getLength() + stringp.getStartOffset())), 0);
+                 bbis.setByteBuffer(ByteBuffer.wrap(Arrays.copyOfRange(stringp.getByteArray(), stringp.getStartOffset(),
+                         stringp.getLength() + stringp.getStartOffset())), 0);
                  collectionName = di.readUTF();
 +                return collectionName;
              } catch (IOException e) {
                  e.printStackTrace();
              }

http://git-wip-us.apache.org/repos/asf/vxquery/blob/f90d5873/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/IntroduceCollectionRule.java
----------------------------------------------------------------------
diff --cc vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/IntroduceCollectionRule.java
index e1e0442,cc857a1..8ed8bb1
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/IntroduceCollectionRule.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/IntroduceCollectionRule.java
@@@ -62,12 -62,11 +62,12 @@@ import org.apache.hyracks.algebricks.co
   */
  public class IntroduceCollectionRule extends AbstractCollectionRule {
      @Override
-     public boolean rewritePre(Mutable<ILogicalOperator> opRef, IOptimizationContext context) throws AlgebricksException {
+     public boolean rewritePre(Mutable<ILogicalOperator> opRef, IOptimizationContext context) {
          VXQueryOptimizationContext vxqueryContext = (VXQueryOptimizationContext) context;
 -        String collectionName = getCollectionName(opRef);
 +        String args[] = getCollectionName(opRef);
  
 -        if (collectionName != null) {
 +        if (args != null) {
 +            String collectionName = args[0];
              // Build the new operator and update the query plan.
              int collectionId = vxqueryContext.newCollectionId();
              VXQueryCollectionDataSource ds = VXQueryCollectionDataSource.create(collectionId, collectionName,

http://git-wip-us.apache.org/repos/asf/vxquery/blob/f90d5873/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryCollectionDataSource.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/vxquery/blob/f90d5873/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryCollectionOperatorDescriptor.java
----------------------------------------------------------------------
diff --cc vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryCollectionOperatorDescriptor.java
index 6b57641,d5966b8..e2f705e
--- a/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryCollectionOperatorDescriptor.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryCollectionOperatorDescriptor.java
@@@ -30,42 -23,26 +30,61 @@@ import java.util.List
  import java.util.logging.Level;
  import java.util.logging.Logger;
  
 +import javax.xml.parsers.ParserConfigurationException;
 +
  import org.apache.commons.io.FileUtils;
  import org.apache.commons.io.filefilter.TrueFileFilter;
++<<<<<<< HEAD
 +import org.apache.commons.lang.StringUtils;
 +import org.apache.hadoop.fs.FileSystem;
 +import org.apache.hadoop.fs.LocatedFileStatus;
 +import org.apache.hadoop.fs.Path;
 +import org.apache.hadoop.fs.RemoteIterator;
 +import org.apache.hadoop.mapreduce.InputFormat;
 +import org.apache.hadoop.mapreduce.InputSplit;
 +import org.apache.hadoop.mapreduce.Job;
 +import org.apache.hadoop.mapreduce.RecordReader;
 +import org.apache.hadoop.mapreduce.TaskAttemptContext;
 +import org.apache.hadoop.mapreduce.lib.input.FileSplit;
++=======
+ import org.apache.hyracks.api.comm.IFrame;
+ import org.apache.hyracks.api.comm.IFrameFieldAppender;
+ import org.apache.hyracks.api.comm.VSizeFrame;
+ import org.apache.hyracks.api.context.IHyracksTaskContext;
+ import org.apache.hyracks.api.dataflow.IOperatorNodePushable;
+ import org.apache.hyracks.api.dataflow.value.IRecordDescriptorProvider;
+ import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
+ import org.apache.hyracks.api.exceptions.HyracksDataException;
+ import org.apache.hyracks.api.job.IOperatorDescriptorRegistry;
+ import org.apache.hyracks.dataflow.common.comm.io.FrameFixedFieldTupleAppender;
+ import org.apache.hyracks.dataflow.common.comm.io.FrameTupleAccessor;
+ import org.apache.hyracks.dataflow.std.base.AbstractSingleActivityOperatorDescriptor;
+ import org.apache.hyracks.dataflow.std.base.AbstractUnaryInputUnaryOutputOperatorNodePushable;
++>>>>>>> master
  import org.apache.vxquery.context.DynamicContext;
 +import org.apache.vxquery.hdfs2.HDFSFunctions;
  import org.apache.vxquery.xmlparser.ITreeNodeIdProvider;
  import org.apache.vxquery.xmlparser.TreeNodeIdProvider;
  import org.apache.vxquery.xmlparser.XMLParser;
 +import org.xml.sax.SAXException;
 +
++<<<<<<< HEAD
 +import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
 +import edu.uci.ics.hyracks.api.dataflow.IOperatorNodePushable;
 +import edu.uci.ics.hyracks.api.dataflow.value.IRecordDescriptorProvider;
 +import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
 +import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
 +import edu.uci.ics.hyracks.api.job.IOperatorDescriptorRegistry;
 +import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAccessor;
 +import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAppender;
 +import edu.uci.ics.hyracks.dataflow.common.comm.util.FrameUtils;
 +import edu.uci.ics.hyracks.dataflow.std.base.AbstractSingleActivityOperatorDescriptor;
 +import edu.uci.ics.hyracks.dataflow.std.base.AbstractUnaryInputUnaryOutputOperatorNodePushable;
 +import edu.uci.ics.hyracks.hdfs.ContextFactory;
 +import edu.uci.ics.hyracks.hdfs2.dataflow.FileSplitsFactory;
  
++=======
++>>>>>>> master
  public class VXQueryCollectionOperatorDescriptor extends AbstractSingleActivityOperatorDescriptor {
      private static final long serialVersionUID = 1L;
      private short dataSourceId;
@@@ -118,26 -89,20 +137,30 @@@
              public void nextFrame(ByteBuffer buffer) throws HyracksDataException {
                  fta.reset(buffer);
                  String collectionModifiedName = collectionName.replace("${nodeId}", nodeId);
 -                File collectionDirectory = new File(collectionModifiedName);
 -
 -                // Go through each tuple.
 -                if (collectionDirectory.isDirectory()) {
 -                    for (int tupleIndex = 0; tupleIndex < fta.getTupleCount(); ++tupleIndex) {
 -                        @SuppressWarnings("unchecked")
 -                        Iterator<File> it = FileUtils.iterateFiles(collectionDirectory, new VXQueryIOFileFilter(),
 -                                TrueFileFilter.INSTANCE);
 -                        while (it.hasNext()) {
 -                            File xmlDocument = it.next();
 -                            if (LOGGER.isLoggable(Level.FINE)) {
 -                                LOGGER.fine("Starting to read XML document: " + xmlDocument.getAbsolutePath());
 +                if (!collectionModifiedName.contains("hdfs:/")) {
 +                    File collectionDirectory = new File(collectionModifiedName);
 +                    //check if directory is in the local file system
 +                    if (collectionDirectory.exists()) {
 +                        // Go through each tuple.
 +                        if (collectionDirectory.isDirectory()) {
 +                            for (int tupleIndex = 0; tupleIndex < fta.getTupleCount(); ++tupleIndex) {
 +                                Iterator<File> it = FileUtils.iterateFiles(collectionDirectory,
 +                                        new VXQueryIOFileFilter(), TrueFileFilter.INSTANCE);
 +                                while (it.hasNext()) {
 +                                    File xmlDocument = it.next();
 +                                    if (LOGGER.isLoggable(Level.FINE)) {
 +                                        LOGGER.fine("Starting to read XML document: " + xmlDocument.getAbsolutePath());
 +                                    }
 +                                    parser.parseElements(xmlDocument, writer, fta, tupleIndex);
 +                                }
                              }
++<<<<<<< HEAD
 +                        } else {
 +                            throw new HyracksDataException("Invalid directory parameter (" + nodeId + ":"
 +                                    + collectionDirectory.getAbsolutePath() + ") passed to collection.");
++=======
+                             parser.parseElements(xmlDocument, writer, tupleIndex);
++>>>>>>> master
                          }
                      }
                  } else {

http://git-wip-us.apache.org/repos/asf/vxquery/blob/f90d5873/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryMetadataProvider.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/vxquery/blob/f90d5873/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/util/FunctionHelper.java
----------------------------------------------------------------------