instantOLAP Online documentation 2.2.7 - The Type-system

The Type-system

From the version 2.0 instantOLAP uses a type-system (known from programming-languages), where all values belong to a specific type. With the new type-system, instantOLAP can perform better syntax-checks and give better error-messages for your expressions. Also, functions can be combined in a much better way now, because the type-system now exactly controls, which function can be used as argument for other functions.

The type-system is organized in a hierarchy, with types, subtypes and super-types. Some types are createable, which means values with exactly this type can be created. Other types are only "help-types", which group other types to a super-type but can never have instances. "Value" is such a help-type.

A super-type of a type is another type which lies above the type in the hierarchy. E.g. "Value" is a super-type of "Integer". A subtype is a type which, lies under a type in the hierarchy. If a functions expects an argument of type X you can pass any value which has exactly this type X or a subtype of X. E.g. a function expecting an argument of the type "Number" would accept both values of the type "Integer" or "Double".

The following graphs shows all types in instantOLAP and their relationships:

Click to enlarge

Note that dimensions automatically become types in the graph and are always a subtype of "Key". Because of this, each function which expects arguments of the type "Key" will accepts keys from every dimensions.

Contents of this chapter:

All
Any
Boolean
Date
Double
Integer
Key
Number
String
Value

Using the Web-Frontend
Using the Workbench
Using the Query-Editor
Using the Config-Editor
Query properties
Chart properties
Configuration properties
Expressions
The Type-system
All
Any
Boolean
Date
Double
Integer
Key
Number
String
Value
Syntax
Constants
Functions
Formats
SQL-Expressions