This is an automated email from the ASF dual-hosted git repository.
JingsongLi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git
The following commit(s) were added to refs/heads/master by this push:
new d7b1bf9bea [core] Rename FM index identifier to fm (#9487)
d7b1bf9bea is described below
commit d7b1bf9bea01f7926c9cc6ae9188a1e0139a153d
Author: Jingsong Lee <[email protected]>
AuthorDate: Mon Aug 31 13:58:32 2026 +0800
[core] Rename FM index identifier to fm (#9487)
---
docs/docs/flink/procedures.md | 4 ++--
docs/docs/multimodal-table/global-index/fm.mdx | 4 ++--
docs/docs/spark/procedures.md | 4 ++--
.../apache/paimon/globalindex/fmindex/FMGlobalIndexWriter.java | 2 +-
.../apache/paimon/globalindex/fmindex/FMGlobalIndexerFactory.java | 2 +-
.../org/apache/paimon/globalindex/fmindex/FMGlobalIndexTest.java | 2 +-
.../apache/paimon/index/pk/PrimaryKeyIndexDefinitionsTest.java | 2 +-
.../paimon/index/pksorted/PkSequentialIndexBuilderTest.java | 6 +++---
.../paimon/flink/globalindex/SortedIndexTopoBuilderTest.java | 2 +-
.../spark/globalindex/DefaultGlobalIndexTopoBuilderTest.java | 2 +-
.../paimon/spark/procedure/FMGlobalIndexProcedureTest.scala | 8 ++++----
.../org/apache/paimon/spark/sql/PrimaryKeySortedIndexTest.scala | 2 +-
12 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/docs/docs/flink/procedures.md b/docs/docs/flink/procedures.md
index 6e83467f78..fd27a10685 100644
--- a/docs/docs/flink/procedures.md
+++ b/docs/docs/flink/procedures.md
@@ -1085,7 +1085,7 @@ All available procedures are listed below.
To create a global index on a table for accelerating queries.
Arguments:
<li>table(required): the target table identifier.</li>
<li>index_column(required): the column name to build index on.</li>
- <li>index_type(required): the type of global index, supported
types include 'btree', 'bitmap', 'fmindex', 'ivf-flat', 'ivf-pq', 'ivf-sq',
'ivf-rq', 'diskann', and 'full-text'.</li>
+ <li>index_type(required): the type of global index, supported
types include 'btree', 'bitmap', 'fm', 'ivf-flat', 'ivf-pq', 'ivf-sq',
'ivf-rq', 'diskann', and 'full-text'.</li>
<li>partitions(optional): partition filter for selective index
creation.</li>
<li>options(optional): additional dynamic options for index
creation.</li>
</td>
@@ -1105,7 +1105,7 @@ All available procedures are listed below.
CALL sys.create_global_index(<br/>
`table` => 'default.T',<br/>
`index_column` => 'content',<br/>
- `index_type` => 'fmindex')<br/><br/>
+ `index_type` => 'fm')<br/><br/>
-- Create index for specific partitions<br/>
CALL sys.create_global_index(<br/>
`table` => 'default.T',<br/>
diff --git a/docs/docs/multimodal-table/global-index/fm.mdx
b/docs/docs/multimodal-table/global-index/fm.mdx
index 87666483d7..c67f8a7935 100644
--- a/docs/docs/multimodal-table/global-index/fm.mdx
+++ b/docs/docs/multimodal-table/global-index/fm.mdx
@@ -43,7 +43,7 @@ Create the index on a Data Evolution table with row tracking
enabled:
CALL sys.create_global_index(
table => 'db.documents',
index_column => 'content',
- index_type => 'fmindex',
+ index_type => 'fm',
options => 'fm-index.partition-row-count=100000'
);
```
@@ -54,7 +54,7 @@ Drop it with the same index type:
CALL sys.drop_global_index(
table => 'db.documents',
index_column => 'content',
- index_type => 'fmindex'
+ index_type => 'fm'
);
```
diff --git a/docs/docs/spark/procedures.md b/docs/docs/spark/procedures.md
index ca09823f9e..785dc271e0 100644
--- a/docs/docs/spark/procedures.md
+++ b/docs/docs/spark/procedures.md
@@ -560,14 +560,14 @@ This section introduce all available spark procedures
about paimon.
To create global index files for a given column. The table must have
<code>row-tracking.enabled=true</code>. Arguments:
<li>table: the target table identifier. Cannot be empty.</li>
<li>index_column: the name of the column to index. Cannot be
empty.</li>
- <li>index_type: type of the index to build, e.g. 'btree',
'bitmap', or 'fmindex'. Cannot be empty.</li>
+ <li>index_type: type of the index to build, e.g. 'btree',
'bitmap', or 'fm'. Cannot be empty.</li>
<li>partitions: partition filter to limit the partitions on which
to build the index. The comma (",") represents "AND", the semicolon (";")
represents "OR". Left empty for all partitions.</li>
<li>options: additional dynamic options of the table. It
prioritizes higher than original `tableProp` and lower than `procedureArg`.</li>
</td>
<td>
CALL sys.create_global_index(table => 'default.T', index_column =>
'name', index_type => 'btree')<br/><br/>
CALL sys.create_global_index(table => 'default.T', index_column =>
'tag', index_type => 'bitmap', options =>
'sorted-index.records-per-range=1000000')<br/><br/>
- CALL sys.create_global_index(table => 'default.T', index_column =>
'content', index_type => 'fmindex')<br/><br/>
+ CALL sys.create_global_index(table => 'default.T', index_column =>
'content', index_type => 'fm')<br/><br/>
CALL sys.create_global_index(table => 'default.T', index_column =>
'name', index_type => 'btree', partitions => 'pt=p1;pt=p2')<br/><br/>
CALL sys.create_global_index(table => 'default.T', index_column =>
'content', index_type => 'full-text', options =>
'full-text.tokenizer=ngram,full-text.ngram.min-gram=2,full-text.ngram.max-gram=2')<br/><br/>
CALL sys.create_global_index(table => 'default.T', index_column =>
'content', index_type => 'full-text', options =>
'full-text.tokenizer=jieba')<br/><br/>
diff --git
a/paimon-common/src/main/java/org/apache/paimon/globalindex/fmindex/FMGlobalIndexWriter.java
b/paimon-common/src/main/java/org/apache/paimon/globalindex/fmindex/FMGlobalIndexWriter.java
index c43c4c1979..4c18b6da6f 100644
---
a/paimon-common/src/main/java/org/apache/paimon/globalindex/fmindex/FMGlobalIndexWriter.java
+++
b/paimon-common/src/main/java/org/apache/paimon/globalindex/fmindex/FMGlobalIndexWriter.java
@@ -290,7 +290,7 @@ public class FMGlobalIndexWriter implements
GlobalIndexSingleColumnWriter, Close
if (output != null) {
return;
}
- fileName = fileWriter.newFileName("fmindex");
+ fileName = fileWriter.newFileName("fm");
stream = fileWriter.newOutputStream(fileName);
output = new DataOutputStream(stream);
}
diff --git
a/paimon-common/src/main/java/org/apache/paimon/globalindex/fmindex/FMGlobalIndexerFactory.java
b/paimon-common/src/main/java/org/apache/paimon/globalindex/fmindex/FMGlobalIndexerFactory.java
index 3984d69605..4b5e37c056 100644
---
a/paimon-common/src/main/java/org/apache/paimon/globalindex/fmindex/FMGlobalIndexerFactory.java
+++
b/paimon-common/src/main/java/org/apache/paimon/globalindex/fmindex/FMGlobalIndexerFactory.java
@@ -29,7 +29,7 @@ import static
org.apache.paimon.utils.Preconditions.checkArgument;
/** Factory for the exact partitioned FM contains index. */
public class FMGlobalIndexerFactory implements GlobalIndexerFactory {
- public static final String IDENTIFIER = "fmindex";
+ public static final String IDENTIFIER = "fm";
@Override
public String identifier() {
diff --git
a/paimon-common/src/test/java/org/apache/paimon/globalindex/fmindex/FMGlobalIndexTest.java
b/paimon-common/src/test/java/org/apache/paimon/globalindex/fmindex/FMGlobalIndexTest.java
index edc1c9f2d8..78d98faea0 100644
---
a/paimon-common/src/test/java/org/apache/paimon/globalindex/fmindex/FMGlobalIndexTest.java
+++
b/paimon-common/src/test/java/org/apache/paimon/globalindex/fmindex/FMGlobalIndexTest.java
@@ -295,7 +295,7 @@ public class FMGlobalIndexTest {
try (GlobalIndexReader reader = createReader(Collections.emptyList(),
0)) {
assertRows(reader.visitContains(fieldRef, str("")).join());
}
- assertThat(GlobalIndexer.create("fmindex", dataField, new Options()))
+ assertThat(GlobalIndexer.create("fm", dataField, new Options()))
.isInstanceOf(FMGlobalIndexer.class);
List<GlobalIndexIOMeta> shifted =
writeData(Collections.singletonList(str("value")), 1);
diff --git
a/paimon-core/src/test/java/org/apache/paimon/index/pk/PrimaryKeyIndexDefinitionsTest.java
b/paimon-core/src/test/java/org/apache/paimon/index/pk/PrimaryKeyIndexDefinitionsTest.java
index 351fb64def..bdc92049d1 100644
---
a/paimon-core/src/test/java/org/apache/paimon/index/pk/PrimaryKeyIndexDefinitionsTest.java
+++
b/paimon-core/src/test/java/org/apache/paimon/index/pk/PrimaryKeyIndexDefinitionsTest.java
@@ -110,7 +110,7 @@ class PrimaryKeyIndexDefinitionsTest {
PrimaryKeyIndexDefinitions.create(schema(options)).definitions().get(0);
assertThat(definition.column()).isEqualTo("name");
- assertThat(definition.indexType()).isEqualTo("fmindex");
+ assertThat(definition.indexType()).isEqualTo("fm");
assertThat(definition.family()).isEqualTo(PrimaryKeyIndexDefinition.Family.FM);
assertThat(definition.options().get("fm-index.sa-sample-rate")).isEqualTo("16");
assertThat(definition.options().get("fm-index.partition-row-count")).isEqualTo("2");
diff --git
a/paimon-core/src/test/java/org/apache/paimon/index/pksorted/PkSequentialIndexBuilderTest.java
b/paimon-core/src/test/java/org/apache/paimon/index/pksorted/PkSequentialIndexBuilderTest.java
index fa0a55eb2b..da9f1670a5 100644
---
a/paimon-core/src/test/java/org/apache/paimon/index/pksorted/PkSequentialIndexBuilderTest.java
+++
b/paimon-core/src/test/java/org/apache/paimon/index/pksorted/PkSequentialIndexBuilderTest.java
@@ -88,7 +88,7 @@ class PkSequentialIndexBuilderTest {
},
capturingFile,
field(),
- "fmindex",
+ "fm",
new Options())
.build(Arrays.asList(sourceB, sourceA));
@@ -116,7 +116,7 @@ class PkSequentialIndexBuilderTest {
ignored -> reader,
new PkSortedIndexFile(LocalFileIO.create(),
pathFactory()),
field(),
- "fmindex",
+ "fm",
new Options());
assertThatThrownBy(() ->
builder.build(Collections.singletonList(dataFile("data-file", 2))))
@@ -134,7 +134,7 @@ class PkSequentialIndexBuilderTest {
},
new PkSortedIndexFile(LocalFileIO.create(),
pathFactory()),
field(),
- "fmindex",
+ "fm",
new Options());
assertThatThrownBy(() ->
builder.build(Collections.singletonList(dataFile("data-file", 1))))
diff --git
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/globalindex/SortedIndexTopoBuilderTest.java
b/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/globalindex/SortedIndexTopoBuilderTest.java
index 86971d7d18..cdd5cf31c8 100644
---
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/globalindex/SortedIndexTopoBuilderTest.java
+++
b/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/globalindex/SortedIndexTopoBuilderTest.java
@@ -63,7 +63,7 @@ public class SortedIndexTopoBuilderTest {
assertThat(SortedIndexTopoBuilder.supports("bitmap")).isTrue();
assertThat(SortedIndexTopoBuilder.supports("btree")).isTrue();
assertThat(SortedIndexTopoBuilder.supports("multivalue")).isTrue();
- assertThat(SortedIndexTopoBuilder.supports("fmindex")).isFalse();
+ assertThat(SortedIndexTopoBuilder.supports("fm")).isFalse();
assertThat(SortedIndexTopoBuilder.supports("inverted")).isFalse();
}
diff --git
a/paimon-spark/paimon-spark-common/src/test/java/org/apache/paimon/spark/globalindex/DefaultGlobalIndexTopoBuilderTest.java
b/paimon-spark/paimon-spark-common/src/test/java/org/apache/paimon/spark/globalindex/DefaultGlobalIndexTopoBuilderTest.java
index 4a2f0bd78e..0645119462 100644
---
a/paimon-spark/paimon-spark-common/src/test/java/org/apache/paimon/spark/globalindex/DefaultGlobalIndexTopoBuilderTest.java
+++
b/paimon-spark/paimon-spark-common/src/test/java/org/apache/paimon/spark/globalindex/DefaultGlobalIndexTopoBuilderTest.java
@@ -43,7 +43,7 @@ public class DefaultGlobalIndexTopoBuilderTest {
@Test
void testFMIndexUsesDefaultTopologyBuilder() {
-
assertThat(GlobalIndexTopologyBuilderUtils.createTopoBuilder("fmindex"))
+ assertThat(GlobalIndexTopologyBuilderUtils.createTopoBuilder("fm"))
.isInstanceOf(DefaultGlobalIndexTopoBuilder.class);
}
diff --git
a/paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/procedure/FMGlobalIndexProcedureTest.scala
b/paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/procedure/FMGlobalIndexProcedureTest.scala
index 99ac73ff57..014bf1c1eb 100644
---
a/paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/procedure/FMGlobalIndexProcedureTest.scala
+++
b/paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/procedure/FMGlobalIndexProcedureTest.scala
@@ -53,7 +53,7 @@ class FMGlobalIndexProcedureTest extends PaimonSparkTestBase
with StreamTest {
val output = spark
.sql(
"CALL sys.create_global_index(" +
- "table => 'test.T', index_column => 'content', index_type =>
'fmindex', " +
+ "table => 'test.T', index_column => 'content', index_type => 'fm',
" +
"options => 'fm-index.partition-row-count=2')")
.collect()
.head
@@ -65,7 +65,7 @@ class FMGlobalIndexProcedureTest extends PaimonSparkTestBase
with StreamTest {
.scanEntries()
.asScala
.map(_.indexFile())
- .filter(_.indexType() == "fmindex")
+ .filter(_.indexType() == "fm")
assert(entries.nonEmpty)
assert(entries.map(_.rowCount()).sum == 7L)
@@ -111,7 +111,7 @@ class FMGlobalIndexProcedureTest extends
PaimonSparkTestBase with StreamTest {
val output = spark
.sql(
"CALL sys.create_global_index(" +
- "table => 'test.T', index_column => 'content', index_type =>
'fmindex', " +
+ "table => 'test.T', index_column => 'content', index_type => 'fm',
" +
"options => 'fm-index.partition-row-count=2')")
.collect()
.head
@@ -123,7 +123,7 @@ class FMGlobalIndexProcedureTest extends
PaimonSparkTestBase with StreamTest {
.scanEntries()
.asScala
.map(_.indexFile())
- .filter(_.indexType() == "fmindex")
+ .filter(_.indexType() == "fm")
assert(entries.nonEmpty)
// The index retains the stable physical row-id range, including rows
hidden by DVs.
assert(entries.map(_.rowCount()).sum == 7L)
diff --git
a/paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/sql/PrimaryKeySortedIndexTest.scala
b/paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/sql/PrimaryKeySortedIndexTest.scala
index 01beef921a..fd48b69956 100644
---
a/paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/sql/PrimaryKeySortedIndexTest.scala
+++
b/paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/sql/PrimaryKeySortedIndexTest.scala
@@ -62,7 +62,7 @@ class PrimaryKeySortedIndexTest extends PaimonSparkTestBase {
val sourceIndexes =
loadTable("t").store.newIndexFileHandler.scanEntries.asScala
.map(_.indexFile)
.filter(meta => meta.globalIndexMeta != null &&
meta.globalIndexMeta.sourceMeta != null)
- assert(sourceIndexes.map(_.indexType).toSet == Set("fmindex"))
+ assert(sourceIndexes.map(_.indexType).toSet == Set("fm"))
assert(sourceIndexes.size == 1)
val predicateBuilder = new PredicateBuilder(loadTable("t").rowType())