[JBoss JIRA] (TEIID-3203) Determine automatically when to use data shipment joins
by Steven Hawkins (JIRA)
Steven Hawkins created TEIID-3203:
-------------------------------------
Summary: Determine automatically when to use data shipment joins
Key: TEIID-3203
URL: https://issues.jboss.org/browse/TEIID-3203
Project: Teiid
Issue Type: Enhancement
Components: Query Engine
Reporter: Steven Hawkins
Assignee: Steven Hawkins
Fix For: 8.10
The full pushdown of a dependent join is currently only hint driven. We should allow the optimizer to select the push down more broadly.
--
This message was sent by Atlassian JIRA
(v6.3.8#6338)
10 years, 1 month
[JBoss JIRA] (TEIID-3140) Add getVDBType() method to the VDB interface
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-3140?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-3140:
---------------------------------------
Hasn't been anymore on this for a while. Is it sufficient to add isXMLDeployment to the VDB interface?
> Add getVDBType() method to the VDB interface
> --------------------------------------------
>
> Key: TEIID-3140
> URL: https://issues.jboss.org/browse/TEIID-3140
> Project: Teiid
> Issue Type: Enhancement
> Reporter: Barry LaFond
> Assignee: Steven Hawkins
>
> Because Teiid supports mutliple VDB types, any tooling designed to interact (edit, deploy, undeploy, display etc...) with the runtime VDBs will need to be able to easilly distinguish what each VDB type is.
> Currently Teiid Designer utilizes PREVIEW and defeault VDBs with *vdb* file extensions and there are 2 types of dynamic VDBs, *xml* and *zip* files backed by DDL model metadata definitions.
> The current VDB interface currently doesn't provide a type.
> Request adding something like:
> {code}
> public enum VDBType {DEFAULT, PREVIEW, XML, DDL}
> /**
> * @return the vdb type
> */
> public VDBType getVDBType();
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.8#6338)
10 years, 1 month
[JBoss JIRA] (TEIID-3145) GroovyCastException when starting adminshell
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-3145?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-3145.
-----------------------------------
Resolution: Out of Date
Marking this issue as out of date as there is nothing more we will do on the community side.
> GroovyCastException when starting adminshell
> --------------------------------------------
>
> Key: TEIID-3145
> URL: https://issues.jboss.org/browse/TEIID-3145
> Project: Teiid
> Issue Type: Bug
> Components: Tools
> Affects Versions: 8.7.1
> Reporter: Van Halbert
> Assignee: Van Halbert
>
> When I run adminshell.sh, admishell will throw following exception:
> Exception in thread "main" org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'org.codehaus.groovy.tools.shell.util.HelpFormatter@3004baef' with class 'org.codehaus.groovy.tools.shell.util.HelpFormatter' to class 'org.apache.commons.cli.HelpFormatter'
> at org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.castToType(DefaultTypeTransformation.java:360)
> at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:2394)
> at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:3335)
> at groovy.lang.MetaClassImpl.setProperties(MetaClassImpl.java:1497)
> at org.codehaus.groovy.runtime.callsite.ConstructorSite$NoParamSite.callConstructor(ConstructorSite.java:122)
> at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57)
> at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
> at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190)
> at org.codehaus.groovy.tools.shell.Main.main(Main.groovy:50)
> at org.teiid.adminshell.GroovyAdminShell.main(GroovyAdminShell.java:30)
--
This message was sent by Atlassian JIRA
(v6.3.8#6338)
10 years, 1 month
[JBoss JIRA] (TEIID-3202) Add the translator to the log entry when the model is loaded
by Van Halbert (JIRA)
Van Halbert created TEIID-3202:
----------------------------------
Summary: Add the translator to the log entry when the model is loaded
Key: TEIID-3202
URL: https://issues.jboss.org/browse/TEIID-3202
Project: Teiid
Issue Type: Enhancement
Components: Server
Reporter: Van Halbert
Assignee: Steven Hawkins
Priority: Optional
When the server starts up and there's a log entry for the model when its loaded. Example:
11:00:29,691 INFO [org.teiid.RUNTIME] (MSC service thread 1-2) TEIID50029 VDB QT_Hive_Push.1 model "Source" metadata is currently being loaded. Start Time: 9/25/14 11:00 AM
It would be nice to have the associated translator that was assigned at load time. This can be helpful to tracking down issues.
--
This message was sent by Atlassian JIRA
(v6.3.8#6338)
10 years, 1 month
[JBoss JIRA] (TEIID-3201) Pushing a predicate when it is used only in a window function partition
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-3201?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-3201.
-----------------------------------
Fix Version/s: 8.9
Resolution: Done
Removed the check for order by. It is sufficient that the predicate is just over the partitioning - with one caveat that we'll assume that the predicate is deterministic.
> Pushing a predicate when it is used only in a window function partition
> -----------------------------------------------------------------------
>
> Key: TEIID-3201
> URL: https://issues.jboss.org/browse/TEIID-3201
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.7
> Reporter: Bram Gadeyne
> Assignee: Steven Hawkins
> Fix For: 8.9
>
>
> The issue was described in the following community post: https://developer.jboss.org/thread/249972
> I have a table that contains some temperature values. I'd like to make some time series selecting the previous value by joining all previous values and selecting the first previous value using the rank function.
> e.g.
> select v.*
> from(
> select mv1.admissionid, mv1.time as temptime, mv1.value as degrees, mv2.time as previoustime, mv2.value as previousdegrees,
> rank() over(partition by mv1.admissionid, mv1.time order by mv2.time desc) as rang
> from cos2_monitorvalue mv1
> left join cos2_monitorvalue mv2 on
> mv2.admissionid = mv1.admissionid and
> mv2.time < mv1.time and
> mv2.variableid = mv1.variableid
> where mv1.variableid = 'TEMPCENTR'
> ) v
> where v.rang = 1 and
> v.admissionid = 11111
> Is there a way to tell Teiid that v.admissionid should be used when selecting rows from mv1?
> Reply from Steven Hawkins on this question:
> The current logic (8.4+) is checking if the predicate is compatible with the partition, but if there is an ordering on the window function then the predicate won't be pushed. This is too strict for the case that you have where the predicate is just over the partition - if it were against any other columns it could alter the aggregate values. Can you convert this to an issue?
--
This message was sent by Atlassian JIRA
(v6.3.8#6338)
10 years, 1 month
[JBoss JIRA] (TEIID-3201) Pushing a predicate when it is used only in a window function partition
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-3201?page=com.atlassian.jira.plugin... ]
Steven Hawkins updated TEIID-3201:
----------------------------------
Summary: Pushing a predicate when it is used only in a window function partition (was: Pushing a predicate when it is used in an order by statement in a window function)
Component/s: Query Engine
> Pushing a predicate when it is used only in a window function partition
> -----------------------------------------------------------------------
>
> Key: TEIID-3201
> URL: https://issues.jboss.org/browse/TEIID-3201
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.7
> Reporter: Bram Gadeyne
> Assignee: Steven Hawkins
>
> The issue was described in the following community post: https://developer.jboss.org/thread/249972
> I have a table that contains some temperature values. I'd like to make some time series selecting the previous value by joining all previous values and selecting the first previous value using the rank function.
> e.g.
> select v.*
> from(
> select mv1.admissionid, mv1.time as temptime, mv1.value as degrees, mv2.time as previoustime, mv2.value as previousdegrees,
> rank() over(partition by mv1.admissionid, mv1.time order by mv2.time desc) as rang
> from cos2_monitorvalue mv1
> left join cos2_monitorvalue mv2 on
> mv2.admissionid = mv1.admissionid and
> mv2.time < mv1.time and
> mv2.variableid = mv1.variableid
> where mv1.variableid = 'TEMPCENTR'
> ) v
> where v.rang = 1 and
> v.admissionid = 11111
> Is there a way to tell Teiid that v.admissionid should be used when selecting rows from mv1?
> Reply from Steven Hawkins on this question:
> The current logic (8.4+) is checking if the predicate is compatible with the partition, but if there is an ordering on the window function then the predicate won't be pushed. This is too strict for the case that you have where the predicate is just over the partition - if it were against any other columns it could alter the aggregate values. Can you convert this to an issue?
--
This message was sent by Atlassian JIRA
(v6.3.8#6338)
10 years, 1 month
[JBoss JIRA] (TEIID-3198) NPE on running an "execute immediate" command defined in a virtual procedure (Teiid-8.9.0-CR2)
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-3198?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-3198.
-----------------------------------
Resolution: Done
Updated the logic to check for update commands. Now we'll correctly set rowcount as well.
> NPE on running an "execute immediate" command defined in a virtual procedure (Teiid-8.9.0-CR2)
> ----------------------------------------------------------------------------------------------
>
> Key: TEIID-3198
> URL: https://issues.jboss.org/browse/TEIID-3198
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.7
> Reporter: Salvatore R
> Assignee: Steven Hawkins
> Fix For: 8.9
>
>
> I defined a virtual procedure in the VDB using the following definition:
> {code:sql}
> <model visible = "true" type = "VIRTUAL" name = "test_procs">
> <metadata type = "DDL"><![CDATA[
> create virtual procedure p1(a long) returns (res long) as
> begin
> execute immediate 'insert into pg.xyz select ''a''';
> end;
> ]]>
> </metadata>
> </model>
> {code}
> When I call the virtual procedure:
> {code:sql}exec test_procs.p1(1);{code}
>
> I get the following NPE:
> {code:sql}
> 12:56:59,868 ERROR [org.teiid.PROCESSOR] (Worker4_QueryProcessorQueue37) sAgKanG+4e4X TEIID30019 Unexpected exception for request sAgKanG+4e4X.0: java.lang.NullPointerException
> at org.teiid.query.optimizer.relational.rules.RuleAssignOutputElements.filterVirtualElements(RuleAssignOutputElements.java:477) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.query.optimizer.relational.rules.RuleAssignOutputElements.assignOutputElements(RuleAssignOutputElements.java:238) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.query.optimizer.relational.rules.RuleAssignOutputElements.assignOutputElements(RuleAssignOutputElements.java:292) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.query.optimizer.relational.rules.RuleAssignOutputElements.execute(RuleAssignOutputElements.java:117) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.query.optimizer.relational.RelationalPlanner.executeRules(RelationalPlanner.java:739) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.query.optimizer.relational.RelationalPlanner.optimize(RelationalPlanner.java:221) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.query.optimizer.QueryOptimizer.optimizePlan(QueryOptimizer.java:159) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.query.processor.proc.ExecDynamicSqlInstruction.process(ExecDynamicSqlInstruction.java:186) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.query.processor.proc.ProcedurePlan.processProcedure(ProcedurePlan.java:379) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.query.processor.proc.ProcedurePlan.nextBatchDirect(ProcedurePlan.java:288) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.query.processor.proc.ProcedurePlan.nextBatch(ProcedurePlan.java:262) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.query.processor.relational.PlanExecutionNode.nextBatchDirect(PlanExecutionNode.java:118) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:136) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:151) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:114) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:164) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:146) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:449) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:331) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:259) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:274) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210) [teiid-engine-8.9.0.CR2.jar:8.9.0.CR2]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_51]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]
> at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
> {code}
> As a workaround, if I use the clause "WITHOUT RETURN" in the execute immediate command, the procedure is correctly executed:
> {code:sql}
> <model visible = "true" type = "VIRTUAL" name = "test_procs">
> <metadata type = "DDL"><![CDATA[
> create virtual procedure p1(a long) returns (res long) as
> begin
> execute immediate 'insert into pg.xyz select ''a''' WITHOUT RETURN;
> end;
> ]]>
> </metadata>
> </model>
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.8#6338)
10 years, 1 month
[JBoss JIRA] (TEIID-3200) Teiid 8.8.1 embedded version doesn't work with IBM JDK 6
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-3200?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-3200:
---------------------------------------
> Maybe Teiid should consider to upgrade infinspan-core to version 6.0 instead.
We are taking the infinispan versions from the corresponding AS/EAP target. With 8.9 and EAP 6.3 we will be at 5.2.10 - does that have the same issue?
> Maybe Teiid should consider to upgrade infinspan-core to version 6.0 instead.
Generally we don't want to get ahead of the container since we could introduce non-compatible code. I don't know off-hand if 6.0 is api compatible with our engine usage of infinispan.
> Do you guys see any issue with this workaround?
If 5.2.10 or later don't work, then yes downgrading seems reasonable.
> Teiid 8.8.1 embedded version doesn't work with IBM JDK 6
> --------------------------------------------------------
>
> Key: TEIID-3200
> URL: https://issues.jboss.org/browse/TEIID-3200
> Project: Teiid
> Issue Type: Bug
> Components: Embedded
> Affects Versions: 8.8
> Environment: Running Teiid 8.8.1 with IBM JDK 6
> Reporter: Ivan Chan
> Assignee: Steven Hawkins
> Labels: teiid
>
> Teiid 8.7 used to work with IBM JDK 6, but not Teiid 8.8.1.
> It causes the following error:
> [java] Caused by: org.infinispan.CacheException: Unable to invoke method public void org.infinispan.commands.CommandsFactoryImpl.setupDependencies(org.infinispan.container.DataContainer,org.infinispan.notifications.cachelistener.CacheNotifier,org.infinispan.Cache,org.infinispan.interceptors.InterceptorChain,org.infinispan.distribution.DistributionManager,org.infinispan.context.InvocationContextContainer,org.infinispan.transaction.TransactionTable,org.infinispan.configuration.cache.Configuration,java.util.Map,org.infinispan.transaction.xa.recovery.RecoveryManager,org.infinispan.statetransfer.StateProvider,org.infinispan.statetransfer.StateConsumer,org.infinispan.util.concurrent.locks.LockManager,org.infinispan.container.InternalEntryFactory,org.infinispan.distexec.mapreduce.MapReduceManager,org.infinispan.statetransfer.StateTransferManager,org.infinispan.xsite.BackupSender,org.infinispan.commands.CancellationService) on object of type CommandsFactoryImpl with parameters [org.infinispan.container.DefaultDataContainer@189b189b, org.infinispan.notifications.cachelistener.CacheNotifierImpl@400e400e, Cache 'resultset'@43084308,
> [java] >> org.infinispan.interceptors.InvocationContextInterceptor, null, org.infinispan.context.TransactionalInvocationContextContainer@3050305, org.infinispan.transaction.TransactionTable@54695469, Configuration{classLoader=null, clustering=ClusteringConfiguration{async=AsyncConfiguration{asyncMarshalling=false, replicationQueue=null, replicationQueueInterval=5000, replicationQueueMaxElements=1000, useReplicationQueue=false}, cacheMode=LOCAL, hash=HashConfiguration{consistentHashFactory=null, hash=MurmurHash3, numOwners=2, numSegments=60, groupsConfiguration=GroupsConfiguration{enabled=false, groupers=[]}, stateTransferConfiguration=StateTransferConfiguration{chunkSize=10000, fetchInMemoryState=false, originalFetchInMemoryState=null, timeout=240000, awaitInitialTransfer=false, originalAwaitInitialTransfer=null}}, l1=L1Configuration{enabled=false, invalidationThreshold=0, lifespan=600000, onRehash=false, cleanupTaskFrequency=600000}, stateTransfer=StateTransferConfiguration{chunkSize=10000, fetchInMemoryState=false, originalFetchInMemoryState=null, timeout=240000, awaitInitialTransfer=false, originalAwaitInitialTransfer=null}, sync=SyncConfiguration{replTimeout=15000}}, customInterceptors=CustomInterceptorsConfiguration{interceptors=[]}, dataContainer=DataContainerConfiguration{dataContainer=null}, deadlockDetection=DeadlockDetectionConfiguration{enabled=false, spinDuration=100}, eviction=EvictionConfiguration{maxEntries=1024, strategy=LIRS, threadPolicy=DEFAULT}, expiration=ExpirationConfiguration{lifespan=7200000, maxIdle=-1, reaperEnabled=true, wakeUpInterval=60000}, indexing=IndexingConfiguration{enabled=false, indexLocalOnly=false}, invocationBatching=InvocationBatchingConfiguration{enabled=false}, jmxStatistics=JMXStatisticsConfiguration{enabled=false}, loaders=LoadersConfiguration{cacheLoaders=[], passivation=false, preload=false, shared=false}, locking=LockingConfiguration{concurrencyLevel=32, isolationLevel=READ_COMMITTED, lockAcquisitionTimeout=10000, useLockStriping=false, writeSkewCheck=false}, modules={}, storeAsBinary=StoreAsBinaryConfiguration{enabled=false, storeKeysAsBinary=true, storeValuesAsBinary=true}, transaction=TransactionConfiguration{autoCommit=true, cacheStopTimeout=30000, eagerLockingSingleNode=false, lockingMode=OPTIMISTIC, syncCommitPhase=true, syncRollbackPhase=false, transactionManagerLookup=org.infinispan.transaction.lookup.GenericTransactionManagerLookup@4da54da5, transactionSynchronizationRegistryLookup=null, transactionMode=TRANSACTIONAL, useEagerLocking=false, useSynchronization=true, recovery=RecoveryConfiguration{enabled=true, recoveryInfoCacheName='__recoveryInfoCacheName__'}, reaperWakeUpInterval=1000, completedTxTimeout=15000, use1PcForAutoCommitTransactions=false}, versioning=VersioningConfiguration{enabled=false, scheme=NONE}, unsafe=UnsafeConfiguration{unreliableReturnValues=false}, sites=SiteConfiguration{allBackups=[], backupFor=BackupForConfiguration{remoteCache='null', remoteSite='null'}, disableBackups=false, inUseBackupSites=[]}}, {}, {}, null, null, org.infinispan.util.concurrent.locks.LockManagerImpl@15b815b8, org.infinispan.container.InternalEntryFactoryImpl@1c921c92, org.infinispan.distexec.mapreduce.MapReduceManagerImpl@6e906e90, null, org.infinispan.xsite.BackupSenderImpl@39643964, org.infinispan.commands.CancellationServiceImpl@2ec52ec5]
> Actually, this is a bug in infinispan.
> https://issues.jboss.org/browse/ISPN-3611
> This bug got introduced after upgrading infinspan-core version from 5.1.2 to 5.2.7 in Teiid 8.8.1.
> Maybe Teiid should consider to upgrade infinspan-core to version 6.0 instead.
--
This message was sent by Atlassian JIRA
(v6.3.8#6338)
10 years, 1 month