protected DQPWorkContext initialValue() { return new DQPWorkContext(); } };
protected DQPWorkContext initialValue() { return new DQPWorkContext(); } };
protected DQPWorkContext initialValue() { return new DQPWorkContext(); } };
@After public void tearDown() throws Exception { DQPWorkContext.setWorkContext(new DQPWorkContext()); core.stop(); }
public static DQPWorkContext buildWorkContext() { DQPWorkContext workContext = new DQPWorkContext(); SessionMetadata session = new SessionMetadata(); workContext.setSession(session); session.setVDBName("vdb-name"); //$NON-NLS-1$ session.setVDBVersion(1); session.setSessionId(String.valueOf(1)); session.setUserName("foo"); //$NON-NLS-1$ return workContext; } }
@Test public void testClearPolicies() { DQPWorkContext message = new DQPWorkContext(); message.setSession(Mockito.mock(SessionMetadata.class)); Mockito.stub(message.getSession().getVdb()).toReturn(new VDBMetaData()); Map<String, DataPolicy> map = message.getAllowedDataPolicies(); map.put("role", Mockito.mock(DataPolicy.class)); //$NON-NLS-1$ assertFalse(map.isEmpty()); message.setSession(Mockito.mock(SessionMetadata.class)); Mockito.stub(message.getSession().getVdb()).toReturn(new VDBMetaData()); map = message.getAllowedDataPolicies(); assertTrue(map.isEmpty()); }
@Test public void testAnyAuthenticated() { DQPWorkContext message = new DQPWorkContext(); SessionMetadata mock = Mockito.mock(SessionMetadata.class); message.setSession(mock); VDBMetaData vdb = new VDBMetaData(); DataPolicyMetadata dpm = new DataPolicyMetadata(); dpm.setAnyAuthenticated(true); vdb.addDataPolicy(dpm); Mockito.stub(mock.getVdb()).toReturn(vdb); //unauthenticated Map<String, DataPolicy> map = message.getAllowedDataPolicies(); assertEquals(0, map.size()); //authenticated message = new DQPWorkContext(); Mockito.stub(mock.getSubject()).toReturn(new Subject()); message.setSession(mock); map = message.getAllowedDataPolicies(); assertEquals(1, map.size()); }
@Before public void setup() { context = new CommandContext(); context.setDQPWorkContext(new DQPWorkContext()); context.setSession(context.getDQPWorkContext().getSession()); }
public static DQPWorkContext example() { DQPWorkContext message = new DQPWorkContext(); message.getSession().setVDBName("vdbName"); //$NON-NLS-1$ message.getSession().setVDBVersion(1); message.getSession().setApplicationName("querybuilder"); //$NON-NLS-1$ message.getSession().setSessionId(String.valueOf(5)); message.getSession().setUserName("userName"); //$NON-NLS-1$ return message; }
@Test public void testInsertWithQueryExpression() throws TeiidException { String sql = "INSERT /*+ sh:'append' */ into pm1.g1 (e1) select e1 from pm2.g1"; //$NON-NLS-1$ BasicSourceCapabilities caps = TestOptimizer.getTypicalCapabilities(); CommandContext context = new CommandContext(); context.setDQPWorkContext(new DQPWorkContext()); context.getDQPWorkContext().getSession().setVdb(RealMetadataFactory.example1VDB()); ProcessorPlan plan = helpGetPlan(helpParse(sql), RealMetadataFactory.example1Cached(), new DefaultCapabilitiesFinder(caps), context); HardcodedDataManager manager = manager("append", null); manager.addData("SELECT /*+sh:'append' */ g_0.e1 FROM pm2.g1 AS g_0", Arrays.asList("a")); manager.addData("INSERT /*+sh:'append' */ INTO pm1.g1 (e1) VALUES ('a')", Arrays.asList(1)); helpProcess(plan, manager, new List[] {Arrays.asList(1)}); }
private static CommandContext createContext() { CommandContext context = createCommandContext(); DQPWorkContext workContext = new DQPWorkContext(); HashMap<String, DataPolicy> policies = new HashMap<String, DataPolicy>(); DataPolicyMetadata policy = new DataPolicyMetadata(); PermissionMetaData pmd = new PermissionMetaData(); pmd.setResourceName("pm1.sp1.e1"); pmd.setMask("case when e2 > 1 then null else e1 end"); PermissionMetaData pmd1 = new PermissionMetaData(); pmd1.setResourceName("pm1.g1.e2"); pmd1.setMask("case when e1 = 'a' then null else e2 end"); policy.addPermission(pmd, pmd1); policy.setName("some-role"); policies.put("some-role", policy); workContext.setPolicies(policies); context.setDQPWorkContext(workContext); return context; }
private DQPWorkContext createWorkContext(final CommandContext context, VDBMetaData vdb) { SessionMetadata session = createTemporarySession(context.getUserName(), "asynch-mat-view-load", vdb); //$NON-NLS-1$ session.setSubject(context.getSubject()); session.setSecurityDomain(context.getSession().getSecurityDomain()); session.setSecurityContext(context.getSession().getSecurityContext()); DQPWorkContext workContext = new DQPWorkContext(); workContext.setAdmin(true); DQPWorkContext current = context.getDQPWorkContext(); workContext.setSession(session); workContext.setPolicies(current.getAllowedDataPolicies()); workContext.setSecurityHelper(current.getSecurityHelper()); return workContext; }
private DQPWorkContext createWorkContext(final CommandContext context, VDBMetaData vdb) { SessionMetadata session = createTemporarySession(context.getUserName(), "asynch-mat-view-load", vdb); //$NON-NLS-1$ session.setSubject(context.getSubject()); session.setSecurityDomain(context.getSession().getSecurityDomain()); session.setSecurityContext(context.getSession().getSecurityContext()); DQPWorkContext workContext = new DQPWorkContext(); workContext.setAdmin(true); DQPWorkContext current = context.getDQPWorkContext(); workContext.setSession(session); workContext.setPolicies(current.getAllowedDataPolicies()); workContext.setSecurityHelper(current.getSecurityHelper()); return workContext; }
private DQPWorkContext createWorkContext(final CommandContext context, VDBMetaData vdb) { SessionMetadata session = createTemporarySession(context.getUserName(), "asynch-mat-view-load", vdb); //$NON-NLS-1$ session.setSubject(context.getSubject()); session.setSecurityDomain(context.getSession().getSecurityDomain()); session.setSecurityContext(context.getSession().getSecurityContext()); DQPWorkContext workContext = new DQPWorkContext(); workContext.setAdmin(true); DQPWorkContext current = context.getDQPWorkContext(); workContext.setSession(session); workContext.setPolicies(current.getAllowedDataPolicies()); workContext.setSecurityHelper(current.getSecurityHelper()); return workContext; }
public static DQPWorkContext buildWorkContext(QueryMetadataInterface metadata, VDBMetaData vdb) { DQPWorkContext workContext = new DQPWorkContext(); SessionMetadata session = new SessionMetadata(); workContext.setSession(session); session.setVDBName(vdb.getName()); session.setVDBVersion(vdb.getVersion()); session.setSessionId(String.valueOf(1)); session.setUserName("foo"); //$NON-NLS-1$ session.setVdb(vdb); workContext.getVDB().addAttchment(QueryMetadataInterface.class, metadata); if (metadata instanceof TransformationMetadata) { workContext.getVDB().addAttchment(TransformationMetadata.class, (TransformationMetadata)metadata); } DQPWorkContext.setWorkContext(workContext); return workContext; }
static RequestWorkItem addRequest(DQPCore rm, RequestMessage requestMsg, RequestID id, Command originalCommand, DQPWorkContext workContext) { if (workContext == null) { workContext = new DQPWorkContext(); workContext.getSession().setSessionId(id.getConnectionID()); workContext.getSession().setUserName("foo"); //$NON-NLS-1$ } RequestWorkItem workItem = new RequestWorkItem(rm, requestMsg, null, null, id, workContext); workItem.setOriginalCommand(originalCommand); ClientState state = rm.getClientState(id.getConnectionID(), true); rm.addRequest(id, workItem, state); return workItem; }
@Test public void testKeepAliases() throws Exception { String sql = "SELECT /*+ sh KEEP ALIASES bar:'leading(g)' */ e1 from pm1.g1 g order by e1 limit 1"; //$NON-NLS-1$ CommandContext cc = TestProcessor.createCommandContext(); cc.setDQPWorkContext(new DQPWorkContext()); cc.getDQPWorkContext().getSession().setVdb(RealMetadataFactory.example1VDB()); ProcessorPlan plan = TestOptimizer.getPlan(TestOptimizer.helpGetCommand(sql, RealMetadataFactory.example1Cached()), RealMetadataFactory.example1Cached(), TestOptimizer.getGenericFinder(), null, true, cc); TestOptimizer.checkAtomicQueries(new String[] {"SELECT /*+sh KEEP ALIASES bar:'leading(g)' */ g.e1 AS c_0 FROM pm1.g1 AS g ORDER BY c_0"}, plan); List<?>[] expected = new List[] {}; helpProcess(plan, manager(null, "leading(g)"), expected); }
@Test public void testWithHintPushdown() throws TeiidException { String sql = "WITH x as /*+ no_inline */ (SELECT /*+ sh:'x' */ e1 from pm1.g2) " + "SELECT /*+ sh:'foo' bar:'leading' */ g1.e1 from pm1.g1, x where g1.e1 = x.e1 order by g1.e1 limit 1"; //$NON-NLS-1$ BasicSourceCapabilities caps = TestOptimizer.getTypicalCapabilities(); caps.setCapabilitySupport(Capability.COMMON_TABLE_EXPRESSIONS, true); CommandContext context = new CommandContext(); context.setDQPWorkContext(new DQPWorkContext()); context.getDQPWorkContext().getSession().setVdb(RealMetadataFactory.example1VDB()); ProcessorPlan plan = helpGetPlan(helpParse(sql), RealMetadataFactory.example1Cached(), new DefaultCapabilitiesFinder(caps), context); List<?>[] expected = new List[] {}; helpProcess(plan, manager("foo x", "leading"), expected); }
@Test public void testUnionHintPushdown() throws TeiidException { String sql = "SELECT /*+ sh:'foo' bar:'leading' */ g1.e1 from pm1.g1 " + "UNION ALL SELECT * from (SELECT /*+ sh:'x' bar:'z' */ g1.e1 from pm1.g1) as x"; //$NON-NLS-1$ BasicSourceCapabilities caps = TestOptimizer.getTypicalCapabilities(); caps.setCapabilitySupport(Capability.QUERY_UNION, true); CommandContext context = new CommandContext(); context.setDQPWorkContext(new DQPWorkContext()); context.getDQPWorkContext().getSession().setVdb(RealMetadataFactory.example1VDB()); ProcessorPlan plan = helpGetPlan(helpParse(sql), RealMetadataFactory.example1Cached(), new DefaultCapabilitiesFinder(caps), context); List<?>[] expected = new List[] {}; helpProcess(plan, manager("foo x", "leading z"), expected); }
private static CommandContext createContext() { CommandContext context = createCommandContext(); DQPWorkContext workContext = new DQPWorkContext(); HashMap<String, DataPolicy> policies = new HashMap<String, DataPolicy>(); DataPolicyMetadata policy = new DataPolicyMetadata();