You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@paimon.apache.org by lz...@apache.org on 2023/05/09 02:52:42 UTC

[incubator-paimon] branch master updated: [doc] Improve java api doc (#1005)

This is an automated email from the ASF dual-hosted git repository.

lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-paimon.git


The following commit(s) were added to refs/heads/master by this push:
     new 010929dbc [doc] Improve java api doc (#1005)
010929dbc is described below

commit 010929dbc612a670e455066fdab6710c6ba5cfe1
Author: s7monk <34...@users.noreply.github.com>
AuthorDate: Tue May 9 10:52:37 2023 +0800

    [doc] Improve java api doc (#1005)
---
 docs/content/api/java-api.md | 44 ++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 40 insertions(+), 4 deletions(-)

diff --git a/docs/content/api/java-api.md b/docs/content/api/java-api.md
index 5482dcab8..48c324f5e 100644
--- a/docs/content/api/java-api.md
+++ b/docs/content/api/java-api.md
@@ -374,10 +374,11 @@ public class AlterTable {
         // update nested column nullability
         SchemaChange updateNestedColumnNullability = 
             SchemaChange.updateColumnNullability(new String[]{"col5", "f2"}, false);
-        SchemaChange[] schemaChanges = new SchemaChange[] {addOption, removeOption, addColumn, addColumnAfterField,
-            renameColumn, dropColumn, updateColumnComment, updateNestedColumnComment, updateColumnType, updateColumnPosition,
+
+        SchemaChange[] schemaChanges = new SchemaChange[] {
+            addOption, removeOption, addColumn, addColumnAfterField, renameColumn, dropColumn,
+            updateColumnComment, updateNestedColumnComment, updateColumnType, updateColumnPosition,
             updateColumnNullability, updateNestedColumnNullability};
-        
         try {
             catalog.alterTable(identifier, Arrays.asList(schemaChanges), false);
         } catch (Catalog.TableNotExistException e) {
@@ -419,6 +420,10 @@ import org.apache.paimon.reader.RecordReader;
 import org.apache.paimon.table.source.ReadBuilder;
 import org.apache.paimon.table.source.Split;
 import org.apache.paimon.table.source.TableRead;
+import org.apache.paimon.data.BinaryString;
+import org.apache.paimon.data.GenericRow;
+import org.apache.paimon.types.DataTypes;
+import com.google.common.collect.Lists;
 
 import java.io.IOException;
 import java.util.List;
@@ -428,9 +433,15 @@ public class ReadTable {
     public static void main(String[] args) {
         // 1. Create a ReadBuilder and push filter (`withFilter`)
         // and projection (`withProjection`) if necessary
+        // [{"Alice", 12},{"Bob", 5},{"Emily", 18}]
+         PredicateBuilder builder = 
+            new PredicateBuilder(RowType.of(DataTypes.STRING(),DataTypes.INT()));
+         Predicate notNull = builder.isNotNull(0);
+         Predicate greaterOrEqual = builder.greaterOrEqual(1, 12);
+
         ReadBuilder readBuilder = table.newReadBuilder()
                 .withProjection(projection)
-                .withFilter(filter);
+                .withFilter(Lists.newArrayList(notNull, greaterOrEqual));
 
         // 2. Plan splits in 'Coordinator' (or named 'Driver')
         List<Split> splits = readBuilder.newScan().plan().splits();
@@ -460,6 +471,8 @@ import org.apache.paimon.table.sink.BatchTableCommit;
 import org.apache.paimon.table.sink.BatchTableWrite;
 import org.apache.paimon.table.sink.BatchWriteBuilder;
 import org.apache.paimon.table.sink.CommitMessage;
+import org.apache.paimon.data.BinaryString;
+import org.apache.paimon.data.GenericRow;
 
 public class WriteTable {
 
@@ -470,9 +483,15 @@ public class WriteTable {
 
         // 2. Write records in distributed tasks
         BatchTableWrite write = writeBuilder.newWrite();
+
+        GenericRow record1 = GenericRow.of(BinaryString.fromString("Alice"), 12);
+        GenericRow record2 = GenericRow.of(BinaryString.fromString("Bob"), 5);
+        GenericRow record3 = GenericRow.of(BinaryString.fromString("Emily"), 18);
+
         write.write(record1);
         write.write(record2);
         write.write(record3);
+
         List<CommitMessage> messages = write.prepareCommit();
 
         // 3. Collect all CommitMessages to a global node and commit
@@ -600,4 +619,21 @@ public class StreamWriteTable {
 | map          | org.apache.paimon.data.InternalMap   |
 | InternalRow  | org.apache.paimon.data.InternalRow   |
 
+## Predicate Types
+
+| SQL Predicate| Paimon Predicate                                             | 
+|:-------------|:-------------------------------------------------------------|
+| and          | org.apache.paimon.predicate.PredicateBuilder.And             |
+| or           | org.apache.paimon.predicate.PredicateBuilder.Or              |
+| is null      | org.apache.paimon.predicate.PredicateBuilder.IsNull          |
+| is not null  | org.apache.paimon.predicate.PredicateBuilder.IsNotNull       |
+| in           | org.apache.paimon.predicate.PredicateBuildere.In             |
+| not in       | org.apache.paimon.predicate.PredicateBuilder.NotIn           |
+| =            | org.apache.paimon.predicate.PredicateBuilder.Equal           |
+| <>           | org.apache.paimon.predicate.PredicateBuilder.NotEqual        |
+| <            | org.apache.paimon.predicate.PredicateBuilder.LessThan        |
+| <=           | org.apache.paimon.predicate.PredicateBuilder.LessOrEqual     |
+| >            | org.apache.paimon.predicate.PredicateBuilder.GreaterThan     |
+| >=           | org.apache.paimon.predicate.PredicateBuilder.GreaterOrEqual  |
+