Github user JamesRTaylor commented on the pull request:
https://github.com/apache/phoenix/pull/12#issuecomment-55311741
Multiple CF tests: MultiCfQueryExecIT, one CF tests: QueryIT, no CF tests:
KeyOnlyIT. Queries across multiple regions: Any time a table is pre-split. For
example, see BaseQueryIT, when we initialize ATABLE, we pass in
getDefaultSplits(tenantId) which forces the rows to be split across multiple
regions.
@Before
public void initTable() throws Exception {
ts = nextTimestamp();
initATableValues(tenantId, getDefaultSplits(tenantId), date=new
Date(System.currentTimeMillis()), ts);
if (indexDDL != null && indexDDL.length() > 0) {
Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB,
Long.toString(ts));
Connection conn = DriverManager.getConnection(getUrl(), props);
conn.createStatement().execute(indexDDL);
}
}
Any table initialized in the static block of BaseTest may be split into
multiple regions at initialization time. You'll get some decent coverage if you
set the "number of bytes before adding a guidepost" parameter very low, so that
basically after a single row you'll get a guidepost. We might be ok starting
with that as long as you add specific test cases that test the lifecycle of
these guideposts: adding the expected number for a given table with data across
multiple regions, adding data to the table, re-analyzing removes old guideposts
and adds new ones, a split cleans up the old ones and adds new ones,
multi-tenant table with an analyze against it (i.e. testing a "partial"
analyze). Then maybe some lower level ones that test your changes to
DefaultParallelIteratorRegionSplitter.getSplits() and the merge bisect logic
there.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---