apache / apache/pulsar

Schema properties are not updated if schema definition does not change

Open
#7,564 3 comments 0 reactions 1 assignee Claimed by @saumitras View on GitHub
area/schema help wanted type/bug
Dominant language
Java
Stars
15.3k
Forks
3.8k
Avg merge
1d 22h
Merged PRs (30d)
142

Description

**Describe the bug**
The only available operation to update properties of a schema (`SchemaInfo`) is to use `createSchema()` method of `PulsarAdmin`. The problem with that is that it will not update the provided properties if schema definition does not change.

The only way the admin API provides to update the properties associated with an schema is to delete it first and then create it from scratch. This can be dangerous because if schema creation fails aftewards we will be left with an unreadable topic (missing schema) and also different consumers using different schema versions may also face issues (when we delete an schema all versions are deleted).

**To Reproduce**
```
PulsarAdmin client = createClient();
String topicUri = getTopicUri();

SchemaInfo info = client.schemas().getSchemaInfo(topicUri);

/*
* We add a new property
*/
info.getProperties().put("newProp", "newValue");

PostSchemaPayload sp = new PostSchemaPayload();
sp.setType(info.getType().toString());
sp.setSchema(info.getSchemaDefinition());
sp.setProperties(info.getProperties());

/*
* This should update schema properties
*/
client.schemas().createSchema(topicUri, sp);

/*
* This object does not contain "newProp"
*/
info = client.schemas().getSchemaInfo(topicUri);
```

**Expected behavior**
Method to create/update schema should update properties even if schema definition does not change.

**Screenshots**

**Desktop (please complete the following information):**
- Windows with Docker Desktop

**Additional context**

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.