You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@vxquery.apache.org by "Preston Carman (JIRA)" <ji...@apache.org> on 2012/06/20 02:46:43 UTC

[jira] [Created] (VXQUERY-34) Basic String Functions

Preston Carman created VXQUERY-34:
-------------------------------------

             Summary: Basic String Functions 
                 Key: VXQUERY-34
                 URL: https://issues.apache.org/jira/browse/VXQUERY-34
             Project: VXQuery
          Issue Type: Task
            Reporter: Preston Carman


The basic string functions to build help with basic queries.

fn:concat - Concatenates two or more xs:anyAtomicType arguments cast to xs:string.
fn:string-join - Returns the xs:string produced by concatenating a sequence of xs:strings using an optional separator.
fn:substring - Returns the xs:string located at a specified place within an argument xs:string.
fn:string-length - Returns the length of the argument.
fn:upper-case - Returns the upper-cased value of the argument.
fn:lower-case - Returns the lower-cased value of the argument.

--
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] [Updated] (VXQUERY-34) Basic String Functions

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

Preston Carman updated VXQUERY-34:
----------------------------------

    Attachment: BasicStringFunctions2.patch

 I completed three functions: string-length, upper-case and lower-case.

They appear to work correctly, but I am wondering if there is a better way to get code reuse out of existing classes (UTF8StringWriter) or sharing information between upper and lower functions (getUpperByteArray and getLowerByteArray).
                
> Basic String Functions 
> -----------------------
>
>                 Key: VXQUERY-34
>                 URL: https://issues.apache.org/jira/browse/VXQUERY-34
>             Project: VXQuery
>          Issue Type: Task
>            Reporter: Preston Carman
>              Labels: patch
>         Attachments: BasicStringFunctions2.patch
>
>
> The basic string functions to build help with basic queries.
> fn:concat - Concatenates two or more xs:anyAtomicType arguments cast to xs:string.
> fn:string-join - Returns the xs:string produced by concatenating a sequence of xs:strings using an optional separator.
> fn:substring - Returns the xs:string located at a specified place within an argument xs:string.
> fn:string-length - Returns the length of the argument.
> fn:upper-case - Returns the upper-cased value of the argument.
> fn:lower-case - Returns the lower-cased value of the argument.

--
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] [Comment Edited] (VXQUERY-34) Basic String Functions

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

Vinayak Borkar edited comment on VXQUERY-34 at 6/20/12 1:34 AM:
----------------------------------------------------------------

Preston,

The string-length function looks good. I have a few comments about the upper-case and lower-case functions.

1. The functions currently create an object on *every* invocation. The byte[] is created every time the function is called. I would suggest using edu.uci.ics.hyracks.dataflow.common.data.accessors.ArrayBackedValueStorage as the storage for the data. This class embeds a growable byte array that only allocates a new object if the existing object is not large enough and tracks the used size separately. You can call the reset() method to reset the "used bytes" to 0 without destroying the internal byte array.
2. It looks like you first walk over the input string, convert each character to its upper/lower case value just to measure the length of the new string. Another strategy is to skip two bytes in the result byte array (actually 3, because the first byte will be the tag in your case), and start appending the characters after transcoding. At the end, go back and patch the two bytes representing the UTF8 length in the result with the actual length. This way you do not have to process each string twice.
3. Finally, to address your code reuse question, you could have upper and lower case functions both extend an AbstractStringTranscodingFunction which has one protected abstract method:

protected abstract char transcodeCharacter(char c);

You could then move all the code that you have in the computation to the base class, while calling the transcodeCharacter method to get the "converted" character. In the concrete classes you will need to implement the transcodeCharacter method to return the upper/lower case character appropriately.

Thanks,
Vinayak
                
      was (Author: vinayakb):
    Preston,

The string-length function looks good. I have a few comments about the upper-case and lower-case functions.

1. The functions currently create an object on *every* invocation. The byte[] is created every time the function is called. I would suggest using edu.uci.ics.hyracks.dataflow.common.data.accessors.ArrayBackedValueStorage as the storage for the data. This class embeds a growable byte array that only allocates a new object if the existing object is not large enough and tracks the used size separately. You can call the reset() method to reset the "used bytes" to 0 without destroying the internal byte array.
2. It looks like you first walk over the input string, convert each character to its upper/lower case value just to measure the length of the new string. Another strategy is to skip two bytes in the result byte array (actually 3, because the first byte will be the tag in your case), and start appending the characters after transcoding. At the end, go back and patch the two bytes representing the UTF8 length in the result with the actual length. This way you do not have to process each string twice.
3. Finally, to address your code reuse question, you could have upper and lower case functions both extend an Abstract string transcoding function which has one protected abstract method:

