Skip to Main Content
IBM Power Ideas Portal


This portal is to open public enhancement requests against IBM Power Systems products, including IBM i. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:

Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,

Post your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

Status Delivered
Workspace IBM i
Categories Db2 for i
Created by Guest
Created on Apr 16, 2021

Create a Standards Document for future SQL Services

Please create and follow a Standards Document for future SQL Functions (i.e., SQL "services") that are created. We are seeing each new published function has little regard for existing parameter names or sequences. Some UDtFs have Object followed by Library while others have Library followed by Object.
Then we have the naming issue too. Sometimes a prefix is included in the name, like V_OBJECT_NAME, and others it is OBJECT_NAME. Likewise, we have LIBRARY_NAME and OUTQ_LIB
These are just a small piece of it, and don't get me started on naming standards for returned column names.


Use Case:

SQL Services (IBM-supplied User Defined Functions and Procedures) are a powerful tool and should be widely implemented. But everyone of them requires that the Developer have the IBM Docs page for the function being used opened and in front of them because you can never depend on two Services using the same name for the same component. Is it OBJATTR or OBJATTRIBUTE or OBJECT_ATTRIBUTE this time? Who knows?

The sequence of parameters is another issue. The Services started out with LIBRARY name (or schema) followed by OBJECT name. But the latest batch of Services opted to use OBJECT followed by LIBRARY. USER_SPACE() UDTF and DATA_AREA_INFO() UDTF are two examples. And look at the inconsistencies:
USER_SPACE() is the Table Function name
DATA_AREA_INFO() is the Table Function name
USER_SPACE is the object parameter.
DATA_AREA_NAME is the object parameter

McFly! Hello! Anybody home?


Idea priority High
  • Guest
    Reply
    |
    Apr 20, 2021

    Hello Bob,
    We have a standards document with design criteria for IBM i Services. We use this document and a rigorous review process to insure that we produce the best possible IBM i Service. With names of services, parameter names, and return column names there is great care and consistency being used by myself and our team. Has it been a perfect endeavor, no.

    Your assertions about the programmer experience might change if you utilize IBM i Access Client Solutions (ACS) while developing your usage of IBM i Services. Not only do we package working examples into Insert from Examples, but with Content Assist, the SQL user gets to see extended metadata for parameters and columns. We are using COMMENT ON PARAMETER and COLUMN to convey this essential information to the SQL user, but you won't find these helper functions on the green screen.

    When an IBM i Service is an SQL view, we have more ability to provide useful and consistent names, because we can utilize both the long SQL column name and short system column name. UDTFs provide a challenge as we have just a single name to use for return columns. However, UDTFs allow the SQL user to leverage named parameter invocation for ease of use and a form of code commentary. We also take great care to encode default values on UDTF parameters, to allow the user to find cases where coding to a subset of parameters can get the job done.

    As you frequently contact me directly for other matters, I would have preferred that you do so when you have concerns or complaints about what the Db2 for i team is producing. Rest assured, we take the IBM i Services very seriously and I would be willing to meet with you to discuss the matter.

    @Paul - I see your negative view of our investment in IBM i Services on every RFE. Some of what we build could be built by the end users, while other matters could not. What I have seen is that many clients and ISVs greatly prefer to have such IBM i Services provided by IBM and Db2 for i. As the Business Architect of Db2 for i, I do have to carefully consider what our install base is asking for, along with considering the cost and complexity of such requests. Our continued investments in providing IBM i Services is not a trade-off for work on other topics. Please contact me directly if you would like to discuss this matter. You can reach me at forstie@us.ibm.com.

    Sincerely, Scott Forstie
    Db2 for i Business Architect
    forstie@us.ibm.com

  • Guest
    Reply
    |
    Apr 19, 2021

    I'd rather vote for ending this SQL service madness where each API is just duplicated in SQL.

    This is just a waste of resources as there's plenty of functionality - that can't be written by ourselves - which is not implemented.

  • Guest
    Reply
    |
    Apr 16, 2021

    Just a thought - yes, consistency would be favored. But if a person is working in the Run SQL Statement action of ACS, you can see what the columns are in a table function by using the Content Assist.

    This might not be the cleanest solution, but it is a kind of work-around. I know Content Assist is really helpful with those "interesting" column names in output files!