IBM Data and AI Ideas Portal for Clients

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:

Post your ideas

If you have not registered on this portal please register at http://ibm.biz/IBM-Data-and-AI-Portal-Register . To complete registration you will need to open the email you will receive from Aha to confirm your identity.

Post ideas and requests to enhance a product or service. Take a look at ideas others have posted and upvote them if they matter to you,

  1. Post an idea

  2. Upvote ideas that matter most to you

  3. Get feedback from the IBM team to refine your idea

Help IBM prioritize your ideas and requests

The IBM team may need your help to refine the ideas so they may ask for more information or feedback. The offering manager team will then decide if they can begin working on your idea. If they can start during the next development cycle, they will put the idea on the priority list. Each team at IBM works on a different schedule, where some ideas can be implemented right away, others may be placed on a different schedule.

Receive notification on the decision

Some ideas can be implemented at IBM, while others may not fit within the development plans for the product. In either case, the team will let you know as soon as possible. In some cases, we may be able to find alternatives for ideas which cannot be implemented in a reasonable time.

Additional Information

To view our roadmaps: http://ibm.biz/Data-and-AI-Roadmaps

Reminder: This is not the place to submit defects or support needs, please use normal support channel for these cases

IBM Employees:

The correct URL for entering your ideas is: https://hybridcloudunit-internal.ideas.aha.io

Support IDataReader::GetBytes / IfxDataReader::GetBytes for BSON fields

We're using the BSON capabilities of the Informix server in order to store data in a separate BSON colum - like additional information for the data row or optional fields that may vary from row to row (e.g. translations to different languages).


With the current Client SDK (v4.50xC5), it is not possible to access the binary representation of that field by issuing a SELECT statement using the Informix.Net.Core driver as the driver currently does not support the GetBytes function for any other field types than BLOBs or BYTEs.

That requires us to either issue multiple bson_value_xxx statements to access all those optional fields -or- to cast the field from BSON to JSON on the server side to then perform the creation of the client-side data object by translating the returned values for a second time.


A more direct approach by returning the byte represenation of the BSON column would have two nice side effects:

a) There's no need for double conversion (either by calling bson_value_xx and then issuing the corresponing GetValue calls from the IDataReader to build up the data object at client side -or- by casting BSON to JSON and then parsing JSON at client side), thus the load on the server is reduced

b) The limit from 32767 characters (currently imposed for a VARCHAR - what the result of the BSON to JSON conversion is) would be omitted

  • Guest
  • Feb 5 2021
  • Under Review
Who would benefit from this IDEA? Everyone using BSON columns
How should it work?

The current implementation of the IDataReader / IfxDataReader class in the Informix C# .Net driver as well as in the Informix .Net.Core driver do not allow the call of the IfxDataReader.GetBytes function on BSON columns.


If the driver would allow us to use the GetBytes function on BSON columns, we could do the following:


using Informix.Net.Core;

using MongoDB.Bson.Serialization;


public IEnumerable<DataObject> GetObjectsFromServer(string connectionString)

{

List<DataObject> objects = new List<DataObject>();

using (IfxConnection conn = new IfxConnection(connectionString))

{

conn.Open();

IfxCommand cmd = new IfxCommand("SELECT data FROM table", conn);

IfxDataReader rdr = cmd.ExecuteReader();

while (rdr.Read())

{

byte[] bson = new byte[rdr.GetBytes(rdr.GetOrdinal("data"), null, 0, 0);

rdr.GetBytes(rdr.GetOrdinal("data"), bson, 0, bson.Length);

objects.Add(BsonSerializer.Deserialize<DataObject>(bson));

}

}

return objects;

}


Even a more generic approach using the BsonDocument type is possible.

Idea Priority Urgent
Priority Justification Server Offload, Length limit of value returned by GetString (for ::JSON casts)
Client Name Sportec Solutions AG
  • Guest commented
    26 Feb 09:32am

    Despite my last comment, it seems that some of the functions (like the GetBytes one) already support the BSON data type, whereas others (like the IsDbNull function) does not. In general, the .NET Core driver has no official support right now for the BSON datatype - therefore it would be nice if this feature (as BSON itself is supported for many years by Informix) would be implemented into the .NET Core driver as soon as possible.

  • Guest commented
    18 Feb 12:53pm

    It seems as if the functionality is undocumented but already implemented in the current 4.50FC5 version of the Informix.Net.Core driver.


IBM's success depends on gathering feedback from customers like yourself. Aha Ideas Portal is the third party tool through which IBM Offering Managers gather feedback from customers such as yourself.
IBM is a global organization with business processes, management structures, technical systems and service provider networks that cross borders. As such, the information collected through Aha Ideas Portal (Customer Name, Customer Email Address) will be stored by them in the United States, and handled only as per IBM's instructions and policies. Your data (Name and Email Address) will NOT be shared with other IBM customers.
In order to safeguard your information in Aha, do not leave your workstation unattended while using this application, log off after using it, and print only if necessary. If you need to make a hardcopy, remember to pick up the print-out immediately, keep it under lock, and destroy it immediately when no longer needed.
NOTICE TO EU RESIDENTS: per EU Data Protection Policy, if you wish to remove your personal information from the IBM ideas portal, please login to the ideas portal using your previously registered information then change your email to "anonymous@euprivacy.out" and first name to "anonymous" and last name to "anonymous". This will ensure that IBM will not send any emails to you about all idea submissions