protected abstract char transcodeCharacter(char c);

You could then move all the code that you have in the computation to the base class, while calling the transcodeCharacter method to get the "converted" character. In the concrete classes you will need to implement the transcodeCharacter method to return the upper/lower case character appropriately.

Thanks,
Vinayak
                  
> Basic String Functions 
> -----------------------
>
>                 Key: VXQUERY-34
>                 URL: https://issues.apache.org/jira/browse/VXQUERY-34
>             Project: VXQuery
>          Issue Type: Task
>            Reporter: Preston Carman
>              Labels: patch
>         Attachments: BasicStringFunctions2.patch
>
>
> The basic string functions to build help with basic queries.
> fn:concat - Concatenates two or more xs:anyAtomicType arguments cast to xs:string.
> fn:string-join - Returns the xs:string produced by concatenating a sequence of xs:strings using an optional separator.
> fn:substring - Returns the xs:string located at a specified place within an argument xs:string.
> fn:string-length - Returns the length of the argument.
> fn:upper-case - Returns the upper-cased value of the argument.
> fn:lower-case - Returns the lower-cased value of the argument.

--
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] [Updated] (VXQUERY-34) Basic String Functions

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

Preston Carman updated VXQUERY-34:
----------------------------------

    Attachment: BasicStringFunctions5.patch

All the issues brought up in this ticket have been addressed or a new ticket has been created to later address the issue. For example, concat needs to support any atomic type: https://issues.apache.org/jira/browse/VXQUERY-37. I think this is now ready for inclusion.
                
> Basic String Functions 
> -----------------------
>
>                 Key: VXQUERY-34
>                 URL: https://issues.apache.org/jira/browse/VXQUERY-34
>             Project: VXQuery
>          Issue Type: Sub-task
>            Reporter: Preston Carman
>              Labels: patch
>         Attachments: BasicStringFunctions2.patch, BasicStringFunctions3.patch, BasicStringFunctions4.patch, BasicStringFunctions5.patch
>
>
> The basic string functions to build help with basic queries.
> fn:concat - Concatenates two or more xs:anyAtomicType arguments cast to xs:string.
> fn:string-join - Returns the xs:string produced by concatenating a sequence of xs:strings using an optional separator.
> fn:substring - Returns the xs:string located at a specified place within an argument xs:string.
> fn:string-length - Returns the length of the argument.
> fn:upper-case - Returns the upper-cased value of the argument.
> fn:lower-case - Returns the lower-cased value of the argument.

--
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] [Commented] (VXQUERY-34) Basic String Functions

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

Vinayak Borkar commented on VXQUERY-34:
---------------------------------------

Preston,

The string-length function looks good. I have a few comments about the upper-case and lower-case functions.

1. The functions currently create an object on *every* invocation. The byte[] is created every time the function is called. I would suggest using edu.uci.ics.hyracks.dataflow.common.data.accessors.ArrayBackedValueStorage as the storage for the data. This class embeds a growable byte array that only allocates a new object if the existing object is not large enough and tracks the used size separately. You can call the reset() method to reset the "used bytes" to 0 without destroying the internal byte array.
2. It looks like you first walk over the input string, convert each character to its upper/lower case value just to measure the length of the new string. Another strategy is to skip two bytes in the result byte array (actually 3, because the first byte will be the tag in your case), and start appending the characters after transcoding. At the end, go back and patch the two bytes representing the UTF8 length in the result with the actual length. This way you do not have to process each string twice.
3. Finally, to address your code reuse question, you could have upper and lower case functions both extend an Abstract string transcoding function which has one protected abstract method:

protected abstract char transcodeCharacter(char c);

You could then move all the code that you have in the computation to the base class, while calling the transcodeCharacter method to get the "converted" character. In the concrete classes you will need to implement the transcodeCharacter method to return the upper/lower case character appropriately.

Thanks,
Vinayak
                
> Basic String Functions 
> -----------------------
>
>                 Key: VXQUERY-34
>                 URL: https://issues.apache.org/jira/browse/VXQUERY-34
>             Project: VXQuery
>          Issue Type: Task
>            Reporter: Preston Carman
>              Labels: patch
>         Attachments: BasicStringFunctions2.patch
>
>
> The basic string functions to build help with basic queries.
> fn:concat - Concatenates two or more xs:anyAtomicType arguments cast to xs:string.
> fn:string-join - Returns the xs:string produced by concatenating a sequence of xs:strings using an optional separator.
> fn:substring - Returns the xs:string located at a specified place within an argument xs:string.
> fn:string-length - Returns the length of the argument.
> fn:upper-case - Returns the upper-cased value of the argument.
> fn:lower-case - Returns the lower-cased value of the argument.

