Project

General

Profile

Feature #6936

OpenClient with null values at the DataObject (table) fields for native types

Added by Constantin Asofiei over 1 year ago. Updated over 1 year ago.

Status:
WIP
Priority:
High
Target version:
-
Start date:
Due date:
% Done:

90%

billable:
No
vendor_id:
GCD

History

#1 Updated by Constantin Asofiei over 1 year ago

  • Subject changed from OE 1.6 vs OE 1.7 OpenClient differences with null values at the DataObject (table) fields to OE 11.6 vs OE 11.7 OpenClient differences with null values at the DataObject (table) fields

In OE, there seems to be a difference how null values are reported in a ProDataObject.

For example, doing something like this:

ProDataObject row = ... create row with a boolean field
System.out.println(row.get("some-boolean-field");

in OE 11.6.3 will show 'false' instead of null.

Marian, can you please double-check in OE 11.7 or 12 how this behaves?

This behavior where a default value is returned instead of null can be seen for integer and int64 fields, oto.

#2 Updated by Constantin Asofiei over 1 year ago

  • Status changed from New to WIP
  • Assignee set to Constantin Asofiei
  • Priority changed from Normal to High

Marian, do you know in what conditions OE's JavaOpenClient would return null instead of a default value for integer,int64 and logical data-types?

I ask because I'm testing with the customer's OE jars, and I still get the same 'false' instead of 'null' for an unset boolean/logical field. And the customer's testing shows null... I'm trying to understand what configuration or conditions I'm missing in my tests.

#3 Updated by Marian Edu over 1 year ago

Constantin Asofiei wrote:

Marian, do you know in what conditions OE's JavaOpenClient would return null instead of a default value for integer,int64 and logical data-types?

I ask because I'm testing with the customer's OE jars, and I still get the same 'false' instead of 'null' for an unset boolean/logical field. And the customer's testing shows null... I'm trying to understand what configuration or conditions I'm missing in my tests.

Constantin, you might want to check for any typos there... if the field exists (check metadata) it should return the default value for a new row. At least this is my experience with java open client.

#4 Updated by Constantin Asofiei over 1 year ago

Marian Edu wrote:

Constantin, you might want to check for any typos there... if the field exists (check metadata) it should return the default value for a new row. At least this is my experience with java open client.

I understand, but the customer really sees 'null' for a logical field, in a newly created row (something like row = dsTest.createProDataObject("tt1");, and after that calling row.get("logical-field");) at the JavaOpenClient code. It doesn't make any sense.

I don't see anything related to an 'initial' value for the OE generated Java proxy code.

#5 Updated by Constantin Asofiei over 1 year ago

The issue in the end is described by https://community.progress.com/s/article/P133384 , calling RunTimeProperties.setDatasetNullInitials(true) will force the get() to return null for such cases. I'm adding this support to 6129b.

#7 Updated by Constantin Asofiei over 1 year ago

  • Subject changed from OE 11.6 vs OE 11.7 OpenClient differences with null values at the DataObject (table) fields to OpenClient with null values at the DataObject (table) fields for native types
  • Status changed from WIP to Review
  • % Done changed from 0 to 100

Added in 6129b/14324.

#8 Updated by Constantin Asofiei over 1 year ago

  • % Done changed from 100 to 90
  • Status changed from Review to WIP

denormalized extent support is not done at this time.

Also available in: Atom PDF