# HugeGraph 0.3.3 Release Notes

LLMS 索引： [llms.txt](/versions/1.0/cn/llms.txt)

---

### API & Java Client

#### 功能更新
- 为vertex-label和edge-label增加可空属性集合，允许在create和append时指定（HugeGraph-245）
- 配合core的功能为用户提供tinkerpop variables RESTful API（HugeGraph-396）
- 支持顶点／边属性的更新和删除（HugeGraph-894）
- 支持顶点／边的条件查询（HugeGraph-919）
 
#### BUG修复
- HugeGraph-API接收的RequestBody为null或""时抛出空指针异常（HugeGraph-795）
- 为HugeGraph-API添加输入参数检查，避免抛出空指针异常（HugeGraph-796 ～ HugeGraph-798，HugeGraph-802，HugeGraph-808 ～ HugeGraph-814，HugeGraph-817，HugeGraph-823，HugeGraph-860）
- 创建缺失outV-label 或者 inV-label的实体边，依然能够被创建成功，不符合需求（HugeGraph-835）
- 创建vertex-label和edge-label时可以任意传入index-names（HugeGraph-837）
- 创建index，base-type=“VERTEX”等值（期望VL、EL），返回500（HugeGraph-846）
- 创建index，base-type和base-value不匹配，提示不友好（HugeGraph-848）
- 删除已经不存在的两个实体之间的关系，schema返回204，顶点和边类型的则返回404（期望统一为404）（HugeGraph-853，HugeGraph-854）
- 给vertex-label追加属性，缺失id-strategy，返回信息有误（HugeGraph-861）
- 给edge-label追加属性，name缺失，提示信息有误（HugeGraph-862）
- 给edge-label追加属性，source-label为“null”，提示信息有误（HugeGraph-863）
- 查询时的StringId如果为空字符串应该抛出异常（HugeGraph-868）
- 通Rest API创建两个顶点之间的边，在studio中通过g.V()则刚新创建的边则不显示，g.E()则能够显示新创建的边（HugeGraph-869）
- HugeGraph-Server的内部错误500，不应该将stack trace返回给Client（HugeGraph-879）
- addEdge传入空的id字符串时会抛出非法参数异常（HugeGraph-885）
- HugeGraph-Client 的 Gremlin 查询结果在解析 Path 时，如果不包含Vertex／Edge会反序列化异常（HugeGraph-891）
- 枚举HugeKeys的字符串变成小写字母加下划线，导致API序列化时字段名与类中变量名不一致，进而序列化失败（HugeGraph-896）
- 增加边到不存在的顶点时返回404（期望400）（HugeGraph-922）

### Core

#### 功能更新
- 支持对顶点/边属性（包括索引列）的更新操作（HugeGraph-369）
- 索引field为空或者空字符串的支持（hugegraph-553和hugegraph-288）
- vertex/edge的属性一致性保证推迟到实际要访问属性时（hugegraph-763）
- 增加ScyllaDB后端驱动（HugeGraph-772）
- 支持tinkerpop的hasKey、hasValue查询（HugeGraph-826）
- 支持tinkerpop的variables功能(HugeGraph-396)
- 以“~”为开头的为系统隐藏属性，用户不可以创建(HugeGraph-842)
- 增加Backend Features以兼容不同后端的特性(HugeGraph-844)
- 对mutation的update可能出现的操作不直接抛错，进行细化处理（HugeGraph-887）
- 对append到vertex-label/edge-label的property检查，必须是nullable的（HugeGraph-890）
- 对于按照id查询，当有的id不存在时，返回其余存在的对象，而非直接抛异常（HugeGraph-900）
 
#### BUG修复
- Vertex.edges(Direction.BOTH,...) assert error（HugeGraph-661）
- 无法支持在addVertex函数中对同一property（single）多次赋值（HugeGraph-662）
- 更新属性时不涉及更新的索引列会丢失（HugeGraph-801）
- GraphTransaction中的ConditionQuery需要索引查询时，没有触发commit，导致查询失败（HugeGraph-805）
- Cassandra不支持query offset，查询时limit=offset+limit取回所有记录后过滤（HugeGraph-851）
- 多个插入操作加上一个删除操作，插入操作会覆盖删除操作（HugeGraph-857）
- 查询时的StringId如果为空字符串应该抛出异常（HugeGraph-868）
- 元数据schema方法只返回 hidden 信息（HugeGraph-912） 

### 测试

- tinkerpop的structure和process测试使用不同的keyspace（HugeGraph-763）
- 将tinkerpop测试和unit测试添加到流水线release-after-merge中（HugeGraph-763）
- jenkins脚本分离各阶段子脚本，修改项目中的子脚本即可生效构建（HugeGraph-800）
- 增加clear backends功能，在tinkerpop suite运行完成后清除后端（HugeGraph-852）
- 增加BackendMutation的测试（HugeGraph-801）
- 多线程操作图时可能抛出NoHostAvailableException异常（HugeGraph-883）
 
### 内部修改
- 调整HugeGraphServer和HugeGremlinServer启动时JVM的堆内存初始为256M，最大为2048M（HugeGraph-218）
- 创建Cassandra Table时，使用schemaBuilder代替字符串拼接（hugegraph-773）
- 运行测试用例时如果初始化图失败（比如数据库连接不上），clear()报错（HugeGraph-910）
- Example抛异常 Need to specify a readable config file rather than...（HugeGraph-921）
- HugeGraphServer和HugeGreminServer的缓存保持同步（HugeGraph-569）
