-
Notifications
You must be signed in to change notification settings - Fork 6
Tilda JSON Syntax: View Columns
Laurent Hasson edited this page Aug 28, 2019
·
24 revisions
<-- View Syntax
Views contain columns as a baseline for their definition. That’s pretty obvious. Although many elements are shared with Object columns, view columns are very different: for example, they allow aggregates, expressions, are picked from a source column in either another view or a root table etc... A view column looks like the following:
// A regular view column
{ "sameAs":"someSchema.SomeTable.someColumn" // let's assume it's a date time column
,"name": "someColumnX"
,"coalesce":'1111-11-11'
,"as":"_2"
,"description":"Type"
,"formulaOnly": true|false
,"joinOnly": true|false
}
// An aggregate view column
{ "sameAs":"someSchema.SomeTable.someColumnInt"
,"name": "someColumnIntX"
,"description":"ColumnInt X blah blah blah"
,"aggregate": "SUM"|"AVG"|"MIN"|"FIRST"|"MAX"|"LAST"|"DEV"|"VAR"|"COUNT"|"ARRAY"
,"orderBy":["col1","col2"]
,"distinct": true|false
,"filter": "\"colA\" > 10"
}
// An expression view column
{ "sameAs":"someSchema.SomeTable.someColumnDateTime" // let's assume it's a date time column
,"name": "someColumnDateTimeX"
,"description":"ColumnDate X blah blah blah"
,"expression":"?::DATE" // convert to a DATE
,"type": "DATE" // new type
,"size": 2 // only for STRING type expressions
}
// A .* view column
{ "sameAs":"someSchema.SomeTable2.*"
,"prefix":"abc_"
,"exclude":["col1","col2"]
,"block":["colA","colB"]
}
The fields are:
- sameAs: the mandatory source of the column, which could come from a Table or another View. the format is <package_name>.<schema_name>.<table_name|view_name>.<column_name>. If referencing a column in the same schema as the defined view, <package_name>.<schema_name> doesn't need to be specified.
- name: an optional renaming of the column. This is useful if creating a view over multiple tables where there are duplicate column names. See the Tilda Naming Convention.
- type: A type for the column. Tilda uses a generic type system. See the Tilda Type System.
- description: a meaningful description of the column, which could contain plain HTML, and which will be output in the automatically generated documentation (JavaDocs as well as HTML SchemaDocs).