[JBoss JIRA] (TEIID-3994) AliasSymbol wrapping AliasSymbol error
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/TEIID-3994?page=com.atlassian.jira.plugin... ]
RH Bugzilla Integration commented on TEIID-3994:
------------------------------------------------
Alex Szczuczko <aszczucz(a)redhat.com> changed the Status of [bug 1314909|https://bugzilla.redhat.com/show_bug.cgi?id=1314909] from MODIFIED to ON_QA
> AliasSymbol wrapping AliasSymbol error
> --------------------------------------
>
> Key: TEIID-3994
> URL: https://issues.jboss.org/browse/TEIID-3994
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.7.1.6_2
> Environment: Red Hat JBoss Data Virtualization 6.2 on EAP6.4.0 patched to version 6.4.3,
> JBoss Developer Studio 8.1.0GA with Teiid Designer plugin 9.0.3.Final.v20150810-1438-B1157
> 64-bit Windows 7 environment
> Reporter: Steve Tran
> Assignee: Steven Hawkins
> Fix For: 9.0, 8.12.5, 8.13.2
>
> Attachments: Oracle.PNG, SQLServer.PNG
>
>
> I've defined a view and overrode the default triggers for Select, Insert, Update, and Delete. I overrode the triggers because the select is returning "hardcoded" values for a few fields (calling them virtual columns). The Update and Insert triggers will ignore these hardcoded values just in case the caller tries to update a virtual column.
> I'm trying to run a insert into <tableA> select * from <tableB> query. When I run this, I get an error org.teiid.jdbc.TeiidSQLException: Cannot create AliasSymbol wrapping AliasSymbol.
> Facts:
> -- I can insert a record if I only select one column from tableB.
> -- If I select two or more columns, it throws the error every time.
> -- If I remove the overridden triggers, the insert into <tableA> select * from <tableB> works fine.
> -- I can insert one or more columns into <tableA> when *not* using a insert into <tableA> select * from <tableB> query
> -- Table A is Oracle
> -- Table B is SQL Server
> My hunch is the generated query (hibernate, or whatever SQL generator) is choking with the overridden trigger. Perhaps this use-case slipped through testing, or even more probable, I made a mistake in the trigger creation.
> Here's a snip of the insert trigger, with a lot of fields removed for simplicity.
> {code}
> FOR EACH ROW
> BEGIN ATOMIC
> INSERT INTO <schema>.<tableA> (SourceSystemID, RecordTypeID, BatchID ...)
> VALUES (
> convert("NEW".SourceSystemID, short),
> convert("NEW".RecordTypeID, short),
> convert("NEW".BatchID, integer)
> ...
> )
> END
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
10 years
[JBoss JIRA] (TEIID-4103) OData - wrong string indexing in string functions indexof and substring
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4103?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-4103:
---------------------------------------
> It may be easier to add additional system functions in Teiid for these, what do you think?
No that should be avoided as most other sql functions are 1 based and we don't want to have a lot of issues determining pushdown support.
> OData - wrong string indexing in string functions indexof and substring
> ------------------------------------------------------------------------
>
> Key: TEIID-4103
> URL: https://issues.jboss.org/browse/TEIID-4103
> Project: Teiid
> Issue Type: Sub-task
> Components: OData
> Reporter: Michal Sanitrak
> Assignee: Ramesh Reddy
>
> By documentation \[1\] function indexof returns the zero-based character position of the first occurrence of the second parameter value in the first parameter value.
> Function substring doens't have explicitly specified indexing, but based on _Example 60_ \[2\] is function substring _zero-based_ too.
> *indexof*
> Reference service which supports OData V4:
> *ULR:* http://services.odata.org/V4/Northwind/Northwind.svc/Customers/?$filter=i...,'lfreds') eq 1
> *Result:* Customer with CompanyName equals "Alfreds Futterkiste"
> *URL:* http://localhost:8080/odata4/olingo_basic/Source/SimpleDataTable/?$filter...,'alue') eq 1
> *Result:* No entities
> *Expected result:* Entity with intkey 1,2,3,4,8,9,10,11,12
> *substring*
> Reference service which supports OData V4:
> *URL:* http://services.odata.org/V4/Northwind/Northwind.svc/Customers/?$filter=i...,'lfreds') eq 1
> *Result:* Customer with CompanyName equals "Alfreds Futterkiste"
> *ULR:* http://localhost:8080/odata4/olingo_basic/Source/SimpleDataTable/?$filter..., 1) eq 'alue_asdf'
> *Result:* No entities
> *Expected result:* Entity with intkey 10
> \[1\] https://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part2-u...
> \[2\] https://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part2-u...
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
10 years
[JBoss JIRA] (TEIID-4103) OData - wrong string indexing in string functions indexof and substring
by Ramesh Reddy (JIRA)
[ https://issues.jboss.org/browse/TEIID-4103?page=com.atlassian.jira.plugin... ]
Ramesh Reddy commented on TEIID-4103:
-------------------------------------
SQL functions are 1 based index, for the OData functions
- Contains
- Substring
- IndexOf
need to be modified. [~shawkins] It may be easier to add additional system functions in Teiid for these, what do you think?
> OData - wrong string indexing in string functions indexof and substring
> ------------------------------------------------------------------------
>
> Key: TEIID-4103
> URL: https://issues.jboss.org/browse/TEIID-4103
> Project: Teiid
> Issue Type: Sub-task
> Components: OData
> Reporter: Michal Sanitrak
> Assignee: Ramesh Reddy
>
> By documentation \[1\] function indexof returns the zero-based character position of the first occurrence of the second parameter value in the first parameter value.
> Function substring doens't have explicitly specified indexing, but based on _Example 60_ \[2\] is function substring _zero-based_ too.
> *indexof*
> Reference service which supports OData V4:
> *ULR:* http://services.odata.org/V4/Northwind/Northwind.svc/Customers/?$filter=i...,'lfreds') eq 1
> *Result:* Customer with CompanyName equals "Alfreds Futterkiste"
> *URL:* http://localhost:8080/odata4/olingo_basic/Source/SimpleDataTable/?$filter...,'alue') eq 1
> *Result:* No entities
> *Expected result:* Entity with intkey 1,2,3,4,8,9,10,11,12
> *substring*
> Reference service which supports OData V4:
> *URL:* http://services.odata.org/V4/Northwind/Northwind.svc/Customers/?$filter=i...,'lfreds') eq 1
> *Result:* Customer with CompanyName equals "Alfreds Futterkiste"
> *ULR:* http://localhost:8080/odata4/olingo_basic/Source/SimpleDataTable/?$filter..., 1) eq 'alue_asdf'
> *Result:* No entities
> *Expected result:* Entity with intkey 10
> \[1\] https://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part2-u...
> \[2\] https://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part2-u...
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
10 years
[JBoss JIRA] (TEIID-4104) FORMATTIMESTAMP function is not correctly pushed down when a colum is passed as FORMAT argument
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4104?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-4104.
-----------------------------------
Resolution: Out of Date
This does not occur on master - the engine will reject the pushdown if it cannot validate the format literal. I know there were issues that affected the format pushdown logic in 8.7.x, but I'm not sure what you are seeing here.
> FORMATTIMESTAMP function is not correctly pushed down when a colum is passed as FORMAT argument
> -----------------------------------------------------------------------------------------------
>
> Key: TEIID-4104
> URL: https://issues.jboss.org/browse/TEIID-4104
> Project: Teiid
> Issue Type: Bug
> Reporter: Salvatore R
> Assignee: Steven Hawkins
>
> I defined in PostgreSQL the following table:
> {code:sql}
> CREATE TABLE public.test
> (
> ts timestamp without time zone,
> fmt character varying(100)
> );
> {code}
> Running this query:
> {code:sql}
> select FORMATTIMESTAMP(ts, fmt) from pg.test;
> {code}
> throws the following exception:
> {code}
> 13:44:21,778 WARN [org.teiid.CONNECTOR] (Worker3_QueryProcessorQueue19) J0VWrGay8mz0 Connector worker process failed for atomic-request=J0VWrGay8mz0.8.0.2: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT formattimestamp(g_0."ts", g_0."fmt") FROM "public"."test" AS g_0]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.12.0.CR1.jar:8.12.0.CR1]
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:349)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_67]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_67]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_67]
> at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_67]
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> at com.sun.proxy.$Proxy47.execute(Unknown Source)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_67]
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_67]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_67]
> at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_67]
> Caused by: org.postgresql.util.PSQLException: ERROR: function formattimestamp(timestamp without time zone, character varying) does not exist
> Hint: No function matches the given name and argument types. You might need to add explicit casts.
> Character: 8
> at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2157)
> at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1886)
> at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:555)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:302)
> at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:462)
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:123) [translator-jdbc-8.12.0.CR1.jar:8.12.0.CR1]
> ... 18 more
> {code}
> A similar exception is thrown not only in PostgreSQL but also in other datasources like MySQL, Oracle or Microsoft SQL Server.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
10 years