[JBoss JIRA] (TEIID-2511) NullPointerException in JDBCExecutionFactory.getDatabaseCalendar()
by RAKESH BALGURI (JIRA)
[ https://issues.jboss.org/browse/TEIID-2511?page=com.atlassian.jira.plugin... ]
RAKESH BALGURI commented on TEIID-2511:
---------------------------------------
The version is teiid 8.1 with the patches applied
> NullPointerException in JDBCExecutionFactory.getDatabaseCalendar()
> ------------------------------------------------------------------
>
> Key: TEIID-2511
> URL: https://issues.jboss.org/browse/TEIID-2511
> Project: Teiid
> Issue Type: Bug
> Components: Embedded
> Affects Versions: 8.1
> Reporter: RAKESH BALGURI
> Assignee: Steven Hawkins
> Attachments: TestNullPointerExceptionGetDatabaseCalendar.java
>
>
> We are getting NPE in JDBCExecutionFactory.getDatabaseCalendar() when running using the Embedded Teiid Connection.
> SEVERE: Connector worker process failed for atomic-request=mAIqLopt6urZ.0.0.0
> java.lang.NullPointerException
> at org.teiid.translator.jdbc.JDBCExecutionFactory.getDatabaseCalendar(JDBCExecutionFactory.java:468)
> at org.teiid.translator.jdbc.JDBCExecutionFactory.retrieveValue(JDBCExecutionFactory.java:903)
> at org.teiid.translator.jdbc.JDBCQueryExecution.next(JDBCQueryExecution.java:101)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.handleBatch(ConnectorWorkItem.java:316)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.more(ConnectorWorkItem.java:141)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:428)
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:270)
> at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:279)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:148)
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:146)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:219)
> at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:386)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.teiid.transport.LocalServerConnection$1$1.call(LocalServerConnection.java:131)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:249)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:233)
> at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:129)
> at $Proxy12.executeRequest(Unknown Source)
> at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:631)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:506)
> at org.teiid.jdbc.StatementImpl.executeQuery(StatementImpl.java:327)
> at testcase.TestNullPointerExceptionGetDatabaseCalendar.testNullPointer(TestNullPointerExceptionGetDatabaseCalendar.java:64)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
> at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
> at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
> at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months
[JBoss JIRA] (TEIID-2511) NullPointerException in JDBCExecutionFactory.getDatabaseCalendar()
by RAKESH BALGURI (JIRA)
[ https://issues.jboss.org/browse/TEIID-2511?page=com.atlassian.jira.plugin... ]
RAKESH BALGURI updated TEIID-2511:
----------------------------------
Attachment: TestNullPointerExceptionGetDatabaseCalendar.java
> NullPointerException in JDBCExecutionFactory.getDatabaseCalendar()
> ------------------------------------------------------------------
>
> Key: TEIID-2511
> URL: https://issues.jboss.org/browse/TEIID-2511
> Project: Teiid
> Issue Type: Bug
> Components: Embedded
> Affects Versions: 8.1
> Reporter: RAKESH BALGURI
> Assignee: Steven Hawkins
> Attachments: TestNullPointerExceptionGetDatabaseCalendar.java
>
>
> We are getting NPE in JDBCExecutionFactory.getDatabaseCalendar() when running using the Embedded Teiid Connection.
> SEVERE: Connector worker process failed for atomic-request=mAIqLopt6urZ.0.0.0
> java.lang.NullPointerException
> at org.teiid.translator.jdbc.JDBCExecutionFactory.getDatabaseCalendar(JDBCExecutionFactory.java:468)
> at org.teiid.translator.jdbc.JDBCExecutionFactory.retrieveValue(JDBCExecutionFactory.java:903)
> at org.teiid.translator.jdbc.JDBCQueryExecution.next(JDBCQueryExecution.java:101)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.handleBatch(ConnectorWorkItem.java:316)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.more(ConnectorWorkItem.java:141)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:428)
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:270)
> at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:279)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:148)
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:146)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:219)
> at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:386)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.teiid.transport.LocalServerConnection$1$1.call(LocalServerConnection.java:131)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:249)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:233)
> at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:129)
> at $Proxy12.executeRequest(Unknown Source)
> at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:631)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:506)
> at org.teiid.jdbc.StatementImpl.executeQuery(StatementImpl.java:327)
> at testcase.TestNullPointerExceptionGetDatabaseCalendar.testNullPointer(TestNullPointerExceptionGetDatabaseCalendar.java:64)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
> at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
> at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
> at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months
[JBoss JIRA] (TEIID-2511) NullPointerException in JDBCExecutionFactory.getDatabaseCalendar()
by RAKESH BALGURI (JIRA)
RAKESH BALGURI created TEIID-2511:
-------------------------------------
Summary: NullPointerException in JDBCExecutionFactory.getDatabaseCalendar()
Key: TEIID-2511
URL: https://issues.jboss.org/browse/TEIID-2511
Project: Teiid
Issue Type: Bug
Components: Embedded
Affects Versions: 8.1
Reporter: RAKESH BALGURI
Assignee: Steven Hawkins
We are getting NPE in JDBCExecutionFactory.getDatabaseCalendar() when running using the Embedded Teiid Connection.
SEVERE: Connector worker process failed for atomic-request=mAIqLopt6urZ.0.0.0
java.lang.NullPointerException
at org.teiid.translator.jdbc.JDBCExecutionFactory.getDatabaseCalendar(JDBCExecutionFactory.java:468)
at org.teiid.translator.jdbc.JDBCExecutionFactory.retrieveValue(JDBCExecutionFactory.java:903)
at org.teiid.translator.jdbc.JDBCQueryExecution.next(JDBCQueryExecution.java:101)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.handleBatch(ConnectorWorkItem.java:316)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.more(ConnectorWorkItem.java:141)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:428)
at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:270)
at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:279)
at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:148)
at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:146)
at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)
at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)
at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:219)
at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:386)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.teiid.transport.LocalServerConnection$1$1.call(LocalServerConnection.java:131)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:249)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:233)
at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:129)
at $Proxy12.executeRequest(Unknown Source)
at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:631)
at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:506)
at org.teiid.jdbc.StatementImpl.executeQuery(StatementImpl.java:327)
at testcase.TestNullPointerExceptionGetDatabaseCalendar.testNullPointer(TestNullPointerExceptionGetDatabaseCalendar.java:64)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months
[JBoss JIRA] (TEIID-2510) time-slice-in-millseconds setting typo
by B Long (JIRA)
B Long created TEIID-2510:
-----------------------------
Summary: time-slice-in-millseconds setting typo
Key: TEIID-2510
URL: https://issues.jboss.org/browse/TEIID-2510
Project: Teiid
Issue Type: Bug
Affects Versions: 8.4
Environment: Running Teiid 8.4 Beta
Reporter: B Long
Assignee: Steven Hawkins
Priority: Trivial
I assume "time-slice-in-millseconds" is missing an 'i'. Should be "time-slice-in-milliseconds".
May affect multiple versions.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months
[JBoss JIRA] (TEIID-2327) Add column masking
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2327?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-2327.
-----------------------------------
Resolution: Done
With the doc updates, marking the main issues as complete, but will still work the follow-on issues TEIID-2507 TEIID-2427 and others as the occur.
> Add column masking
> ------------------
>
> Key: TEIID-2327
> URL: https://issues.jboss.org/browse/TEIID-2327
> Project: Teiid
> Issue Type: Sub-task
> Components: Query Engine
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Fix For: 8.4
>
>
> Support for column masking should be added to data roles. A typical approach would be to only affect the final projected values from user queries and have only one mask applicable at a time.
> A possibly related ability would be to hide columns (much like hidden tables) to our metadata.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months
[JBoss JIRA] (TEIID-2471) Allow permission conditions and masking to be pluggable
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2471?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-2471:
---------------------------------------
So one possible path here would be add/grant permission methods (more than likely not yet exposing the admin permission metadata object):
void MetadataFactory.addPermission(String role, String resource, Boolean allowCreate, ... String condition)
void MetadataFactory.addColumnPermission(String role, String resource, ... String maskExpression, String maskCondition, Integer maskOrder)
...
Then we would simply aggregate by role as part of the normal metadata merging processes as we build a single MetadataStore. The only disadvantage here is that the MetadataRepository is not consulted for cached schemas, but that may just mean that role updates require vdb restarts that clear the affected schemas.
Another approach would be to add methods to the MetadataRepository base class to pull possibly the xml definition of the dataroles, which would always be consulted at load time.
> Allow permission conditions and masking to be pluggable
> -------------------------------------------------------
>
> Key: TEIID-2471
> URL: https://issues.jboss.org/browse/TEIID-2471
> Project: Teiid
> Issue Type: Sub-task
> Components: Query Engine
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Fix For: 8.4
>
>
> The AuthorizationValidator or similar interface should allow for alternative implementations to be plugged in for providing permission conditions and column masking.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months
[JBoss JIRA] (TEIID-2327) Add column masking
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2327?page=com.atlassian.jira.plugin... ]
Steven Hawkins edited comment on TEIID-2327 at 5/20/13 3:55 PM:
----------------------------------------------------------------
Switched the mask order to specify precedence, so the highest value is first (the default 0 will nominally be last). Also allowed the condition to be used with the mask, for example given the permissions in two roles of:
<permission>
<resource-name>myTable.T2.col1</resource-name>
<mask order="1">col2</mask>
</permission>
<permission>
<resource-name>myTable.T2.col1</resource-name>
<condition>col1 = user()</condition>
<mask order="2">col1</mask>
</permission
They will effectively be combined as the mask expression:
case when col1 = user() then col1 else when true then col2 else col1 end
More on the implementation:
- row filters are applied before masking.
- The affects of filtering/masking happen logically when the resource is accessed - and not just during the final projection. RuleApplySecurity handles the application of security which occasionally necessitates inserting view layer to keep proper plan positioning.
- filtering and masking are allowed on virtual/physical tables/procedures
- if the condition is a constraint (the default) it will also be applied as an insert/update constraint for physical updates. we may want to consider making it applicable to views as well.
- the row/column security is always in effect. This may need to be refined as well. The means that if a view and physical table row/column security is specified, then the table affect will happen first. Also if row/column security is applicable to resources referenced in the conditions/masks (via subqueries) the affect of security is still applied. A separate JIRA TEIID-2507 was logged specifically for lookups, which are prone to creating global results for something that should of a lesser scope.
was (Author: shawkins):
Switched the mask order to specify precedence, so the highest value is first (the default 0 will nominally be last). Also allowed the condition to be used with the mask, for example given the permissions in two roles of:
<permission>
<resource-name>myTable.T2.col1</resource-name>
<mask order="1">col2</mask>
</permission>
<permission>
<resource-name>myTable.T2.col1</resource-name>
<condition>col1 = user()</condition>
<mask order="2">col1</mask>
</permission
They will effectively be combined as the mask expression:
case when col1 = user() then col1 else when true then col2 end
More on the implementation:
- row filters are applied before masking.
- The affects of filtering/masking happen logically when the resource is accessed - and not just during the final projection. RuleApplySecurity handles the application of security which occasionally necessitates inserting view layer to keep proper plan positioning.
- filtering and masking are allowed on virtual/physical tables/procedures
- if the condition is a constraint (the default) it will also be applied as an insert/update constraint for physical updates. we may want to consider making it applicable to views as well.
- the row/column security is always in effect. This may need to be refined as well. The means that if a view and physical table row/column security is specified, then the table affect will happen first. Also if row/column security is applicable to resources referenced in the conditions/masks (via subqueries) the affect of security is still applied. A separate JIRA TEIID-2507 was logged specifically for lookups, which are prone to creating global results for something that should of a lesser scope.
> Add column masking
> ------------------
>
> Key: TEIID-2327
> URL: https://issues.jboss.org/browse/TEIID-2327
> Project: Teiid
> Issue Type: Sub-task
> Components: Query Engine
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Fix For: 8.4
>
>
> Support for column masking should be added to data roles. A typical approach would be to only affect the final projected values from user queries and have only one mask applicable at a time.
> A possibly related ability would be to hide columns (much like hidden tables) to our metadata.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months
[JBoss JIRA] (TEIID-2502) org.teiid.net.socket.SingleInstanceCommunicationException
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2502?page=com.atlassian.jira.plugin... ]
Steven Hawkins updated TEIID-2502:
----------------------------------
Attachment: ora.patch
Here's a patch showing the struct handling that I was alluding to. This can be implemented via a custom translator as well. It may need more consideration as a built-in feature as this handling may need to be optional as it could be memory intensive, need to be done on demand, etc.
> org.teiid.net.socket.SingleInstanceCommunicationException
> ---------------------------------------------------------
>
> Key: TEIID-2502
> URL: https://issues.jboss.org/browse/TEIID-2502
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.2
> Environment: centos 6.3
> Reporter: luca gioppo
> Assignee: Steven Hawkins
> Priority: Critical
> Attachments: ora.patch
>
>
> I'm issuing a query (a simple select * from table) on a VDB's table that contains a geometric column from oracle spatial.
> I'm getting the following error in SquirrelSQL
> Error: org.teiid.net.socket.SingleInstanceCommunicationException
> SQLState: 08S01
> ErrorCode: 0
> Afterwards the connection is broken and I cannot access any other table and have to reconnect since I get:
> Error: Error Code:TEIID20013 Message:Error Code:TEIID20013 Message:java.net.SocketException: Socket closed
> SQLState: TEIID20013
> ErrorCode: 0
> I'm trying to access a SDO table and a geometry type column, but hoped that TEIID could read it as a BLOB without caring about the real type.
> Probably it doesn't like it too much.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months