Start Insufficient base table information for updating or refreshing

Insufficient base table information for updating or refreshing

Because commercial database software makes extensive use of system resources, it is not always practical to have the application and the database at the same host.

Throughput of an application can be limited by the network speed.

This limitation can be minimized by having the database at the application tier.

So it may make sense to add the view definition as a new attribute of Storage Descriptor (since that is already present at both table and partition level).

Update 20-Jan-2010: After further discussion with Prasad, we decided to put the view definition on the table object instead; for details, see discussion in HIVE-972.

Alternately, if we choose to avoid inheritance, then we could just add a new view Text attribute to the existing Table class (leaving it null for base tables): (Storing the view definition as a table property may not work since property values are limited to VARCHAR(767), and view definitions may be much longer than that, so we'll need to use a LOB.) Comparison of the two approaches: Update 30-Dec-2009: Based on a design review meeting, we're going to go with the flat model.

Prasad pointed out that in the future, for materialized views, we may need the view definition to be tracked at the partition level as well, so that when we change the view definition, we don't have to discard existing materialized partitions if the new view result can be derived from the old one.

Caching can improve availability of data, by providing continued service for applications that depend only on cached tables even if the backend server is unavailable.

Views ( are a standard DBMS feature and their uses are well understood.

However, we'll need to decide what kinds of objects can participate in dependencies.

For example, if we restrict it to just tables and views (and assuming we don't introduce inheritance for views), then we can use a model like the one below, in which the dependencies are tracked as (supplier,consumer) table pairs.

So, during column resolution, we map an expression such as "t.*" to replacement text "t.c1, t.c2, t.c3".