Ejemplo n.º 1
0
 private static void projectAllIndexColumns(
     StatementContext context,
     TableRef tableRef,
     List<Expression> projectedExpressions,
     List<ExpressionProjector> projectedColumns)
     throws SQLException {
   PTable index = tableRef.getTable();
   PTable table =
       context.getConnection().getPMetaData().getTable(index.getParentName().getString());
   int tableOffset = table.getBucketNum() == null ? 0 : 1;
   int indexOffset = index.getBucketNum() == null ? 0 : 1;
   if (index.getColumns().size() - indexOffset != table.getColumns().size() - tableOffset) {
     // We'll end up not using this by the optimizer, so just throw
     throw new ColumnNotFoundException(WildcardParseNode.INSTANCE.toString());
   }
   for (int i = tableOffset; i < table.getColumns().size(); i++) {
     PColumn tableColumn = table.getColumns().get(i);
     PColumn indexColumn = index.getColumn(IndexUtil.getIndexColumnName(tableColumn));
     ColumnRef ref = new ColumnRef(tableRef, indexColumn.getPosition());
     Expression expression = ref.newColumnExpression();
     projectedExpressions.add(expression);
     ExpressionProjector projector =
         new ExpressionProjector(
             tableColumn.getName().getString(), table.getName().getString(), expression, false);
     projectedColumns.add(projector);
   }
 }
 @BeforeClass
 public static void doSetup() throws Exception {
   startServer(getUrl());
   ensureTableCreated(getUrl(), ATABLE_NAME);
   ensureTableCreated(getUrl(), FUNKY_NAME);
   ensureTableCreated(getUrl(), PTSDB_NAME);
   ensureTableCreated(getUrl(), MULTI_CF_NAME);
   Properties props = new Properties();
   props.setProperty(
       PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(MetaDataProtocol.MIN_TABLE_TIMESTAMP));
   PhoenixConnection conn =
       DriverManager.getConnection(PHOENIX_CONNECTIONLESS_JDBC_URL, props)
           .unwrap(PhoenixConnection.class);
   try {
     PTable table = conn.getPMetaData().getTable(ATABLE_NAME);
     ATABLE = table;
     ORGANIZATION_ID = table.getColumn("ORGANIZATION_ID");
     ENTITY_ID = table.getColumn("ENTITY_ID");
     A_INTEGER = table.getColumn("A_INTEGER");
     A_STRING = table.getColumn("A_STRING");
     B_STRING = table.getColumn("B_STRING");
     ENTITY_ID = table.getColumn("ENTITY_ID");
     A_DATE = table.getColumn("A_DATE");
     A_TIME = table.getColumn("A_TIME");
     A_TIMESTAMP = table.getColumn("A_TIMESTAMP");
     X_DECIMAL = table.getColumn("X_DECIMAL");
   } finally {
     conn.close();
   }
 }
Ejemplo n.º 3
0
 private static void projectIndexColumnFamily(
     StatementContext context,
     String cfName,
     TableRef tableRef,
     List<Expression> projectedExpressions,
     List<ExpressionProjector> projectedColumns)
     throws SQLException {
   PTable index = tableRef.getTable();
   PTable table =
       context.getConnection().getPMetaData().getTable(index.getParentName().getString());
   PColumnFamily pfamily = table.getColumnFamily(cfName);
   for (PColumn column : pfamily.getColumns()) {
     PColumn indexColumn = index.getColumn(IndexUtil.getIndexColumnName(column));
     ColumnRef ref = new ColumnRef(tableRef, indexColumn.getPosition());
     Expression expression = ref.newColumnExpression();
     projectedExpressions.add(expression);
     projectedColumns.add(
         new ExpressionProjector(
             column.getName().toString(), table.getName().getString(), expression, false));
   }
 }