]
Ramesh Reddy commented on TEIID-4121:
-------------------------------------
If the STATUS table is external, there is no good way to create this on deployment, unless
we have an internal database that we can create on deployment. I think, we wanted to give
the name of the Table to choice by the user, thus it can be defined on the VIEW property.
What is the issue with having multiple tables? Note that each VIEW can be materialized a
different database.
Enhancing the External Materialization
--------------------------------------
Key: TEIID-4121
URL:
https://issues.jboss.org/browse/TEIID-4121
Project: Teiid
Issue Type: Sub-task
Components: Query Engine
Affects Versions: 9.x
Reporter: Kylin Soong
Assignee: Steven Hawkins
Fix For: 9.0
The intention of move "status" table to physical database is to increase
durable and fully control refresh and loading, but it increase the complexity.
The "status" table by design should unique for whole VDB, if you look the
https://teiid.gitbooks.io/documents/content/caching/External_Materializat...,
the table structure:
{code:sql}
CREATE TABLE status
(
VDBName varchar(50) not null,
VDBVersion integer not null,
SchemaName varchar(50) not null,
Name varchar(256) not null,
TargetSchemaName varchar(50),
TargetName varchar(256) not null,
Valid boolean not null,
LoadState varchar(25) not null,
Cardinality long,
Updated timestamp not null,
LoadNumber long not null,
PRIMARY KEY (VDBName, VDBVersion, SchemaName, Name)
);
{code}
but currently, one VDB may have multiple "status" table, each view may have
it's own "status" table. Further more, we can consider create status table
automatically, which like internal, status create once VDB start, and configured in VDB
scope.
From finishedDeployment logic in MaterializationManager, MATERIALIZED_TABLE be used to
determine whether the Mat is internal or external, But we lack the validation in metadata
loading, in my previous test, the Internal Mat view configured lots of external view's
properties like "status" table, the validation not throw excepton.