Data Source Toolkit Guide > Configuration Files > Data Type Naming
 
Data Type Naming
This topic discusses data types in configurations for extension adapters and data sources.
TDV Types
For extension adapters, TDV supertypes are named in such a way that no leaf type and supertype have the same name, even when prefix characters like ~ and @ have been removed. For example, supertype ~date is now referred to as dates, to distinguish it from the leaf type date (formerly denoted @date). The new type names appear in YAML configuration files and in Studio.
The table shows the source hierarchy of supertypes (in bold) and leaf types. The right column lists the names that are used for extension adapters.
Source (capabilities files for built-in adapters)
Target (YAML files)
~any
 
 
 
any
 
~number
 
 
numbers
 
 
~whole_number
 
integers
 
 
 
@bit
bit
 
 
 
@integer
integer
 
 
 
@smallint
smalling
 
 
 
@tinyint
tinyint
 
 
 
@bigint
bigint
 
 
~floating_point
 
floats
 
 
 
@float
float
 
 
 
@real
real
 
 
 
@double
double
 
 
 
@decimal
decimal
 
 
 
@numeric
numeric
 
~string
 
 
strings
 
 
@char
 
char
 
 
@varchar
 
varchar
 
 
@longvarchar
 
longvarchar
 
~binary
 
 
binaries
 
 
@binary
 
binary
 
 
@varbinary
 
varbinary
 
~date
 
 
dates
 
 
@date
 
date
 
 
@time
 
time
 
 
@timestamp
 
timestamp
 
~lob
 
 
lobs
 
 
@clob
 
clob
 
 
@blob
 
blob
 
@boolean
 
 
boolean
 
@null
 
 
null
 
~interval_year
 
 
year_intervals
 
 
@interval_year_to_month
 
interval_year_to_month
 
 
@interval_year
 
interval_year
 
 
@interval_month
 
interval_month
 
~interval_day
 
 
day_intervals
 
 
@interval_day
 
interval_day
 
 
@interval_hour
 
interval_hour
 
 
@interval_minute
 
interval_minute
 
 
@interval_second
 
interval_second
 
 
@interval_day_to_hour
 
interval_day_to_hour
 
 
@interval_day_to_minute
 
interval_day_to_minute
 
 
@interval_day_to_second
 
interval_day_to_second
 
 
@interval_hour_to_minute
 
interval_hour_to_minute
 
 
@interval_hour_to_second
 
interval_hour_to_second
 
 
@interval_minute_to_second
 
interval_minute_to_second
 
@xml
 
 
xml
All Types
In extension adapter configurations and data source overrides, TDV and native data type names appear in these areas:
Data type mappings
Clause support
Operator mappings
Function mappings
Native and TDV types often have the same name—for example, TDV’s date and Oracle's date. In capabilities files for built-in adapters, the two are differentiated using prefixes. A TDV supertype name would start with ~ (for example, ~date), a TDV leaf type would begin with @
(for example, @date) and a native type would have no prefix (for example, Oracle’s native type called date).
For extension adapters, the @ and ~ prefixes are no longer used. Whole-word prefixes, followed by a dot, now distinguish between native and TDV types:
cis.date—TDV leaf type
cis.dates—TDV super type
native.date—Oracle’s native type
It is recommended that you use the prefixes only in those parts of the configuration file where both TDV and native types can appear; that is, function and operator mappings. For instance, the same function can list both native and TDV types in the same argument combination.
Because data type mappings and clause support specifically request either TDV or native types, no ambiguity can occur and so no prefixes are required:
The data type mapping configuration section specifies TDV-to-native mappings and native-to-TDV mappings separately.
A configuration item describing a particular clause specifies unsupported native types and TDV native types separately.
For these sections, prefixes are unnecessary and discouraged for the sake of brevity.
Here are examples of how to refer to types for data type mappings and clauses:
date—TDV leaf type
dates—TDV supertype
date—Oracle's native type
Defining Functions in YAML
If you want to define a function as STRICT, add a new function entry in YAML, for example:
ascii.strict:
display_name: ASCII
native_expression:
arguments:
combination1:
arguments_in_order:
- cis.numbers, cis.strings
Notice that just like its traditional capability counterpart, the function mapping's native_expression property is left as blank.
After that if the query has strict option enabled, then the function will not be pushed down:
SELECT {option strict}
ascii(rid) a
FROM
<table name>