--
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] [Commented] (VXQUERY-34) Basic String Functions

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

Till Westmann commented on VXQUERY-34:
--------------------------------------

I've tried this example: fn:string-length("äöüß") and it returns 8 instead of 4. Unfortunately I haven't been able to find the cause for this so far.

Regarding the implementation of fn:string-length I've also got 2 comments:
1) It still uses the TYPE_ID constants instead of the TAG constants.
2) It would be nice to have a symbolic constant for the '9', e.g. RES_SIZE = LongPointable.TYPE_TRAITS.getFixedLength() + 1;

For fn:substring I think that we should keep the possibility to directly consume integer arguments, as this will we the most common case. We only need to insure, that the compiler won't always introduce the promotion to double.

The handling of double arguments to fn:substring is not correct. Using intValue on the double will truncate the value, while the specification says that it needs to be rounded (http://www.w3.org/TR/xpath-functions/#func-substring). I would propose to leave it as-is for now and to fix it using our implementation for fn:round once that it available. If that's what we do, we should file a bug to ensure that we don't forget it.
                
> Basic String Functions 
> -----------------------
>
>                 Key: VXQUERY-34
>                 URL: https://issues.apache.org/jira/browse/VXQUERY-34
>             Project: VXQuery
>          Issue Type: Sub-task
>            Reporter: Preston Carman
>              Labels: patch
>         Attachments: BasicStringFunctions2.patch, BasicStringFunctions3.patch, BasicStringFunctions4.patch
>
>
> The basic string functions to build help with basic queries.
> fn:concat - Concatenates two or more xs:anyAtomicType arguments cast to xs:string.
> fn:string-join - Returns the xs:string produced by concatenating a sequence of xs:strings using an optional separator.
> fn:substring - Returns the xs:string located at a specified place within an argument xs:string.
> fn:string-length - Returns the length of the argument.
> fn:upper-case - Returns the upper-cased value of the argument.
> fn:lower-case - Returns the lower-cased value of the argument.

--
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] [Updated] (VXQUERY-34) Basic String Functions

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

Preston Carman updated VXQUERY-34:
----------------------------------

    Attachment: BasicStringFunctions3.patch

Updated the functions based on your comments.
                
> Basic String Functions 
> -----------------------
>
>                 Key: VXQUERY-34
>                 URL: https://issues.apache.org/jira/browse/VXQUERY-34
>             Project: VXQuery
>          Issue Type: Sub-task
>            Reporter: Preston Carman
>              Labels: patch
>         Attachments: BasicStringFunctions2.patch, BasicStringFunctions3.patch
>
>
> The basic string functions to build help with basic queries.
> fn:concat - Concatenates two or more xs:anyAtomicType arguments cast to xs:string.
> fn:string-join - Returns the xs:string produced by concatenating a sequence of xs:strings using an optional separator.
> fn:substring - Returns the xs:string located at a specified place within an argument xs:string.
> fn:string-length - Returns the length of the argument.
> fn:upper-case - Returns the upper-cased value of the argument.
> fn:lower-case - Returns the lower-cased value of the argument.

--
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] [Commented] (VXQUERY-34) Basic String Functions

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

Preston Carman commented on VXQUERY-34:
---------------------------------------

I created a new ticket for the substring function to track this issue. Also, I started to fix the changes suggested for string-length and ran into more questions. I posted a question about the UTF8 string in Hyracks to get more information (https://groups.google.com/forum/?fromgroups#!topic/hyracks-users/ygRNTbX4eSg). Besides the function working for all the string types, the other points 1 and 2 have been implemented. Thanks for pointing those out, I will use those suggestions in future code.
                
> Basic String Functions 
> -----------------------
>
>                 Key: VXQUERY-34
>                 URL: https://issues.apache.org/jira/browse/VXQUERY-34
>             Project: VXQuery
>          Issue Type: Sub-task
>            Reporter: Preston Carman
>              Labels: patch
>         Attachments: BasicStringFunctions2.patch, BasicStringFunctions3.patch, BasicStringFunctions4.patch
>
>
> The basic string functions to build help with basic queries.
> fn:concat - Concatenates two or more xs:anyAtomicType arguments cast to xs:string.
> fn:string-join - Returns the xs:string produced by concatenating a sequence of xs:strings using an optional separator.
> fn:substring - Returns the xs:string located at a specified place within an argument xs:string.
> fn:string-length - Returns the length of the argument.
> fn:upper-case - Returns the upper-cased value of the argument.
> fn:lower-case - Returns the lower-cased value of the argument.

--
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] [Comment Edited] (VXQUERY-34) Basic String Functions

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

