You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@vxquery.apache.org by "Vinayak Borkar (Created) (JIRA)" <ji...@apache.org> on 2012/04/01 06:57:09 UTC

[jira] [Created] (VXQUERY-31) Complete the implementation of XQuery Functions and Operators

Complete the implementation of XQuery Functions and Operators
-------------------------------------------------------------

                 Key: VXQUERY-31
                 URL: https://issues.apache.org/jira/browse/VXQUERY-31
             Project: VXQuery
          Issue Type: Improvement
            Reporter: Vinayak Borkar


VXQuery is an XQuery compiler and runtime being built to comply with version 1.0 of the XQuery spec at http://www.w3.org/TR/XQuery. The distinguishing characteristic of this runtime is that it is designed to evaluate queries on large amounts of XML data. VXQuery uses the Hyracks platform (http://code.google.com/p/hyracks), a parallel dataflow engine, to parallelize queries so they can run on a cluster of shared-nothing computers.

We plan to exploit three kinds of parallelism within the XQuery engine while evaluating a single query.
1. Independent parallelism: Parts of a query that are unrelated to each other can be evaluated in parallel.
2. Partitioned parallelism: The engine partitions data (both input data as well as intermediate data) and processes the partitions in parallel.
3. Pipelined parallelism: The runtime organizes the work done to evaluate a query as a sequence of workers. As and when work is completed on a piece of data, the results of that piece are handed to the next worker, while the first can process the next piece of data. This is similar to an assembly line used in manufacturing plants.

Hyracks provides a set of operators to be able to evaluate queries in parallel. However, it does not know anything about VXQuery or the XQuery language and datamodel.
Currently we have a parser and translator that converts XQuery into a logical form ready for evaluation.

The task that needs to be done as part of this project is to implement functions that will plug into Hyracks operators so we can evaluate XQuery queries.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Assigned] (VXQUERY-31) Complete the implementation of XQuery Functions and Operators

Posted by "Preston Carman (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/VXQUERY-31?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Preston Carman reassigned VXQUERY-31:
-------------------------------------

    Assignee: Preston Carman
    
> Complete the implementation of XQuery Functions and Operators
> -------------------------------------------------------------
>
>                 Key: VXQUERY-31
>                 URL: https://issues.apache.org/jira/browse/VXQUERY-31
>             Project: VXQuery
>          Issue Type: Improvement
>            Reporter: Vinayak Borkar
>            Assignee: Preston Carman
>              Labels: gsoc, gsoc2012, mentor
>
> VXQuery is an XQuery compiler and runtime being built to comply with version 1.0 of the XQuery spec at http://www.w3.org/TR/XQuery. The distinguishing characteristic of this runtime is that it is designed to evaluate queries on large amounts of XML data. VXQuery uses the Hyracks platform (http://code.google.com/p/hyracks), a parallel dataflow engine, to parallelize queries so they can run on a cluster of shared-nothing computers.
> We plan to exploit three kinds of parallelism within the XQuery engine while evaluating a single query.
> 1. Independent parallelism: Parts of a query that are unrelated to each other can be evaluated in parallel.
> 2. Partitioned parallelism: The engine partitions data (both input data as well as intermediate data) and processes the partitions in parallel.
> 3. Pipelined parallelism: The runtime organizes the work done to evaluate a query as a sequence of workers. As and when work is completed on a piece of data, the results of that piece are handed to the next worker, while the first can process the next piece of data. This is similar to an assembly line used in manufacturing plants.
> Hyracks provides a set of operators to be able to evaluate queries in parallel. However, it does not know anything about VXQuery or the XQuery language and datamodel.
> Currently we have a parser and translator that converts XQuery into a logical form ready for evaluation.
> The task that needs to be done as part of this project is to implement functions that will plug into Hyracks operators so we can evaluate XQuery queries.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (VXQUERY-31) Complete the implementation of XQuery Functions and Operators

Posted by "Preston Carman (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VXQUERY-31?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13446540#comment-13446540 ] 

Preston Carman commented on VXQUERY-31:
---------------------------------------

