/** * Create data transfer object for given cache type metadata. * * @param q Actual cache query entities. */ private VisorQueryEntity(QueryEntity q) { assert q != null; keyType = q.getKeyType(); valType = q.getValueType(); keyFields = toList(q.getKeyFields()); LinkedHashMap<String, String> qryFields = q.getFields(); qryFlds = new LinkedHashMap<>(qryFields); aliases = U.copyMap(q.getAliases()); Collection<QueryIndex> qryIdxs = q.getIndexes(); grps = new ArrayList<>(qryIdxs.size()); for (QueryIndex qryIdx : qryIdxs) grps.add(new VisorQueryIndex(qryIdx)); tblName = q.getTableName(); keyFieldName = q.getKeyFieldName(); valFieldName = q.getValueFieldName(); }
/** * Add validate property to QueryTypeDescriptor. * * @param ctx Kernel context. * @param qryEntity Query entity. * @param d Descriptor. * @param name Field name. * @throws IgniteCheckedException */ private static void addKeyValueValidationProperty(GridKernalContext ctx, QueryEntity qryEntity, QueryTypeDescriptorImpl d, String name, boolean isKey) throws IgniteCheckedException { Map<String, Object> dfltVals = qryEntity.getDefaultFieldValues(); Map<String, Integer> precision = qryEntity.getFieldsPrecision(); Map<String, Integer> scale = qryEntity.getFieldsScale(); String typeName = isKey ? qryEntity.getKeyType() : qryEntity.getValueType(); Object dfltVal = dfltVals.get(name); QueryBinaryProperty prop = buildBinaryProperty( ctx, name, U.classForName(typeName, Object.class, true), d.aliases(), isKey, true, dfltVal, precision == null ? -1 : precision.getOrDefault(name, -1), scale == null ? -1 : scale.getOrDefault(name, -1)); d.addProperty(prop, true, false); }
writer.writeString(qryEntity.getValueType()); writer.writeString(qryEntity.getTableName()); writer.writeString(qryEntity.getKeyFieldName());
fields.put(entity.getValueFieldName(), entity.getValueType());
out, (unused, e) -> { w.writeString(e.getKeyType()); w.writeString(e.getValueType()); w.writeString(e.getTableName()); w.writeString(e.getKeyFieldName());
normalEntity.setValueType(entity.getValueType()); normalEntity.setFields(entity.getFields()); normalEntity.setKeyFields(entity.getKeyFields());
assertEquals(valTypeName, e.getValueType()); else assertTrue(e.getValueType().startsWith("SQL_PUBLIC")); BinaryObject exVal = client().binary().builder(e.getValueType()).setField("X", "a").build();
/** * Create data transfer object for given cache type metadata. * * @param q Actual cache query entities. */ private VisorQueryEntity(QueryEntity q) { assert q != null; keyType = q.getKeyType(); valType = q.getValueType(); keyFields = toList(q.getKeyFields()); LinkedHashMap<String, String> qryFields = q.getFields(); qryFlds = new LinkedHashMap<>(qryFields); aliases = U.copyMap(q.getAliases()); Collection<QueryIndex> qryIdxs = q.getIndexes(); grps = new ArrayList<>(qryIdxs.size()); for (QueryIndex qryIdx : qryIdxs) grps.add(new VisorQueryIndex(qryIdx)); tblName = q.getTableName(); keyFieldName = q.getKeyFieldName(); valFieldName = q.getValueFieldName(); }
/** * Add validate property to QueryTypeDescriptor. * * @param ctx Kernel context. * @param qryEntity Query entity. * @param d Descriptor. * @param name Field name. * @throws IgniteCheckedException */ private static void addKeyValueValidationProperty(GridKernalContext ctx, QueryEntity qryEntity, QueryTypeDescriptorImpl d, String name, boolean isKey) throws IgniteCheckedException { Map<String, Object> dfltVals = qryEntity.getDefaultFieldValues(); Map<String, Integer> precision = qryEntity.getFieldsPrecision(); Map<String, Integer> scale = qryEntity.getFieldsScale(); String typeName = isKey ? qryEntity.getKeyType() : qryEntity.getValueType(); Object dfltVal = dfltVals.get(name); QueryBinaryProperty prop = buildBinaryProperty( ctx, name, U.classForName(typeName, Object.class, true), d.aliases(), isKey, true, dfltVal, precision == null ? -1 : precision.getOrDefault(name, -1), scale == null ? -1 : scale.getOrDefault(name, -1)); d.addProperty(prop, true, false); }
if ( cacheConfig.getQueryEntities() != null ) { for ( QueryEntity qe : (Collection<QueryEntity>) cacheConfig.getQueryEntities() ) { if ( qe.getValueType() != null && cacheType.equalsIgnoreCase( qe.getValueType() ) ) { result = qe.getKeyType(); break;
writer.writeString(qryEntity.getValueType()); writer.writeString(qryEntity.getTableName()); writer.writeString(qryEntity.getKeyFieldName());
out, (unused, e) -> { w.writeString(e.getKeyType()); w.writeString(e.getValueType()); w.writeString(e.getTableName()); w.writeString(e.getKeyFieldName());
normalEntity.setValueType(entity.getValueType()); normalEntity.setFields(entity.getFields()); normalEntity.setKeyFields(entity.getKeyFields());