public void qm2mdx(String queryName) { IQuery query = getIQuery(queryName); OlapConnection con = olapDiscoverService.getNativeConnection(query.getSaikuCube().getConnectionName()); MdxQuery mdx = new MdxQuery(con, query.getSaikuCube(), query.getName(), getMDXQuery(queryName)); putIQuery(queryName, mdx); query = null; }
public SaikuQuery createNewOlapQuery(String name, String xml) { try { QueryDeserializer qd = new QueryDeserializer(); SaikuCube scube = qd.getFakeCube(xml); OlapConnection con = olapDiscoverService.getNativeConnection(scube.getConnectionName()); IQuery query = qd.unparse(xml, con); // TODO - this is not good! could lead to duplicate queries if (name == null) { name = UUID.randomUUID().toString(); putIQuery(name, query); } else { putIQuery(name, query); } return ObjectUtil.convert(query); } catch (Exception e) { throw new SaikuServiceException("Error creating query from xml", e); } }
public SaikuQuery createNewOlapQuery(String queryName, SaikuCube cube) { try { Cube cub = olapDiscoverService.getNativeCube(cube); OlapConnection con = olapDiscoverService.getNativeConnection(cube.getConnectionName()); if (cub != null) { IQuery query = new OlapQuery(new Query(queryName, cub), con, cube); putIQuery(queryName, query); return ObjectUtil.convert(query); } } catch (Exception e) { log.error("Cannot create new query for cube :" + cube, e); } return null; }