I have gone through the outline on the Functions and Operators page (http://www.w3.org/TR/xpath-functions/) and opened tickets for all missing functions and bugs that are halting completion of other functions.

2 Accessors
    2.1 fn:node-name - Completely missing VXQUERY-61
    2.2 fn:nilled - Completely missing VXQUERY-61
    2.3 fn:string - Mostly complete - count, sequence, if then else, 
    2.4 fn:data - Mostly complete - count
    2.5 fn:base-uri - Completely missing VXQUERY-61
    2.6 fn:document-uri - Completely missing VXQUERY-61
3 The Error Function (fn:error) - Completely missing VXQUERY-63
4 The Trace Function (fn:trace) - Completely missing VXQUERY-64
5 Constructor Functions
    ...
    5.2 A Special Constructor Function for xs:dateTime (fn:dateTime) - Mostly complete - count, sequence, YMDuration add
    ...
6 Functions and Operators on Numerics
    6.1 Numeric Types
    6.2 Operators on Numeric Values
        6.2.1 op:numeric-add - Mostly complete - VXQUERY-62, sequence
        6.2.2 op:numeric-subtract - Mostly complete - VXQUERY-62, sequence
        6.2.3 op:numeric-multiply - Mostly complete - VXQUERY-62, sequence
        6.2.4 op:numeric-divide - Some complete - VXQUERY-62, sequence, VXQUERY-66
        6.2.5 op:numeric-integer-divide - Mostly complete - sequence
        6.2.6 op:numeric-mod - Mostly complete - VXQUERY-62, sequence
        6.2.7 op:numeric-unary-plus - Mostly complete - VXQUERY-62
        6.2.8 op:numeric-unary-minus - Mostly complete - VXQUERY-62
    6.3 Comparison Operators on Numeric Values
        6.3.1 op:numeric-equal - COMPLETE
        6.3.2 op:numeric-less-than - COMPLETE
        6.3.3 op:numeric-greater-than - COMPLETE
    6.4 Functions on Numeric Values
        6.4.1 fn:abs - Mostly complete - VXQUERY-62
        6.4.2 fn:ceiling - Mostly complete - VXQUERY-62, VXQUERY-65
        6.4.3 fn:floor - VXQUERY-62, VXQUERY-65
        6.4.4 fn:round - VXQUERY-62, VXQUERY-65
        6.4.5 fn:round-half-to-even - Completely missing VXQUERY-66
7 Functions on Strings
    7.1 String Types
    7.2 Functions to Assemble and Disassemble Strings
        7.2.1 fn:codepoints-to-string - Completely missing VXQUERY-67
        7.2.2 fn:string-to-codepoints - Completely missing VXQUERY-67
    7.3 Equality and Comparison of Strings
        7.3.1 Collations
        7.3.2 fn:compare - Mostly complete - count
        7.3.3 fn:codepoint-equal - Mostly complete - count, sequence
    7.4 Functions on String Values
        7.4.1 fn:concat - Mostly complete - count, sequence, not
        7.4.2 fn:string-join - Needs work on parameters - count, not
        7.4.3 fn:substring - Mostly complete - VXQUERY-36, count, sequence, not
        7.4.4 fn:string-length - Mostly complete - count, sequence, not
        7.4.5 fn:normalize-space - Completely missing VXQUERY-67
        7.4.6 fn:normalize-unicode - Completely missing VXQUERY-67
        7.4.7 fn:upper-case - Mostly complete - count, not
        7.4.8 fn:lower-case - Mostly complete - count, not
        7.4.9 fn:translate - Completely missing VXQUERY-67
        7.4.10 fn:encode-for-uri - Completely missing VXQUERY-67
        7.4.11 fn:iri-to-uri - Completely missing VXQUERY-67
        7.4.12 fn:escape-html-uri - Completely missing VXQUERY-67
    7.5 Functions Based on Substring Matching
        7.5.1 fn:contains - Mostly complete - sequence
        7.5.2 fn:starts-with - Mostly complete - sequence
        7.5.3 fn:ends-with - Mostly complete - sequence
        7.5.4 fn:substring-before - Some complete - count, sequence
        7.5.5 fn:substring-after - Some complete - count, sequence
    7.6 String Functions that Use Pattern Matching
        ...
        7.6.2 fn:matches - Completely missing VXQUERY-67
        7.6.3 fn:replace - Completely missing VXQUERY-67
        7.6.4 fn:tokenize - Completely missing VXQUERY-67
8 Functions on anyURI
    8.1 fn:resolve-uri
9 Functions and Operators on Boolean Values
    9.1 Additional Boolean Constructor Functions
        9.1.1 fn:true - COMPLETE
        9.1.2 fn:false - COMPLETE
    9.2 Operators on Boolean Values
        9.2.1 op:boolean-equal - COMPLETE
        9.2.2 op:boolean-less-than - COMPLETE
        9.2.3 op:boolean-greater-than - COMPLETE
    9.3 Functions on Boolean Values
        9.3.1 fn:not - See VXQUERY-58
10 Functions and Operators on Durations, Dates and Times
    ...
    10.4 Comparison Operators on Duration, Date and Time Values
        10.4.1 op:yearMonthDuration-less-than - COMPLETE
        10.4.2 op:yearMonthDuration-greater-than - COMPLETE
        10.4.3 op:dayTimeDuration-less-than - COMPLETE
        10.4.4 op:dayTimeDuration-greater-than - COMPLETE
        10.4.5 op:duration-equal - COMPLETE
        10.4.6 op:dateTime-equal - COMPLETE
        10.4.7 op:dateTime-less-than - COMPLETE
        10.4.8 op:dateTime-greater-than - COMPLETE
        10.4.9 op:date-equal - COMPLETE
        10.4.10 op:date-less-than - COMPLETE
        10.4.11 op:date-greater-than - COMPLETE
        10.4.12 op:time-equal - COMPLETE
        10.4.13 op:time-less-than - COMPLETE
        10.4.14 op:time-greater-than - COMPLETE
        10.4.15 op:gYearMonth-equal - Mostly complete - not, VXQUERY-69
        10.4.16 op:gYear-equal - COMPLETE
        10.4.17 op:gMonthDay-equal - Mostly complete - VXQUERY-69
        10.4.18 op:gMonth-equal - Mostly complete - VXQUERY-70
        10.4.19 op:gDay-equal - Mostly complete - VXQUERY-69
    10.5 Component Extraction Functions on Durations, Dates and Times
        10.5.1 fn:years-from-duration - Mostly complete - avg, count
        10.5.2 fn:months-from-duration - Mostly complete - avg, count
        10.5.3 fn:days-from-duration - Mostly complete - avg, count
        10.5.4 fn:hours-from-duration - Mostly complete - avg, count
        10.5.5 fn:minutes-from-duration - Mostly complete - avg, count
        10.5.6 fn:seconds-from-duration  - Mostly complete - avg, count
        10.5.7 fn:year-from-dateTime - Mostly complete - avg, count
        10.5.8 fn:month-from-dateTime - Mostly complete - avg, count
        10.5.9 fn:day-from-dateTime - Mostly complete - avg, count
        10.5.10 fn:hours-from-dateTime - Mostly complete - avg, count
        10.5.11 fn:minutes-from-dateTime - Mostly complete - avg, count
        10.5.12 fn:seconds-from-dateTime - Mostly complete - avg, count
        10.5.13 fn:timezone-from-dateTime - Mostly complete - count, min, max
        10.5.14 fn:year-from-date - Mostly complete - avg, count
        10.5.15 fn:month-from-date - Mostly complete - avg, count
        10.5.16 fn:day-from-date - Mostly complete - avg, count
        10.5.17 fn:timezone-from-date - Mostly complete - count, min, max
        10.5.18 fn:hours-from-time - Mostly complete - avg, count
        10.5.19 fn:minutes-from-time - Mostly complete - avg, count
        10.5.20 fn:seconds-from-time - Mostly complete - avg, count
        10.5.21 fn:timezone-from-time - Mostly complete - count, min, max
    10.6 Arithmetic Operators on Durations
        10.6.1 op:add-yearMonthDurations - Mostly complete - not
        10.6.2 op:subtract-yearMonthDurations - Mostly complete - not
        10.6.3 op:multiply-yearMonthDuration - Mostly complete - not, count
        10.6.4 op:divide-yearMonthDuration - Mostly complete - not
        10.6.5 op:divide-yearMonthDuration-by-yearMonthDuration - Mostly complete - not, round-half-to-even
        10.6.6 op:add-dayTimeDurations - Mostly complete - not
        10.6.7 op:subtract-dayTimeDurations - Mostly complete - not
        10.6.8 op:multiply-dayTimeDuration - Mostly complete - not, count
        10.6.9 op:divide-dayTimeDuration - Mostly complete - not
        10.6.10 op:divide-dayTimeDuration-by-dayTimeDuration - Mostly complete - not, round-half-to-even
    10.7 Timezone Adjustment Functions on Dates and Time Values
        10.7.1 fn:adjust-dateTime-to-timezone - Mostly complete - sequence, max
        10.7.2 fn:adjust-date-to-timezone - Mostly complete - sequence, max
        10.7.3 fn:adjust-time-to-timezone - Mostly complete - sequence, max
    10.8 Arithmetic Operators on Durations, Dates and Times
        10.8.1 op:subtract-dateTimes - Mostly complete - not
        10.8.2 op:subtract-dates - Mostly complete - not
        10.8.3 op:subtract-times - Mostly complete - not
        10.8.4 op:add-yearMonthDuration-to-dateTime - Mostly complete - not, negative years
        10.8.5 op:add-dayTimeDuration-to-dateTime - Mostly complete - not
        10.8.6 op:subtract-yearMonthDuration-from-dateTime - Mostly complete - not, negative years
        10.8.7 op:subtract-dayTimeDuration-from-dateTime - Mostly complete - not
        10.8.8 op:add-yearMonthDuration-to-date - Mostly complete - not, negative years
        10.8.9 op:add-dayTimeDuration-to-date - Mostly complete - not
        10.8.10 op:subtract-yearMonthDuration-from-date - Mostly complete - not, negative years
        10.8.11 op:subtract-dayTimeDuration-from-date - Mostly complete - not
        10.8.12 op:add-dayTimeDuration-to-time - Mostly complete - not
        10.8.13 op:subtract-dayTimeDuration-from-time - Mostly complete - not
11 Functions Related to QNames
    11.1 Additional Constructor Functions for QNames
        11.1.1 fn:resolve-QName - missing VXQUERY-71
        11.1.2 fn:QName - missing  VXQUERY-71
    11.2 Functions and Operators Related to QNames
        11.2.1 op:QName-equal - COMPLETE
        11.2.2 fn:prefix-from-QName - Test on to many other functions to tell - VXQUERY-71
        11.2.3 fn:local-name-from-QName - Test on to many other functions to tell - VXQUERY-71
        11.2.4 fn:namespace-uri-from-QName - Test on to many other functions to tell - VXQUERY-71
        11.2.5 fn:namespace-uri-for-prefix - missing  VXQUERY-71
        11.2.6 fn:in-scope-prefixes - missing VXQUERY-71
12 Operators on base64Binary and hexBinary
    12.1 Comparisons of base64Binary and hexBinary Values
        12.1.1 op:hexBinary-equal - COMPLETE
        12.1.2 op:base64Binary-equal - COMPLETE
...
14 Functions and Operators on Nodes
    14.1 fn:name - missing VXQUERY-72
    14.2 fn:local-name - missing VXQUERY-72
    14.3 fn:namespace-uri - missing VXQUERY-72
    14.4 fn:number - Mostly complete - VXQUERY-62
    14.5 fn:lang - missing VXQUERY-72
    14.6 op:is-same-node - missing VXQUERY-72
    14.7 op:node-before - missing VXQUERY-72
    14.8 op:node-after - missing VXQUERY-72
    14.9 fn:root - missing VXQUERY-72
15 Functions and Operators on Sequences
    15.1 General Functions and Operators on Sequences
        15.1.1 fn:boolean - Mostly complete - sequences
        15.1.2 op:concatenate - see VXQUERY-59
        15.1.3 fn:index-of - missing VXQUERY-75
        15.1.4 fn:empty - COMPLETE
        15.1.5 fn:exists - COMPLETE
        15.1.6 fn:distinct-values - missing VXQUERY-75
        15.1.7 fn:insert-before - missing VXQUERY-75
        15.1.8 fn:remove - missing VXQUERY-75
        15.1.9 fn:reverse - Mostly complete - VXQUERY-62
        15.1.10 fn:subsequence - missing VXQUERY-75
        15.1.11 fn:unordered - missing VXQUERY-75
    15.2 Functions That Test the Cardinality of Sequences
        15.2.1 fn:zero-or-one - missing VXQUERY-75
        15.2.2 fn:one-or-more - missing VXQUERY-75
        15.2.3 fn:exactly-one - missing VXQUERY-75
    15.3 Equals, Union, Intersection and Except
        15.3.1 fn:deep-equal - missing VXQUERY-75
        15.3.2 op:union - missing VXQUERY-75
        15.3.3 op:intersect - missing VXQUERY-75
        15.3.4 op:except - missing VXQUERY-75
    15.4 Aggregate Functions
        15.4.1 fn:count - missing VXQUERY-74
        15.4.2 fn:avg - missing VXQUERY-74
        15.4.3 fn:max - missing VXQUERY-74
        15.4.4 fn:min - missing VXQUERY-74
        15.4.5 fn:sum - missing VXQUERY-74
    15.5 Functions and Operators that Generate Sequences
        15.5.1 op:to - missing VXQUERY-75
        15.5.2 fn:id - missing VXQUERY-75
        15.5.3 fn:idref - missing VXQUERY-75
        15.5.4 fn:doc - missing VXQUERY-75
        15.5.5 fn:doc-available - missing VXQUERY-75
        15.5.6 fn:collection - missing VXQUERY-75
        15.5.7 fn:element-with-id - missing VXQUERY-75
16 Context Functions
    16.1 fn:position - missing VXQUERY-73
    16.2 fn:last - missing VXQUERY-73
    16.3 fn:current-dateTime - needs work VXQUERY-69
    16.4 fn:current-date - needs work VXQUERY-69
    16.5 fn:current-time - needs work VXQUERY-69
    16.6 fn:implicit-timezone - missing VXQUERY-73
    16.7 fn:default-collation - missing VXQUERY-73
    16.8 fn:static-base-uri - missing VXQUERY-73
                
> Complete the implementation of XQuery Functions and Operators
> -------------------------------------------------------------
>
>                 Key: VXQUERY-31
>                 URL: https://issues.apache.org/jira/browse/VXQUERY-31
>             Project: VXQuery
>          Issue Type: Improvement
>            Reporter: Vinayak Borkar
>              Labels: gsoc, gsoc2012, mentor
>
> VXQuery is an XQuery compiler and runtime being built to comply with version 1.0 of the XQuery spec at http://www.w3.org/TR/XQuery. The distinguishing characteristic of this runtime is that it is designed to evaluate queries on large amounts of XML data. VXQuery uses the Hyracks platform (http://code.google.com/p/hyracks), a parallel dataflow engine, to parallelize queries so they can run on a cluster of shared-nothing computers.
> We plan to exploit three kinds of parallelism within the XQuery engine while evaluating a single query.
> 1. Independent parallelism: Parts of a query that are unrelated to each other can be evaluated in parallel.
> 2. Partitioned parallelism: The engine partitions data (both input data as well as intermediate data) and processes the partitions in parallel.
> 3. Pipelined parallelism: The runtime organizes the work done to evaluate a query as a sequence of workers. As and when work is completed on a piece of data, the results of that piece are handed to the next worker, while the first can process the next piece of data. This is similar to an assembly line used in manufacturing plants.
> Hyracks provides a set of operators to be able to evaluate queries in parallel. However, it does not know anything about VXQuery or the XQuery language and datamodel.
> Currently we have a parser and translator that converts XQuery into a logical form ready for evaluation.
> The task that needs to be done as part of this project is to implement functions that will plug into Hyracks operators so we can evaluate XQuery queries.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira