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
----------------------------------------------------------------------