Hi Q7,

You can take a look to
https://paimon.apache.org/docs/master/concepts/system-tables/#audit-log-table

Best,
Jingsong

On Wed, Oct 29, 2025 at 8:28 PM Hongze Qi <[email protected]> wrote:
>
> Dear Paimon Community,
> I hope this email finds you well. I’m currently working with Paimon primary 
> key tables and trying to leverage Flink SQL to retrieve the row kind 
> (referred to as op, with values like +I, -U, +U, -D) for business logic 
> operations. However, I’ve encountered some challenges and would appreciate 
> your guidance.
> Here are the two scenarios I’ve tested so far:
>
> Scenario 1: Implicit Row Kind in SELECT *When I execute SELECT * on a Paimon 
> primary key table via Flink SQL, the result set includes a dynamic op column 
> that reflects the row kind. However, if I try to explicitly reference this op 
> column (e.g., SELECT op FROM ... or WHERE op IN ('-U', '+U')), Flink SQL 
> throws an error stating that the column op does not exist in the table 
> schema. This is because op is a virtual column added dynamically by Paimon, 
> not a physical column in the table.
> Scenario 2: Explicit rowkind.field ConfigurationI attempted to use the 
> rowkind.field table property to bind a physical column (e.g., op VARCHAR(2)) 
> for storing row kind values. While this allows me to reference op in queries, 
> it requires manually inserting op values (e.g., +I, -U) during data 
> ingestion. This approach is not ideal, as I want Paimon to automatically 
> determine the row kind (based on insert/update/delete operations) without 
> manual intervention.
>
> My Question:Is there an alternative approach to retrieve the automatically 
> generated row kind (op) in Flink SQL queries without needing to:
>
> Manually maintain a physical op column via rowkind.field.
> Only rely on SELECT * (which is not scalable for complex business logic).
>
> I aim to directly use the row kind in operations like SELECT * FROM xxx WHERE 
> op IN ('-U', '+U') to filter and process records based on their change type, 
> all while letting Paimon handle the row kind generation automatically.
> Any insights or best practices you can share would be extremely helpful. 
> Thank you in advance for your time and support!
> Best regards,
> Q7
>

Reply via email to