Uploaded image for project: 'TinkerPop'
  1. TinkerPop
  2. TINKERPOP-2672

Add String Manipulation Steps to Gremlin

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Implemented
    • None
    • 3.7.1
    • language
    • None

    Description

      Today Gremlin requires that users fall back to closures to handle many common string manipulation options that users want to do on data in the graph.  This is a problem for many users as many of the providers prevent the use of closures due to the security risks so for these users there is no way to manipulate strings directly.

      The proposal here is to add a set of steps to handle common string manipulation requests from users including:

      • `concat(String)` - concatenates the String to the value of the traverser
      • 'length()` - returns the length of the string
      • `split(String)` - returns an array of strings based on the split char passed in
      • `substring(beginIndex, endIndex)` - returns a substring based on the start and end index values passed in
      •  `substring(beginIndex)` - returns a substring beginning at the start index
      • `rtrim()` - remove spaces at the beginning of a string
      • `ltrim()` - remove spaces at the end of a string
      • `trim()` - remove spaces at the beginning and end of a string
      • `replace(old, new)` - replaces all occurences of the `old` string with the `new` string
      • `reverse()` - reverses the string
      • `tostring()` - turns the incoming item into a string
      • `toupper()` - upper cases the incoming string
      • `tolower()` - lower cases the incoming string

       

      All the above functions except `tostring()` will throw an error if a non-string value is passed in

      Attachments

        Issue Links

          Activity

            People

              xiazcy Yang Xia
              bechbd Dave Bechberger
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: