View Issue Details

IDProjectCategoryView StatusLast Update
000665110000-004: ServicesSpecpublic2023-06-21 12:23
ReporterThilo Bellinger Assigned ToMatthias Damm  
PrioritynormalSeverityminorReproducibilityhave not tried
Status assignedResolutionopen 
Summary0006651: several missing or wrong conversion rules of FilterOperator
Description

The FilterOperator of ContentFilter defines a conversion matrix to convert types.
Some conversion rules are not described and some described conversion rules are not allowed in the conversion matrix.

Additional Information

Conversions from/to matrix (dimensions >= 2):
I would assume that conversions on matrixes should behave like conversions on arrays.
I would assume a conversion from matrix to array (or from matrix to a smaller matrix) should be allowed in the same way as converting an array to a scalar.
The conversion downwards should be allowed when the leading dimensions are 1.
It may be usefull to allow such conversions even through several levels, e.g. from matrix to scalar.
Conversions to higher dimensions should always be allowed (including from scalar to array) by setting the leading dimensions to 1, but maybe it is intended that only conversions downwards are allowed (e.g. an array with more than one entry shall not be comparable to a scalar).

Conversions between ByteString and Guid:
This conversion is defined in the matrix, but not described.
I highly assume that the binary encoding/decoding of Guid shall be used.

Conversion between ByteString and String:
There is a description how to convert a ByteString to String, even though this conversion is not allowed in the conversion matrix.
Either allow a conversion in both directions or remove the description of this conversion.

Conversion from StatusCode to integer types:
The text describes (besides others) how to convert a StatusCode to Int16 and UInt16, but the conversion to Int16 is not allowed in the conversion matrix, only the UInt16 is allowed.
Is this an error in the text or an error in the matrix?
The rule to convert from to Int64 and UInt64 is not described, I highly assume that only the lower 32 bits are used.

Conversion between QualifiedName and String:
This is just a proposal:
Instead of dropping the namespace index the conversion could use the syntax as defined for BrowseNames in the UANodeSet (or as in the BNF for RelativePath), e.g. "1:MyQualifiedName".
The result for all QualifiedNames in namespace 0 would still be the same as they can omit the namespace index in the text.
Note: This proposal may break some existing behavior, e.g. it may be intended that the text contains a colon which shall be passed to the text of the QualifiedName or it can be intended that QualifiedNames of different namespaces can be treated as equal.

Conversion between QualifiedName and LocalizedText:
This conversion rule is not explicitly described, but it is pretty obvious that it shall behave like the current conversions from/to string.
This conversion rule should be documented, especially if the prior conversion proposal between QualifiedName and String is accepted.
The namespace of the QualifiedName should not be taken into the LocalizedText (as it is now).

TagsNo tags attached.
Commit Version
Fix Due Date

Relationships

related to 0009021 assignedMatthias Damm Many detailed clarifications missing of Like 

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2021-03-16 19:06 Thilo Bellinger New Issue
2021-04-13 16:43 Jim Luth Assigned To => Matthias Damm
2021-04-13 16:43 Jim Luth Status new => assigned
2023-06-21 12:23 Matthias Damm Relationship added related to 0009021