Preston Carman edited comment on VXQUERY-34 at 6/21/12 9:55 PM:
----------------------------------------------------------------

Just noticed the concat function I made is for strings not any atomic type. In our next meeting can we review my code and the xquery specification to make sure I am getting the details correct.
                
      was (Author: ecarm002):
    Just notice concat function I made is for strings not any atomic type. In our next meeting can we review my code and the specification to make sure I am getting the details correct.
                  
> Basic String Functions 
> -----------------------
>
>                 Key: VXQUERY-34
>                 URL: https://issues.apache.org/jira/browse/VXQUERY-34
>             Project: VXQuery
>          Issue Type: Sub-task
>            Reporter: Preston Carman
>              Labels: patch
>         Attachments: BasicStringFunctions2.patch, BasicStringFunctions3.patch, BasicStringFunctions4.patch
>
>
> The basic string functions to build help with basic queries.
> fn:concat - Concatenates two or more xs:anyAtomicType arguments cast to xs:string.
> fn:string-join - Returns the xs:string produced by concatenating a sequence of xs:strings using an optional separator.
> fn:substring - Returns the xs:string located at a specified place within an argument xs:string.
> fn:string-length - Returns the length of the argument.
> fn:upper-case - Returns the upper-cased value of the argument.
> fn:lower-case - Returns the lower-cased value of the argument.

--
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] [Updated] (VXQUERY-34) Basic String Functions

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

Preston Carman updated VXQUERY-34:
----------------------------------

    Attachment: BasicStringFunctions6.patch

Updated the exception thrown when a bad parameter type is passed in to the string functions.
                
> Basic String Functions 
> -----------------------
>
>                 Key: VXQUERY-34
>                 URL: https://issues.apache.org/jira/browse/VXQUERY-34
>             Project: VXQuery
>          Issue Type: Sub-task
>            Reporter: Preston Carman
>              Labels: patch
>         Attachments: BasicStringFunctions2.patch, BasicStringFunctions3.patch, BasicStringFunctions4.patch, BasicStringFunctions5.patch, BasicStringFunctions6.patch
>
>
> The basic string functions to build help with basic queries.
> fn:concat - Concatenates two or more xs:anyAtomicType arguments cast to xs:string.
> fn:string-join - Returns the xs:string produced by concatenating a sequence of xs:strings using an optional separator.
> fn:substring - Returns the xs:string located at a specified place within an argument xs:string.
> fn:string-length - Returns the length of the argument.
> fn:upper-case - Returns the upper-cased value of the argument.
> fn:lower-case - Returns the lower-cased value of the argument.

--
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] [Commented] (VXQUERY-34) Basic String Functions

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

Preston Carman commented on VXQUERY-34:
---------------------------------------

Just notice concat function I made is for strings not any atomic type. In our next meeting can we review my code and the specification to make sure I am getting the details correct.
                
> Basic String Functions 
> -----------------------
>
>                 Key: VXQUERY-34
>                 URL: https://issues.apache.org/jira/browse/VXQUERY-34
>             Project: VXQuery
>          Issue Type: Sub-task
>            Reporter: Preston Carman
>              Labels: patch
>         Attachments: BasicStringFunctions2.patch, BasicStringFunctions3.patch, BasicStringFunctions4.patch
>
>
> The basic string functions to build help with basic queries.
> fn:concat - Concatenates two or more xs:anyAtomicType arguments cast to xs:string.
> fn:string-join - Returns the xs:string produced by concatenating a sequence of xs:strings using an optional separator.
> fn:substring - Returns the xs:string located at a specified place within an argument xs:string.
> fn:string-length - Returns the length of the argument.
> fn:upper-case - Returns the upper-cased value of the argument.
> fn:lower-case - Returns the lower-cased value of the argument.

--
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] [Updated] (VXQUERY-34) Basic String Functions

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

Preston Carman updated VXQUERY-34:
----------------------------------

    Attachment: BasicStringFunctions4.patch

Ok, so I have updated based on comments from Vinayak and finished out the last three functions described above. I think these are ready for inclusion.
                
