JingsongLi opened a new pull request, #7389:
URL: https://github.com/apache/paimon/pull/7389

   <!-- Please specify the module before the PR name: [core] ... or [flink] ... 
-->
   
   ### Purpose
   
   Read data from a Paimon table and display it in a tabular format.
   
   ```shell
   paimon table read mydb.users
   ```
   
   **Options:**
   
   - `--select, -s`: Select specific columns to read (comma-separated)
   - `--where, -w`: Filter condition in SQL-like syntax
   - `--limit, -l`: Maximum number of results to display (default: 100)
   
   **Examples:**
   
   ```shell
   # Read with limit
   paimon table read mydb.users -l 50
   
   # Read specific columns
   paimon table read mydb.users -s id,name,age
   
   # Filter with WHERE clause
   paimon table read mydb.users --where "age > 18"
   
   # Combine select, where, and limit
   paimon table read mydb.users -s id,name -w "age >= 20 AND city = 'Beijing'" 
-l 50
   ```
   
   **WHERE Operators**
   
   The `--where` option supports SQL-like filter expressions:
   
   | Operator | Example |
   |---|---|
   | `=`, `!=`, `<>` | `name = 'Alice'` |
   | `<`, `<=`, `>`, `>=` | `age > 18` |
   | `IS NULL`, `IS NOT NULL` | `deleted_at IS NULL` |
   | `IN (...)`, `NOT IN (...)` | `status IN ('active', 'pending')` |
   | `BETWEEN ... AND ...` | `age BETWEEN 20 AND 30` |
   | `LIKE` | `name LIKE 'A%'` |
   
   Multiple conditions can be combined with `AND` and `OR` (AND has higher 
precedence). Parentheses are supported for grouping:
   
   ```shell
   # AND condition
   paimon table read mydb.users -w "age >= 20 AND age <= 30"
   
   # OR condition
   paimon table read mydb.users -w "city = 'Beijing' OR city = 'Shanghai'"
   
   # Parenthesized grouping
   paimon table read mydb.users -w "(age > 18 OR name = 'Bob') AND city = 
'Beijing'"
   
   # IN list
   paimon table read mydb.users -w "city IN ('Beijing', 'Shanghai', 'Hangzhou')"
   
   # BETWEEN
   paimon table read mydb.users -w "age BETWEEN 25 AND 35"
   
   # LIKE pattern
   paimon table read mydb.users -w "name LIKE 'A%'"
   
   # IS NULL / IS NOT NULL
   paimon table read mydb.users -w "email IS NOT NULL"
   ```
   
   Literal values are automatically cast to the appropriate Python type based 
on the table schema (e.g., `INT` fields cast to `int`, `DOUBLE` to `float`).
   
   Output:
   ```
    id    name  age      city
     1   Alice   25   Beijing
     2     Bob   30  Shanghai
     3 Charlie   35 Guangzhou
     4   David   28  Shenzhen
     5     Eve   32  Hangzhou
   ```
   
   ### Tests
   
   <!-- List UT and IT cases to verify this change -->
   
   ### API and Format
   
   <!-- Does this change affect API or storage format -->
   
   ### Documentation
   
   <!-- Does this change introduce a new feature -->
   
   ### Generative AI tooling
   
   <!--
   If generative AI tooling has been used in the process of authoring this 
patch, please include the
   phrase: 'Generated-by: ' followed by the name of the tool and its version.
   If no, write 'No'.
   Please refer to the [ASF Generative Tooling 
Guidance](https://www.apache.org/legal/generative-tooling.html) for details.
   -->
   
   Claude 4.6 Opus


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to