8 Replies Latest reply on Aug 16, 2017 1:43 PM by tdanner

    SWQL Functions Feeback... Enhancments?

    dnerdahl

      Having worked with the SDK (namely SWQL) nearly since its release to the public I have say that I find the SDK/API feature rich, extraordinarily reliable and key path to a Solarwinds installation that meets the unique needs of each environment I've worked with it.

       

      However, there are a few things I would like to mention that I feel are unfortunate oversights or omissions from the SWQL language.

       

      1. SWQL has no CHARINDEX() type function.
        1. This is a frustrating short coming of the query language. Unless I want an extraordinarily large list of custom properties, one for each value pair, there is no way to parse a custom property value based on a know string.
          Also, let's be honest with ourselves, the array functions require manual delimination and string entry... unless someone knows something I don't... which is completely possible.
      2. CONCAT() can not be used in the 2nd argument of SUBSTRING() (more specifically a varchar(max))
        1. This is almost as frustrating as #1 and some days even more so. If it was possible to use CONCAT() in the 2nd argument it would alleviate some of the frustration and lack of functionality created by the complete absence of a CHARINDEX() type function.
      3. SWQL has no REPLACE() type function.
        1. This is another frustrating handicap of the SWQL language. REPLACE() is another mainstay in the string manipulation family of functions that is sadly absent from the SWQL function library.

       

      I can live without the ability to use the local variables, temporary tables, the inability to CAST() a datetime and the advanced string by type parsing that SQL offers. These 3 issues have me, more often then not, using SQL queries rather than SWQL queries. It's unfortunate as I prefer to use the native query language when ever possible.

       

      My hats off to the developers and maintainers of the SDK. It's a heck of thing you've got there.