> Basic String Functions 
> -----------------------
>
>                 Key: VXQUERY-34
>                 URL: https://issues.apache.org/jira/browse/VXQUERY-34
>             Project: VXQuery
>          Issue Type: Sub-task
>            Reporter: Preston Carman
>              Labels: patch
>         Attachments: BasicStringFunctions2.patch, BasicStringFunctions3.patch, BasicStringFunctions4.patch
>
>
> The basic string functions to build help with basic queries.
> fn:concat - Concatenates two or more xs:anyAtomicType arguments cast to xs:string.
> fn:string-join - Returns the xs:string produced by concatenating a sequence of xs:strings using an optional separator.
> fn:substring - Returns the xs:string located at a specified place within an argument xs:string.
> fn:string-length - Returns the length of the argument.
> fn:upper-case - Returns the upper-cased value of the argument.
> fn:lower-case - Returns the lower-cased value of the argument.

--
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] [Commented] (VXQUERY-34) Basic String Functions

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

Vinayak Borkar commented on VXQUERY-34:
---------------------------------------

Great!

One more comment: The evaluate call in FnUpper/FnLower can be moved to the abstract super class -- its the same code in both classes. Move it up, and make it final. So the only method in FnUpper and FnLower will deal with transcoding a character.

Once you do that, you can inline the getTranscoded... method into the evaluate method and make the byte[] stringResult field stack local.

Thanks,
Vinayak
                
> Basic String Functions 
> -----------------------
>
>                 Key: VXQUERY-34
>                 URL: https://issues.apache.org/jira/browse/VXQUERY-34
>             Project: VXQuery
>          Issue Type: Sub-task
>            Reporter: Preston Carman
>              Labels: patch
>         Attachments: BasicStringFunctions2.patch, BasicStringFunctions3.patch
>
>
> The basic string functions to build help with basic queries.
> fn:concat - Concatenates two or more xs:anyAtomicType arguments cast to xs:string.
> fn:string-join - Returns the xs:string produced by concatenating a sequence of xs:strings using an optional separator.
> fn:substring - Returns the xs:string located at a specified place within an argument xs:string.
> fn:string-length - Returns the length of the argument.
> fn:upper-case - Returns the upper-cased value of the argument.
> fn:lower-case - Returns the lower-cased value of the argument.

--
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] [Updated] (VXQUERY-34) Basic String Functions

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

Till Westmann updated VXQUERY-34:
---------------------------------

    Issue Type: Sub-task  (was: Task)
        Parent: VXQUERY-31
    
> Basic String Functions 
> -----------------------
>
>                 Key: VXQUERY-34
>                 URL: https://issues.apache.org/jira/browse/VXQUERY-34
>             Project: VXQuery
>          Issue Type: Sub-task
>            Reporter: Preston Carman
>              Labels: patch
>         Attachments: BasicStringFunctions2.patch
>
>
> The basic string functions to build help with basic queries.
> fn:concat - Concatenates two or more xs:anyAtomicType arguments cast to xs:string.
> fn:string-join - Returns the xs:string produced by concatenating a sequence of xs:strings using an optional separator.
> fn:substring - Returns the xs:string located at a specified place within an argument xs:string.
> fn:string-length - Returns the length of the argument.
> fn:upper-case - Returns the upper-cased value of the argument.
> fn:lower-case - Returns the lower-cased value of the argument.

--
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] [Resolved] (VXQUERY-34) Basic String Functions

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

Till Westmann resolved VXQUERY-34.
----------------------------------

    Resolution: Fixed
      Assignee: Till Westmann

Submitted Preston's patch.
                
> Basic String Functions 
> -----------------------
>
>                 Key: VXQUERY-34
>                 URL: https://issues.apache.org/jira/browse/VXQUERY-34
>             Project: VXQuery
>          Issue Type: Sub-task
>            Reporter: Preston Carman
>            Assignee: Till Westmann
>              Labels: patch
>         Attachments: BasicStringFunctions2.patch, BasicStringFunctions3.patch, BasicStringFunctions4.patch, BasicStringFunctions5.patch, BasicStringFunctions6.patch
>
>
> The basic string functions to build help with basic queries.
> fn:concat - Concatenates two or more xs:anyAtomicType arguments cast to xs:string.
> fn:string-join - Returns the xs:string produced by concatenating a sequence of xs:strings using an optional separator.
> fn:substring - Returns the xs:string located at a specified place within an argument xs:string.
> fn:string-length - Returns the length of the argument.
> fn:upper-case - Returns the upper-cased value of the argument.
> fn:lower-case - Returns the lower-cased value of the argument.

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