@Override public DataType visitTimestampLiteral(LogicalPlanner.PlanContext ctx, Stack<Expr> stack, TimestampLiteral expr) throws TajoException { return CatalogUtil.newSimpleDataType(TajoDataTypes.Type.TIMESTAMP); }
private static String guessTableName(Context context, String givenName) { String qualifiedName; if (CatalogUtil.isFQTableName(givenName)) { qualifiedName = givenName; } else { qualifiedName = CatalogUtil.buildFQName(context.queryContext.get(SessionVars.CURRENT_DATABASE), givenName); } return qualifiedName; }
@Override protected EvalNode visitField(Context context, FieldEval field, Stack<EvalNode> stack) { // strip the database name String tableName; if (CatalogUtil.isSimpleIdentifier(field.getQualifier())) { tableName = field.getQualifier(); } else { tableName = CatalogUtil.extractSimpleName(field.getQualifier()); } context.append(CatalogUtil.buildFQName(tableName, field.getColumnName())); return field; }
public static Pair<String, String> separateQualifierAndName(String name) { Preconditions.checkArgument(isFQTableName(name), "Must be a qualified name."); return new Pair<String, String>(extractQualifier(name), extractSimpleName(name)); }
private Pair<String, String> getQualifiedName(String currentDatabase, String tableName) { if (CatalogUtil.isFQTableName(tableName)) { String [] splitted = CatalogUtil.splitFQTableName(tableName); return new Pair<>(splitted[0], splitted[1]); } else { return new Pair<>(currentDatabase, tableName); } }
.add("empid", CatalogUtil.newSimpleDataType(Type.INT4)) .add("deptname", Type.TEXT).build(); .add("score", CatalogUtil.newSimpleDataType(Type.INT4)).build(); TableMeta meta = CatalogUtil.newTableMeta(BuiltinStorages.TEXT, util.getConfiguration()); TableDesc people = new TableDesc( IdentifierUtil.buildFQName(TajoConstants.DEFAULT_DATABASE_NAME, "employee"), schema, meta, CatalogUtil.newSimpleDataType(Type.INT4), CatalogUtil.newSimpleDataTypeArray(Type.INT4));
public void createIndex(final QueryContext queryContext, final CreateIndexNode createIndexNode) throws DuplicateIndexException, UndefinedTableException, UndefinedDatabaseException { String databaseName, simpleIndexName, qualifiedIndexName; if (CatalogUtil.isFQTableName(createIndexNode.getIndexName())) { String[] splits = CatalogUtil.splitFQTableName(createIndexNode.getIndexName()); databaseName = splits[0]; simpleIndexName = splits[1]; qualifiedIndexName = createIndexNode.getIndexName(); } else { databaseName = queryContext.getCurrentDatabase(); simpleIndexName = createIndexNode.getIndexName(); qualifiedIndexName = CatalogUtil.buildFQName(databaseName, simpleIndexName); } if (catalog.existIndexByName(databaseName, simpleIndexName)) { throw new DuplicateIndexException(simpleIndexName); } ScanNode scanNode = PlannerUtil.findTopNode(createIndexNode, NodeType.SCAN); if (scanNode == null) { throw new InternalError("Cannot find the table of the relation"); } IndexDesc indexDesc = new IndexDesc(databaseName, CatalogUtil.extractSimpleName(scanNode.getTableName()), simpleIndexName, createIndexNode.getIndexPath(), createIndexNode.getKeySortSpecs(), createIndexNode.getIndexMethod(), createIndexNode.isUnique(), false, scanNode.getLogicalSchema()); catalog.createIndex(indexDesc); LOG.info("Index " + qualifiedIndexName + " is created for the table " + scanNode.getTableName() + "."); }
String tableName = getTableName(conn, tid); builder.setTid(tid); builder.setName(CatalogUtil.buildFQName(databaseName, tableName, resultSet.getString("COLUMN_NAME"))); builder.setDataType(CatalogUtil.newRecordType(nestedFieldNum)); } else if (typeLength > 0) { builder.setDataType(CatalogUtil.newDataTypeWithLen(type, typeLength)); } else { builder.setDataType(CatalogUtil.newSimpleDataType(type)); throw new TajoInternalError(se); } finally { CatalogUtil.closeQuietly(stmt, resultSet);
groupbyNode.setGroupingColumns(new Column[]{schema.getColumn(1), schema.getColumn(2)}); ScanNode scanNode = new ScanNode(0); scanNode.init(CatalogUtil.newTableDesc("in", schema, CatalogUtil.newTableMeta(BuiltinStorages.TEXT, conf), new Path("in"))); JoinNode joinNode = new JoinNode(0); ScanNode scanNode2 = new ScanNode(0); scanNode2.init(CatalogUtil.newTableDesc("in2", schema, CatalogUtil.newTableMeta(BuiltinStorages.TEXT, conf), new Path("in2"))); scanNode3.init(CatalogUtil.newTableDesc("in", schema, CatalogUtil.newTableMeta(BuiltinStorages.TEXT, conf), new Path("in"))); groupbyNode2.setChild(scanNode3);
@Override public void start(Configuration conf) throws IOException { this.systemConf = TUtil.checkTypeAndGet(conf, TajoConf.class); this.pipeMeta = CatalogUtil.newTableMeta(BuiltinStorages.TEXT, systemConf); startUdfController(); setStreams(); createInputHandlers(); if (LOG.isDebugEnabled()) { LOG.debug("PythonScriptExecutor starts up"); } }
.build(); TableMeta meta = CatalogUtil.newTableMeta(BuiltinStorages.TEXT, util.getConfiguration()); TableDesc people = new TableDesc( IdentifierUtil.buildFQName(TajoConstants.DEFAULT_DATABASE_NAME, "employee"), schema, meta, CatalogUtil.newSimpleDataType(Type.INT4), CatalogUtil.newSimpleDataTypeArray(Type.INT4)); tpch.loadOutSchema(); for (String table : tpchTables) { TableMeta m = CatalogUtil.newTableMeta(BuiltinStorages.TEXT, util.getConfiguration()); TableDesc d = CatalogUtil.newTableDesc( IdentifierUtil.buildFQName(DEFAULT_DATABASE_NAME, table), tpch.getSchema(table), m, CommonTestingUtil.getTestDir());
private static FunctionSignature extractSignature(ScalarFunction annotation, @Nullable String alias) { return new FunctionSignature( GENERAL, alias != null ? alias : annotation.name(), CatalogUtil.newSimpleDataType(annotation.returnType()), CatalogUtil.newSimpleDataTypeArray(annotation.paramTypes()) ); }
case CHAR: Char charType = (Char) type; return new TypeDesc(newDataTypeWithLen(TajoDataTypes.Type.CHAR, charType.length())); case VARCHAR: Varchar varcharType = (Varchar) type; return new TypeDesc(newDataTypeWithLen(TajoDataTypes.Type.VARCHAR, varcharType.length())); case NUMERIC: Numeric numericType = (Numeric) type; return new TypeDesc(newDataTypeWithLen(TajoDataTypes.Type.NUMERIC, numericType.precision())); case PROTOBUF: Protobuf protobuf = (Protobuf) type; return new TypeDesc(CatalogUtil.newDataType(TajoDataTypes.Type.PROTOBUF, protobuf.getMessageName())); case RECORD: Record record = (Record) type; switch (elemType.kind()) { case INT1: return new TypeDesc(newSimpleDataType(INT1_ARRAY)); case INT2: return new TypeDesc(newSimpleDataType(INT2_ARRAY)); case INT4: return new TypeDesc(newSimpleDataType(INT4_ARRAY)); case INT8: return new TypeDesc(newSimpleDataType(INT8_ARRAY)); case FLOAT4: return new TypeDesc(newSimpleDataType(FLOAT4_ARRAY)); case FLOAT8: return new TypeDesc(newSimpleDataType(FLOAT8_ARRAY)); default:
private void checkIndexExistence(final QueryContext queryContext, final CreateIndexNode createIndexNode) throws DuplicateIndexException { String databaseName, simpleIndexName, qualifiedIndexName; if (CatalogUtil.isFQTableName(createIndexNode.getIndexName())) { String[] splits = CatalogUtil.splitFQTableName(createIndexNode.getIndexName()); databaseName = splits[0]; simpleIndexName = splits[1]; qualifiedIndexName = createIndexNode.getIndexName(); } else { databaseName = queryContext.getCurrentDatabase(); simpleIndexName = createIndexNode.getIndexName(); qualifiedIndexName = CatalogUtil.buildFQName(databaseName, simpleIndexName); } if (catalog.existIndexByName(databaseName, simpleIndexName)) { throw new DuplicateIndexException(qualifiedIndexName); } }
public String getCanonicalName() { if (CatalogUtil.isFQTableName(this.tableDesc.getName())) { String databaseName = CatalogUtil.extractQualifier(this.tableDesc.getName()); return hasAlias() ? CatalogUtil.buildFQName(databaseName, alias) : tableDesc.getName(); } else { return hasAlias() ? alias : tableDesc.getName(); } }
return checkIfMatchedNonVarLengthFunction(definedTypes, givenTypes, definedSize, true); if (!checkIfVariableLengthParamDefinition(definedTypes)) { return false; if (!checkIfMatchedNonVarLengthFunction(definedTypes, givenTypes, definedSize - 1, false)) { return false; getPrimitiveTypeOf(definedTypes.get(definedTypes.size() - 1).getType()); getWidestType(CatalogUtil.newSimpleDataTypeArray(basisTypeOfVarLengthType, givenTypes.get(j).getType())) .getType(); } catch (UndefinedOperatorException e) { isCompatibleType(primitiveTypeOfLastDefinedParam, basisTypeOfVarLengthType))) { return false; if (type != Type.NULL_TYPE && !isCompatibleType(primitiveTypeOfLastDefinedParam, type)) { return false;
private ColumnProto resultToColumnProto(final ResultSet res) throws SQLException { ColumnProto.Builder builder = ColumnProto.newBuilder(); builder.setName(res.getString("column_name").trim()); int nestedFieldNum = res.getInt("NESTED_FIELD_NUM"); Type type = getDataType(res.getString("data_type").trim()); int typeLength = res.getInt("type_length"); if (nestedFieldNum > 0) { builder.setDataType(CatalogUtil.newRecordType(nestedFieldNum)); } else if (typeLength > 0) { builder.setDataType(CatalogUtil.newDataTypeWithLen(type, typeLength)); } else { builder.setDataType(CatalogUtil.newSimpleDataType(type)); } return builder.build(); }
@Test public void testGetWidestType() throws Exception { assertEquals(Type.INT1, CatalogUtil.getWidestType(CatalogUtil.newSimpleDataType(Type.INT1)).getType()); assertEquals(Type.INT2, CatalogUtil.getWidestType(CatalogUtil.newSimpleDataTypeArray(Type.INT1, Type.INT2)).getType()); assertEquals(Type.INT4, CatalogUtil.getWidestType(CatalogUtil.newSimpleDataTypeArray(Type.INT1, Type.INT2, Type.INT4)).getType()); assertEquals(Type.INT8, CatalogUtil.getWidestType(CatalogUtil.newSimpleDataTypeArray(Type.INT1, Type.INT2, Type.INT4, Type.INT8)).getType()); assertEquals(Type.FLOAT4, CatalogUtil.getWidestType(CatalogUtil.newSimpleDataTypeArray(Type.FLOAT4, Type.INT2, Type.INT4, Type.INT8)).getType()); assertEquals(Type.FLOAT8, CatalogUtil.getWidestType(CatalogUtil.newSimpleDataTypeArray(Type.FLOAT4, Type.FLOAT8, Type.INT4, Type.INT8)).getType()); } }
.add("col2", CatalogUtil.newDataTypeWithLen(Type.CHAR, 7)) .add("col3", Type.INT2) .add("col4", Type.INT4) .add("col8", Type.TEXT) .add("col9", Type.BLOB) .add("col10", CatalogUtil.newDataType(Type.PROTOBUF, TajoIdProtos.QueryIdProto.class.getName())) .build(); TableMeta meta = CatalogUtil.newTableMeta(dataFormat, conf); meta.putProperty(StorageConstants.RCFILE_SERDE, BinarySerializerDeserializer.class.getName());
MasterContext masterContext = context.get(masterContextKey); if (CatalogUtil.isFQTableName(tableName)) { tableName = CatalogUtil.extractSimpleName(tableName); String canonicalTableName = CatalogUtil.getCanonicalTableName(databaseName, tableName);