Java tutorial
/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.phoenix.end2end; import static org.apache.phoenix.util.TestUtil.STABLE_NAME; import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Map; import java.util.Properties; import org.apache.phoenix.jdbc.PhoenixConnection; import org.apache.phoenix.query.QueryServices; import org.apache.phoenix.schema.PTableKey; import org.apache.phoenix.schema.TableRef; import org.apache.phoenix.util.PhoenixRuntime; import org.apache.phoenix.util.PropertiesUtil; import org.apache.phoenix.util.ReadOnlyProps; import org.junit.BeforeClass; import org.junit.experimental.categories.Category; import com.google.common.collect.Maps; @Category(ClientManagedTimeTest.class) public class BaseParallelIteratorsRegionSplitterIT extends BaseClientManagedTimeIT { protected static final byte[] KMIN = new byte[] { '!' }; protected static final byte[] KMIN2 = new byte[] { '.' }; protected static final byte[] K1 = new byte[] { 'a' }; protected static final byte[] K3 = new byte[] { 'c' }; protected static final byte[] K4 = new byte[] { 'd' }; protected static final byte[] K5 = new byte[] { 'e' }; protected static final byte[] K6 = new byte[] { 'f' }; protected static final byte[] K9 = new byte[] { 'i' }; protected static final byte[] K11 = new byte[] { 'k' }; protected static final byte[] K12 = new byte[] { 'l' }; protected static final byte[] KMAX = new byte[] { '~' }; protected static final byte[] KMAX2 = new byte[] { 'z' }; @BeforeClass @Shadower(classBeingShadowed = BaseClientManagedTimeIT.class) public static void doSetup() throws Exception { int targetQueryConcurrency = 3; int maxQueryConcurrency = 5; Map<String, String> props = Maps.newHashMapWithExpectedSize(3); props.put(QueryServices.MAX_QUERY_CONCURRENCY_ATTRIB, Integer.toString(maxQueryConcurrency)); props.put(QueryServices.TARGET_QUERY_CONCURRENCY_ATTRIB, Integer.toString(targetQueryConcurrency)); props.put(QueryServices.MAX_INTRA_REGION_PARALLELIZATION_ATTRIB, Integer.toString(Integer.MAX_VALUE)); // Must update config before starting server setUpTestDriver(getUrl(), new ReadOnlyProps(props.entrySet().iterator())); } protected void initTableValues(long ts) throws Exception { byte[][] splits = new byte[][] { K3, K4, K9, K11 }; ensureTableCreated(getUrl(), STABLE_NAME, splits, ts - 2); String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + ts; Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES); Connection conn = DriverManager.getConnection(url, props); PreparedStatement stmt = conn.prepareStatement("upsert into " + STABLE_NAME + " VALUES (?, ?)"); stmt.setString(1, new String(KMIN)); stmt.setInt(2, 1); stmt.execute(); stmt.setString(1, new String(KMAX)); stmt.setInt(2, 2); stmt.execute(); conn.commit(); conn.close(); } protected static TableRef getTableRef(Connection conn, long ts) throws SQLException { PhoenixConnection pconn = conn.unwrap(PhoenixConnection.class); TableRef table = new TableRef(null, pconn.getMetaDataCache().getTable(new PTableKey(pconn.getTenantId(), STABLE_NAME)), ts, false); return table; } }