[JBoss JIRA] (TEIID-4750) Map to BigInteger in more circumstances
by Steven Hawkins (JIRA)
Steven Hawkins created TEIID-4750:
-------------------------------------
Summary: Map to BigInteger in more circumstances
Key: TEIID-4750
URL: https://issues.jboss.org/browse/TEIID-4750
Project: Teiid
Issue Type: Enhancement
Components: JDBC Connector
Reporter: Steven Hawkins
Assignee: Steven Hawkins
Fix For: 10.0
We currently default to a bigdecimal mapping when a more specific biginteger mapping could be used. I think the original intent was to lessen our usage of the biginteger type as it's effectively derived from bigdecimal, but because of the weakness in the handling of precision/scale as the types propagate, biginteger can be more appropriate.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 10 months
[JBoss JIRA] (TEIID-4749) Cassandra type mapping
by Steven Hawkins (JIRA)
Steven Hawkins created TEIID-4749:
-------------------------------------
Summary: Cassandra type mapping
Key: TEIID-4749
URL: https://issues.jboss.org/browse/TEIID-4749
Project: Teiid
Issue Type: Enhancement
Components: Misc. Connectors
Reporter: Steven Hawkins
Assignee: Kylin Soong
Fix For: 9.3
With TEIID-4476 there are more cassandra types mapped. When possible we should avoid mapping to Teiid object. Lists most naturally can be mapped to an array. Several of the other types may be appropriate to map this way, or even to json (for map support).
We also need to then ensure update handling with the conversion of the runtime type back to the expected Cassandra object type.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 10 months
[JBoss JIRA] (TEIID-4743) Dependent View with External Materialization load problems
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4743?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-4743.
-----------------------------------
Resolution: Done
Addressed by looking for admin operations when the base vdb is in the loading state and will wait instead. Also modified the delay behavior to be progressive, rather than fixed. We should work to refine that later based upon change events on the status table(s).
> Dependent View with External Materialization load problems
> ----------------------------------------------------------
>
> Key: TEIID-4743
> URL: https://issues.jboss.org/browse/TEIID-4743
> Project: Teiid
> Issue Type: Bug
> Components: Common
> Affects Versions: 9.1.2
> Environment: # MySql 5.6.35
> # WildFly 10
> # Teiid Server 9.1.2
> Reporter: Pedro Inácio
> Assignee: Steven Hawkins
> Fix For: 9.2
>
> Attachments: ddl.sql, externalMaterializationOrderProblem-vdb.xml, numberingPlan-vdb.xml
>
>
> Having defined two views with external materialization, and second view (my_view) uses the first view (numbering_plan).
> {panel:title=Second view (my_view) definition}
> CREATE VIEW my_view(
> ...
> )
> OPTIONS(
> MATERIALIZED 'TRUE',
> MATERIALIZED_TABLE 'MyMaterialized.my_view_cache',
> ....
> )
> AS
> SELECT cns,
> country_code
> FROM NumberingPlan2.numbering_plan;
> {panel}
> When _my_view_ is loaded for the first time the following error appears:
> {panel:title=First Warning}
> 14:41:13,693 WARN [org.teiid.MATVIEWS] (Worker1_QueryProcessorQueue27) 7qmYa3eWflIY org.teiid.jdbc.TeiidSQLException: TEIID30328 Unable to evaluate (SELECT mvstatus('NumberingPlan2', 'numbering_plan', Valid, LoadState, 'THROW_EXCEPTION') FROM (SELECT 1) AS x LEFT OUTER JOIN NumberingPlanMaterialized2.status ON SchemaName = 'NumberingPlan2' AND Name = 'numbering_plan' LIMIT 2): TEIID30328 Unable to evaluate mvstatus('NumberingPlan2', 'numbering_plan', Valid, LoadState, 'THROW_EXCEPTION'): TEIID30384 Error while evaluating function mvstatus
> {panel}
> If _my_view _is queried in the meantime something like this appears in logs (and in the client who tried to perform the query against _my_view_):
> {panel:title=Invoking my_view error}
> 14:49:04,493 WARN [org.teiid.PROCESSOR] (Worker7_QueryProcessorQueue10979) 57KCZOf/UjCV TEIID30020 Processing exception for request 57KCZOf/UjCV.0 'Group does not exist: my_view'. Originally QueryResolverException ResolverUtil.java:880. Enable more detailed logging to see the entire stacktrace.
> {panel}
> We have to wait until _my_view_ *MATVIEW_TTL* 'expires' in order for the view to be loaded and start to have results being returned. Of course we can call *loadMatView *explicitly, but the system could be wise enough to know that has one view that is dependent of another and that the materialization must occur first, so it should have waited in the background for the _numbering_plan _materialization to occur and then trigger the materialization of _my_view_ afterwards (or if the materialization is not available then at least consult the 'original' data instead).
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 10 months
[JBoss JIRA] (TEIID-4732) Teiid Server does not honor columns name in external materialization
by Johnathon Lee (JIRA)
[ https://issues.jboss.org/browse/TEIID-4732?page=com.atlassian.jira.plugin... ]
Johnathon Lee updated TEIID-4732:
---------------------------------
Fix Version/s: 8.7.12.6_2
> Teiid Server does not honor columns name in external materialization
> --------------------------------------------------------------------
>
> Key: TEIID-4732
> URL: https://issues.jboss.org/browse/TEIID-4732
> Project: Teiid
> Issue Type: Bug
> Components: Common
> Affects Versions: 9.1.2
> Environment: * WildFly 10
> * Teiid Server 9.1.2
> * CentOs 7
> * MySQL 5.6.35
> Reporter: Pedro Inácio
> Assignee: Steven Hawkins
> Fix For: 9.0.6, 9.1.3, 8.7.12.6_2
>
> Attachments: NumberingPlan.csv, externalMaterializationOrderProblem-vdb.xml, mySqlCreateTable.sql, numberingPlan-vdb.xml
>
>
> When defining a View with external materialization, if the view does not specify the columns in the same order as they are defined in the Materialized Table, Teiid Server inserts data in the wrong columns (in the order that is defined in the view). It appears that Teiid Server does not use the columns names but instead uses the column indexes.
> Example:
> If the view is defined like this:
> {code:sql}
> CREATE VIEW my_view (
> cns varchar(400),
> country_code varchar(400)
> )
> {code}
> And the tables in the database are defined like this:
> {code:sql}
> CREATE TABLE my_view_cache_staging (
> country_code VARCHAR(400),
> cns VARCHAR(400)
>
> );
> CREATE TABLE my_view_cache (
> country_code VARCHAR(400),
> cns VARCHAR(400)
> );
> {code}
> Then when loadMatView runs, it will insert in country_code column in database the values from cns (view) and in cns column in database the values from country_code (view).
> But if the view is defined like this:
> {code:sql}
> CREATE VIEW my_view (
> country_code varchar(400),
> cns varchar(400)
> )
> {code}
> Then Teiid will insert the data "correctly".
> It appears that loadMatView is using indexes instead of column names to insert the data.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 10 months
[JBoss JIRA] (TEIID-4748) Provide translator/connector for calling Java api
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4748?page=com.atlassian.jira.plugin... ]
Steven Hawkins reassigned TEIID-4748:
-------------------------------------
Assignee: Van Halbert (was: Steven Hawkins)
There needs to be a lot more details here.
> calling a java method on an API that returns an object (or collection)
If we're talking about static logic, this can already be provided by a UDF.
If it's not static, then the question of the statefulness is likely to be a resource adapter issue (overlapping with the last bullet). Without additional metadata this would likely be a readonly case.
> the return object should be exposed as a table
This can be done either in the translator layer or with objecttable.
> the resource adapter should be able to provide the connection to the java api (either remote or local)
Can you clarify what this means - unless you are talking about a standard access mechanism, such as an EJB. There isn't a generic notion of local vs remote connectivity.
> The object translator has, at its core, the base for handling all the reflection logic for reading and writing on a java object. It may make sense to refactor out the core logic for reuse.
It already has been - it's the objecttable table function.
> Provide translator/connector for calling Java api
> -------------------------------------------------
>
> Key: TEIID-4748
> URL: https://issues.jboss.org/browse/TEIID-4748
> Project: Teiid
> Issue Type: Feature Request
> Components: Misc. Connectors
> Reporter: Van Halbert
> Assignee: Van Halbert
>
> Provide a translator/connector for doing the following:
> - calling a java method on an API that returns an object (or collection)
> - the return object should be exposed as a table
> - the resource adapter should be able to provide the connection to the java api (either remote or local)
> This scenario doesn't work with the current object translator, as its based on reading from a cache (map) and the connection methods are exposed based on that scenario.
> The object translator has, at its core, the base for handling all the reflection logic for reading and writing on a java object. It may make sense to refactor out the core logic for reuse.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 10 months
[JBoss JIRA] (TEIID-4748) Provide translator/connector for calling Java api
by Van Halbert (JIRA)
Van Halbert created TEIID-4748:
----------------------------------
Summary: Provide translator/connector for calling Java api
Key: TEIID-4748
URL: https://issues.jboss.org/browse/TEIID-4748
Project: Teiid
Issue Type: Feature Request
Components: Misc. Connectors
Reporter: Van Halbert
Assignee: Steven Hawkins
Provide a translator/connector for doing the following:
- calling a java method on an API that returns an object (or collection)
- the return object should be exposed as a table
- the resource adapter should be able to provide the connection to the java api (either remote or local)
This scenario doesn't work with the current object translator, as its based on reading from a cache (map) and the connection methods are exposed based on that scenario.
The object translator has, at its core, the base for handling all the reflection logic for reading and writing on a java object. It may make sense to refactor out the core logic for reuse.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 10 months
[JBoss JIRA] (TEIID-4745) Avoid loading the same file over again when using 'org.jboss.teiid.resource-adapter.file'
by Pedro Inácio (JIRA)
[ https://issues.jboss.org/browse/TEIID-4745?page=com.atlassian.jira.plugin... ]
Pedro Inácio commented on TEIID-4745:
-------------------------------------
Ok, I understand.
This is a nice to have.
Do you want me to close this?
> Avoid loading the same file over again when using 'org.jboss.teiid.resource-adapter.file'
> -----------------------------------------------------------------------------------------
>
> Key: TEIID-4745
> URL: https://issues.jboss.org/browse/TEIID-4745
> Project: Teiid
> Issue Type: Enhancement
> Environment: * WildFly 10
> * Teiid Server 9.1.2
> * CentOs 7
> Reporter: Pedro Inácio
> Assignee: Steven Hawkins
>
> When using the file resource adapter _org.jboss.teiid.resource-adapter.file_, it should be possible that the system per se, by the means of a new property in the resource-adapter, or other option in the view definition, or other configuration elsewhere, to not to unnecessary load a file that is already loaded. Theoretically it should be possible, for example, to check the file date or the file checksum, to see if the file is already loaded by _Teiid_. If it is, then there is no need to parse the file again.
> This is important due to, specially, performance improvements. If there are a lot of files to be processed, and these files are big (200 MB or more), the system will be processing over and over again the same files if they are not updated for quite some time.
> If, for example, the user uses a Materialized View, then the view will be constantly being updated with the same data, which brings another performance penalty.
> *Note*: This could be extended to other resource-adapters with some sort of last data date for example, if the user whant to use this sort of mechanism. For example, if using a database like MySQL as source, then tthe user could define a last update table, and the system could do a check first against this table before tryng to load the data.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 10 months