View Issue Details

IDProjectCategoryView StatusLast Update
0000818CaseTalk ModelerGeneration (SQL, XML, etc)public2024-12-01 13:03
ReporterBCP Software Assigned ToBCP Software  
PrioritynormalSeverityfeatureReproducibilityN/A
Status assignedResolutionopen 
Target VersionFuture 
Summary0000818: ComplexTypes in Domains
DescriptionSome ObjectTypes containing more than a single role, may be represented by a complextype in some DBMS's. For instance a coordinate system containing both X and Y. Instead of having to columns, some DBMS's may contain this in a single column of the coordinate data type.
Additional InformationUpon GLR and Script generation, conceptual paths could be recognized and collapsed according to complex type names.
TagsNo tags attached.
CaseTalk Edition

Relationships

related to 0002770 resolvedBCP Software Datatype specialization 

Activities

BCP Software

BCP Software

2018-01-29 11:12

administrator   ~0001095

A check could be placed upon Object Types, stating it should be a complex type, and not broken down in separate grouped and lexicalized roles. In NO-SQL environments this could even become a nested Object.

In case a RDBMS does not support the complex type, it could still flatten it as if it doesn't exist.
BCP Software

BCP Software

2018-01-29 11:13

administrator   ~0001096

Visually the solid line of the Object Type in diagrams, could be drawn as a dotted line, similar to Label Types. This should not effect the validation rules, since some DBMS's may still require these to be checked.
BCP Software

BCP Software

2018-02-05 10:23

administrator   ~0001111

Last edited: 2022-05-17 19:42

Non grouped or reduced object types may be considered complex types if the target platform supports them.

PostgreSQL supports multiple variations of complex types. So this might be a good starting point for testing. For instance the JSON datatype:
https://www.postgresql.org/docs/10/static/datatype.html

SQL Server also offers more and more support for objects, such as JSON:
https://docs.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server?view=sql-server-ver15
BCP Software

BCP Software

2019-12-12 21:23

administrator   ~0001553

With the current DataType mappings, it could serve both purposes. When an OT is marked as ComplexType, or corresponds to a DataType name, it could suffice. Even the well-formedness rules could prevent warnings which state OT's are not verbalizable under certain conditions.
BCP Software

BCP Software

2022-05-17 19:37

administrator   ~0004514

Use "NVARCHAR(MAX)" to store json objects in sql server.
BCP Software

BCP Software

2022-05-17 19:40

administrator   ~0004515

Last edited: 2022-05-31 22:39

GLR Profile Settings should provide support to flatten the 'ComplexType' if needed. This allows ComplexTypes to stay intact, the GLR should not transform it, and consider it as a 'Label Type', or flatten it as traditional FCO-IM would want it. Also plugins may specify if they support complex types or not.
BCP Software

BCP Software

2022-09-02 16:32

administrator   ~0004595

Having Object Types marked as a complex type, we still might need to decide to keep it as a hierarchy (JSON) or flatten it (KeyValue list).
BCP Software

BCP Software

2022-09-02 16:35

administrator   ~0004596

GLR might require the structure to be duplicated. As a complex type, the tree might end up as a JSON in one area, and any potentially used parts of it in other areas. This reminds us of the splitting of trees.
BCP Software

BCP Software

2023-11-27 10:05

administrator   ~0005019

Label Types could become subtypes of a Complex Object Type to complete the circle. Also the new 'Structure' entity could be referenced from a Label Type to specify the Document Structure itself as a storage object.
Perhaps this Label Type -> Complex Type would allow an elegant solution to the flattening or not?
BCP Software

BCP Software

2024-12-01 12:38

administrator   ~0005433

Last edited: 2024-12-01 13:03

Label Types do not contain semantics, similarly of an Object Type has no expressions, it should be considered to be a complex type. There's no flag required, unless an Object Type is to be implemented as a complex type.

Issue History

Date Modified Username Field Change
2015-12-11 14:08 BCP Software New Issue
2015-12-11 14:08 BCP Software Status new => assigned
2015-12-11 14:08 BCP Software Assigned To => BCP Software
2016-01-20 12:56 BCP Software Category Generation => Generation (SQL, XML, etc)
2018-01-29 11:12 BCP Software Note Added: 0001095
2018-01-29 11:13 BCP Software Note Added: 0001096
2018-02-05 10:23 BCP Software Note Added: 0001111
2019-12-12 21:23 BCP Software Note Added: 0001553
2019-12-12 21:23 BCP Software Summary ComplexTypes in DBMS => ComplexTypes in Domains
2020-12-22 17:27 BCP Software Relationship added related to 0002770
2022-05-17 19:37 BCP Software Note Added: 0004514
2022-05-17 19:40 BCP Software Note Added: 0004515
2022-05-17 19:42 BCP Software Note Edited: 0001111
2022-05-31 22:39 BCP Software Note Edited: 0004515
2022-09-02 16:32 BCP Software Note Added: 0004595
2022-09-02 16:35 BCP Software Note Added: 0004596
2023-11-27 10:05 BCP Software Note Added: 0005019
2024-12-01 12:38 BCP Software Note Added: 0005433
2024-12-01 13:03 BCP Software Note Edited: 0005433