diff --git a/.gitignore b/.gitignore index f6ba9c52f7091f..22bda2a603460a 100644 --- a/.gitignore +++ b/.gitignore @@ -142,6 +142,12 @@ docker/thirdparties/docker-compose/*/*.yaml docker/thirdparties/docker-compose/*/*.env docker/thirdparties/docker-compose/*/cache/ docker/thirdparties/docker-compose/*/scripts/SUCCESS +# Rendered from the .tpl next to them by run-thirdparties-docker.sh, which substitutes +# CONTAINER_UID; the templates are tracked, the rendered copies are not. +docker/thirdparties/docker-compose/*/entrypoint.sh +docker/thirdparties/docker-compose/*/scripts/entrypoint.sh +# Left behind if lance_build_preinstalled_catalog.py fails while promoting a rebuild. +docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance.old/ docker/runtime/be/resource/apache-doris/ # other diff --git a/docker/thirdparties/docker-compose/iceberg/iceberg.yaml.tpl b/docker/thirdparties/docker-compose/iceberg/iceberg.yaml.tpl index 5fc6af63e774b2..e6f182d68737a5 100644 --- a/docker/thirdparties/docker-compose/iceberg/iceberg.yaml.tpl +++ b/docker/thirdparties/docker-compose/iceberg/iceberg.yaml.tpl @@ -192,6 +192,13 @@ services: volumes: - ./data:/mnt/data - ./scripts/preinstalled_data/:/mnt/preinstalled_data + # The lance fixture is mirrored, not copied: it is a Lance Directory (V2) catalog whose + # __manifest version is a commit count, so a rebuild can lower it (it went 35 -> 27 when + # the vector table matrix grew). Lance names version files u64::MAX - version so that a + # listing returns the newest first, which means a leftover higher-versioned manifest from + # an earlier fixture would win over the one just published and point readers at tables + # that no longer exist. This bucket is not recreated between runs, so a plain copy would + # merge the two catalogs. --remove makes the prefix match the committed fixture exactly. entrypoint: > /bin/sh -c " until (/usr/bin/mc config host add minio http://minio:9000 admin password) do echo '...waiting...' && sleep 1; done; @@ -203,7 +210,7 @@ services: /usr/bin/mc policy set public minio/warehouse; /usr/bin/mc cp -r /mnt/data/input/minio/warehouse/* minio/warehouse/; fi; - /usr/bin/mc cp -r /mnt/preinstalled_data/lance/ minio/warehouse/lance/; + /usr/bin/mc mirror --overwrite --remove /mnt/preinstalled_data/lance/ minio/warehouse/lance/; /usr/bin/mc cp -r /mnt/preinstalled_data/iceberg/ minio/warehouse/wh/multi_catalog/; " diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/lance_build_preinstalled_catalog.py b/docker/thirdparties/docker-compose/iceberg/scripts/lance_build_preinstalled_catalog.py index dff694ec4b180d..9721074094f4b3 100644 --- a/docker/thirdparties/docker-compose/iceberg/scripts/lance_build_preinstalled_catalog.py +++ b/docker/thirdparties/docker-compose/iceberg/scripts/lance_build_preinstalled_catalog.py @@ -28,24 +28,34 @@ The generated catalog contains: - __manifest Directory Namespace V2 manifest table (with its scalar indexes). - all_types.lance The pre-existing compatibility-mode root table, re-registered as-is. - - The `doris` namespace with one indexed vector table per ANN algorithm (hash-prefixed - directories), listed in VECTOR_TABLES below, plus NESTED_TABLE, a nested-field scalar - index fixture used by the SHOW INDEX / index-inspection suites. - -Every vector table holds identical deterministic data: 1024 rows in two 512-row fragments, -16-dim Float32 `embedding` where embedding[j] = (row_id - 1) + j. For a query equal to the -vector of row r, the exact squared L2 distance of row n is 16 * (n - r)^2, so head/tail -queries have no distance ties. All values are integers below 2^11 and therefore exact in -Float32. - -Environment: python3 with the exact pins in lance_fixture_requirements.txt. Index training -(IVF kmeans, HNSW graph construction) is not bit-reproducible across runs, so regenerating -this fixture changes the binary output and requires regenerating the dependent regression -.out files. Reproducible properties are asserted by the self-check below instead: logical -metadata, the exact L2 distance ladder the regression goldens encode, plan shape, the -partition-boundary discriminator, and - for the graph indexes - the ef discriminator. -Indexed-vs-flat agreement is an algorithm guarantee only for IVF_FLAT; every quantizing or -graph-traversing index has its behaviour recorded rather than asserted. + - The `doris` namespace with one indexed vector table per cell of the + algorithm x element type x metric matrix (hash-prefixed directories), listed in + VECTOR_TABLES below; BREADTH_TABLE, one table carrying the remaining cells at plan + level; and NESTED_TABLE, a nested-field scalar index fixture used by the SHOW INDEX / + index-inspection suites. + +Every vector table holds 1024 rows in two 512-row fragments, and takes its data from one of +the three DataProfiles below - the shape is per profile, the element type and metric are per +table: + - collinear 16-dim, embedding[j] = (row_id - 1) + j. The exact squared L2 distance + between rows r and n is 16 * (n - r)^2. All values are integers below 2^11 + and therefore exact in every float type used here. Used by the L2 tables. + - directional 16-dim quasi-uniform directions with an independently varying norm, so + cosine and dot rank differently and neither degenerates. Used by the cosine + and dot tables, because the collinear shape is degenerate under both. + - binary 128-byte thermometer code read as a binary vector, giving hamming == |n - r|. + Used by the uint8 table. + +Environment: python3 with the exact pins in lance_fixture_requirements.txt. The self-check +asserts the pins that decide what lands on disk (see PINNED_WRITERS); the pyarrow pin is not +asserted because the stored values are verified directly instead. Index training (IVF kmeans, +HNSW graph construction) is not bit-reproducible across runs, so regenerating this fixture +changes the binary output and requires regenerating the dependent regression .out files. +Reproducible properties are asserted by the self-check below instead: the data-shape digest, +logical metadata, the index metric, the exact distance ladder the L2 and hamming goldens +encode, plan shape, the partition-boundary discriminator, and - for the graph indexes - the +ef discriminator. Indexed-vs-flat agreement is an algorithm guarantee only for IVF_FLAT; +every quantizing or graph-traversing index has its behaviour recorded rather than asserted. The self-check is the entire contract for a fixture whose bytes cannot be reproduced, so this script refuses to run under python -O, where assert statements are stripped. @@ -53,11 +63,18 @@ Usage: python3 lance_build_preinstalled_catalog.py # rebuild in place python3 lance_build_preinstalled_catalog.py --check # self-check the existing fixture + python3 lance_build_preinstalled_catalog.py --repin # rebuild, downgrading a stale + # discriminator row to a warning so + # it can be re-measured afterwards """ import argparse +import hashlib +import importlib.metadata import io import json +import math +import re import shutil import sys import tempfile @@ -100,19 +117,192 @@ # degradation - the regression suite pins that error too. HNSW_SEARCH_PARAMS = {"ef": 100} -# One table per ANN algorithm and element type, identical data, exactly one index named -# embedding_. Naming is vs__, so one table is exactly one cell of the algorithm x element type matrix and a +# The boundary query is symmetric for the ladder profiles - rows r-d and r+d are +# equidistant - so a top-k that lands mid-pair would pin an arbitrary choice of tie winner +# in the goldens. 9 is the last cut that ends on a complete pair. This is the regression +# contract, so the self-check probes at exactly this k: checking 10 here while the suites +# query 9 would let a retrained index pass the generator and fail the suites. +BOUNDARY_TOP_K = 9 +# A boundary row discriminates by however many of its BOUNDARY_TOP_K positions differ from the +# flat answer. At or below this, say so: the check still passes, but the row is one retrain +# away from failing it, and that is worth knowing while the goldens are open rather than on +# the rebuild after next. Measured on the committed fixture: five tables sit at 3, three at +# 7, three at 8 and one at 9, so nothing warns today. The five at 3 are the collinear +# tables whose partition edge falls nearest boundary_row, and they move first. +BOUNDARY_MARGIN_WARN = 2 +# When a discriminator row stops discriminating, the failure message reports replacements. +# Both searches for them cost two ANN queries per row scanned, so they stop here rather than +# sweeping all ROWS to build a list that is then truncated to the same length anyway. +REPORTED_CANDIDATES = 30 +# Graph candidate widths for the ef discriminator: with a narrow ef the traversal has to +# settle for worse candidates than with a wide one. Same purpose as nprobes=1 for IVF - it +# proves the parameter reached the index instead of being quietly dropped. The row that +# discriminates lives on DataProfile.ef_row, next to boundary_row: both are decided by +# training that runs per table, so neither can be a single global number. +EF_TOP_K = 5 +EF_NARROW = 5 +EF_WIDE = 50 + + +# --------------------------------------------------------------------------- +# Vector data profiles +# --------------------------------------------------------------------------- +# A profile is the vector data a table stores, together with the query vectors and the +# closed-form distance ladder that make its goldens hand-checkable. Element type and metric +# are per table; the data shape is not, because a shape that discriminates under one metric +# can be degenerate under another. Measured on the collinear data below with pylance 7.0.0: +# +# dot every query returns the same top-9 (the highest-norm rows), because dot(q, v_r) +# grows linearly in r for any positive query - the answer ignores the query. +# cosine all row directions converge on the all-ones vector, so at rows 250+ the top-9 +# distances are all 0.0 and the ranking is arbitrary tie-breaking. +# +# So L2 tables keep the collinear ladder, cosine and dot tables use DIRECTIONAL, and the +# uint8 table uses BINARY. Every profile is closed-form: no library RNG, whose stream can +# change under us between versions. + + +class DataProfile: + """The data shape of a vector table, and the queries its goldens are built from.""" + + def __init__(self, name, dim, dtype, vector, digest, ladder=None, + boundary_row=256, ef_row=518): + self.name = name + self.dim = dim + self.dtype = dtype + self.vector = vector + # sha256 of every stored vector, truncated. Pinned because the whole point of a + # closed-form shape is that it does not move: the ordering assertions below are + # derived from `vector` and so cannot notice `vector` itself changing, which would + # leave the self-check green while every dependent golden and hardcoded suite query + # went stale. See _digest_of. + self.digest = digest + # The row whose true neighbourhood straddles an IVF partition edge, so that a real + # nprobes=1 probe must miss part of it while a silent flat fallback returns the flat + # answer. Which rows have this property is decided by kmeans and moves on every + # retrain, so it is asserted per table rather than assumed; see + # check_boundary_discriminator. + self.boundary_row = boundary_row + # The row whose graph neighbourhood is thin enough that a narrow ef misses a true + # neighbour. Decided by the graph draw and moves on every retrain, so it lives here + # rather than being one global number - but unlike boundary_row, which is checked for + # every table, this is only reached by the graph indexes and only asserted for the one + # spec carrying ef_discriminator; see check_ef_discriminator. The default is the row + # measured on the collinear data; a profile that later backs a graph index needs its + # own, and the check reports candidates when it does. + self.ef_row = ef_row + # ladder(step) -> the exact distance between two rows `step` apart, when the data + # shape has a closed form for it. None where no such form exists, in which case the + # self-check verifies ordering properties instead of exact distances. + self.ladder = ladder + # A ladder profile is symmetric: rows r-d and r+d tie, so either may fill the last + # slot of a top-k and only the distances are stable enough to compare. The + # directional profile has no ladder and was verified to have no ties at all, so + # there the row ids are the stable thing and the distances carry float noise. + self.symmetric_ties = ladder is not None + self.head_query = vector(0) + self.tail_query = vector(ROWS - 1) + + def query_of(self, row): + """The stored vector of a 1-based row id.""" + return self.vector(row - 1) + + +# Row r holds (r, r+1, ..., r+15): the exact squared L2 distance between rows r and n is +# 16*(n-r)^2, which is what every L2 golden and suite comment encodes. +def _collinear_vector(r): + return [float(r + j) for j in range(DIM)] + + +# Directions from an irrational rotation - frac(sqrt(prime)) per dimension - so they spread +# quasi-uniformly instead of converging, and an independently varying norm so that cosine +# and dot cannot rank the same way. Verified on this data: l2, cosine and dot each return a +# different top-9 at every probe query, and no top-9 has a tie, in float32 and in float16. +# That is what lets a suite tell a respected metric from an ignored one. +_DIRECTION_ALPHA = [math.sqrt(p) % 1.0 for p in + (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53)] +_NORM_ALPHA = math.sqrt(59) % 1.0 + + +def _directional_vector(r): + raw = [math.sin(2.0 * math.pi * (((r + 1) * alpha) % 1.0)) for alpha in _DIRECTION_ALPHA] + length = math.sqrt(sum(x * x for x in raw)) or 1.0 + scale = 1.0 + 3.0 * (((r + 1) * _NORM_ALPHA) % 1.0) + # Round so the stored values stay short and identical across platforms, and small + # enough that float16 reproduces the float32 row ordering exactly. + return [round(x / length * scale, 4) for x in raw] + + +# Lance reads uint8 vectors as binary vectors and counts hamming in BITS, not bytes +# (measured: one byte differing by one bit is distance 1.0, by eight bits is 8.0). A +# thermometer code - row r sets its first r bits - gives hamming(a, b) == |a - b|, the same +# symmetric ladder the collinear data produces under L2, so BOUNDARY_TOP_K still ends on a +# complete pair. It needs one bit per row, hence 128 bytes for 1024 rows: this is the one +# profile whose dimension differs from DIM, and it has to, because a pseudo-random byte +# pattern puts every distance in a narrow band around 64 where the top-k ties are unstable. +BINARY_DIM = 128 + + +def _binary_vector(r): + return [(1 << max(0, min(8, r - j * 8))) - 1 for j in range(BINARY_DIM)] + + +def _digest_of(vector) -> str: + """A stable fingerprint of every vector a profile stores. + + repr() of a float round-trips exactly in Python 3, so this pins the data itself rather + than any property derived from it. The directional shape goes through math.sin, whose + last ulp is libm-dependent, but every value is then rounded to 4 decimals and the closest + one sits ~1e-4 (in units of the last kept digit) away from a rounding boundary - about + eight orders of magnitude more than a 1-ulp sin difference can move it. So this digest is + portable in practice, and if it ever does differ across platforms that is exactly the + condition that would silently desync the query vectors hardcoded in the suites. + """ + h = hashlib.sha256() + for r in range(ROWS): + h.update(";".join(repr(x) for x in vector(r)).encode()) + h.update(b"\n") + return h.hexdigest()[:16] + + +# boundary_row 257 rather than the 256 this used to use. Both discriminate, but on the +# committed indexes 256 does so by only 1 of BOUNDARY_TOP_K positions on five of the seven +# collinear tables, i.e. one partition-edge shift away from failing +# check_boundary_discriminator and making the suites report a silent flat fallback that is not +# actually happening. 257 was measured +# at a minimum margin of 3 across all seven - the widest minimum among the rows near every +# partition edge - and three of the seven sit well above it, at 7. +# Picking a row costs nothing at build time - it only selects a query vector, not the index - +# so it can be re-measured against the committed fixture whenever this gets thin again. +COLLINEAR = DataProfile( + "collinear", DIM, pa.float32(), _collinear_vector, "7c90dc26ea2628ae", + ladder=lambda step: 16.0 * step * step, boundary_row=257) +DIRECTIONAL = DataProfile("directional", DIM, pa.float32(), _directional_vector, + "91957d7c118b531e") +# Measured on the thermometer data: the four partitions come out as contiguous row ranges +# split near 256, 512 and 768, and only rows within about eight of an edge discriminate - on +# the committed index those are 248-255, 502-509 and 760-767. Which side of an edge they land +# on moves on every retrain: the previous build had 255-262, 513-520 and 767-774, i.e. just +# above each split where this one has them just below, which is why this row is 505 and not +# the 513 it used to be. check_boundary_discriminator reports the current set when this +# breaks; take the new row from the middle of a run so it has the most room either way. +BINARY = DataProfile( + "binary", BINARY_DIM, pa.uint8(), _binary_vector, "53fe7e3eacded1f5", + ladder=lambda step: float(step), boundary_row=505) + +# One table per matrix cell: algorithm x element type x metric, identical data within a +# profile, exactly one index named embedding_. +# Naming is vs__[_], L2 keeping the suffix-free form, so a # missing combination is visible from the table list alone. The build loop and the -# self-check are driven entirely by these specs; follow-up work for #66495 adds the -# remaining element types and distance metrics here. +# self-check are driven entirely by these specs. # -# `exact` marks the one algorithm whose full-partition probe is guaranteed to reproduce -# the flat search: IVF_FLAT stores the original vectors, so probing every partition is an -# exhaustive scan by another name. Everything else either quantizes the vectors (PQ, SQ) -# or reaches candidates through a graph that may miss neighbours (IVF_HNSW_*), and for -# those, agreement with flat search is only ever recorded - never asserted. +# `exact` marks the algorithm whose full-partition probe is guaranteed to reproduce the flat +# search: IVF_FLAT stores the original vectors, so probing every partition is an exhaustive +# scan by another name. Everything else either quantizes the vectors (PQ, SQ) or reaches +# candidates through a graph that may miss neighbours (IVF_HNSW_*), and for those, agreement +# with flat search is only ever recorded - never asserted. # `search` carries the per-query parameters an algorithm cannot be searched without. +# `element_type` and `metric` default to the Float32 + L2 cells that came first. VECTOR_TABLES = { "vs_ivf_flat_f32": {"index_type": "IVF_FLAT", "params": {}, "exact": True}, "vs_ivf_pq_f32": {"index_type": "IVF_PQ", "params": PQ_BUILD_PARAMS}, @@ -135,7 +325,115 @@ "params": HNSW_PQ_BUILD_PARAMS, "search": HNSW_SEARCH_PARAMS, }, + # Metric coverage. Doris only plans an indexed split when the query metric equals the + # index metric, so cosine and dot each need an index built with that metric; the L2 + # tables above cannot stand in for them. + "vs_ivf_flat_f32_cosine": { + "index_type": "IVF_FLAT", "params": {}, "exact": True, + "metric": "cosine", "profile": DIRECTIONAL, + }, + "vs_ivf_pq_f32_cosine": { + "index_type": "IVF_PQ", "params": PQ_BUILD_PARAMS, + "metric": "cosine", "profile": DIRECTIONAL, + }, + "vs_ivf_pq_f32_dot": { + "index_type": "IVF_PQ", "params": PQ_BUILD_PARAMS, + "metric": "dot", "profile": DIRECTIONAL, + }, + # Element type coverage, one indexed table each, all on IVF_FLAT so each can carry the + # exact indexed-equals-flat assertion rather than only recording what it returned. + # + # Float16 uses cosine because a float16 L2 index over the *collinear* data does not finish + # training: that ladder's squared distances reach 16 * 1023^2, far past float16's 65504 + # ceiling. float16 + l2 is fine on a bounded shape - the breadth tier builds it on the + # directional data - so this is a property of the pairing, not of float16 + l2 itself. + # + # uint8 uses hamming because Lance reads uint8 as a binary vector and rejects every other + # distance for it. IVF_FLAT is a choice, not a constraint: measured on pylance 7.0.0, the + # PQ and SQ builders reject uint8 ("PQ|SQ builder: unsupported data type: UInt8"), which + # leaves IVF_FLAT *and* IVF_HNSW_FLAT. The graph variant is covered by the breadth tier. + "vs_ivf_flat_f64": { + "index_type": "IVF_FLAT", "params": {}, "exact": True, + "element_type": pa.float64(), + }, + "vs_ivf_flat_f16_cosine": { + "index_type": "IVF_FLAT", "params": {}, "exact": True, + "element_type": pa.float16(), "metric": "cosine", "profile": DIRECTIONAL, + }, + "vs_ivf_flat_u8": { + "index_type": "IVF_FLAT", "params": {}, "exact": True, + "metric": "hamming", "profile": BINARY, + }, +} + + +# --------------------------------------------------------------------------- +# Breadth tier +# --------------------------------------------------------------------------- +# The 12 tables above are the depth tier: every one of them carries goldens, a closed-form +# distance ladder where the shape allows, and a discriminator that proves the parameter +# reached the index. That costs roughly 190KB per cell, so the tier deliberately covers one +# representative cell per axis rather than the whole matrix. +# +# The breadth tier covers everything the depth tier leaves out, at plan level only. It is a +# single table carrying one vector column per remaining cell, each with exactly one index - +# one column per cell, never several indexes on one column, because only the first index +# built on a column is reachable. Measured on Lance: with a cosine and a dot index on one +# column, whichever was created first answers its metric from the index and the other falls +# back to a silent brute-force scan. Doris lands in the same place by a different route - +# LanceScanNode.selectIndexSegments keeps only the segments of the first index it finds for +# the column's field id, so the second index is invisible to the planner and metricMatches +# then rejects the query whose metric it does not carry. Either way a column is the unit that +# can hold a testable index, and 64 rows is enough to train one. +# +# What this tier proves is narrower than the depth tier's, and the documentation must not +# conflate them: it shows Doris plans an indexed split and the backend answers it, NOT that +# the rows returned are the right rows. Only the depth tier shows that. +BREADTH_TABLE = "vs_index_matrix" +BREADTH_ROWS = 64 +BREADTH_FRAGMENT_ROWS = 32 +BREADTH_SEARCH_K = 5 +# refine_factor candidates for the result check, tried narrowest first. It reranks +# BREADTH_SEARCH_K * this many rows with exact distances, so it is also how much of the table +# the index may hand back before the answer stops depending on the index's own ranking: 2 is +# 16% of this table, 10 is 78%. +# +# The assertion is on the widest value; the narrowest that worked is recorded rather than +# pinned. Pinning the tightest passing value is pinning a zero margin - 5 held on one set of +# indexes and failed on the next retrain for a single f64 cosine cell, which is ANN recall +# moving rather than a defect. Recording keeps the diagnostic (a cell that suddenly needs 10 +# where it used to need 2 has lost recall) without letting it break a rebuild. +BREADTH_REFINE_FACTORS = (2, 3, 5, 10) +# Query rows for the nprobes discriminator, one per partition-sized stretch of the table. +# Whether restricting the probe changes the answer depends on where the query sits relative +# to a partition edge, so a single query row is one sample; these four are tried in turn and +# the first that discriminates is enough. +BREADTH_PROBE_ROWS = (1, 17, 33, 49) +# Set by --repin. The discriminator rows (boundary_row, ef_row, and the breadth probe rows) +# are chosen against one training run, and every rebuild retrains, so a rebuild routinely +# invalidates one of them. The candidates the failure reports belong to the staging fixture, +# which a failed build then throws away - so acting on them means rebuilding, which retrains +# again, and the advice is stale before it can be used. --repin breaks that loop: it +# downgrades those assertions to warnings so the rebuild completes and the fixture is +# promoted, after which the rows can be re-measured against the fixture that was actually +# committed. Picking a row costs no rebuild, since a row only selects a query vector. +REPIN = False +# The uint8 columns carry a thermometer code sized to THIS table, not the 1024-row one the +# BINARY profile builds. Reusing that width here left 120 of its 128 bytes identical across +# every row: the data was effectively 8-dimensional with 120 constant dimensions, kmeans had +# nothing to separate, and nprobes could not restrict anything - the cell looked covered while +# testing almost nothing. One bit per row is the invariant that matters. +BREADTH_BINARY_DIM = BREADTH_ROWS // 8 +# 4-bit PQ so the codebook trains on 64 rows; the depth tier's IVF_HNSW_PQ uses 8 bits, which +# needs 256 training points per sub-vector and cannot train here. These are the parameters +# that let a small index exist at all, not a recommendation - read the depth tier for those. +BREADTH_PQ_PARAMS = {"num_sub_vectors": 4, "num_bits": 4} +BREADTH_HNSW_PARAMS = {"max_level": 7, "m": 20, "ef_construction": 100} +BREADTH_ELEMENT_TYPES = { + "f32": pa.float32(), "f64": pa.float64(), "f16": pa.float16(), "u8": pa.uint8(), } +ALGORITHMS = ("IVF_FLAT", "IVF_SQ", "IVF_PQ", + "IVF_HNSW_FLAT", "IVF_HNSW_SQ", "IVF_HNSW_PQ") # Nested-field scalar index fixture for #66497's SHOW INDEX / lance_index_entries suites. # The indexed child name deliberately contains a dot so the canonical field path can only @@ -147,50 +445,216 @@ NESTED_COLUMN = "attributes.`child.with.dot`" NESTED_ROWS = 16 -# The head query is exactly row 1's vector; the tail query is row 1024's. Only endpoint -# vectors are used so that 16 * (n - r)^2 never ties between two different rows n. -HEAD_QUERY = [float(j) for j in range(DIM)] -TAIL_QUERY = [float(ROWS - 1 + j) for j in range(DIM)] -# On this collinear data IVF kmeans yields four contiguous row ranges, and row 256 lands near -# one of the internal edges - which side, and at exactly which row, changes every time the -# index is retrained, so nothing here hardcodes it (--check prints the measured range). What -# matters is only that part of row 256's true neighbourhood falls in an adjacent partition. -# The regression suites query this row with nprobes=1 as their silent-fallback discriminator: -# a real single-partition probe must miss those neighbours (result != flat), while a silent -# flat fallback returns exactly the flat result - verified directly: on an unindexed copy of -# this data Lance ignores nprobes entirely and returns the flat rows. The self-check pins -# this property for every vector table, so regenerating the fixture with partition edges that -# no longer split row 256's neighbourhood fails here instead of in the suites. Each table -# trains its own IVF clustering, so this is checked per table. -BOUNDARY_ROW = 256 -BOUNDARY_QUERY = [float(BOUNDARY_ROW - 1 + j) for j in range(DIM)] -# The boundary query is symmetric - rows 256-d and 256+d are equidistant - so a top-k that -# lands mid-pair would pin an arbitrary choice of tie winner in the goldens. 9 is the last -# cut that ends on a complete pair. This is the regression contract, so the self-check below -# has to probe at exactly this k: checking 10 here while the suites query 9 would let a -# retrained index pass the generator and fail the suites. -BOUNDARY_TOP_K = 9 -# Graph candidate widths for the ef discriminator: with a narrow ef the traversal has to -# settle for worse candidates than with a wide one. Same purpose as nprobes=1 for IVF - it -# proves the parameter reached the index instead of being quietly dropped. Measured on this -# fixture: a query at row 512, in the middle of the data, loses a true nearest neighbour at -# ef=5 that ef=50 finds, on every graph index that reacts to ef at all. The endpoint queries -# do not work here - row 1 sits where greedy traversal already lands on the exact answer. -EF_DISCRIMINATOR_ROW = 512 -EF_QUERY = [float(EF_DISCRIMINATOR_ROW - 1 + j) for j in range(DIM)] -EF_TOP_K = 5 -EF_NARROW = 5 -EF_WIDE = 50 +def buildable_combos(): + """Every (element type, metric, algorithm) cell the embedded Lance actually accepts. + + This list is a claim about Lance, so it was checked against Lance rather than assumed: all + 4 x 4 x 6 = 96 cells of the full matrix were built, one per subprocess, on pylance 7.0.0 + with this table's data shapes at 64 rows. 56 built and answered a search, 40 failed, and + the 56 are exactly what this function yields - nothing extra, nothing missing. The + failures fall into three groups, each matching what Lance enforces in + rust/lance/src/index/vector/utils.rs (validate_distance_type_for) and + rust/lance-index/src/vector/hnsw/builder.rs: + + float16/32/64 + hamming 18 cells. Rust panic, "KMeans::find_partitions: hamming is + not supported". + uint8 + l2/dot/cosine 18 cells. "Unsupported data type UInt8 with distance type + ..." for l2 and dot, "Normalize only supports float array" + for cosine - uint8 is read as a binary vector. + uint8 under PQ or SQ 4 cells. "PQ|SQ builder: unsupported data type: UInt8", + which is what leaves IVF_FLAT and IVF_HNSW_FLAT. + + Those 40 are deliberately not attempted at build time. Eighteen of them are Rust panics + rather than raised errors, and this script writes the fixture that gets committed; + provoking panics inside it on every rebuild costs more than the diagnostic is worth. Run + the full matrix by hand when the Lance generation changes, which is the only thing that + moves this list. + """ + for tag in BREADTH_ELEMENT_TYPES: + if tag == "u8": + metrics, algorithms = ("hamming",), ("IVF_FLAT", "IVF_HNSW_FLAT") + else: + metrics, algorithms = ("l2", "cosine", "dot"), ALGORITHMS + for metric in metrics: + for algorithm in algorithms: + yield tag, metric, algorithm + + +def element_tag_of(element_type) -> str: + for tag, candidate in BREADTH_ELEMENT_TYPES.items(): + if candidate == element_type: + return tag + raise AssertionError(f"no breadth tag for element type {element_type}") + + +def depth_combos() -> set: + """The cells the depth tier already covers, derived from VECTOR_TABLES. + + Derived rather than listed so the breadth tier cannot drift: add a table above and its + cell leaves this tier automatically, with no second list to keep in step. + """ + return {(element_tag_of(element_type_of(spec)), metric_of(spec), spec["index_type"]) + for spec in VECTOR_TABLES.values()} + + +def breadth_combos() -> list: + return sorted(set(buildable_combos()) - depth_combos()) -def make_fragment_table(row_offset_start: int, row_offset_end: int) -> pa.Table: + +def breadth_column_of(tag: str, metric: str, algorithm: str) -> str: + # Double underscore between the parts, because an algorithm name contains single ones: + # emb__f32__cosine__ivf_hnsw_flat splits cleanly, and the regression suite derives the + # metric and algorithm it must query from exactly this split rather than from a second + # hardcoded list that could drift away from the fixture. + return f"emb__{tag}__{metric}__{algorithm.lower()}" + + +def _breadth_binary_vector(r): + # The BINARY profile's thermometer, re-cut to BREADTH_BINARY_DIM. See that constant for + # why the 1024-row width cannot be reused at this table's size. + return [(1 << max(0, min(8, r - j * 8))) - 1 for j in range(BREADTH_BINARY_DIM)] + + +def breadth_vector_of(tag: str, row_offset: int) -> list: + """The vector a breadth column stores at a 0-based row offset. + + Every float column uses the directional shape, including the l2 ones. The collinear + ladder is not usable here: its squared L2 distances reach 16 * 1023^2, far past float16's + 65504 ceiling, and a float16 L2 index over it does not finish training. Directional data + is bounded and trains in well under a second for every cell. + """ + return (_breadth_binary_vector(row_offset) if tag == "u8" + else DIRECTIONAL.vector(row_offset)) + + +def breadth_dim_of(tag: str) -> int: + return BREADTH_BINARY_DIM if tag == "u8" else DIM + + +def breadth_query_of(tag: str, row: int) -> list: + """The stored vector of a 1-based row id, as a query.""" + return breadth_vector_of(tag, row - 1) + + +def make_breadth_table(row_start: int, row_end: int) -> pa.Table: + offsets = list(range(row_start, row_end)) + columns = {"row_id": pa.array([offset + 1 for offset in offsets], type=pa.int64())} + for tag, metric, algorithm in breadth_combos(): + columns[breadth_column_of(tag, metric, algorithm)] = ( + pa.FixedSizeListArray.from_arrays( + pa.array([value for offset in offsets + for value in breadth_vector_of(tag, offset)], + type=BREADTH_ELEMENT_TYPES[tag]), + breadth_dim_of(tag), + ) + ) + table = pa.table(columns) + return table.cast( + pa.schema([pa.field(f.name, f.type, nullable=False) for f in table.schema]) + ) + + +def breadth_index_params(algorithm: str) -> dict: + params = {} + if "PQ" in algorithm: + params.update(BREADTH_PQ_PARAMS) + if "HNSW" in algorithm: + params.update(BREADTH_HNSW_PARAMS) + return params + + +# Graph candidate width for the breadth tier's HNSW cells. Lance's rule is not "ef >= k" but +# "ef >= k * refine_factor" - a reranked search asks the graph for that many candidates - so +# this has to cover the widest refine factor the result check tries. It currently equals that +# product exactly, with no headroom: raising BREADTH_SEARCH_K or the tail of +# BREADTH_REFINE_FACTORS without raising this turns every HNSW cell into "ef must be greater +# than or equal to k", in the generator and in the regression suite alike. The assertion +# below is here so that surfaces as this sentence rather than as two dozen opaque Lance +# errors. test_lance_vector_search_index_matrix.groovy hardcodes the same number. +BREADTH_EF = 50 +assert BREADTH_EF >= BREADTH_SEARCH_K * max(BREADTH_REFINE_FACTORS), ( + f"BREADTH_EF={BREADTH_EF} is below BREADTH_SEARCH_K * max(BREADTH_REFINE_FACTORS) = " + f"{BREADTH_SEARCH_K * max(BREADTH_REFINE_FACTORS)}; every HNSW breadth cell would fail " + "with 'ef must be greater than or equal to k'" +) + + +def breadth_search_params(algorithm: str) -> dict: + return {"ef": BREADTH_EF} if "HNSW" in algorithm else {} + + +def create_breadth_table(namespace) -> str: + first = make_breadth_table(0, BREADTH_FRAGMENT_ROWS) + buffer = io.BytesIO() + with ipc.new_stream(buffer, first.schema) as writer: + writer.write_table(first) + response = namespace.create_table( + CreateTableRequest(id=[NAMESPACE, BREADTH_TABLE]), buffer.getvalue() + ) + location = response.location + lance.write_dataset( + make_breadth_table(BREADTH_FRAGMENT_ROWS, BREADTH_ROWS), location, mode="append") + for tag, metric, algorithm in breadth_combos(): + column = breadth_column_of(tag, metric, algorithm) + lance.dataset(location).create_index( + column, + algorithm, + name=f"idx_{column}", + metric=metric, + num_partitions=NUM_PARTITIONS, + sample_rate=256, + index_file_version="V3", + **breadth_index_params(algorithm), + ) + # One create_index per cell means one dataset version per cell, and their superseded + # manifests dominate the committed size - 1.2MB before this call, 0.6MB after. + lance.dataset(location).cleanup_old_versions( + older_than=timedelta(0), delete_unverified=True) + return location + + +def profile_of(spec: dict) -> DataProfile: + return spec.get("profile", COLLINEAR) + + +def element_type_of(spec: dict): + return spec.get("element_type", profile_of(spec).dtype) + + +def metric_of(spec: dict) -> str: + return spec.get("metric", "l2") + + +def distance_tolerance_of(spec: dict): + """How far the indexed and flat distances may drift apart for this table. + + The two paths accumulate in a different order, so in general the results differ in the + last ulp or two. What decides whether that can happen at all is the data shape, not the + element type: a ladder profile stores small integers and both paths land on exactly the + same value, so those tables get no tolerance and keep the bit-exact comparison that makes + a real regression in the distance kernel impossible to hide. + + Only the tie-free directional profile needs slack, and there it is bounded by the element + type's precision: about 6e-8 relative for float32, and about 5e-4 for float16's 11-bit + mantissa. + """ + if profile_of(spec).ladder is not None: + return 0.0, 0.0 + if element_type_of(spec) == pa.float16(): + return 2e-3, 1e-5 + return 1e-5, 1e-6 + + +def make_fragment_table(profile: DataProfile, element_type, + row_offset_start: int, row_offset_end: int) -> pa.Table: offsets = list(range(row_offset_start, row_offset_end)) embedding = pa.FixedSizeListArray.from_arrays( pa.array( - [float(offset + j) for offset in offsets for j in range(DIM)], - type=pa.float32(), + [value for offset in offsets for value in profile.vector(offset)], + type=element_type, ), - DIM, + profile.dim, ) table = pa.table( { @@ -215,8 +679,10 @@ def index_name_of(table_name: str) -> str: return "embedding_" + table_name.removeprefix("vs_") -def create_vector_table(namespace, table_name: str) -> str: - first = make_fragment_table(0, FRAGMENT_ROWS) +def create_vector_table(namespace, table_name: str, spec: dict) -> str: + profile = profile_of(spec) + element_type = element_type_of(spec) + first = make_fragment_table(profile, element_type, 0, FRAGMENT_ROWS) buffer = io.BytesIO() with ipc.new_stream(buffer, first.schema) as writer: writer.write_table(first) @@ -225,7 +691,9 @@ def create_vector_table(namespace, table_name: str) -> str: ) # Never predict the hashed storage path; always use the location the namespace returns. location = response.location - lance.write_dataset(make_fragment_table(FRAGMENT_ROWS, ROWS), location, mode="append") + lance.write_dataset( + make_fragment_table(profile, element_type, FRAGMENT_ROWS, ROWS), + location, mode="append") return location @@ -302,10 +770,21 @@ def compact_manifest(root: Path) -> None: for index_dir in (root / MANIFEST_DIR / "_indices").iterdir(): if index_dir.name not in referenced: shutil.rmtree(index_dir) - # pylance 4.0.1 does not write the optional latest-version hint. Write it to keep the - # fixture shape identical to the previous one for every consuming reader. + # The pinned writer maintains the optional latest-version hint itself, but the version + # cleanup and the index-directory pruning above both run after it last did. Rewrite it + # from the reopened manifest so it names the version that actually survived; check_catalog + # asserts the two agree, because a hint pointing at a deleted version would send every + # reader to a manifest that is no longer there. hint = root / MANIFEST_DIR / "_versions" / "latest_version_hint.json" hint.write_text(f'{{"version":{manifest.version}}}') + # This version is a commit count that compaction then collapses, so it is NOT monotonic + # across rebuilds - it went 35 -> 27 when the matrix grew from 6 tables to 12. Lance names + # a version file u64::MAX - version so that a listing returns the newest first, which + # means a stale higher-versioned file left next to this one would win any listing-based + # resolution and point readers at the previous catalog. Nothing in the committed fixture + # can prevent that; whatever publishes it has to replace the destination rather than merge + # into it. iceberg.yaml.tpl does exactly that for s3://warehouse/lance. + print(f"record: __manifest committed at version {manifest.version}") def build(root: Path, all_types_source: Path) -> None: @@ -316,7 +795,7 @@ def build(root: Path, all_types_source: Path) -> None: ) namespace.create_namespace(CreateNamespaceRequest(id=[NAMESPACE])) for table_name, spec in VECTOR_TABLES.items(): - location = create_vector_table(namespace, table_name) + location = create_vector_table(namespace, table_name, spec) # DirectoryNamespace.create_table_index exists but raises UnsupportedOperationError, # so open the physical dataset at the location the namespace returned and index it # there. index_file_version V3 is what the Doris BE reads through lance-c; the @@ -325,18 +804,25 @@ def build(root: Path, all_types_source: Path) -> None: "embedding", spec["index_type"], name=index_name_of(table_name), - metric="L2", + metric=metric_of(spec), num_partitions=NUM_PARTITIONS, sample_rate=256, index_file_version="V3", **spec["params"], ) + create_breadth_table(namespace) create_nested_index_table(namespace) compact_manifest(root) -def topk(dataset, query, k: int, use_index: bool, **nearest_kwargs): - nearest = {"column": "embedding", "q": query, "k": k, "use_index": use_index} +def topk(dataset, query, k: int, use_index: bool, *, metric: str, **nearest_kwargs): + # The metric is never left implicit, so it is keyword-only with no default. Lance + # defaults to L2, and asking an index built with another metric for an L2 search is a + # silent fall back to brute force, not an error - exactly the failure this fixture + # exists to detect. A default here would let a future check forget the argument and + # then compare one brute-force scan against another, passing unconditionally. + nearest = {"column": "embedding", "q": query, "k": k, "use_index": use_index, + "metric": metric} if use_index: nearest.setdefault("nprobes", NUM_PARTITIONS) nearest.update(nearest_kwargs) @@ -349,114 +835,296 @@ def search_params_of(spec: dict) -> dict: return dict(spec.get("search", {})) -def check_vector_dataset(name: str, location: str, index_type: str, search: dict): +def index_metric_of(dataset, index_name: str) -> set: + """The metrics an index was actually built with, from stats["indices"][*]["metric_type"]. + + Read that exact path rather than searching the stats for any metric-shaped key: a + quantizing sub-index reports a metric of its own and it is not always the index's. An + IVF_PQ built for cosine normalizes the vectors and then trains the PQ codebook under L2, + so its stats carry metric_type "cosine" on the index and "l2" on the sub-index - only the + first is the metric a query has to match, and collecting both would fail every cosine PQ + table. A stats shape that no longer carries the key must fail loudly here rather than + quietly skip the one assertion that catches an index built with the wrong metric. + """ + stats = dataset.stats.index_stats(index_name) + indices = stats.get("indices") + assert indices, ( + f"index stats for {index_name} carry no 'indices' entry, so the metric cannot be " + f"checked - Lance changed the stats shape. Top-level keys: {sorted(stats)}" + ) + metrics = set() + for entry in indices: + assert "metric_type" in entry, ( + f"index stats for {index_name} carry no 'metric_type', so the metric cannot be " + f"checked - Lance changed the stats shape. Entry keys: {sorted(entry)}" + ) + metrics.add(str(entry["metric_type"]).lower()) + return metrics + + +def _discriminator_failure(message: str) -> None: + """Fail on a stale discriminator row, or warn when --repin is re-measuring them.""" + if REPIN: + print(f"REPIN: {message}") + return + raise AssertionError(message) + + +def check_data_shapes() -> None: + """Pin the data every profile generates, before anything derived from it is checked. + + Every other assertion in this file is computed from `profile.vector`, so none of them can + notice `profile.vector` itself changing - tweak _DIRECTION_ALPHA, _NORM_ALPHA or the + round() precision and the whole self-check stays green while every regression golden and + every query vector hardcoded in the suites silently goes stale. + """ + for profile in (COLLINEAR, DIRECTIONAL, BINARY): + actual = _digest_of(profile.vector) + assert actual == profile.digest, ( + f"{profile.name}: data-shape digest is {actual}, expected {profile.digest}. The " + "vector function changed, so every dependent golden in regression-test/data and " + "every hardcoded query vector in the lance suites is now stale. If the change is " + "intended, rebuild the fixture, regenerate those goldens, update the suites' " + "query literals and set this digest to the new value." + ) + + +def check_vector_dataset(name: str, location: str, spec: dict, search: dict): + profile = profile_of(spec) + element_type = element_type_of(spec) + metric = metric_of(spec) + index_type = spec["index_type"] dataset = lance.dataset(location) assert dataset.count_rows() == ROWS, f"{name}: expected {ROWS} rows" fragments = dataset.get_fragments() assert len(fragments) == 2, f"{name}: expected 2 fragments" embedding_type = dataset.schema.field("embedding").type assert pa.types.is_fixed_size_list(embedding_type), f"{name}: embedding type" - assert embedding_type.list_size == DIM, f"{name}: embedding dimension" - assert embedding_type.value_type == pa.float32(), f"{name}: embedding element type" + assert embedding_type.list_size == profile.dim, f"{name}: embedding dimension" + assert embedding_type.value_type == element_type, f"{name}: embedding element type" for field in dataset.schema: assert not field.nullable, f"{name}: column {field.name} must be NOT NULL" - # The regression goldens are hand-checkable only because embedding[j] = (row_id-1)+j, - # which makes the exact squared L2 distance between rows r and n equal 16*(n-r)^2. Every - # distance in the .out files and every comment in the suites encodes that ladder, so - # assert it against a flat scan rather than trusting the row/dimension counts above: a - # change to the data shape would otherwise leave the self-check green and surface only - # as an opaque golden diff after a full docker regression run. - ladder = [(row, 16.0 * step * step) for step, row in enumerate(range(1, 11))] - assert topk(dataset, HEAD_QUERY, 10, use_index=False) == ladder, ( - f"{name}: flat top-10 from row 1 is not the 16*(n-r)^2 ladder; the fixture data " - "shape changed and every dependent golden and comment is now stale" - ) + # Tie the bytes on disk back to the profile that check_data_shapes just pinned, so the + # chain "pinned digest -> profile.vector -> what this table actually stores" is closed. + # Casting through the element type is what makes this exact for float16 and uint8 too. + for row in (1, ROWS): + expected = pa.array(profile.query_of(row), type=element_type).to_pylist() + # row_id stays in the projection even though only embedding is read back, so this + # does not depend on Lance being able to filter on a column it was not asked to + # return. + selected = dataset.to_table(columns=["row_id", "embedding"], + filter=f"row_id = {row}") + assert selected.num_rows == 1, ( + f"{name}: expected exactly one row with row_id {row}, got {selected.num_rows}" + ) + stored = selected["embedding"][0].as_py() + assert stored == expected, ( + f"{name}: row {row} stores {stored}, but the {profile.name} profile says " + f"{expected}" + ) + + # The regression goldens are hand-checkable only because the data shape has a closed + # form: the collinear profile makes the exact squared L2 distance between rows r and n + # equal 16*(n-r)^2, and the binary profile makes hamming equal |n-r|. Every distance in + # those .out files and every comment in the suites encodes the ladder, so assert it + # against a flat scan rather than trusting the row/dimension counts above: a change to + # the data shape would otherwise leave the self-check green and surface only as an + # opaque golden diff after a full docker regression run. + head = topk(dataset, profile.head_query, 10, use_index=False, metric=metric) + if profile.ladder is not None: + expected = [(row, profile.ladder(step)) for step, row in enumerate(range(1, 11))] + assert head == expected, ( + f"{name}: flat top-10 from row 1 is not the {profile.name} distance ladder; " + "the fixture data shape changed and every dependent golden and comment is now " + f"stale: {head}" + ) + else: + # No closed form for this profile, so pin the property the goldens actually need + # instead: strictly increasing distances, i.e. no tie can reorder the top-10 when + # the index is retrained or a different Lance version reads the fixture. + distances = [distance for _, distance in head] + assert all(a < b for a, b in zip(distances, distances[1:])), ( + f"{name}: flat top-10 has tied distances, so the golden row order is arbitrary " + f"and will not survive a rebuild: {head}" + ) indices = dataset.list_indices() assert len(indices) == 1, f"{name}: expected exactly one index" index = indices[0] assert index["name"] == index_name_of(name), f"{name}: index name {index['name']}" assert index["type"] == index_type, f"{name}: index type {index['type']}" + # The metric the index was built with, not the one the spec asked for. Doris only plans + # an indexed split when the query metric equals the index metric, and Lance answers a + # mismatched query by silently falling back to brute force, so an index that quietly + # came out L2 would still return plausible rows - and surface only as + # lanceSearchIndexSegments=0 in the regression suite, an opaque failure this check + # exists to turn into a loud one. + index_metrics = index_metric_of(dataset, index["name"]) + assert index_metrics == {metric}, ( + f"{name}: index reports metric {sorted(index_metrics)}, expected [{metric!r}]" + ) indexed_fragments = set(index["fragment_ids"]) all_fragments = {fragment.fragment_id for fragment in fragments} assert indexed_fragments == all_fragments, f"{name}: index does not cover all fragments" - for query in (HEAD_QUERY, TAIL_QUERY): + for query in (profile.head_query, profile.tail_query): indexed_plan = dataset.scanner( - nearest={"column": "embedding", "q": query, "k": 5, + nearest={"column": "embedding", "q": query, "k": 5, "metric": metric, "nprobes": NUM_PARTITIONS, **search} ).explain_plan(True) assert "ANNSubIndex" in indexed_plan, f"{name}: indexed plan lacks ANNSubIndex" assert "ANNIvfPartition" in indexed_plan, f"{name}: plan lacks ANNIvfPartition" flat_plan = dataset.scanner( - nearest={"column": "embedding", "q": query, "k": 5, "use_index": False} + nearest={"column": "embedding", "q": query, "k": 5, "metric": metric, + "use_index": False} ).explain_plan(True) assert "ANNSubIndex" not in flat_plan, f"{name}: flat plan uses ANN" assert "KNNVectorDistance" in flat_plan, f"{name}: flat plan lacks KNN node" return dataset -def check_exact_results(name: str, dataset, search: dict) -> None: +def check_exact_results(name: str, dataset, spec: dict, search: dict) -> None: # IVF_FLAT keeps the original vectors, so probing every partition visits every row with # its true distance: equality with the flat search is the algorithm's guarantee, not a # property of this fixture, and it needs no refine_factor to hold. The regression suite # asserts the same thing against Doris, which is what turns "the query returned rows" # into "the query returned the right rows". - for query, nearest_row in ((HEAD_QUERY, 1), (TAIL_QUERY, ROWS)): - indexed = topk(dataset, query, 10, use_index=True, **search) - flat = topk(dataset, query, 10, use_index=False) - assert indexed == flat, ( - f"{name}: full-probe top-10 differs from flat search, which IVF_FLAT guarantees " - f"it cannot: indexed={indexed} flat={flat}" + profile = profile_of(spec) + metric = metric_of(spec) + rel_tol, abs_tol = distance_tolerance_of(spec) + for query, nearest_row in ((profile.head_query, 1), (profile.tail_query, ROWS)): + indexed = topk(dataset, query, 10, use_index=True, metric=metric, **search) + flat = topk(dataset, query, 10, use_index=False, metric=metric) + # IVF_FLAT's guarantee is about which rows a full probe visits, so compare row ids + # exactly. The distances are only compared to a tolerance: the indexed and flat + # paths accumulate in a different order, which is exact for the integer L2 and + # hamming ladders but differs in the last ulp or two for cosine and dot. + assert [row for row, _ in indexed] == [row for row, _ in flat], ( + f"{name}: full-probe top-10 rows differ from flat search, which IVF_FLAT " + f"guarantees it cannot: indexed={indexed} flat={flat}" ) - assert indexed[0] == (nearest_row, 0.0), ( - f"{name}: nearest row is {indexed[0]}, expected row {nearest_row} at distance 0" + assert all(math.isclose(a, b, rel_tol=rel_tol, abs_tol=abs_tol) + for (_, a), (_, b) in zip(indexed, flat)), ( + f"{name}: full-probe top-10 distances differ from flat search by more than " + f"{element_type_of(spec)} rounding: indexed={indexed} flat={flat}" ) + # dot is not a proper metric - a longer vector scores better than a closer one - so + # the nearest row need not be the row the query was taken from, and this assertion + # does not apply. That is a property of the metric, not of the data shape, so it is + # decided here rather than on the profile: an exact dot table would otherwise have to + # reuse a profile whose flag says the opposite. + if metric != "dot": + # The query is a stored row, so that row must come back first at distance zero - + # to within the element type's rounding, since a cosine distance is computed + # from normalized values rather than read off the ladder. + nearest_id, nearest_distance = indexed[0] + assert nearest_id == nearest_row, ( + f"{name}: nearest row is {indexed[0]}, expected row {nearest_row}" + ) + assert math.isclose(nearest_distance, 0.0, abs_tol=abs_tol), ( + f"{name}: row {nearest_row} is at distance {nearest_distance}, expected 0" + ) distances = [distance for _, distance in indexed] - assert distances == [16.0 * step * step for step in range(10)], ( - f"{name}: indexed distances are not the 16*(n-r)^2 ladder: {distances}" - ) + if profile.ladder is not None: + assert distances == [profile.ladder(step) for step in range(10)], ( + f"{name}: indexed distances are not the {profile.name} ladder: {distances}" + ) print(f"record: {name} full-probe top-10 equals flat search at both endpoints") -def check_lossy_results(name: str, dataset, search: dict) -> None: +def check_lossy_results(name: str, dataset, spec: dict, search: dict) -> None: # Quantizing (PQ, SQ) and graph (HNSW) indexes do not promise the flat result: # agreement is an observed property of this frozen fixture and the pinned Lance # version, never a guarantee. The regression suites therefore query them with # refine_factor, which reranks candidates with exact distances; record what those # suites will observe. - raw = topk(dataset, HEAD_QUERY, 5, use_index=True, **search) - flat = topk(dataset, HEAD_QUERY, 5, use_index=False) + profile = profile_of(spec) + metric = metric_of(spec) + raw = topk(dataset, profile.head_query, 5, use_index=True, metric=metric, **search) + flat = topk(dataset, profile.head_query, 5, use_index=False, metric=metric) assert len(raw) == 5, f"{name}: indexed search must return k rows" raw_agreement = "matches" if raw == flat else "differs from" print(f"record: {name} full-probe top-5 {raw_agreement} flat search: {raw}") - refined = topk(dataset, HEAD_QUERY, 5, use_index=True, refine_factor=10, **search) + refined = topk(dataset, profile.head_query, 5, use_index=True, metric=metric, + refine_factor=10, **search) refined_agreement = "matches" if refined == flat else "differs from" print(f"record: {name} refined top-5 {refined_agreement} flat search: {refined}") -def check_boundary_discriminator(name: str, dataset, search: dict) -> None: - # See BOUNDARY_ROW above. The lossy index uses refine_factor so the comparison against - # flat runs on exact distances, exactly like the regression suite does. +def check_boundary_discriminator(name: str, dataset, spec: dict, search: dict) -> None: + # See DataProfile.boundary_row. The lossy index uses refine_factor so the comparison + # against flat runs on exact distances, exactly like the regression suite does. + profile = profile_of(spec) + metric = metric_of(spec) + boundary_row = profile.boundary_row + boundary_query = profile.query_of(boundary_row) single_rows = topk( - dataset, BOUNDARY_QUERY, BOUNDARY_TOP_K, use_index=True, nprobes=1, + dataset, boundary_query, BOUNDARY_TOP_K, use_index=True, metric=metric, nprobes=1, refine_factor=10, **search) - flat_rows = topk(dataset, BOUNDARY_QUERY, BOUNDARY_TOP_K, use_index=False) - # Compare distances, not row ids: the boundary query is symmetric, so rows r-d and r+d - # tie and either may fill the last slot. Only a missed neighbour changes the distances. - single = [distance for _, distance in single_rows] - flat = [distance for _, distance in flat_rows] + flat_rows = topk(dataset, boundary_query, BOUNDARY_TOP_K, use_index=False, metric=metric) + # Compare whichever quantity is stable for this profile. On a symmetric ladder rows r-d + # and r+d tie and either may fill the last slot, so only the distances mean anything. On + # the tie-free directional profile it is the other way round: the row ids are exact + # while the distances carry the float noise that would make any two result sets differ. + if profile.symmetric_ties: + single = [distance for _, distance in single_rows] + flat = [distance for _, distance in flat_rows] + else: + single = [row for row, _ in single_rows] + flat = [row for row, _ in flat_rows] assert len(single) == BOUNDARY_TOP_K, ( f"{name}: boundary nprobes=1 must still return k rows" ) - assert single != flat, ( - f"{name}: row {BOUNDARY_ROW} no longer discriminates nprobes=1 from flat search; " - "the IVF partition boundaries moved. Update BOUNDARY_ROW here and the boundary " - "queries in the regression suites together." - ) + if single == flat: + # Which rows straddle a partition edge is decided by kmeans and moves on every + # rebuild, so search for the ones that still do rather than leaving the next person + # to guess. Same shape as the ef discriminator's report below. + def discriminates(row): + q = profile.query_of(row) + probe = topk(dataset, q, BOUNDARY_TOP_K, use_index=True, metric=metric, + nprobes=1, refine_factor=10, **search) + straight = topk(dataset, q, BOUNDARY_TOP_K, use_index=False, metric=metric) + if profile.symmetric_ties: + return [d for _, d in probe] != [d for _, d in straight] + return [r for r, _ in probe] != [r for r, _ in straight] + + candidates = [] + for row in range(1, ROWS + 1): + if discriminates(row): + candidates.append(row) + if len(candidates) == REPORTED_CANDIDATES: + break + _discriminator_failure( + f"{name}: row {boundary_row} no longer discriminates nprobes=1 from flat search; " + "the IVF partition boundaries moved. Rows that still discriminate on this build: " + f"pick one, set the {profile.name} profile's boundary_row to it and update the " + "boundary queries in the regression suites together with it. " + f"Candidates (up to {REPORTED_CANDIDATES}): {candidates}" + ) + # How far this row is from stopping to discriminate. The assertion above is binary - the + # sequences differ or they do not - but the distance to failure is not: a margin of 1 + # means one more partition-edge shift makes nprobes=1 return exactly the flat answer, and + # then this check fails and the regression suite reports a silent flat fallback that is + # not happening. It is a false alarm that costs a fixture rebuild to clear, so print the + # number rather than leaving it invisible until it hits zero. + margin = sum(1 for a, b in zip(single, flat) if a != b) print(f"record: {name} boundary nprobes=1 top-{BOUNDARY_TOP_K} rows " - f"{[row for row, _ in single_rows]} vs flat rows {[row for row, _ in flat_rows]}") + f"{[row for row, _ in single_rows]} vs flat rows {[row for row, _ in flat_rows]} " + f"(margin={margin}/{BOUNDARY_TOP_K})") + if margin <= BOUNDARY_MARGIN_WARN: + # Not an assertion: a thin margin is a real, working discriminator, and failing here + # would block a fixture that is fine. Choosing a wider row is only worth doing when + # the goldens are being regenerated anyway, which is what this line is here to inform. + state = ("no longer discriminates at all" if margin == 0 + else f"discriminates by only {margin} of {BOUNDARY_TOP_K} positions") + print(f"WARNING: {name} boundary row {boundary_row} {state}. " + + ("It proves nothing about reaching the index; only --repin got you past the " + "assertion above, and the row must be re-measured before this fixture is " + "used." if margin == 0 else + "It still works, but the next retrain may erase it and fail " + "check_boundary_discriminator. If you are regenerating goldens anyway, " + "consider moving this profile's boundary_row to a wider-margin row.")) # The partition edge moves on every retrain, so report where it actually landed. This is # the first thing to look at when a boundary golden shifts or this check starts failing. partition_search = dict(search) @@ -465,14 +1133,14 @@ def check_boundary_discriminator(name: str, dataset, search: dict) -> None: # rejects a graph search whose candidate width is narrower than k. partition_search["ef"] = ROWS probed = sorted(row for row, _ in topk( - dataset, BOUNDARY_QUERY, ROWS, use_index=True, nprobes=1, refine_factor=1, - **partition_search)) + dataset, boundary_query, ROWS, use_index=True, metric=metric, nprobes=1, + refine_factor=1, **partition_search)) contiguous = probed == list(range(probed[0], probed[-1] + 1)) - print(f"record: {name} partition holding row {BOUNDARY_ROW}: rows " + print(f"record: {name} partition holding row {boundary_row}: rows " f"{probed[0]}-{probed[-1]} ({len(probed)} rows, contiguous={contiguous})") -def check_ef_discriminator(name: str, dataset, assert_it: bool) -> None: +def check_ef_discriminator(name: str, dataset, spec: dict, assert_it: bool) -> None: # The graph counterpart of the nprobes discriminator: a narrow candidate width has to # settle for worse neighbours than a wide one. Without it, a backend that dropped ef on # the floor would still return plausible rows. Both queries probe every partition, so @@ -485,20 +1153,250 @@ def check_ef_discriminator(name: str, dataset, assert_it: bool) -> None: # does not need the extra candidates on 1024 collinear vectors. So the discriminator is # asserted where it holds and recorded everywhere else; `assert_it` is the spec flag, # and the regression suite must query the same table this asserts on. - narrow = topk(dataset, EF_QUERY, EF_TOP_K, use_index=True, ef=EF_NARROW) - wide = topk(dataset, EF_QUERY, EF_TOP_K, use_index=True, ef=EF_WIDE) - # Compare distances rather than row ids: rows 512-d and 512+d tie, so the row order - # inside a tie group is arbitrary while a missed neighbour always changes a distance. + profile = profile_of(spec) + metric = metric_of(spec) + ef_row = profile.ef_row + ef_query = profile.query_of(ef_row) + narrow = topk(dataset, ef_query, EF_TOP_K, use_index=True, metric=metric, ef=EF_NARROW) + wide = topk(dataset, ef_query, EF_TOP_K, use_index=True, metric=metric, ef=EF_WIDE) + # Compare distances rather than row ids: on a ladder profile rows ef_row-d and ef_row+d + # tie, so the row order inside a tie group is arbitrary while a missed neighbour always + # changes a distance. differs = [d for _, d in narrow] != [d for _, d in wide] - if assert_it: - assert differs, ( - f"{name}: ef={EF_NARROW} and ef={EF_WIDE} return the same distances, so the " - "regression suite can no longer prove ef reached the index. The retrained graph " - f"made the narrow search good enough at row {EF_DISCRIMINATOR_ROW}; find a row " - "that still discriminates and update the suite's ef queries together with this." + if assert_it and not differs: + # Which rows react to ef is decided by the graph draw and changes on every rebuild, + # so do the search here rather than making the next person write it: report the rows + # that still discriminate on this freshly built index, and they can pin one. Stop at + # REPORTED_CANDIDATES - this runs two ANN searches per row scanned, and the report + # only ever shows that many. + candidates = [] + for row in range(1, ROWS + 1): + query = profile.query_of(row) + if ([d for _, d in topk(dataset, query, EF_TOP_K, use_index=True, + metric=metric, ef=EF_NARROW)] + != [d for _, d in topk(dataset, query, EF_TOP_K, use_index=True, + metric=metric, ef=EF_WIDE)]): + candidates.append(row) + if len(candidates) == REPORTED_CANDIDATES: + break + _discriminator_failure( + f"{name}: ef={EF_NARROW} and ef={EF_WIDE} return the same distances at row " + f"{ef_row}, so the regression suite can no longer prove ef reached " + "the index - the retrained graph made the narrow search good enough there. " + f"Rows that still discriminate on this build: pick one, set the {profile.name} " + "profile's ef_row to it and update the suite's ef queries together with it. " + f"Candidates (up to {REPORTED_CANDIDATES}): {candidates}" ) + # Same reasoning as the boundary margin: how many positions separate the narrow search + # from the wide one is how much room the discriminator has before a retrained graph makes + # the narrow one good enough and this stops proving anything. + margin = sum(1 for a, b in zip([d for _, d in narrow], [d for _, d in wide]) if a != b) print(f"record: {name} ef={EF_NARROW} rows {[row for row, _ in narrow]} vs ef={EF_WIDE} " - f"rows {[row for row, _ in wide]} (differs={differs}, asserted={assert_it})") + f"rows {[row for row, _ in wide]} (differs={differs}, margin={margin}/{EF_TOP_K}, " + f"asserted={assert_it})") + if assert_it and margin <= BOUNDARY_MARGIN_WARN: + state = ("no longer discriminates at all" if margin == 0 + else f"discriminates by only {margin} of {EF_TOP_K} positions") + print(f"WARNING: {name} ef row {ef_row} {state}. " + + ("It proves nothing about ef reaching the index; only --repin got you past " + "the assertion above, and the row must be re-measured before this fixture " + "is used." if margin == 0 else + "It still works, but the next retrain may erase it and fail " + "check_ef_discriminator. If you are regenerating goldens anyway, consider " + "moving this profile's ef_row to a wider-margin row.")) + + +REQUIREMENTS_FILE = Path(__file__).resolve().parent / "lance_fixture_requirements.txt" +# The distributions whose version decides what lands on disk, and which are therefore +# asserted: pylance writes the data and index files, lance-namespace writes the __manifest +# and picks the hash-prefixed directory names. pyarrow is deliberately absent - it only +# supplies the in-memory Arrow buffers handed to Lance, and whether it changed a stored value +# is checked directly by check_data_shapes plus the per-row readback in check_vector_dataset. +# Verifying the bytes beats pinning a proxy for them, and it keeps a pyarrow that differs in +# no observable way from blocking a rebuild. +PINNED_WRITERS = ("pylance", "lance-namespace") + + +def check_pinned_writer() -> None: + """Refuse to build or verify with a writer other than the pinned one. + + The pins are not a formality: pylance names the Lance generation the BE's lance-c reads, + and the fixture is readable by the older lance-java that Spark uses only because the + regression run says so, not because anything about the format guarantees it. A rebuild on + a machine that resolved something else can therefore emit a fixture no other reader opens, + and the rest of this self-check would not notice - it opens the fixture with the very + writer that produced it, so it passes by construction. + """ + requirements = REQUIREMENTS_FILE.read_text() + for distribution in PINNED_WRITERS: + pinned = re.search(rf"^{re.escape(distribution)}==(\S+)$", requirements, re.MULTILINE) + assert pinned, f"no {distribution} pin found in {REQUIREMENTS_FILE.name}" + # The pin names a *distribution*, so read the distribution's metadata rather than a + # module attribute: it is what pip actually resolved, and it exists whatever the + # module chooses to expose. + try: + installed = importlib.metadata.version(distribution) + except importlib.metadata.PackageNotFoundError: # pragma: no cover - env problem + raise AssertionError( + f"{distribution} is importable but has no distribution metadata, so its " + f"version cannot be checked against {REQUIREMENTS_FILE.name}. Install it " + "with pip using that file rather than putting a source checkout on sys.path." + ) + assert installed == pinned.group(1), ( + f"{distribution} {installed} is installed but {REQUIREMENTS_FILE.name} pins " + f"{pinned.group(1)}. Install the pins before touching the fixture: a fixture " + "written by an unpinned writer can be unreadable by the BE's lance-c or by the " + "lance-java Spark uses, and this self-check cannot detect that on its own " + "because it reads the fixture back with the same writer that produced it." + ) + + +def check_breadth_table(location: str) -> None: + """Result coverage for every matrix cell the depth tier does not carry. + + Asserts that each cell reaches an indexed plan and that a refined indexed search returns + exactly what an exhaustive scan returns - the same standard check_exact_results holds + IVF_FLAT to, reached here by reranking with refine_factor rather than by the algorithm + keeping the original vectors. That needs no goldens and no closed-form distance ladder, + which is what lets this tier cover 44 cells for the price of one small table. + + What it still does not establish, and the documentation must not claim: it compares the + index path against the scan path inside the same backend, so a distance kernel that is + wrong in both directions passes. The depth tier is what pins absolute values, through a + closed-form ladder and committed goldens. + """ + combos = breadth_combos() + unrefined = [] + late_probes = [] + undiscriminated = [] + needed = {} + dataset = lance.dataset(location) + all_fragments = {fragment.fragment_id for fragment in dataset.get_fragments()} + assert dataset.count_rows() == BREADTH_ROWS, ( + f"{BREADTH_TABLE}: expected {BREADTH_ROWS} rows" + ) + assert len(dataset.get_fragments()) == 2, f"{BREADTH_TABLE}: expected 2 fragments" + indices = {index["name"] for index in dataset.list_indices()} + assert len(indices) == len(combos), ( + f"{BREADTH_TABLE}: {len(indices)} indexes for {len(combos)} cells. Either a " + "create_index failed silently, or buildable_combos() moved - a Lance upgrade that " + "widens or narrows the matrix changes the expected cell count without touching the " + "committed fixture, and then the fixture has to be rebuilt" + ) + for tag, metric, algorithm in combos: + column = breadth_column_of(tag, metric, algorithm) + assert f"idx_{column}" in indices, f"{BREADTH_TABLE}: {column} has no index" + built = index_metric_of(dataset, f"idx_{column}") + assert built == {metric}, ( + f"{BREADTH_TABLE}.{column}: index reports metric {sorted(built)}, expected " + f"[{metric!r}]" + ) + indexed_fragments = {frag for index in dataset.list_indices() + if index["name"] == f"idx_{column}" + for frag in index["fragment_ids"]} + assert indexed_fragments == all_fragments, ( + f"{BREADTH_TABLE}.{column}: index covers fragments {sorted(indexed_fragments)}, " + f"not {sorted(all_fragments)} - part of the column would be scanned unindexed" + ) + + query = breadth_query_of(tag, 1) + search = breadth_search_params(algorithm) + nearest = {"column": column, "q": query, "k": BREADTH_SEARCH_K, "metric": metric, + "nprobes": NUM_PARTITIONS, **search} + nearest_flat = {"column": column, "q": query, "k": BREADTH_SEARCH_K, + "metric": metric, "use_index": False} + plan = dataset.scanner(nearest=nearest).explain_plan(True) + assert "ANNSubIndex" in plan, ( + f"{BREADTH_TABLE}.{column}: {algorithm}/{metric} does not reach an indexed plan, " + "so Lance is answering it with a brute-force scan" + ) + + # Execution-level proof that the index is really what answered. A flat scan has no + # partitions, so nprobes means nothing to it and cannot change its answer: observing + # a difference proves the parameter reached partition-based code. The converse does + # not hold - the true top-k can simply all live in the one probed partition - so try + # several query rows and take the first that discriminates. + def probe_rows(probe_query, nprobes): + # topk() is hardcoded to the depth tier's "embedding" column, so go through the + # scanner directly here. + return dataset.scanner(nearest={ + "column": column, "q": probe_query, "k": BREADTH_SEARCH_K, "metric": metric, + "nprobes": nprobes, **search}).to_table()["row_id"].to_pylist() + + probes = [] + for row in BREADTH_PROBE_ROWS: + probe_query = breadth_query_of(tag, row) + probes.append(row) + if probe_rows(probe_query, 1) != probe_rows(probe_query, NUM_PARTITIONS): + break + else: + undiscriminated.append(column) + _discriminator_failure( + f"{BREADTH_TABLE}.{column}: nprobes=1 returns what " + f"nprobes={NUM_PARTITIONS} " + f"returns at every row in {BREADTH_PROBE_ROWS}, so nothing here proves the " + "search reached the index rather than falling back to a scan. Check the data " + "shape first: a column whose dimensions are largely constant gives kmeans " + "nothing to separate, and then no nprobes can restrict anything - that is " + "what a mis-sized thermometer code did to the uint8 columns once." + ) + + # The result check. refine_factor reranks the candidates the index proposed using + # exact distances, which is what lets a quantizing or graph index be held to the same + # equality IVF_FLAT satisfies outright. Unrefined, only about half these cells agree + # with the scan; that difference is ordinary ANN behaviour, not a defect, so it is + # recorded below rather than asserted. + flat = dataset.scanner(nearest=nearest_flat).to_table() + flat_rows = flat["row_id"].to_pylist() + rel_tol = 2e-3 if tag == "f16" else 1e-5 + assert len(flat_rows) == BREADTH_SEARCH_K, ( + f"{BREADTH_TABLE}.{column}: an exhaustive scan returned {len(flat_rows)} rows, " + f"expected {BREADTH_SEARCH_K}" + ) + refined = None + for factor in BREADTH_REFINE_FACTORS: + candidate = dataset.scanner( + nearest={**nearest, "refine_factor": factor}).to_table() + if candidate["row_id"].to_pylist() == flat_rows: + refined, needed[column] = candidate, factor + break + assert refined is not None, ( + f"{BREADTH_TABLE}.{column}: even reranking " + f"{BREADTH_SEARCH_K * BREADTH_REFINE_FACTORS[-1]} of {BREADTH_ROWS} rows, the " + f"indexed search does not reproduce the exhaustive scan. indexed=" + f"{candidate['row_id'].to_pylist()} flat={flat_rows}" + ) + assert all(math.isclose(a, b, rel_tol=rel_tol, abs_tol=1e-5) + for a, b in zip(refined["_distance"].to_pylist(), + flat["_distance"].to_pylist())), ( + f"{BREADTH_TABLE}.{column}: refined indexed distances differ from the scan by " + f"more than {tag} rounding" + ) + if dataset.scanner(nearest=nearest).to_table()["row_id"].to_pylist() != flat_rows: + unrefined.append(column) + if len(probes) > 1 and column not in undiscriminated: + late_probes.append(f"{column}@{probes[-1]}") + # Only claim the full result under --repin if it is actually true. The whole point of + # --repin is that a maintainer reads this log and re-measures from it, so a tail-of-log + # summary contradicting the REPIN lines above it is the one place a false claim costs + # something. Without --repin an undiscriminated cell has already raised. + if undiscriminated: + print(f"record: {BREADTH_TABLE} covers {len(combos)} matrix cells; " + f"{len(undiscriminated)} of them no longer respond to nprobes at any row in " + f"{BREADTH_PROBE_ROWS} and prove nothing about reaching the index: " + f"{undiscriminated[:10]}") + else: + print(f"record: {BREADTH_TABLE} covers {len(combos)} matrix cells; every one reaches " + "an indexed plan, responds to nprobes, and matches an exhaustive scan when " + "refined") + spread = {f: sum(1 for v in needed.values() if v == f) for f in BREADTH_REFINE_FACTORS} + print(f"record: {BREADTH_TABLE} needs refine_factor on {len(unrefined)} of {len(combos)} " + f"cells to reach that agreement; narrowest that sufficed, by count: {spread}") + if late_probes: + # Not a failure - the discriminator holds. Worth printing because a cell that only + # discriminates at the last probe row is the one that will stop discriminating first. + print(f"record: {BREADTH_TABLE} needed a later probe row on {len(late_probes)} " + f"cells: {late_probes[:10]}") def check_nested_dataset(location: str): @@ -534,9 +1432,10 @@ def check_nested_dataset(location: str): def check_catalog(root: Path) -> None: + check_data_shapes() namespace = lance_namespace.connect("dir", {"root": str(root)}) tables = namespace.list_tables(ListTablesRequest(id=[NAMESPACE])) - expected_tables = sorted(list(VECTOR_TABLES) + [NESTED_TABLE]) + expected_tables = sorted([*VECTOR_TABLES, BREADTH_TABLE, NESTED_TABLE]) assert sorted(tables.tables) == expected_tables, ( f"unexpected {NAMESPACE} tables: {tables.tables}" ) @@ -571,16 +1470,21 @@ def check_catalog(root: Path) -> None: path = Path(described.location.removeprefix("file://")) assert path.is_dir(), f"{table_name} location missing: {described.location}" search = search_params_of(spec) - dataset = check_vector_dataset( - table_name, described.location, spec["index_type"], search - ) + dataset = check_vector_dataset(table_name, described.location, spec, search) if spec.get("exact"): - check_exact_results(table_name, dataset, search) + check_exact_results(table_name, dataset, spec, search) else: - check_lossy_results(table_name, dataset, search) - check_boundary_discriminator(table_name, dataset, search) + check_lossy_results(table_name, dataset, spec, search) + check_boundary_discriminator(table_name, dataset, spec, search) if search.get("ef"): - check_ef_discriminator(table_name, dataset, spec.get("ef_discriminator", False)) + check_ef_discriminator( + table_name, dataset, spec, spec.get("ef_discriminator", False)) + + breadth = namespace.describe_table(DescribeTableRequest(id=[NAMESPACE, BREADTH_TABLE])) + assert Path(breadth.location.removeprefix("file://")).is_dir(), ( + f"{BREADTH_TABLE} location missing: {breadth.location}" + ) + check_breadth_table(breadth.location) nested = namespace.describe_table(DescribeTableRequest(id=[NAMESPACE, NESTED_TABLE])) nested_path = Path(nested.location.removeprefix("file://")) @@ -602,7 +1506,15 @@ def main() -> int: action="store_true", help="only run the self-check against the existing fixture", ) + parser.add_argument( + "--repin", + action="store_true", + help="downgrade discriminator-row failures to warnings so a rebuild can complete; " + "re-measure the rows against the promoted fixture, then re-run --check", + ) args = parser.parse_args() + global REPIN + REPIN = args.repin output: Path = args.output # Every verification in this script is an assert, and the self-check is the whole @@ -612,6 +1524,11 @@ def main() -> int: print("refusing to run with assertions disabled (python -O)", file=sys.stderr) return 1 + # Before either branch, so this really does refuse to build as well as to verify: a + # wrong writer would otherwise get all the way through create_index and die there with + # an opaque API error, never reaching the diagnostic below. + check_pinned_writer() + if args.check: check_catalog(output) return 0 diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/lance_fixture_requirements.txt b/docker/thirdparties/docker-compose/iceberg/scripts/lance_fixture_requirements.txt index 1888205c542494..993ad4849cccee 100644 --- a/docker/thirdparties/docker-compose/iceberg/scripts/lance_fixture_requirements.txt +++ b/docker/thirdparties/docker-compose/iceberg/scripts/lance_fixture_requirements.txt @@ -19,21 +19,38 @@ # # The fixture has several readers and they do not all run the same Lance version: # -# lance-c v0.1.6 (lance-rs 7.0.0-beta) BE, both from source and from the prebuilt -# doris-thirdparty package - thirdparty/vars.sh -# lance-java 4.0.0 Spark, via lance-spark-bundle 0.4.0; it registers -# runtime tables into the same __manifest -# lance-java (FE) Doris FE Directory Namespace client -# -# So pin the writer to the oldest Lance in that set rather than to whichever one the BE -# happens to use: an older writer is readable by every reader above, while a newer one -# would leave the Spark cell unverified. Verified for the committed fixture, which now -# carries one index per ANN algorithm: pylance 7.0.0 - the same Lance generation the BE -# reads through lance-c v0.1.6 - reproduces every line of the generator self-check that -# pylance 4.0.1 produces, for all six tables. Same index type and coverage, same exact and -# refined top-k, same nprobes=1 boundary rows, same IVF partition ranges, same ef=5 vs -# ef=50 graph rows. The regression goldens therefore do not depend on which Lance version -# reads the fixture, only on the frozen bytes this writer produced. -pylance==4.0.1 -lance-namespace==0.6.1 +# lance-c v0.1.6 (lance-rs 7.0.0-beta.7) BE, both from source and from the prebuilt +# doris-thirdparty package - thirdparty/vars.sh +# lance-java 4.0.0 Spark, via lance-spark-bundle 0.4.0; it +# registers runtime tables into the same __manifest +# lance-java 9.1.0-beta.3 Doris FE Directory Namespace client - fe/pom.xml +# +# The writer is pinned to the Lance generation the BE actually reads. It used to be pinned +# to the oldest reader instead, on the theory that an older writer is readable by every +# reader above; that stopped being possible once the fixture had to carry non-Float32 +# indexes. Measured on pylance 4.0.1 (Lance 4): IVF_HNSW_FLAT + float64 and +# IVF_HNSW_FLAT + uint8/hamming panic during index creation, and IVF_FLAT + float64 builds +# but every search against it fails with "Task was aborted". All of those work on Lance 7. +# +# So Spark/lance-java 4.0.0 compatibility with this fixture is no longer something the pin +# guarantees; it is something the regression run verifies. external_table_p0/lance covers +# it: the Spark and REST catalog suites read and register into the same __manifest this +# writer produces, and they must pass for a fixture rebuild to be acceptable. +# +# The pylance and lance-namespace pins are enforced rather than advisory: +# check_pinned_writer() refuses to build or verify the fixture unless the installed versions +# match them exactly. That check has to exist because the generator's own self-check cannot +# catch a wrong writer - it reads the fixture back with the very Lance that produced it, so +# it would pass by construction while emitting something the BE's lance-c or Spark's +# lance-java cannot open. Those two decide what lands on disk: pylance writes the data and +# index files, lance-namespace writes the __manifest and picks the hash-prefixed directory +# names. +# +# pyarrow is pinned for reproducibility but deliberately NOT asserted. It only supplies the +# in-memory Arrow buffers handed to Lance, and whether it changed a stored value is checked +# directly - check_data_shapes pins a digest of every vector, and check_vector_dataset reads +# rows back and compares them through the element type. Verifying the bytes beats pinning a +# proxy for them. +pylance==7.0.0 +lance-namespace==0.7.7 pyarrow==25.0.0 diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_indices/ea916914-b0d1-4cc5-8938-2547832a6722/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_indices/ea916914-b0d1-4cc5-8938-2547832a6722/auxiliary.idx new file mode 100644 index 00000000000000..38d85cfde7d988 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_indices/ea916914-b0d1-4cc5-8938-2547832a6722/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_indices/ea916914-b0d1-4cc5-8938-2547832a6722/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_indices/ea916914-b0d1-4cc5-8938-2547832a6722/index.idx new file mode 100644 index 00000000000000..427ddf506b5057 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_indices/ea916914-b0d1-4cc5-8938-2547832a6722/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_transactions/0-64594db0-809a-451b-a8af-a1842f7ab61d.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_transactions/0-64594db0-809a-451b-a8af-a1842f7ab61d.txn new file mode 100644 index 00000000000000..fc3797e071d889 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_transactions/0-64594db0-809a-451b-a8af-a1842f7ab61d.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_transactions/1-47920d05-dce9-4212-af12-534f21433ba2.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_transactions/1-47920d05-dce9-4212-af12-534f21433ba2.txn new file mode 100644 index 00000000000000..b10e9d58b76f65 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_transactions/1-47920d05-dce9-4212-af12-534f21433ba2.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_transactions/2-a5ea155e-f003-47d4-bd9f-069edf3c5d14.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_transactions/2-a5ea155e-f003-47d4-bd9f-069edf3c5d14.txn new file mode 100644 index 00000000000000..6ab0019bdd75b3 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_transactions/2-a5ea155e-f003-47d4-bd9f-069edf3c5d14.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_versions/18446744073709551612.manifest new file mode 100644 index 00000000000000..33f8a901628a3a Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_versions/18446744073709551612.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_versions/18446744073709551613.manifest new file mode 100644 index 00000000000000..93aa9f37253cbe Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_versions/18446744073709551613.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_versions/18446744073709551614.manifest new file mode 100644 index 00000000000000..298a99fc7e467c Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_versions/18446744073709551614.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_versions/latest_version_hint.json b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_versions/latest_version_hint.json new file mode 100644 index 00000000000000..f93d3984472d99 --- /dev/null +++ b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/_versions/latest_version_hint.json @@ -0,0 +1 @@ +{"version":3} \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/data/011011111100100000010101856a4046eaa83ccee4f15f51df.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/data/011011111100100000010101856a4046eaa83ccee4f15f51df.lance new file mode 100644 index 00000000000000..a0cd3e97dcd743 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/data/011011111100100000010101856a4046eaa83ccee4f15f51df.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/data/100111111001001111110111dd8f1f473d926efcf648c3b466.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/data/100111111001001111110111dd8f1f473d926efcf648c3b466.lance new file mode 100644 index 00000000000000..b8eb2dddbfffd9 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/05008fb7_doris$vs_ivf_hnsw_sq_f32/data/100111111001001111110111dd8f1f473d926efcf648c3b466.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_indices/42ca1a1b-5886-4976-af99-162a476f69fc/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_indices/42ca1a1b-5886-4976-af99-162a476f69fc/auxiliary.idx new file mode 100644 index 00000000000000..693797716b7a13 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_indices/42ca1a1b-5886-4976-af99-162a476f69fc/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_indices/42ca1a1b-5886-4976-af99-162a476f69fc/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_indices/42ca1a1b-5886-4976-af99-162a476f69fc/index.idx new file mode 100644 index 00000000000000..c0831e474dd43c Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_indices/42ca1a1b-5886-4976-af99-162a476f69fc/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_transactions/0-a662b1ad-c7ba-4b38-bd98-28acab7d3bf3.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_transactions/0-a662b1ad-c7ba-4b38-bd98-28acab7d3bf3.txn new file mode 100644 index 00000000000000..2f94e1ac2be447 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_transactions/0-a662b1ad-c7ba-4b38-bd98-28acab7d3bf3.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_transactions/1-85218e58-86b2-43fc-887e-90b7622acc5d.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_transactions/1-85218e58-86b2-43fc-887e-90b7622acc5d.txn new file mode 100644 index 00000000000000..7ccc12badb8242 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_transactions/1-85218e58-86b2-43fc-887e-90b7622acc5d.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_transactions/2-2cad6c0d-5f97-4687-a76a-d75e133ab387.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_transactions/2-2cad6c0d-5f97-4687-a76a-d75e133ab387.txn new file mode 100644 index 00000000000000..a7cce82cb47950 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_transactions/2-2cad6c0d-5f97-4687-a76a-d75e133ab387.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_versions/18446744073709551612.manifest new file mode 100644 index 00000000000000..ed34e53e3646b7 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_versions/18446744073709551612.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_versions/18446744073709551613.manifest new file mode 100644 index 00000000000000..11fcb37ea2af3d Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_versions/18446744073709551613.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_versions/18446744073709551614.manifest new file mode 100644 index 00000000000000..6a4a9bc3468964 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_versions/18446744073709551614.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_versions/latest_version_hint.json b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_versions/latest_version_hint.json new file mode 100644 index 00000000000000..f93d3984472d99 --- /dev/null +++ b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/_versions/latest_version_hint.json @@ -0,0 +1 @@ +{"version":3} \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/data/001111010010111001101101f9848945fdaea8a021d9363802.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/data/001111010010111001101101f9848945fdaea8a021d9363802.lance new file mode 100644 index 00000000000000..2d647579c874ae Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/data/001111010010111001101101f9848945fdaea8a021d9363802.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/data/100110110111111010010110d8e6a04507ad15505a6a92965e.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/data/100110110111111010010110d8e6a04507ad15505a6a92965e.lance new file mode 100644 index 00000000000000..cc9def8bbe0571 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/06352138_doris$vs_ivf_pq_f32_cosine/data/100110110111111010010110d8e6a04507ad15505a6a92965e.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_indices/fad74e02-a9fd-4978-90ce-02a8ebb8ff9f/page_data.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_indices/fad74e02-a9fd-4978-90ce-02a8ebb8ff9f/page_data.lance deleted file mode 100644 index f0a39364b47338..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_indices/fad74e02-a9fd-4978-90ce-02a8ebb8ff9f/page_data.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_indices/fad74e02-a9fd-4978-90ce-02a8ebb8ff9f/page_lookup.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_indices/fad74e02-a9fd-4978-90ce-02a8ebb8ff9f/page_lookup.lance deleted file mode 100644 index ba8bf14d5a69ad..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_indices/fad74e02-a9fd-4978-90ce-02a8ebb8ff9f/page_lookup.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_transactions/0-efecb08b-3af4-4399-a7cb-9bec38a51c5f.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_transactions/0-efecb08b-3af4-4399-a7cb-9bec38a51c5f.txn deleted file mode 100644 index 39f6f1379f20ec..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_transactions/0-efecb08b-3af4-4399-a7cb-9bec38a51c5f.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_transactions/1-3c17e305-7969-454b-8e12-f9a51797f850.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_transactions/1-3c17e305-7969-454b-8e12-f9a51797f850.txn deleted file mode 100644 index 6b35c5302eeb7d..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_transactions/1-3c17e305-7969-454b-8e12-f9a51797f850.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_transactions/2-5aef3e99-fb51-4966-a688-2d7e295802af.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_transactions/2-5aef3e99-fb51-4966-a688-2d7e295802af.txn deleted file mode 100644 index 2ec4a10ef93042..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_transactions/2-5aef3e99-fb51-4966-a688-2d7e295802af.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_transactions/3-7c64f5fa-9002-4dfa-82ac-bad870689f62.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_transactions/3-7c64f5fa-9002-4dfa-82ac-bad870689f62.txn deleted file mode 100644 index 789f7319a99848..00000000000000 --- a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_transactions/3-7c64f5fa-9002-4dfa-82ac-bad870689f62.txn +++ /dev/null @@ -1 +0,0 @@ -$7c64f5fa-9002-4dfa-82ac-bad870689f62� \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_transactions/3-9fcbc21e-71ca-49c8-a7f7-e1e5857fd5d3.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_transactions/3-9fcbc21e-71ca-49c8-a7f7-e1e5857fd5d3.txn deleted file mode 100644 index 6b7fb240974d69..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_transactions/3-9fcbc21e-71ca-49c8-a7f7-e1e5857fd5d3.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_versions/18446744073709551610.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_versions/18446744073709551610.manifest deleted file mode 100644 index 2d66b83fc366de..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_versions/18446744073709551610.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_versions/18446744073709551611.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_versions/18446744073709551611.manifest deleted file mode 100644 index af729526a0c7dd..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_versions/18446744073709551611.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_versions/18446744073709551612.manifest deleted file mode 100644 index f9cbdefd918d30..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_versions/18446744073709551612.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_versions/18446744073709551613.manifest deleted file mode 100644 index 71c543f51d5cdd..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_versions/18446744073709551613.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_versions/18446744073709551614.manifest deleted file mode 100644 index 84d77cf7ed295f..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/_versions/18446744073709551614.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/data/0010101011101010110011103112254514985be719bd5ce4f9.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/data/0010101011101010110011103112254514985be719bd5ce4f9.lance deleted file mode 100644 index 31db5bb789409a..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/data/0010101011101010110011103112254514985be719bd5ce4f9.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/data/111011110010000011000010a14eb14182bec19779539061b8.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/data/111011110010000011000010a14eb14182bec19779539061b8.lance deleted file mode 100644 index 946b10e08f1ec6..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/data/111011110010000011000010a14eb14182bec19779539061b8.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/data/111110010111011000000000c11d104b91b767d86cc357b1e1.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/data/111110010111011000000000c11d104b91b767d86cc357b1e1.lance deleted file mode 100644 index 2e41a140d6c1b4..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/0a7658e3_doris$nested_index/data/111110010111011000000000c11d104b91b767d86cc357b1e1.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/0d5a0057-cabd-4e75-bf72-704dc5cda1c3/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/0d5a0057-cabd-4e75-bf72-704dc5cda1c3/auxiliary.idx new file mode 100644 index 00000000000000..ce55e17a3c16c1 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/0d5a0057-cabd-4e75-bf72-704dc5cda1c3/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/0d5a0057-cabd-4e75-bf72-704dc5cda1c3/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/0d5a0057-cabd-4e75-bf72-704dc5cda1c3/index.idx new file mode 100644 index 00000000000000..43c78b0761483c Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/0d5a0057-cabd-4e75-bf72-704dc5cda1c3/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/17cf54ab-8ed3-4281-addd-9008b4ff842a/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/17cf54ab-8ed3-4281-addd-9008b4ff842a/auxiliary.idx new file mode 100644 index 00000000000000..1b4f4bcb264d2a Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/17cf54ab-8ed3-4281-addd-9008b4ff842a/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/17cf54ab-8ed3-4281-addd-9008b4ff842a/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/17cf54ab-8ed3-4281-addd-9008b4ff842a/index.idx new file mode 100644 index 00000000000000..eab190a097f078 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/17cf54ab-8ed3-4281-addd-9008b4ff842a/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/1b292fac-4901-4e1c-aba5-71edd2f97a45/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/1b292fac-4901-4e1c-aba5-71edd2f97a45/auxiliary.idx new file mode 100644 index 00000000000000..993758eeea008d Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/1b292fac-4901-4e1c-aba5-71edd2f97a45/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/1b292fac-4901-4e1c-aba5-71edd2f97a45/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/1b292fac-4901-4e1c-aba5-71edd2f97a45/index.idx new file mode 100644 index 00000000000000..b91ee0bda35d49 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/1b292fac-4901-4e1c-aba5-71edd2f97a45/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/1f2a81d4-d9f4-4a89-89ca-c54b40e7c125/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/1f2a81d4-d9f4-4a89-89ca-c54b40e7c125/auxiliary.idx new file mode 100644 index 00000000000000..cfaa6da1d11fc1 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/1f2a81d4-d9f4-4a89-89ca-c54b40e7c125/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/1f2a81d4-d9f4-4a89-89ca-c54b40e7c125/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/1f2a81d4-d9f4-4a89-89ca-c54b40e7c125/index.idx new file mode 100644 index 00000000000000..29dbe0297fa9a0 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/1f2a81d4-d9f4-4a89-89ca-c54b40e7c125/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/208bad49-9f65-40c7-9b16-824ad2180221/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/208bad49-9f65-40c7-9b16-824ad2180221/auxiliary.idx new file mode 100644 index 00000000000000..f15adf177a08b5 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/208bad49-9f65-40c7-9b16-824ad2180221/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/208bad49-9f65-40c7-9b16-824ad2180221/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/208bad49-9f65-40c7-9b16-824ad2180221/index.idx new file mode 100644 index 00000000000000..962c9aa420978a Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/208bad49-9f65-40c7-9b16-824ad2180221/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/26c3bbdb-d9b6-465b-a1c4-f762dd8db98b/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/26c3bbdb-d9b6-465b-a1c4-f762dd8db98b/auxiliary.idx new file mode 100644 index 00000000000000..99d2ed5a6a1d26 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/26c3bbdb-d9b6-465b-a1c4-f762dd8db98b/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/26c3bbdb-d9b6-465b-a1c4-f762dd8db98b/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/26c3bbdb-d9b6-465b-a1c4-f762dd8db98b/index.idx new file mode 100644 index 00000000000000..523bbf75385a6c Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/26c3bbdb-d9b6-465b-a1c4-f762dd8db98b/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/2f95db05-8c48-48b9-868d-bce076107245/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/2f95db05-8c48-48b9-868d-bce076107245/auxiliary.idx new file mode 100644 index 00000000000000..916587f5dc6f3e Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/2f95db05-8c48-48b9-868d-bce076107245/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/2f95db05-8c48-48b9-868d-bce076107245/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/2f95db05-8c48-48b9-868d-bce076107245/index.idx new file mode 100644 index 00000000000000..09d24d407a1d3d Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/2f95db05-8c48-48b9-868d-bce076107245/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/321afa25-e0f4-420a-832e-b7bc9fd85fe9/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/321afa25-e0f4-420a-832e-b7bc9fd85fe9/auxiliary.idx new file mode 100644 index 00000000000000..0a12e50a26bedd Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/321afa25-e0f4-420a-832e-b7bc9fd85fe9/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/321afa25-e0f4-420a-832e-b7bc9fd85fe9/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/321afa25-e0f4-420a-832e-b7bc9fd85fe9/index.idx new file mode 100644 index 00000000000000..c0883d531335b2 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/321afa25-e0f4-420a-832e-b7bc9fd85fe9/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/417860d6-e5d0-491a-a99a-bbda34704cc4/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/417860d6-e5d0-491a-a99a-bbda34704cc4/auxiliary.idx new file mode 100644 index 00000000000000..53c2a355b5e1fb Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/417860d6-e5d0-491a-a99a-bbda34704cc4/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/417860d6-e5d0-491a-a99a-bbda34704cc4/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/417860d6-e5d0-491a-a99a-bbda34704cc4/index.idx new file mode 100644 index 00000000000000..2ac85a190cc3d1 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/417860d6-e5d0-491a-a99a-bbda34704cc4/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/44e62f4c-7bfc-4d6c-8ead-9c0f90fc8d97/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/44e62f4c-7bfc-4d6c-8ead-9c0f90fc8d97/auxiliary.idx new file mode 100644 index 00000000000000..64698b9941c5ea Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/44e62f4c-7bfc-4d6c-8ead-9c0f90fc8d97/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/44e62f4c-7bfc-4d6c-8ead-9c0f90fc8d97/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/44e62f4c-7bfc-4d6c-8ead-9c0f90fc8d97/index.idx new file mode 100644 index 00000000000000..af4a0626b11a69 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/44e62f4c-7bfc-4d6c-8ead-9c0f90fc8d97/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/4614b4e0-986a-43ca-a20f-dfcbfde13f77/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/4614b4e0-986a-43ca-a20f-dfcbfde13f77/auxiliary.idx new file mode 100644 index 00000000000000..d7b98e9fa74c8b Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/4614b4e0-986a-43ca-a20f-dfcbfde13f77/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/4614b4e0-986a-43ca-a20f-dfcbfde13f77/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/4614b4e0-986a-43ca-a20f-dfcbfde13f77/index.idx new file mode 100644 index 00000000000000..3532c686497ab7 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/4614b4e0-986a-43ca-a20f-dfcbfde13f77/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5a471d75-018f-4b90-8803-eca4985fe09e/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5a471d75-018f-4b90-8803-eca4985fe09e/auxiliary.idx new file mode 100644 index 00000000000000..909337e3a2e900 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5a471d75-018f-4b90-8803-eca4985fe09e/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5a471d75-018f-4b90-8803-eca4985fe09e/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5a471d75-018f-4b90-8803-eca4985fe09e/index.idx new file mode 100644 index 00000000000000..a9a99aa2259616 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5a471d75-018f-4b90-8803-eca4985fe09e/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5afb1977-99a3-448b-b2f4-a4c850db41dd/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5afb1977-99a3-448b-b2f4-a4c850db41dd/auxiliary.idx new file mode 100644 index 00000000000000..115426fb12b348 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5afb1977-99a3-448b-b2f4-a4c850db41dd/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5afb1977-99a3-448b-b2f4-a4c850db41dd/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5afb1977-99a3-448b-b2f4-a4c850db41dd/index.idx new file mode 100644 index 00000000000000..9240286a37f9be Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5afb1977-99a3-448b-b2f4-a4c850db41dd/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5b41cf2b-983c-4f8b-8885-e08db04c0a95/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5b41cf2b-983c-4f8b-8885-e08db04c0a95/auxiliary.idx new file mode 100644 index 00000000000000..06a4af6f556dfd Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5b41cf2b-983c-4f8b-8885-e08db04c0a95/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5b41cf2b-983c-4f8b-8885-e08db04c0a95/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5b41cf2b-983c-4f8b-8885-e08db04c0a95/index.idx new file mode 100644 index 00000000000000..1345567f8c8287 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5b41cf2b-983c-4f8b-8885-e08db04c0a95/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5d3042a0-06da-4ced-a0dd-82d24689cc71/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5d3042a0-06da-4ced-a0dd-82d24689cc71/auxiliary.idx new file mode 100644 index 00000000000000..f1c27a4fd8cca8 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5d3042a0-06da-4ced-a0dd-82d24689cc71/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5d3042a0-06da-4ced-a0dd-82d24689cc71/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5d3042a0-06da-4ced-a0dd-82d24689cc71/index.idx new file mode 100644 index 00000000000000..2099b4956bbd44 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/5d3042a0-06da-4ced-a0dd-82d24689cc71/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/604a7def-3c76-4bb7-abe8-7600ea9fc029/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/604a7def-3c76-4bb7-abe8-7600ea9fc029/auxiliary.idx new file mode 100644 index 00000000000000..0200faf1a36984 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/604a7def-3c76-4bb7-abe8-7600ea9fc029/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/604a7def-3c76-4bb7-abe8-7600ea9fc029/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/604a7def-3c76-4bb7-abe8-7600ea9fc029/index.idx new file mode 100644 index 00000000000000..6e44f82f797fc1 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/604a7def-3c76-4bb7-abe8-7600ea9fc029/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/65a322d3-5ea4-4e40-be46-b5fb37cba1a8/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/65a322d3-5ea4-4e40-be46-b5fb37cba1a8/auxiliary.idx new file mode 100644 index 00000000000000..4435735964a76c Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/65a322d3-5ea4-4e40-be46-b5fb37cba1a8/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/65a322d3-5ea4-4e40-be46-b5fb37cba1a8/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/65a322d3-5ea4-4e40-be46-b5fb37cba1a8/index.idx new file mode 100644 index 00000000000000..36d8b6b75d06a4 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/65a322d3-5ea4-4e40-be46-b5fb37cba1a8/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/76849f59-ecac-4fb5-b394-2d3d6ca3352b/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/76849f59-ecac-4fb5-b394-2d3d6ca3352b/auxiliary.idx new file mode 100644 index 00000000000000..bc4da317517625 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/76849f59-ecac-4fb5-b394-2d3d6ca3352b/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/76849f59-ecac-4fb5-b394-2d3d6ca3352b/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/76849f59-ecac-4fb5-b394-2d3d6ca3352b/index.idx new file mode 100644 index 00000000000000..8ad3f0ec9e7ce4 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/76849f59-ecac-4fb5-b394-2d3d6ca3352b/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/7c3cbd5b-df0b-4bbe-b42a-214518dd6690/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/7c3cbd5b-df0b-4bbe-b42a-214518dd6690/auxiliary.idx new file mode 100644 index 00000000000000..ac92b8b7d79271 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/7c3cbd5b-df0b-4bbe-b42a-214518dd6690/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/7c3cbd5b-df0b-4bbe-b42a-214518dd6690/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/7c3cbd5b-df0b-4bbe-b42a-214518dd6690/index.idx new file mode 100644 index 00000000000000..569ae59d17bc75 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/7c3cbd5b-df0b-4bbe-b42a-214518dd6690/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/7f8358de-1844-466b-9749-683af4e5dd47/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/7f8358de-1844-466b-9749-683af4e5dd47/auxiliary.idx new file mode 100644 index 00000000000000..67c59b255c1b86 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/7f8358de-1844-466b-9749-683af4e5dd47/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/7f8358de-1844-466b-9749-683af4e5dd47/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/7f8358de-1844-466b-9749-683af4e5dd47/index.idx new file mode 100644 index 00000000000000..0c99fad7cb90c8 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/7f8358de-1844-466b-9749-683af4e5dd47/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/84c9744a-ce60-45fe-a099-c58035fba506/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/84c9744a-ce60-45fe-a099-c58035fba506/auxiliary.idx new file mode 100644 index 00000000000000..81b2876998066d Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/84c9744a-ce60-45fe-a099-c58035fba506/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/84c9744a-ce60-45fe-a099-c58035fba506/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/84c9744a-ce60-45fe-a099-c58035fba506/index.idx new file mode 100644 index 00000000000000..793e7deb972513 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/84c9744a-ce60-45fe-a099-c58035fba506/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/8e57a868-4c65-4231-b323-1637d47ca834/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/8e57a868-4c65-4231-b323-1637d47ca834/auxiliary.idx new file mode 100644 index 00000000000000..abed61952e7373 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/8e57a868-4c65-4231-b323-1637d47ca834/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/8e57a868-4c65-4231-b323-1637d47ca834/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/8e57a868-4c65-4231-b323-1637d47ca834/index.idx new file mode 100644 index 00000000000000..6fd9bb463ec16a Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/8e57a868-4c65-4231-b323-1637d47ca834/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/8e9392f7-e362-4a33-97e5-eaab8f3f1d66/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/8e9392f7-e362-4a33-97e5-eaab8f3f1d66/auxiliary.idx new file mode 100644 index 00000000000000..2ee0e2c86d7a72 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/8e9392f7-e362-4a33-97e5-eaab8f3f1d66/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/8e9392f7-e362-4a33-97e5-eaab8f3f1d66/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/8e9392f7-e362-4a33-97e5-eaab8f3f1d66/index.idx new file mode 100644 index 00000000000000..6672f2017fddc3 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/8e9392f7-e362-4a33-97e5-eaab8f3f1d66/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/95f180be-ba43-4978-9ac7-04bb8a816632/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/95f180be-ba43-4978-9ac7-04bb8a816632/auxiliary.idx new file mode 100644 index 00000000000000..9ca3df14cbd4fd Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/95f180be-ba43-4978-9ac7-04bb8a816632/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/95f180be-ba43-4978-9ac7-04bb8a816632/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/95f180be-ba43-4978-9ac7-04bb8a816632/index.idx new file mode 100644 index 00000000000000..02f6353553560a Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/95f180be-ba43-4978-9ac7-04bb8a816632/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/9bc81459-4b62-41e4-a2f7-4c02d81288df/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/9bc81459-4b62-41e4-a2f7-4c02d81288df/auxiliary.idx new file mode 100644 index 00000000000000..8736db317724aa Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/9bc81459-4b62-41e4-a2f7-4c02d81288df/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/9bc81459-4b62-41e4-a2f7-4c02d81288df/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/9bc81459-4b62-41e4-a2f7-4c02d81288df/index.idx new file mode 100644 index 00000000000000..66e507ec344087 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/9bc81459-4b62-41e4-a2f7-4c02d81288df/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/9fed8ef0-d178-48d0-b6b9-463a15ce8e92/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/9fed8ef0-d178-48d0-b6b9-463a15ce8e92/auxiliary.idx new file mode 100644 index 00000000000000..bfcd1d86547fb6 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/9fed8ef0-d178-48d0-b6b9-463a15ce8e92/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/9fed8ef0-d178-48d0-b6b9-463a15ce8e92/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/9fed8ef0-d178-48d0-b6b9-463a15ce8e92/index.idx new file mode 100644 index 00000000000000..f3012038a0705f Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/9fed8ef0-d178-48d0-b6b9-463a15ce8e92/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/a125b981-4ab0-41a9-b139-ba56649a81f9/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/a125b981-4ab0-41a9-b139-ba56649a81f9/auxiliary.idx new file mode 100644 index 00000000000000..a738145d340fa2 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/a125b981-4ab0-41a9-b139-ba56649a81f9/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/a125b981-4ab0-41a9-b139-ba56649a81f9/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/a125b981-4ab0-41a9-b139-ba56649a81f9/index.idx new file mode 100644 index 00000000000000..9c7a3f74fdf679 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/a125b981-4ab0-41a9-b139-ba56649a81f9/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/a18b35ab-440b-4a3f-ac8f-148459d100dd/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/a18b35ab-440b-4a3f-ac8f-148459d100dd/auxiliary.idx new file mode 100644 index 00000000000000..d308bcf9fa0b9c Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/a18b35ab-440b-4a3f-ac8f-148459d100dd/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/a18b35ab-440b-4a3f-ac8f-148459d100dd/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/a18b35ab-440b-4a3f-ac8f-148459d100dd/index.idx new file mode 100644 index 00000000000000..1c70b481cb37fd Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/a18b35ab-440b-4a3f-ac8f-148459d100dd/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/a9a4f628-27d9-44a6-9531-ea4e90eb2aa2/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/a9a4f628-27d9-44a6-9531-ea4e90eb2aa2/auxiliary.idx new file mode 100644 index 00000000000000..2fd9ab3e8e2445 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/a9a4f628-27d9-44a6-9531-ea4e90eb2aa2/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/a9a4f628-27d9-44a6-9531-ea4e90eb2aa2/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/a9a4f628-27d9-44a6-9531-ea4e90eb2aa2/index.idx new file mode 100644 index 00000000000000..c9179440bd7d19 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/a9a4f628-27d9-44a6-9531-ea4e90eb2aa2/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/ad09e3fd-b1b1-4498-85af-7a555dc496e2/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/ad09e3fd-b1b1-4498-85af-7a555dc496e2/auxiliary.idx new file mode 100644 index 00000000000000..48a41d9d052e93 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/ad09e3fd-b1b1-4498-85af-7a555dc496e2/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/ad09e3fd-b1b1-4498-85af-7a555dc496e2/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/ad09e3fd-b1b1-4498-85af-7a555dc496e2/index.idx new file mode 100644 index 00000000000000..1be59fd331757d Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/ad09e3fd-b1b1-4498-85af-7a555dc496e2/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/ae88749d-2832-4a56-b618-d5a460f5ec3b/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/ae88749d-2832-4a56-b618-d5a460f5ec3b/auxiliary.idx new file mode 100644 index 00000000000000..a9a0941d310cac Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/ae88749d-2832-4a56-b618-d5a460f5ec3b/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/ae88749d-2832-4a56-b618-d5a460f5ec3b/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/ae88749d-2832-4a56-b618-d5a460f5ec3b/index.idx new file mode 100644 index 00000000000000..bf19a84e7416f6 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/ae88749d-2832-4a56-b618-d5a460f5ec3b/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/b0e2231b-7815-4f14-a51b-ab801d61aa66/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/b0e2231b-7815-4f14-a51b-ab801d61aa66/auxiliary.idx new file mode 100644 index 00000000000000..ea1bdaa46ce5f5 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/b0e2231b-7815-4f14-a51b-ab801d61aa66/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/b0e2231b-7815-4f14-a51b-ab801d61aa66/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/b0e2231b-7815-4f14-a51b-ab801d61aa66/index.idx new file mode 100644 index 00000000000000..7aff59c89c9333 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/b0e2231b-7815-4f14-a51b-ab801d61aa66/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/b7728306-ba26-4b15-a3a8-16d1d8fbb63e/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/b7728306-ba26-4b15-a3a8-16d1d8fbb63e/auxiliary.idx new file mode 100644 index 00000000000000..144d8272d677bf Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/b7728306-ba26-4b15-a3a8-16d1d8fbb63e/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/b7728306-ba26-4b15-a3a8-16d1d8fbb63e/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/b7728306-ba26-4b15-a3a8-16d1d8fbb63e/index.idx new file mode 100644 index 00000000000000..91b3214264944c Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/b7728306-ba26-4b15-a3a8-16d1d8fbb63e/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c0107179-7d72-449c-80c3-a213eb4d3f6e/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c0107179-7d72-449c-80c3-a213eb4d3f6e/auxiliary.idx new file mode 100644 index 00000000000000..5d9b6654be2c93 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c0107179-7d72-449c-80c3-a213eb4d3f6e/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c0107179-7d72-449c-80c3-a213eb4d3f6e/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c0107179-7d72-449c-80c3-a213eb4d3f6e/index.idx new file mode 100644 index 00000000000000..a6e97f8eb482c4 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c0107179-7d72-449c-80c3-a213eb4d3f6e/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c3f0065f-0e64-40e4-ac44-02ba82fd519a/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c3f0065f-0e64-40e4-ac44-02ba82fd519a/auxiliary.idx new file mode 100644 index 00000000000000..eb86aaf5515dc3 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c3f0065f-0e64-40e4-ac44-02ba82fd519a/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c3f0065f-0e64-40e4-ac44-02ba82fd519a/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c3f0065f-0e64-40e4-ac44-02ba82fd519a/index.idx new file mode 100644 index 00000000000000..448585af66447b Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c3f0065f-0e64-40e4-ac44-02ba82fd519a/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c4191d93-a1b5-449e-bdf1-00095490e788/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c4191d93-a1b5-449e-bdf1-00095490e788/auxiliary.idx new file mode 100644 index 00000000000000..15529c191300b0 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c4191d93-a1b5-449e-bdf1-00095490e788/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c4191d93-a1b5-449e-bdf1-00095490e788/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c4191d93-a1b5-449e-bdf1-00095490e788/index.idx new file mode 100644 index 00000000000000..441d2dd55f96b6 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c4191d93-a1b5-449e-bdf1-00095490e788/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c60780cd-5aa7-4c49-85e8-52f7dc8b0ebe/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c60780cd-5aa7-4c49-85e8-52f7dc8b0ebe/auxiliary.idx new file mode 100644 index 00000000000000..370d9b0442654c Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c60780cd-5aa7-4c49-85e8-52f7dc8b0ebe/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c60780cd-5aa7-4c49-85e8-52f7dc8b0ebe/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c60780cd-5aa7-4c49-85e8-52f7dc8b0ebe/index.idx new file mode 100644 index 00000000000000..ecd1af4b7222e9 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/c60780cd-5aa7-4c49-85e8-52f7dc8b0ebe/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/ce29fc2b-9198-4e49-bc48-bfe41d300748/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/ce29fc2b-9198-4e49-bc48-bfe41d300748/auxiliary.idx new file mode 100644 index 00000000000000..c9dca756ad671a Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/ce29fc2b-9198-4e49-bc48-bfe41d300748/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/ce29fc2b-9198-4e49-bc48-bfe41d300748/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/ce29fc2b-9198-4e49-bc48-bfe41d300748/index.idx new file mode 100644 index 00000000000000..b669587f44e982 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/ce29fc2b-9198-4e49-bc48-bfe41d300748/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/d5c482ee-e807-4816-9ebe-71d41c943cd7/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/d5c482ee-e807-4816-9ebe-71d41c943cd7/auxiliary.idx new file mode 100644 index 00000000000000..361d7040af7405 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/d5c482ee-e807-4816-9ebe-71d41c943cd7/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/d5c482ee-e807-4816-9ebe-71d41c943cd7/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/d5c482ee-e807-4816-9ebe-71d41c943cd7/index.idx new file mode 100644 index 00000000000000..9570ef50d8fe0c Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/d5c482ee-e807-4816-9ebe-71d41c943cd7/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/da4537b4-37bc-402c-8519-a9528f73059c/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/da4537b4-37bc-402c-8519-a9528f73059c/auxiliary.idx new file mode 100644 index 00000000000000..e59fe67670d1ca Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/da4537b4-37bc-402c-8519-a9528f73059c/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/da4537b4-37bc-402c-8519-a9528f73059c/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/da4537b4-37bc-402c-8519-a9528f73059c/index.idx new file mode 100644 index 00000000000000..b76c84bde0b799 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/da4537b4-37bc-402c-8519-a9528f73059c/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/e3fe1cef-2cad-4be0-b6f9-22c3740f8322/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/e3fe1cef-2cad-4be0-b6f9-22c3740f8322/auxiliary.idx new file mode 100644 index 00000000000000..b766e0877df752 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/e3fe1cef-2cad-4be0-b6f9-22c3740f8322/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/e3fe1cef-2cad-4be0-b6f9-22c3740f8322/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/e3fe1cef-2cad-4be0-b6f9-22c3740f8322/index.idx new file mode 100644 index 00000000000000..a775db89ad159c Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/e3fe1cef-2cad-4be0-b6f9-22c3740f8322/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/e83e5720-5720-41ac-ac68-72be97763e52/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/e83e5720-5720-41ac-ac68-72be97763e52/auxiliary.idx new file mode 100644 index 00000000000000..7be84968f8ac1c Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/e83e5720-5720-41ac-ac68-72be97763e52/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/e83e5720-5720-41ac-ac68-72be97763e52/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/e83e5720-5720-41ac-ac68-72be97763e52/index.idx new file mode 100644 index 00000000000000..4abc53051280f0 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/e83e5720-5720-41ac-ac68-72be97763e52/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/f04d495d-3cb1-4d55-9f1e-807765ea42cc/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/f04d495d-3cb1-4d55-9f1e-807765ea42cc/auxiliary.idx new file mode 100644 index 00000000000000..c663a94f7a7f1e Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/f04d495d-3cb1-4d55-9f1e-807765ea42cc/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/f04d495d-3cb1-4d55-9f1e-807765ea42cc/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/f04d495d-3cb1-4d55-9f1e-807765ea42cc/index.idx new file mode 100644 index 00000000000000..ebe47edbffddd4 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/f04d495d-3cb1-4d55-9f1e-807765ea42cc/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/fa1794c7-f05c-4296-b2d3-7ffad40cb608/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/fa1794c7-f05c-4296-b2d3-7ffad40cb608/auxiliary.idx new file mode 100644 index 00000000000000..55fc98258e10ea Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/fa1794c7-f05c-4296-b2d3-7ffad40cb608/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/fa1794c7-f05c-4296-b2d3-7ffad40cb608/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/fa1794c7-f05c-4296-b2d3-7ffad40cb608/index.idx new file mode 100644 index 00000000000000..bc4bd7e6b4a190 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_indices/fa1794c7-f05c-4296-b2d3-7ffad40cb608/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_transactions/45-4f69e509-e863-42ab-969c-0c64dc7bdaaf.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_transactions/45-4f69e509-e863-42ab-969c-0c64dc7bdaaf.txn new file mode 100644 index 00000000000000..43c9bd4e4b38b5 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_transactions/45-4f69e509-e863-42ab-969c-0c64dc7bdaaf.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_versions/18446744073709551569.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_versions/18446744073709551569.manifest new file mode 100644 index 00000000000000..a992f4e901d853 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_versions/18446744073709551569.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_versions/latest_version_hint.json b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_versions/latest_version_hint.json new file mode 100644 index 00000000000000..16b8f768ff55d7 --- /dev/null +++ b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/_versions/latest_version_hint.json @@ -0,0 +1 @@ +{"version":46} \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/data/00000101100011101110110000ee63473ebf1b2654e0a94735.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/data/00000101100011101110110000ee63473ebf1b2654e0a94735.lance new file mode 100644 index 00000000000000..efdc5bd9a4f767 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/data/00000101100011101110110000ee63473ebf1b2654e0a94735.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/data/1010111100110100111001016ec8c14d82ac254d4a599b168b.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/data/1010111100110100111001016ec8c14d82ac254d4a599b168b.lance new file mode 100644 index 00000000000000..1cd476d702b5ef Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/198a557b_doris$vs_index_matrix/data/1010111100110100111001016ec8c14d82ac254d4a599b168b.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_indices/f7df7f0a-77f9-428a-abe2-fe510132cfa0/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_indices/f7df7f0a-77f9-428a-abe2-fe510132cfa0/auxiliary.idx deleted file mode 100644 index 2a2a6843a3afdd..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_indices/f7df7f0a-77f9-428a-abe2-fe510132cfa0/auxiliary.idx and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_indices/f7df7f0a-77f9-428a-abe2-fe510132cfa0/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_indices/f7df7f0a-77f9-428a-abe2-fe510132cfa0/index.idx deleted file mode 100644 index 5e8392be23170b..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_indices/f7df7f0a-77f9-428a-abe2-fe510132cfa0/index.idx and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_transactions/0-3905e742-2db0-44e1-ad56-cd0b159e6799.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_transactions/0-3905e742-2db0-44e1-ad56-cd0b159e6799.txn deleted file mode 100644 index e501cd6c72c311..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_transactions/0-3905e742-2db0-44e1-ad56-cd0b159e6799.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_transactions/1-1d77fd49-8d7b-44ac-98ea-062ed07cdc55.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_transactions/1-1d77fd49-8d7b-44ac-98ea-062ed07cdc55.txn deleted file mode 100644 index 3575d7970a3345..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_transactions/1-1d77fd49-8d7b-44ac-98ea-062ed07cdc55.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_transactions/2-28c146c4-c5bb-4a77-aa56-69f44b86554e.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_transactions/2-28c146c4-c5bb-4a77-aa56-69f44b86554e.txn deleted file mode 100644 index 586055b8d9e28b..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_transactions/2-28c146c4-c5bb-4a77-aa56-69f44b86554e.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_versions/18446744073709551612.manifest deleted file mode 100644 index dad6da20823387..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_versions/18446744073709551612.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_versions/18446744073709551613.manifest deleted file mode 100644 index b30503c3a0e95b..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_versions/18446744073709551613.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_versions/18446744073709551614.manifest deleted file mode 100644 index d51a43e22bb378..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/_versions/18446744073709551614.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/data/010000001110110001100111d378864dcfa9a71f2b65502410.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/data/010000001110110001100111d378864dcfa9a71f2b65502410.lance deleted file mode 100644 index 116f0b1c496949..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/data/010000001110110001100111d378864dcfa9a71f2b65502410.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/data/010110101011010011110010a6cc2f4eaa978e7269ec893256.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/data/010110101011010011110010a6cc2f4eaa978e7269ec893256.lance deleted file mode 100644 index 41bf64a968c585..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3adf6edd_doris$vs_ivf_pq_f32/data/010110101011010011110010a6cc2f4eaa978e7269ec893256.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_indices/5a293dbe-80e1-41a5-ad89-3fa1636a0809/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_indices/5a293dbe-80e1-41a5-ad89-3fa1636a0809/auxiliary.idx new file mode 100644 index 00000000000000..ef97171c04a65b Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_indices/5a293dbe-80e1-41a5-ad89-3fa1636a0809/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_indices/5a293dbe-80e1-41a5-ad89-3fa1636a0809/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_indices/5a293dbe-80e1-41a5-ad89-3fa1636a0809/index.idx new file mode 100644 index 00000000000000..6473ac72dbf2ec Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_indices/5a293dbe-80e1-41a5-ad89-3fa1636a0809/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_transactions/0-cc57e472-0894-49b7-9357-0ba3803dd9a5.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_transactions/0-cc57e472-0894-49b7-9357-0ba3803dd9a5.txn new file mode 100644 index 00000000000000..96504194bc3ece Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_transactions/0-cc57e472-0894-49b7-9357-0ba3803dd9a5.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_transactions/1-930d4120-cf56-473b-8ff4-0599d9c6c4d2.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_transactions/1-930d4120-cf56-473b-8ff4-0599d9c6c4d2.txn new file mode 100644 index 00000000000000..6d255a37fe03e9 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_transactions/1-930d4120-cf56-473b-8ff4-0599d9c6c4d2.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_transactions/2-154cbf5a-5c54-4bb6-88a5-a3f903ce311b.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_transactions/2-154cbf5a-5c54-4bb6-88a5-a3f903ce311b.txn new file mode 100644 index 00000000000000..ca32c329329468 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_transactions/2-154cbf5a-5c54-4bb6-88a5-a3f903ce311b.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_versions/18446744073709551612.manifest new file mode 100644 index 00000000000000..0dfb3bb5b8553b Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_versions/18446744073709551612.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_versions/18446744073709551613.manifest new file mode 100644 index 00000000000000..f376115ca5aa56 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_versions/18446744073709551613.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_versions/18446744073709551614.manifest new file mode 100644 index 00000000000000..53fa0dd8572800 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_versions/18446744073709551614.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_versions/latest_version_hint.json b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_versions/latest_version_hint.json new file mode 100644 index 00000000000000..f93d3984472d99 --- /dev/null +++ b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/_versions/latest_version_hint.json @@ -0,0 +1 @@ +{"version":3} \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/data/001010010011100001010100a131fe417ab2fe35ae98232003.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/data/001010010011100001010100a131fe417ab2fe35ae98232003.lance new file mode 100644 index 00000000000000..34d1f07b185a22 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/data/001010010011100001010100a131fe417ab2fe35ae98232003.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/data/010010100000011010011001e8af454dd8baf602de4d59dcf1.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/data/010010100000011010011001e8af454dd8baf602de4d59dcf1.lance new file mode 100644 index 00000000000000..75b2e574239b5d Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/3c75792e_doris$vs_ivf_flat_u8/data/010010100000011010011001e8af454dd8baf602de4d59dcf1.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_indices/b18c5bba-1b00-4d4b-8aa7-dcc7a6d52b99/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_indices/b18c5bba-1b00-4d4b-8aa7-dcc7a6d52b99/auxiliary.idx new file mode 100644 index 00000000000000..950f447beecd6a Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_indices/b18c5bba-1b00-4d4b-8aa7-dcc7a6d52b99/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_indices/b18c5bba-1b00-4d4b-8aa7-dcc7a6d52b99/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_indices/b18c5bba-1b00-4d4b-8aa7-dcc7a6d52b99/index.idx new file mode 100644 index 00000000000000..26e5724c92497a Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_indices/b18c5bba-1b00-4d4b-8aa7-dcc7a6d52b99/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_transactions/0-18aead66-5ad1-4e81-89f3-424556778b35.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_transactions/0-18aead66-5ad1-4e81-89f3-424556778b35.txn new file mode 100644 index 00000000000000..0f5cc34b016131 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_transactions/0-18aead66-5ad1-4e81-89f3-424556778b35.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_transactions/1-3a4eee34-3ff1-4a7f-9e61-dd6fdded446d.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_transactions/1-3a4eee34-3ff1-4a7f-9e61-dd6fdded446d.txn new file mode 100644 index 00000000000000..82017e1b888dcf Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_transactions/1-3a4eee34-3ff1-4a7f-9e61-dd6fdded446d.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_transactions/2-10a38b30-d2bb-4c41-9313-765f7d331f7d.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_transactions/2-10a38b30-d2bb-4c41-9313-765f7d331f7d.txn new file mode 100644 index 00000000000000..865fed78e08b63 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_transactions/2-10a38b30-d2bb-4c41-9313-765f7d331f7d.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_versions/18446744073709551612.manifest new file mode 100644 index 00000000000000..7734873917f3f2 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_versions/18446744073709551612.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_versions/18446744073709551613.manifest new file mode 100644 index 00000000000000..0697c5bdd062f3 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_versions/18446744073709551613.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_versions/18446744073709551614.manifest new file mode 100644 index 00000000000000..9f56d2b90bbe1c Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_versions/18446744073709551614.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_versions/latest_version_hint.json b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_versions/latest_version_hint.json new file mode 100644 index 00000000000000..f93d3984472d99 --- /dev/null +++ b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/_versions/latest_version_hint.json @@ -0,0 +1 @@ +{"version":3} \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/data/000010001101010101111111e02ba6465994507afe1f03ba36.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/data/000010001101010101111111e02ba6465994507afe1f03ba36.lance new file mode 100644 index 00000000000000..cc9def8bbe0571 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/data/000010001101010101111111e02ba6465994507afe1f03ba36.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/data/01111011100110111100110045ec234595af93b4aa3e508c8d.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/data/01111011100110111100110045ec234595af93b4aa3e508c8d.lance new file mode 100644 index 00000000000000..2d647579c874ae Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/4197a0e9_doris$vs_ivf_flat_f32_cosine/data/01111011100110111100110045ec234595af93b4aa3e508c8d.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_indices/d25d6ecd-ca14-40f9-a33e-33861c804282/page_data.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_indices/d25d6ecd-ca14-40f9-a33e-33861c804282/page_data.lance new file mode 100644 index 00000000000000..b07a7ac1b3b878 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_indices/d25d6ecd-ca14-40f9-a33e-33861c804282/page_data.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_indices/d25d6ecd-ca14-40f9-a33e-33861c804282/page_lookup.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_indices/d25d6ecd-ca14-40f9-a33e-33861c804282/page_lookup.lance new file mode 100644 index 00000000000000..20aa43d522fc01 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_indices/d25d6ecd-ca14-40f9-a33e-33861c804282/page_lookup.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_transactions/0-533017a3-3d8f-4963-bf42-04c85917b60c.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_transactions/0-533017a3-3d8f-4963-bf42-04c85917b60c.txn new file mode 100644 index 00000000000000..a5e46d596f2efe Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_transactions/0-533017a3-3d8f-4963-bf42-04c85917b60c.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_transactions/1-e1b458a9-6efe-4794-b7d7-850967a81fdd.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_transactions/1-e1b458a9-6efe-4794-b7d7-850967a81fdd.txn new file mode 100644 index 00000000000000..90a48aef449670 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_transactions/1-e1b458a9-6efe-4794-b7d7-850967a81fdd.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_transactions/2-b85de2bd-e7d2-4935-9d50-38e9e18b56d0.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_transactions/2-b85de2bd-e7d2-4935-9d50-38e9e18b56d0.txn new file mode 100644 index 00000000000000..173dfbffc7c566 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_transactions/2-b85de2bd-e7d2-4935-9d50-38e9e18b56d0.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_transactions/3-197e0b23-b93e-46bd-9a67-05bb21b42b33.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_transactions/3-197e0b23-b93e-46bd-9a67-05bb21b42b33.txn new file mode 100644 index 00000000000000..f08dd46451d678 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_transactions/3-197e0b23-b93e-46bd-9a67-05bb21b42b33.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_transactions/3-a6deb520-c206-4777-81d2-da8d8421d2b9.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_transactions/3-a6deb520-c206-4777-81d2-da8d8421d2b9.txn new file mode 100644 index 00000000000000..eb30f20047c4af --- /dev/null +++ b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_transactions/3-a6deb520-c206-4777-81d2-da8d8421d2b9.txn @@ -0,0 +1 @@ +$a6deb520-c206-4777-81d2-da8d8421d2b9� \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_versions/18446744073709551610.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_versions/18446744073709551610.manifest new file mode 100644 index 00000000000000..c1bfc113b812fc Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_versions/18446744073709551610.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_versions/18446744073709551611.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_versions/18446744073709551611.manifest new file mode 100644 index 00000000000000..b0465af2a8619a Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_versions/18446744073709551611.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_versions/18446744073709551612.manifest new file mode 100644 index 00000000000000..783d12bac87634 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_versions/18446744073709551612.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_versions/18446744073709551613.manifest new file mode 100644 index 00000000000000..744166cd5b4d52 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_versions/18446744073709551613.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_versions/18446744073709551614.manifest new file mode 100644 index 00000000000000..e131540f9736e1 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_versions/18446744073709551614.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_versions/latest_version_hint.json b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_versions/latest_version_hint.json new file mode 100644 index 00000000000000..978d5262ed3c5d --- /dev/null +++ b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/_versions/latest_version_hint.json @@ -0,0 +1 @@ +{"version":5} \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/data/010000110001110011110000094842432494dd9729f116b29b.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/data/010000110001110011110000094842432494dd9729f116b29b.lance new file mode 100644 index 00000000000000..9708ac041d4254 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/data/010000110001110011110000094842432494dd9729f116b29b.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/data/10111001000011111011011136631f4f7491558ebbde36b759.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/data/10111001000011111011011136631f4f7491558ebbde36b759.lance new file mode 100644 index 00000000000000..8c7823f0ce0caa Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/data/10111001000011111011011136631f4f7491558ebbde36b759.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/data/1110010111100000110000009f14c74f0d9c091bcfb73f9307.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/data/1110010111100000110000009f14c74f0d9c091bcfb73f9307.lance new file mode 100644 index 00000000000000..fa002888c2499e Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/482a6218_doris$nested_index/data/1110010111100000110000009f14c74f0d9c091bcfb73f9307.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_indices/164955e6-86b3-43e0-b7a8-48560be37a61/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_indices/164955e6-86b3-43e0-b7a8-48560be37a61/auxiliary.idx new file mode 100644 index 00000000000000..c25b175dd57acd Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_indices/164955e6-86b3-43e0-b7a8-48560be37a61/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_indices/164955e6-86b3-43e0-b7a8-48560be37a61/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_indices/164955e6-86b3-43e0-b7a8-48560be37a61/index.idx new file mode 100644 index 00000000000000..9d55ac2c5f7962 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_indices/164955e6-86b3-43e0-b7a8-48560be37a61/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_transactions/0-d4ddf713-bbd6-456d-b456-e327d854c678.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_transactions/0-d4ddf713-bbd6-456d-b456-e327d854c678.txn new file mode 100644 index 00000000000000..6628ee1fc01ffa Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_transactions/0-d4ddf713-bbd6-456d-b456-e327d854c678.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_transactions/1-0dac86b2-7775-49cf-9f39-d3333e507da7.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_transactions/1-0dac86b2-7775-49cf-9f39-d3333e507da7.txn new file mode 100644 index 00000000000000..721ed4ab6c2011 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_transactions/1-0dac86b2-7775-49cf-9f39-d3333e507da7.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_transactions/2-ed56d270-1bad-4356-82c0-dbb7d10ec70a.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_transactions/2-ed56d270-1bad-4356-82c0-dbb7d10ec70a.txn new file mode 100644 index 00000000000000..5762b0c6f0960a Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_transactions/2-ed56d270-1bad-4356-82c0-dbb7d10ec70a.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_versions/18446744073709551612.manifest new file mode 100644 index 00000000000000..3ee5111f1763d5 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_versions/18446744073709551612.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_versions/18446744073709551613.manifest new file mode 100644 index 00000000000000..21a29e9aa224f4 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_versions/18446744073709551613.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_versions/18446744073709551614.manifest new file mode 100644 index 00000000000000..1e706aaf320f44 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_versions/18446744073709551614.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_versions/latest_version_hint.json b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_versions/latest_version_hint.json new file mode 100644 index 00000000000000..f93d3984472d99 --- /dev/null +++ b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/_versions/latest_version_hint.json @@ -0,0 +1 @@ +{"version":3} \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/data/10011010110011010110001062d0724e38911e5e2b90c7a0f5.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/data/10011010110011010110001062d0724e38911e5e2b90c7a0f5.lance new file mode 100644 index 00000000000000..b8eb2dddbfffd9 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/data/10011010110011010110001062d0724e38911e5e2b90c7a0f5.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/data/110110000010110100101100bd71ec44499c6bff27551aa883.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/data/110110000010110100101100bd71ec44499c6bff27551aa883.lance new file mode 100644 index 00000000000000..a0cd3e97dcd743 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/57b2c9e6_doris$vs_ivf_flat_f32/data/110110000010110100101100bd71ec44499c6bff27551aa883.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_indices/b86c8bbc-8246-40ec-add8-541c0767bbd1/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_indices/b86c8bbc-8246-40ec-add8-541c0767bbd1/auxiliary.idx deleted file mode 100644 index 648a0c88c94baf..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_indices/b86c8bbc-8246-40ec-add8-541c0767bbd1/auxiliary.idx and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_indices/b86c8bbc-8246-40ec-add8-541c0767bbd1/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_indices/b86c8bbc-8246-40ec-add8-541c0767bbd1/index.idx deleted file mode 100644 index 0ab46e53362cc1..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_indices/b86c8bbc-8246-40ec-add8-541c0767bbd1/index.idx and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_transactions/0-c6c7f7b9-4e6c-47cd-a4e6-d1ccdf906f8f.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_transactions/0-c6c7f7b9-4e6c-47cd-a4e6-d1ccdf906f8f.txn deleted file mode 100644 index 081713b90ea04c..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_transactions/0-c6c7f7b9-4e6c-47cd-a4e6-d1ccdf906f8f.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_transactions/1-7f715afd-47f2-4bbb-8117-98f5c83101c5.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_transactions/1-7f715afd-47f2-4bbb-8117-98f5c83101c5.txn deleted file mode 100644 index 7959f6516c81b0..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_transactions/1-7f715afd-47f2-4bbb-8117-98f5c83101c5.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_transactions/2-d8509420-ada7-4ef3-9349-38b10e05e986.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_transactions/2-d8509420-ada7-4ef3-9349-38b10e05e986.txn deleted file mode 100644 index 749c70786bd556..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_transactions/2-d8509420-ada7-4ef3-9349-38b10e05e986.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_versions/18446744073709551612.manifest deleted file mode 100644 index 3b55d3ddf15b9e..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_versions/18446744073709551612.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_versions/18446744073709551613.manifest deleted file mode 100644 index 98a82f6c45cbee..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_versions/18446744073709551613.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_versions/18446744073709551614.manifest deleted file mode 100644 index e68e69c697ce69..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/_versions/18446744073709551614.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/data/011100001101011010111011e4196f4fb2af4e34597f44de02.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/data/011100001101011010111011e4196f4fb2af4e34597f44de02.lance deleted file mode 100644 index 116f0b1c496949..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/data/011100001101011010111011e4196f4fb2af4e34597f44de02.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/data/011101011001000010010101891e4943169d6a864e75c5188f.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/data/011101011001000010010101891e4943169d6a864e75c5188f.lance deleted file mode 100644 index 41bf64a968c585..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/5b3f9aa6_doris$vs_ivf_sq_f32/data/011101011001000010010101891e4943169d6a864e75c5188f.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_indices/4edab7e3-e68f-4d6b-ad72-1b6fdbdacf56/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_indices/4edab7e3-e68f-4d6b-ad72-1b6fdbdacf56/auxiliary.idx new file mode 100644 index 00000000000000..266e4ceca0cc85 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_indices/4edab7e3-e68f-4d6b-ad72-1b6fdbdacf56/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_indices/4edab7e3-e68f-4d6b-ad72-1b6fdbdacf56/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_indices/4edab7e3-e68f-4d6b-ad72-1b6fdbdacf56/index.idx new file mode 100644 index 00000000000000..2f090679191b05 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_indices/4edab7e3-e68f-4d6b-ad72-1b6fdbdacf56/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_transactions/0-7dafa29f-64fc-4602-a837-17b257ffe7a4.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_transactions/0-7dafa29f-64fc-4602-a837-17b257ffe7a4.txn new file mode 100644 index 00000000000000..cc7d4f7252d03e Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_transactions/0-7dafa29f-64fc-4602-a837-17b257ffe7a4.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_transactions/1-edcf3e6b-5e9f-441c-a3ef-b4793dd9cd09.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_transactions/1-edcf3e6b-5e9f-441c-a3ef-b4793dd9cd09.txn new file mode 100644 index 00000000000000..710814c4632469 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_transactions/1-edcf3e6b-5e9f-441c-a3ef-b4793dd9cd09.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_transactions/2-27aa1702-8f2c-4c84-8935-5e0c5deb9872.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_transactions/2-27aa1702-8f2c-4c84-8935-5e0c5deb9872.txn new file mode 100644 index 00000000000000..df5db2a612fcb4 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_transactions/2-27aa1702-8f2c-4c84-8935-5e0c5deb9872.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_versions/18446744073709551612.manifest new file mode 100644 index 00000000000000..33da57d5cff38c Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_versions/18446744073709551612.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_versions/18446744073709551613.manifest new file mode 100644 index 00000000000000..3d68c872530dcf Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_versions/18446744073709551613.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_versions/18446744073709551614.manifest new file mode 100644 index 00000000000000..570ef6a5a16210 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_versions/18446744073709551614.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_versions/latest_version_hint.json b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_versions/latest_version_hint.json new file mode 100644 index 00000000000000..f93d3984472d99 --- /dev/null +++ b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/_versions/latest_version_hint.json @@ -0,0 +1 @@ +{"version":3} \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/data/000100101000011111000001a35b014c5bbf62871ef6e84994.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/data/000100101000011111000001a35b014c5bbf62871ef6e84994.lance new file mode 100644 index 00000000000000..a0cd3e97dcd743 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/data/000100101000011111000001a35b014c5bbf62871ef6e84994.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/data/111001000100110101000101f93a1a41f2973981b5122ab2d2.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/data/111001000100110101000101f93a1a41f2973981b5122ab2d2.lance new file mode 100644 index 00000000000000..b8eb2dddbfffd9 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/75d47c69_doris$vs_ivf_hnsw_flat_f32/data/111001000100110101000101f93a1a41f2973981b5122ab2d2.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_indices/fd49bcd3-69f4-49a1-b243-f2218af4d90d/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_indices/fd49bcd3-69f4-49a1-b243-f2218af4d90d/auxiliary.idx deleted file mode 100644 index 9fc86342cd4895..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_indices/fd49bcd3-69f4-49a1-b243-f2218af4d90d/auxiliary.idx and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_indices/fd49bcd3-69f4-49a1-b243-f2218af4d90d/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_indices/fd49bcd3-69f4-49a1-b243-f2218af4d90d/index.idx deleted file mode 100644 index 1a630f3defafe1..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_indices/fd49bcd3-69f4-49a1-b243-f2218af4d90d/index.idx and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_transactions/0-26573fb0-fe5f-42a5-923d-676a5a48867d.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_transactions/0-26573fb0-fe5f-42a5-923d-676a5a48867d.txn deleted file mode 100644 index a96be9c28bd793..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_transactions/0-26573fb0-fe5f-42a5-923d-676a5a48867d.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_transactions/1-e02edfb0-0b30-4f00-8d65-5256646feafa.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_transactions/1-e02edfb0-0b30-4f00-8d65-5256646feafa.txn deleted file mode 100644 index d757b9d809aa7a..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_transactions/1-e02edfb0-0b30-4f00-8d65-5256646feafa.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_transactions/2-0de2b847-e8da-433e-b198-67eec67a9b40.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_transactions/2-0de2b847-e8da-433e-b198-67eec67a9b40.txn deleted file mode 100644 index ea68989520e391..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_transactions/2-0de2b847-e8da-433e-b198-67eec67a9b40.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_versions/18446744073709551612.manifest deleted file mode 100644 index 23da37005a09fe..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_versions/18446744073709551612.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_versions/18446744073709551613.manifest deleted file mode 100644 index 2b426c9542a8e4..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_versions/18446744073709551613.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_versions/18446744073709551614.manifest deleted file mode 100644 index 1834706faded89..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/_versions/18446744073709551614.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/data/110110011111101010111100a6c4c14e0f8c1945b7745a4f53.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/data/110110011111101010111100a6c4c14e0f8c1945b7745a4f53.lance deleted file mode 100644 index 41bf64a968c585..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/data/110110011111101010111100a6c4c14e0f8c1945b7745a4f53.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/data/11101101000100000101101059dd5a4247a3c800111e04933f.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/data/11101101000100000101101059dd5a4247a3c800111e04933f.lance deleted file mode 100644 index 116f0b1c496949..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7cfee6da_doris$vs_ivf_hnsw_pq_f32/data/11101101000100000101101059dd5a4247a3c800111e04933f.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_indices/fe69048a-a282-4f03-bf20-a08621842d77/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_indices/fe69048a-a282-4f03-bf20-a08621842d77/auxiliary.idx new file mode 100644 index 00000000000000..afa30349bfe6aa Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_indices/fe69048a-a282-4f03-bf20-a08621842d77/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_indices/fe69048a-a282-4f03-bf20-a08621842d77/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_indices/fe69048a-a282-4f03-bf20-a08621842d77/index.idx new file mode 100644 index 00000000000000..39147653ad344d Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_indices/fe69048a-a282-4f03-bf20-a08621842d77/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_transactions/0-80131b24-9d4b-42c2-9906-f24ba5466fd1.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_transactions/0-80131b24-9d4b-42c2-9906-f24ba5466fd1.txn new file mode 100644 index 00000000000000..ead1c9c9234ed8 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_transactions/0-80131b24-9d4b-42c2-9906-f24ba5466fd1.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_transactions/1-266bc6eb-5e09-4623-8f45-6fb587f2db5e.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_transactions/1-266bc6eb-5e09-4623-8f45-6fb587f2db5e.txn new file mode 100644 index 00000000000000..fdd98d01aa1baf Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_transactions/1-266bc6eb-5e09-4623-8f45-6fb587f2db5e.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_transactions/2-e545ba57-e0c8-484b-90f4-e01327a32098.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_transactions/2-e545ba57-e0c8-484b-90f4-e01327a32098.txn new file mode 100644 index 00000000000000..d9f0cf58664921 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_transactions/2-e545ba57-e0c8-484b-90f4-e01327a32098.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_versions/18446744073709551612.manifest new file mode 100644 index 00000000000000..80b2660d256df4 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_versions/18446744073709551612.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_versions/18446744073709551613.manifest new file mode 100644 index 00000000000000..c4d6a76f2631e2 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_versions/18446744073709551613.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_versions/18446744073709551614.manifest new file mode 100644 index 00000000000000..f054f909681a1d Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_versions/18446744073709551614.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_versions/latest_version_hint.json b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_versions/latest_version_hint.json new file mode 100644 index 00000000000000..f93d3984472d99 --- /dev/null +++ b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/_versions/latest_version_hint.json @@ -0,0 +1 @@ +{"version":3} \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/data/011001100111110001000001f02b3b4d58b2b209cf0e4c7451.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/data/011001100111110001000001f02b3b4d58b2b209cf0e4c7451.lance new file mode 100644 index 00000000000000..3490ba4a4d3bbb Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/data/011001100111110001000001f02b3b4d58b2b209cf0e4c7451.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/data/011110010111000000011111a7bffa4702ba9b994be541449e.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/data/011110010111000000011111a7bffa4702ba9b994be541449e.lance new file mode 100644 index 00000000000000..85fcdb6e9f3e0c Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/7d876d35_doris$vs_ivf_flat_f64/data/011110010111000000011111a7bffa4702ba9b994be541449e.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_indices/2340a947-4a6d-49d8-9ea4-e3eb46344cb8/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_indices/2340a947-4a6d-49d8-9ea4-e3eb46344cb8/auxiliary.idx new file mode 100644 index 00000000000000..303076f04a9609 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_indices/2340a947-4a6d-49d8-9ea4-e3eb46344cb8/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_indices/2340a947-4a6d-49d8-9ea4-e3eb46344cb8/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_indices/2340a947-4a6d-49d8-9ea4-e3eb46344cb8/index.idx new file mode 100644 index 00000000000000..cc7913a4695fe6 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_indices/2340a947-4a6d-49d8-9ea4-e3eb46344cb8/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_transactions/0-76667499-35f0-40dc-bf71-29c39a38c330.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_transactions/0-76667499-35f0-40dc-bf71-29c39a38c330.txn new file mode 100644 index 00000000000000..0735ea0d3d036f Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_transactions/0-76667499-35f0-40dc-bf71-29c39a38c330.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_transactions/1-9c7cfa7f-9389-48cf-bf14-cf545cf33055.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_transactions/1-9c7cfa7f-9389-48cf-bf14-cf545cf33055.txn new file mode 100644 index 00000000000000..2dc72faf740994 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_transactions/1-9c7cfa7f-9389-48cf-bf14-cf545cf33055.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_transactions/2-00e8ae3e-2672-499c-8bb4-65c74264658e.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_transactions/2-00e8ae3e-2672-499c-8bb4-65c74264658e.txn new file mode 100644 index 00000000000000..b14b0f3b54a9fd Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_transactions/2-00e8ae3e-2672-499c-8bb4-65c74264658e.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_versions/18446744073709551612.manifest new file mode 100644 index 00000000000000..169b84d415a4bf Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_versions/18446744073709551612.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_versions/18446744073709551613.manifest new file mode 100644 index 00000000000000..9bcfe24ccb32f6 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_versions/18446744073709551613.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_versions/18446744073709551614.manifest new file mode 100644 index 00000000000000..1026075b7a15fc Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_versions/18446744073709551614.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_versions/latest_version_hint.json b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_versions/latest_version_hint.json new file mode 100644 index 00000000000000..f93d3984472d99 --- /dev/null +++ b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/_versions/latest_version_hint.json @@ -0,0 +1 @@ +{"version":3} \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/data/0110000101100010001001107dae81442ab7757ed6cec2fc21.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/data/0110000101100010001001107dae81442ab7757ed6cec2fc21.lance new file mode 100644 index 00000000000000..cc9def8bbe0571 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/data/0110000101100010001001107dae81442ab7757ed6cec2fc21.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/data/11110111011010101001100020cdd345b7998e456ee28e37b4.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/data/11110111011010101001100020cdd345b7998e456ee28e37b4.lance new file mode 100644 index 00000000000000..2d647579c874ae Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/831a8785_doris$vs_ivf_pq_f32_dot/data/11110111011010101001100020cdd345b7998e456ee28e37b4.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_indices/b3fe52ad-845e-4174-9460-adc004837420/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_indices/b3fe52ad-845e-4174-9460-adc004837420/auxiliary.idx deleted file mode 100644 index e9139ea047845b..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_indices/b3fe52ad-845e-4174-9460-adc004837420/auxiliary.idx and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_indices/b3fe52ad-845e-4174-9460-adc004837420/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_indices/b3fe52ad-845e-4174-9460-adc004837420/index.idx deleted file mode 100644 index d5e611cce6e7a0..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_indices/b3fe52ad-845e-4174-9460-adc004837420/index.idx and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_transactions/0-16aff25d-10f6-4ab9-8683-bc1cff3c9654.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_transactions/0-16aff25d-10f6-4ab9-8683-bc1cff3c9654.txn deleted file mode 100644 index 36d27efb3d95ae..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_transactions/0-16aff25d-10f6-4ab9-8683-bc1cff3c9654.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_transactions/1-96659ad8-de9d-40bb-84bc-96155bc2e04c.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_transactions/1-96659ad8-de9d-40bb-84bc-96155bc2e04c.txn deleted file mode 100644 index 148c3059f4c7df..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_transactions/1-96659ad8-de9d-40bb-84bc-96155bc2e04c.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_transactions/2-42fa5fcb-4bf6-415d-9fb0-2573219e15c5.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_transactions/2-42fa5fcb-4bf6-415d-9fb0-2573219e15c5.txn deleted file mode 100644 index 35eb19d7e44f08..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_transactions/2-42fa5fcb-4bf6-415d-9fb0-2573219e15c5.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_versions/18446744073709551612.manifest deleted file mode 100644 index 8d3f62c6515c24..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_versions/18446744073709551612.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_versions/18446744073709551613.manifest deleted file mode 100644 index e69c9cccd49ee2..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_versions/18446744073709551613.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_versions/18446744073709551614.manifest deleted file mode 100644 index bb82c396ea991c..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/_versions/18446744073709551614.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/data/10111100010101000101000036753c4e35998eee5f926e7181.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/data/10111100010101000101000036753c4e35998eee5f926e7181.lance deleted file mode 100644 index 41bf64a968c585..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/data/10111100010101000101000036753c4e35998eee5f926e7181.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/data/111001110100110110110101c621e94ffe9ee5013b3c26331f.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/data/111001110100110110110101c621e94ffe9ee5013b3c26331f.lance deleted file mode 100644 index 116f0b1c496949..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/86676f94_doris$vs_ivf_flat_f32/data/111001110100110110110101c621e94ffe9ee5013b3c26331f.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_indices/e6b5b150-7a9e-432c-9d9e-19ee30192803/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_indices/e6b5b150-7a9e-432c-9d9e-19ee30192803/auxiliary.idx new file mode 100644 index 00000000000000..5ebb7f6ef0f9b9 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_indices/e6b5b150-7a9e-432c-9d9e-19ee30192803/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_indices/e6b5b150-7a9e-432c-9d9e-19ee30192803/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_indices/e6b5b150-7a9e-432c-9d9e-19ee30192803/index.idx new file mode 100644 index 00000000000000..574b06bc8ecccc Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_indices/e6b5b150-7a9e-432c-9d9e-19ee30192803/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_transactions/0-6712b1f6-482b-4981-843f-cd40ab848c4d.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_transactions/0-6712b1f6-482b-4981-843f-cd40ab848c4d.txn new file mode 100644 index 00000000000000..0491993571d434 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_transactions/0-6712b1f6-482b-4981-843f-cd40ab848c4d.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_transactions/1-c1df8e14-8c72-4cdf-812e-5611bf727eeb.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_transactions/1-c1df8e14-8c72-4cdf-812e-5611bf727eeb.txn new file mode 100644 index 00000000000000..26e7a005c182ca Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_transactions/1-c1df8e14-8c72-4cdf-812e-5611bf727eeb.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_transactions/2-e716776c-3aea-4ea0-8db4-9f286e692591.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_transactions/2-e716776c-3aea-4ea0-8db4-9f286e692591.txn new file mode 100644 index 00000000000000..82e7cc9a3ccada Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_transactions/2-e716776c-3aea-4ea0-8db4-9f286e692591.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_versions/18446744073709551612.manifest new file mode 100644 index 00000000000000..616462d164b71e Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_versions/18446744073709551612.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_versions/18446744073709551613.manifest new file mode 100644 index 00000000000000..da8ba2faf2ebf0 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_versions/18446744073709551613.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_versions/18446744073709551614.manifest new file mode 100644 index 00000000000000..be1a692b9254ba Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_versions/18446744073709551614.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_versions/latest_version_hint.json b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_versions/latest_version_hint.json new file mode 100644 index 00000000000000..f93d3984472d99 --- /dev/null +++ b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/_versions/latest_version_hint.json @@ -0,0 +1 @@ +{"version":3} \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/data/001101110011010100011001964131466cae35c6f169272abb.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/data/001101110011010100011001964131466cae35c6f169272abb.lance new file mode 100644 index 00000000000000..b8eb2dddbfffd9 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/data/001101110011010100011001964131466cae35c6f169272abb.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/data/110001010010101111011010da81734ac7b87107baae2a0ba1.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/data/110001010010101111011010da81734ac7b87107baae2a0ba1.lance new file mode 100644 index 00000000000000..a0cd3e97dcd743 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/8be5010b_doris$vs_ivf_hnsw_pq_f32/data/110001010010101111011010da81734ac7b87107baae2a0ba1.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/5b68f7cb-d3d6-404d-9fe4-2fab2d4c2c3e/page_data.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/5b68f7cb-d3d6-404d-9fe4-2fab2d4c2c3e/page_data.lance new file mode 100644 index 00000000000000..4028aef2a37423 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/5b68f7cb-d3d6-404d-9fe4-2fab2d4c2c3e/page_data.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/5b68f7cb-d3d6-404d-9fe4-2fab2d4c2c3e/page_lookup.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/5b68f7cb-d3d6-404d-9fe4-2fab2d4c2c3e/page_lookup.lance new file mode 100644 index 00000000000000..f700d7258264b6 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/5b68f7cb-d3d6-404d-9fe4-2fab2d4c2c3e/page_lookup.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/6b01082a-d357-401b-bd03-fb0234d72403/page_data.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/6b01082a-d357-401b-bd03-fb0234d72403/page_data.lance deleted file mode 100644 index 5a56cefc88f5c4..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/6b01082a-d357-401b-bd03-fb0234d72403/page_data.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/6b01082a-d357-401b-bd03-fb0234d72403/page_lookup.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/6b01082a-d357-401b-bd03-fb0234d72403/page_lookup.lance deleted file mode 100644 index b7581f7f8fab09..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/6b01082a-d357-401b-bd03-fb0234d72403/page_lookup.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/8831a412-b4a7-4975-950c-8fe62bf16ef7/bitmap_page_lookup.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/8831a412-b4a7-4975-950c-8fe62bf16ef7/bitmap_page_lookup.lance new file mode 100644 index 00000000000000..2efd05d5ca4493 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/8831a412-b4a7-4975-950c-8fe62bf16ef7/bitmap_page_lookup.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/9dba856e-3de7-4a7f-997a-e448d6ccfd88/bitmap_page_lookup.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/9dba856e-3de7-4a7f-997a-e448d6ccfd88/bitmap_page_lookup.lance deleted file mode 100644 index 5c8641c1812a3a..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/9dba856e-3de7-4a7f-997a-e448d6ccfd88/bitmap_page_lookup.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/b2a0b46c-741e-4884-8b1b-15aa5e389eb0/bitmap_page_lookup.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/b2a0b46c-741e-4884-8b1b-15aa5e389eb0/bitmap_page_lookup.lance new file mode 100644 index 00000000000000..7b80eb38797d6f Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/b2a0b46c-741e-4884-8b1b-15aa5e389eb0/bitmap_page_lookup.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/e0ff2c67-b56d-41fc-93a4-d766d04a0eb8/bitmap_page_lookup.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/e0ff2c67-b56d-41fc-93a4-d766d04a0eb8/bitmap_page_lookup.lance deleted file mode 100644 index 60ab136b785507..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_indices/e0ff2c67-b56d-41fc-93a4-d766d04a0eb8/bitmap_page_lookup.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_transactions/28-39e6dfbf-f1c5-4b1e-808a-ee342f74383f.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_transactions/28-39e6dfbf-f1c5-4b1e-808a-ee342f74383f.txn new file mode 100644 index 00000000000000..93f477daf06232 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_transactions/28-39e6dfbf-f1c5-4b1e-808a-ee342f74383f.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_transactions/39-1624f0d8-c076-4315-9073-a01c9971f8ab.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_transactions/39-1624f0d8-c076-4315-9073-a01c9971f8ab.txn deleted file mode 100644 index 0a85c95df3a3a6..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_transactions/39-1624f0d8-c076-4315-9073-a01c9971f8ab.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_versions/18446744073709551575.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_versions/18446744073709551575.manifest deleted file mode 100644 index e8571883f183da..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_versions/18446744073709551575.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_versions/18446744073709551586.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_versions/18446744073709551586.manifest new file mode 100644 index 00000000000000..e5cef20ebaa120 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_versions/18446744073709551586.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_versions/latest_version_hint.json b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_versions/latest_version_hint.json index 03390d66d786b1..c6ccfd69ce22cd 100644 --- a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_versions/latest_version_hint.json +++ b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/_versions/latest_version_hint.json @@ -1 +1 @@ -{"version":40} \ No newline at end of file +{"version":29} \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/data/00101000111111010011101078d9df455aa280e225d9336e3f.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/data/00101000111111010011101078d9df455aa280e225d9336e3f.lance deleted file mode 100644 index 51cc624aa15bcb..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/data/00101000111111010011101078d9df455aa280e225d9336e3f.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/data/01101101000001110001101007a96744fd8fa4f4791c8ccd2a.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/data/01101101000001110001101007a96744fd8fa4f4791c8ccd2a.lance new file mode 100644 index 00000000000000..5c95966b4be9f9 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/data/01101101000001110001101007a96744fd8fa4f4791c8ccd2a.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/data/110001010111011100000100d7d3884108b45243313e881513.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/data/110001010111011100000100d7d3884108b45243313e881513.lance new file mode 100644 index 00000000000000..92532de4d5a022 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/__manifest/data/110001010111011100000100d7d3884108b45243313e881513.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_indices/c55f3be0-35bf-4882-b4cc-d9211df5abb5/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_indices/c55f3be0-35bf-4882-b4cc-d9211df5abb5/auxiliary.idx new file mode 100644 index 00000000000000..83e45dea435287 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_indices/c55f3be0-35bf-4882-b4cc-d9211df5abb5/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_indices/c55f3be0-35bf-4882-b4cc-d9211df5abb5/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_indices/c55f3be0-35bf-4882-b4cc-d9211df5abb5/index.idx new file mode 100644 index 00000000000000..69867cd0a4c6c3 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_indices/c55f3be0-35bf-4882-b4cc-d9211df5abb5/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_transactions/0-9c64ee33-a2ff-43a6-8e1f-9d5a251c6b23.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_transactions/0-9c64ee33-a2ff-43a6-8e1f-9d5a251c6b23.txn new file mode 100644 index 00000000000000..4c6ce93a34677b Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_transactions/0-9c64ee33-a2ff-43a6-8e1f-9d5a251c6b23.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_transactions/1-ce7d59f3-9d7d-431c-873f-623eced449df.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_transactions/1-ce7d59f3-9d7d-431c-873f-623eced449df.txn new file mode 100644 index 00000000000000..c5573de061bc71 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_transactions/1-ce7d59f3-9d7d-431c-873f-623eced449df.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_transactions/2-a281f876-4c35-48a7-9fd5-dc6a98b52e24.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_transactions/2-a281f876-4c35-48a7-9fd5-dc6a98b52e24.txn new file mode 100644 index 00000000000000..6b8f8bc2a0abc3 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_transactions/2-a281f876-4c35-48a7-9fd5-dc6a98b52e24.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_versions/18446744073709551612.manifest new file mode 100644 index 00000000000000..ad7a5c7971ec07 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_versions/18446744073709551612.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_versions/18446744073709551613.manifest new file mode 100644 index 00000000000000..5bd5a2b255f913 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_versions/18446744073709551613.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_versions/18446744073709551614.manifest new file mode 100644 index 00000000000000..e947a2d35c4665 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_versions/18446744073709551614.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_versions/latest_version_hint.json b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_versions/latest_version_hint.json new file mode 100644 index 00000000000000..f93d3984472d99 --- /dev/null +++ b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/_versions/latest_version_hint.json @@ -0,0 +1 @@ +{"version":3} \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/data/00111100101010101000100084353a4987afae05ae7de77867.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/data/00111100101010101000100084353a4987afae05ae7de77867.lance new file mode 100644 index 00000000000000..b8eb2dddbfffd9 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/data/00111100101010101000100084353a4987afae05ae7de77867.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/data/11100110101100011100111062dab04ed1bcbee7f8c5fdf33f.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/data/11100110101100011100111062dab04ed1bcbee7f8c5fdf33f.lance new file mode 100644 index 00000000000000..a0cd3e97dcd743 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/b3c9ce40_doris$vs_ivf_pq_f32/data/11100110101100011100111062dab04ed1bcbee7f8c5fdf33f.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_indices/a4a12893-4aa7-4146-89a0-c14ff214fcdf/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_indices/a4a12893-4aa7-4146-89a0-c14ff214fcdf/auxiliary.idx deleted file mode 100644 index e9c452dfb4f304..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_indices/a4a12893-4aa7-4146-89a0-c14ff214fcdf/auxiliary.idx and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_indices/a4a12893-4aa7-4146-89a0-c14ff214fcdf/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_indices/a4a12893-4aa7-4146-89a0-c14ff214fcdf/index.idx deleted file mode 100644 index 0ca07081d81bfb..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_indices/a4a12893-4aa7-4146-89a0-c14ff214fcdf/index.idx and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_transactions/0-fba03dae-4bc9-46cc-88e1-48d12334d9c8.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_transactions/0-fba03dae-4bc9-46cc-88e1-48d12334d9c8.txn deleted file mode 100644 index b9f400af5220d3..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_transactions/0-fba03dae-4bc9-46cc-88e1-48d12334d9c8.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_transactions/1-b7e0b480-e85b-4b2d-b640-db1e83fe0ec0.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_transactions/1-b7e0b480-e85b-4b2d-b640-db1e83fe0ec0.txn deleted file mode 100644 index f4550f3b97d004..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_transactions/1-b7e0b480-e85b-4b2d-b640-db1e83fe0ec0.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_transactions/2-7cd05522-1faf-4bb3-b858-dbe3bb66f5dd.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_transactions/2-7cd05522-1faf-4bb3-b858-dbe3bb66f5dd.txn deleted file mode 100644 index 620c8d1d3a0a0f..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_transactions/2-7cd05522-1faf-4bb3-b858-dbe3bb66f5dd.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_versions/18446744073709551612.manifest deleted file mode 100644 index 2c1f38faf1ae89..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_versions/18446744073709551612.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_versions/18446744073709551613.manifest deleted file mode 100644 index 96d54b0e3efc3a..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_versions/18446744073709551613.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_versions/18446744073709551614.manifest deleted file mode 100644 index 0fdc164d5481c4..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/_versions/18446744073709551614.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/data/110010101101110011000011fbb8834dbeb678db4c956aa2dc.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/data/110010101101110011000011fbb8834dbeb678db4c956aa2dc.lance deleted file mode 100644 index 116f0b1c496949..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/data/110010101101110011000011fbb8834dbeb678db4c956aa2dc.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/data/111110111110010101000100270fdd4ff3a7fca1d1b7edc733.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/data/111110111110010101000100270fdd4ff3a7fca1d1b7edc733.lance deleted file mode 100644 index 41bf64a968c585..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/ce0c2a78_doris$vs_ivf_hnsw_flat_f32/data/111110111110010101000100270fdd4ff3a7fca1d1b7edc733.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_indices/89f3af0e-9900-457b-90de-840d10411bc9/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_indices/89f3af0e-9900-457b-90de-840d10411bc9/auxiliary.idx deleted file mode 100644 index 3980275d528bba..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_indices/89f3af0e-9900-457b-90de-840d10411bc9/auxiliary.idx and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_indices/89f3af0e-9900-457b-90de-840d10411bc9/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_indices/89f3af0e-9900-457b-90de-840d10411bc9/index.idx deleted file mode 100644 index 98b047290aca6c..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_indices/89f3af0e-9900-457b-90de-840d10411bc9/index.idx and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_transactions/0-f4895c26-f312-4756-9770-212b6729b540.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_transactions/0-f4895c26-f312-4756-9770-212b6729b540.txn deleted file mode 100644 index 88d1267dad8170..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_transactions/0-f4895c26-f312-4756-9770-212b6729b540.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_transactions/1-07a3d515-bca1-4363-85b9-493ffcd96d06.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_transactions/1-07a3d515-bca1-4363-85b9-493ffcd96d06.txn deleted file mode 100644 index 92b9fb18fa50ed..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_transactions/1-07a3d515-bca1-4363-85b9-493ffcd96d06.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_transactions/2-352ecaa2-290a-4dd6-a2c2-796c46d9f195.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_transactions/2-352ecaa2-290a-4dd6-a2c2-796c46d9f195.txn deleted file mode 100644 index f696a8536e1cc0..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_transactions/2-352ecaa2-290a-4dd6-a2c2-796c46d9f195.txn and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_versions/18446744073709551612.manifest deleted file mode 100644 index 4e4e534770d2e1..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_versions/18446744073709551612.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_versions/18446744073709551613.manifest deleted file mode 100644 index e900ef4810298d..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_versions/18446744073709551613.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_versions/18446744073709551614.manifest deleted file mode 100644 index 5972b9a95ea9a0..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/_versions/18446744073709551614.manifest and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/data/000001100000100001110000e1645442cbb94bb40a5df3a0ae.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/data/000001100000100001110000e1645442cbb94bb40a5df3a0ae.lance deleted file mode 100644 index 116f0b1c496949..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/data/000001100000100001110000e1645442cbb94bb40a5df3a0ae.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/data/00100000001101010110000165e42c4182a64dc3e8b72990fe.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/data/00100000001101010110000165e42c4182a64dc3e8b72990fe.lance deleted file mode 100644 index 41bf64a968c585..00000000000000 Binary files a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/d4fc3972_doris$vs_ivf_hnsw_sq_f32/data/00100000001101010110000165e42c4182a64dc3e8b72990fe.lance and /dev/null differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_indices/761bbc28-3f0b-49c0-8608-e87a9a8da567/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_indices/761bbc28-3f0b-49c0-8608-e87a9a8da567/auxiliary.idx new file mode 100644 index 00000000000000..558b755ca3191a Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_indices/761bbc28-3f0b-49c0-8608-e87a9a8da567/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_indices/761bbc28-3f0b-49c0-8608-e87a9a8da567/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_indices/761bbc28-3f0b-49c0-8608-e87a9a8da567/index.idx new file mode 100644 index 00000000000000..78406dee87d61c Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_indices/761bbc28-3f0b-49c0-8608-e87a9a8da567/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_transactions/0-fc5e95bb-0f3b-43b2-978e-3a1349556da9.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_transactions/0-fc5e95bb-0f3b-43b2-978e-3a1349556da9.txn new file mode 100644 index 00000000000000..2d5b571e0b3cdd Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_transactions/0-fc5e95bb-0f3b-43b2-978e-3a1349556da9.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_transactions/1-72414c1c-f612-457a-8174-d18e2a48e242.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_transactions/1-72414c1c-f612-457a-8174-d18e2a48e242.txn new file mode 100644 index 00000000000000..29d032b3a78675 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_transactions/1-72414c1c-f612-457a-8174-d18e2a48e242.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_transactions/2-60e2d085-93f8-4bfc-916e-70a146adf6b1.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_transactions/2-60e2d085-93f8-4bfc-916e-70a146adf6b1.txn new file mode 100644 index 00000000000000..83b80b6c7d5f46 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_transactions/2-60e2d085-93f8-4bfc-916e-70a146adf6b1.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_versions/18446744073709551612.manifest new file mode 100644 index 00000000000000..c35431130f7576 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_versions/18446744073709551612.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_versions/18446744073709551613.manifest new file mode 100644 index 00000000000000..5dd493ebcc626e Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_versions/18446744073709551613.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_versions/18446744073709551614.manifest new file mode 100644 index 00000000000000..c82bc3e4a2e6f0 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_versions/18446744073709551614.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_versions/latest_version_hint.json b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_versions/latest_version_hint.json new file mode 100644 index 00000000000000..f93d3984472d99 --- /dev/null +++ b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/_versions/latest_version_hint.json @@ -0,0 +1 @@ +{"version":3} \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/data/0111011000111100000111115da69b42a59d2e335789a28fc3.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/data/0111011000111100000111115da69b42a59d2e335789a28fc3.lance new file mode 100644 index 00000000000000..b8eb2dddbfffd9 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/data/0111011000111100000111115da69b42a59d2e335789a28fc3.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/data/110101010101110110011111126be04747966aee1433e0e8c1.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/data/110101010101110110011111126be04747966aee1433e0e8c1.lance new file mode 100644 index 00000000000000..a0cd3e97dcd743 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f5d407b4_doris$vs_ivf_sq_f32/data/110101010101110110011111126be04747966aee1433e0e8c1.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_indices/1cb41655-77ad-47f2-8d17-5c545239011d/auxiliary.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_indices/1cb41655-77ad-47f2-8d17-5c545239011d/auxiliary.idx new file mode 100644 index 00000000000000..6a5cbcda2eb0c6 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_indices/1cb41655-77ad-47f2-8d17-5c545239011d/auxiliary.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_indices/1cb41655-77ad-47f2-8d17-5c545239011d/index.idx b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_indices/1cb41655-77ad-47f2-8d17-5c545239011d/index.idx new file mode 100644 index 00000000000000..765613d33f1053 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_indices/1cb41655-77ad-47f2-8d17-5c545239011d/index.idx differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_transactions/0-40d6f377-7cb3-419f-a394-b85b74c1958f.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_transactions/0-40d6f377-7cb3-419f-a394-b85b74c1958f.txn new file mode 100644 index 00000000000000..fcb316915918e6 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_transactions/0-40d6f377-7cb3-419f-a394-b85b74c1958f.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_transactions/1-a6ad68ed-4c61-4010-a242-6f47b572fd58.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_transactions/1-a6ad68ed-4c61-4010-a242-6f47b572fd58.txn new file mode 100644 index 00000000000000..9673b3d8388d6a Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_transactions/1-a6ad68ed-4c61-4010-a242-6f47b572fd58.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_transactions/2-bdb48ee2-08d0-4b19-a3f9-860e6ffea925.txn b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_transactions/2-bdb48ee2-08d0-4b19-a3f9-860e6ffea925.txn new file mode 100644 index 00000000000000..d571220a4a3c85 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_transactions/2-bdb48ee2-08d0-4b19-a3f9-860e6ffea925.txn differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_versions/18446744073709551612.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_versions/18446744073709551612.manifest new file mode 100644 index 00000000000000..275ba21c340198 Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_versions/18446744073709551612.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_versions/18446744073709551613.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_versions/18446744073709551613.manifest new file mode 100644 index 00000000000000..1d02d967d405ad Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_versions/18446744073709551613.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_versions/18446744073709551614.manifest b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_versions/18446744073709551614.manifest new file mode 100644 index 00000000000000..ce068e06eb0eef Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_versions/18446744073709551614.manifest differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_versions/latest_version_hint.json b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_versions/latest_version_hint.json new file mode 100644 index 00000000000000..f93d3984472d99 --- /dev/null +++ b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/_versions/latest_version_hint.json @@ -0,0 +1 @@ +{"version":3} \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/data/1010010001100111010010003d80694ecaa1b729ed8f382a39.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/data/1010010001100111010010003d80694ecaa1b729ed8f382a39.lance new file mode 100644 index 00000000000000..71a478e2c677fe Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/data/1010010001100111010010003d80694ecaa1b729ed8f382a39.lance differ diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/data/111010101111010111001000a864584ca7b33344da587508dc.lance b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/data/111010101111010111001000a864584ca7b33344da587508dc.lance new file mode 100644 index 00000000000000..5e2ebbfaedadde Binary files /dev/null and b/docker/thirdparties/docker-compose/iceberg/scripts/preinstalled_data/lance/f7cc802a_doris$vs_ivf_flat_f16_cosine/data/111010101111010111001000a864584ca7b33344da587508dc.lance differ diff --git a/regression-test/data/external_table_p0/lance/test_lance_vector_search.out b/regression-test/data/external_table_p0/lance/test_lance_vector_search.out index 82e79fa915a54f..4106473203fae5 100644 --- a/regression-test/data/external_table_p0/lance/test_lance_vector_search.out +++ b/regression-test/data/external_table_p0/lance/test_lance_vector_search.out @@ -44,23 +44,24 @@ row_id bigint No false \N 514 odd 4210704.0 -- !boundary_single_probe -- -256 item-0256 0.0 -255 item-0255 16.0 -257 item-0257 16.0 -258 item-0258 64.0 -259 item-0259 144.0 -260 item-0260 256.0 -261 item-0261 400.0 -262 item-0262 576.0 -263 item-0263 784.0 +257 item-0257 0.0 +256 item-0256 16.0 +258 item-0258 16.0 +255 item-0255 64.0 +259 item-0259 64.0 +260 item-0260 144.0 +261 item-0261 256.0 +262 item-0262 400.0 +263 item-0263 576.0 -- !boundary_flat -- -256 item-0256 0.0 -255 item-0255 16.0 -257 item-0257 16.0 -254 item-0254 64.0 -258 item-0258 64.0 -253 item-0253 144.0 -259 item-0259 144.0 -252 item-0252 256.0 -260 item-0260 256.0 +257 item-0257 0.0 +256 item-0256 16.0 +258 item-0258 16.0 +255 item-0255 64.0 +259 item-0259 64.0 +254 item-0254 144.0 +260 item-0260 144.0 +253 item-0253 256.0 +261 item-0261 256.0 + diff --git a/regression-test/data/external_table_p0/lance/test_lance_vector_search_index_types.out b/regression-test/data/external_table_p0/lance/test_lance_vector_search_index_types.out index 506a1a5b7cfb98..878891ea48bec0 100644 --- a/regression-test/data/external_table_p0/lance/test_lance_vector_search_index_types.out +++ b/regression-test/data/external_table_p0/lance/test_lance_vector_search_index_types.out @@ -52,16 +52,16 @@ row_id bigint No false \N 5 item-0005 256.0 -- !ivf_hnsw_sq_ef_5 -- -512 item-0512 0.0 -511 item-0511 66.278755 -513 item-0513 66.278755 -510 item-0510 115.98782 -509 item-0509 182.26657 +518 item-0518 0.0 +517 item-0517 66.278755 +516 item-0516 132.55751 +515 item-0515 198.83627 +514 item-0514 248.54533 -- !ivf_hnsw_sq_ef_50 -- -512 item-0512 0.0 -511 item-0511 66.278755 -513 item-0513 66.278755 -510 item-0510 115.98782 -514 item-0514 132.55751 +518 item-0518 0.0 +519 item-0519 49.70907 +517 item-0517 66.278755 +520 item-0520 115.98782 +516 item-0516 132.55751 diff --git a/regression-test/data/external_table_p0/lance/test_lance_vector_search_indexed_element_types.out b/regression-test/data/external_table_p0/lance/test_lance_vector_search_indexed_element_types.out new file mode 100644 index 00000000000000..c402b757292053 --- /dev/null +++ b/regression-test/data/external_table_p0/lance/test_lance_vector_search_indexed_element_types.out @@ -0,0 +1,61 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !f64_desc -- +category text No false \N +embedding array No false \N +label text No false \N +row_id bigint No false \N + +-- !f16_desc -- +category text No false \N +embedding array No false \N +label text No false \N +row_id bigint No false \N + +-- !u8_desc -- +category text No false \N +embedding array No false \N +label text No false \N +row_id bigint No false \N + +-- !f64_l2 -- +1 item-0001 0.0 +2 item-0002 16.0 +3 item-0003 64.0 +4 item-0004 144.0 +5 item-0005 256.0 + +-- !f16_cosine -- +1 item-0001 +658 item-0658 +162 item-0162 +472 item-0472 +619 item-0619 + +-- !u8_hamming -- +1 item-0001 0.0 +2 item-0002 1.0 +3 item-0003 2.0 +4 item-0004 3.0 +5 item-0005 4.0 + +-- !f64_l2_flat -- +1 item-0001 0.0 +2 item-0002 16.0 +3 item-0003 64.0 +4 item-0004 144.0 +5 item-0005 256.0 + +-- !f16_cosine_flat -- +1 item-0001 +658 item-0658 +162 item-0162 +472 item-0472 +619 item-0619 + +-- !u8_hamming_flat -- +1 item-0001 0.0 +2 item-0002 1.0 +3 item-0003 2.0 +4 item-0004 3.0 +5 item-0005 4.0 + diff --git a/regression-test/data/external_table_p0/lance/test_lance_vector_search_ivf_flat.out b/regression-test/data/external_table_p0/lance/test_lance_vector_search_ivf_flat.out index 4d6586798ce554..6753034412404c 100644 --- a/regression-test/data/external_table_p0/lance/test_lance_vector_search_ivf_flat.out +++ b/regression-test/data/external_table_p0/lance/test_lance_vector_search_ivf_flat.out @@ -28,24 +28,24 @@ row_id bigint No false \N 1022 item-1022 64.0 -- !boundary_single_probe -- -256 item-0256 0.0 -255 item-0255 16.0 -257 item-0257 16.0 -254 item-0254 64.0 -258 item-0258 64.0 -253 item-0253 144.0 -259 item-0259 144.0 -252 item-0252 256.0 -251 item-0251 400.0 +257 item-0257 0.0 +258 item-0258 16.0 +259 item-0259 64.0 +260 item-0260 144.0 +261 item-0261 256.0 +262 item-0262 400.0 +263 item-0263 576.0 +264 item-0264 784.0 +265 item-0265 1024.0 -- !boundary_flat -- -256 item-0256 0.0 -255 item-0255 16.0 -257 item-0257 16.0 -254 item-0254 64.0 -258 item-0258 64.0 -253 item-0253 144.0 -259 item-0259 144.0 -252 item-0252 256.0 -260 item-0260 256.0 +257 item-0257 0.0 +256 item-0256 16.0 +258 item-0258 16.0 +255 item-0255 64.0 +259 item-0259 64.0 +254 item-0254 144.0 +260 item-0260 144.0 +253 item-0253 256.0 +261 item-0261 256.0 diff --git a/regression-test/data/external_table_p0/lance/test_lance_vector_search_metrics.out b/regression-test/data/external_table_p0/lance/test_lance_vector_search_metrics.out new file mode 100644 index 00000000000000..a155038bb0a93a --- /dev/null +++ b/regression-test/data/external_table_p0/lance/test_lance_vector_search_metrics.out @@ -0,0 +1,54 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !ivf_flat_cosine_desc -- +category text No false \N +embedding array No false \N +label text No false \N +row_id bigint No false \N + +-- !ivf_pq_cosine_desc -- +category text No false \N +embedding array No false \N +label text No false \N +row_id bigint No false \N + +-- !ivf_pq_dot_desc -- +category text No false \N +embedding array No false \N +label text No false \N +row_id bigint No false \N + +-- !ivf_flat_cosine -- +1 item-0001 0.0 +658 item-0658 0.21663702 +162 item-0162 0.29884052 +472 item-0472 0.3474409 +619 item-0619 0.3797137 + +-- !ivf_pq_cosine -- +1 item-0001 0.0 +658 item-0658 0.21663702 +162 item-0162 0.29884052 +472 item-0472 0.3474409 +619 item-0619 0.37971377 + +-- !ivf_pq_dot -- +1 item-0001 -8.262586 +819 item-0819 -5.1706505 +229 item-0229 -5.1260695 +800 item-0800 -4.9694424 +452 item-0452 -4.5769033 + +-- !flat_cosine -- +1 item-0001 0.0 +658 item-0658 0.21663702 +162 item-0162 0.29884052 +472 item-0472 0.3474409 +619 item-0619 0.37971377 + +-- !flat_dot -- +1 item-0001 -8.262586 +408 item-0408 -5.387761 +819 item-0819 -5.1706505 +229 item-0229 -5.1260695 +800 item-0800 -4.9694424 + diff --git a/regression-test/data/external_table_p0/lance/test_lance_vector_search_two_phase.out b/regression-test/data/external_table_p0/lance/test_lance_vector_search_two_phase.out index 3dad490a0a4269..9a804454ee9223 100644 --- a/regression-test/data/external_table_p0/lance/test_lance_vector_search_two_phase.out +++ b/regression-test/data/external_table_p0/lance/test_lance_vector_search_two_phase.out @@ -24,3 +24,4 @@ -- !postfilter_use_index_false -- 2 odd item-0002 16.0 514 odd item-0514 4210704.0 + diff --git a/regression-test/suites/external_table_p0/lance/test_lance_vector_search.groovy b/regression-test/suites/external_table_p0/lance/test_lance_vector_search.groovy index 7312a70bf2972e..34aef14bda86e7 100644 --- a/regression-test/suites/external_table_p0/lance/test_lance_vector_search.groovy +++ b/regression-test/suites/external_table_p0/lance/test_lance_vector_search.groovy @@ -90,10 +90,10 @@ suite("test_lance_vector_search", "p0,external") { // deterministic ladder 0, 16, 64, 144, ... with no ties. String headQuery = "[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]" String tailQuery = "[1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038]" - // boundaryQuery is row 256's vector. On this frozen index row 256 lies next to an IVF + // boundaryQuery is row 257's vector. On this frozen index row 257 lies next to an IVF // partition edge, so part of its true neighbourhood sits in an adjacent partition // (pinned by the generator self-check); see the discriminator block below. - String boundaryQuery = "[255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270]" + String boundaryQuery = "[256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271]" String indexedTopFive = """vector_search("table"="${tableName}", "column"="embedding", "query_vector"="${headQuery}", "top_k"="5", "metric"="l2", "nprobes"="4", "refine_factor"="10", "use_index"="true")""" String flatTopFive = """vector_search("table"="${tableName}", "column"="embedding", "query_vector"="${headQuery}", "top_k"="5", "metric"="l2", "use_index"="false")""" String indexedTopTwo = """vector_search("table"="${tableName}", "column"="embedding", "query_vector"="${headQuery}", "top_k"="2", "metric"="l2", "nprobes"="4", "refine_factor"="10", "use_index"="true")""" @@ -216,7 +216,7 @@ suite("test_lance_vector_search", "p0,external") { ORDER BY _distance, row_id """ - // Silent-fallback discriminator. Row 256's true nearest neighbours straddle an IVF + // Silent-fallback discriminator. Row 257's true nearest neighbours straddle an IVF // partition edge, so a genuine single-partition probe must miss the ones on the far // side and differ from flat search even after exact reranking. A pipeline that ignores use_index/nprobes and silently scans // flat fails this assertion: on an unindexed table Lance ignores nprobes and diff --git a/regression-test/suites/external_table_p0/lance/test_lance_vector_search_index_matrix.groovy b/regression-test/suites/external_table_p0/lance/test_lance_vector_search_index_matrix.groovy new file mode 100644 index 00000000000000..6f66fe37d1241a --- /dev/null +++ b/regression-test/suites/external_table_p0/lance/test_lance_vector_search_index_matrix.groovy @@ -0,0 +1,241 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +suite("test_lance_vector_search_index_matrix", "p0,external") { + /* + * Plan-level coverage for every element type x metric x algorithm cell that the other + * Lance vector suites do not carry. + * + * The sibling suites are the depth tier: one table per representative cell, each with + * goldens, a closed-form distance ladder where the data shape allows one, and a + * discriminator proving the search parameter reached the index. That is what shows a cell + * returns the *right* rows, and it costs roughly 190KB of committed binary per cell. + * + * This suite is the breadth tier. doris.vs_index_matrix is a single 64-row table with one + * vector column per remaining cell, each carrying exactly one index. One column per cell, + * never several indexes on one column, because only the first index built on a column is + * reachable: Lance answers the other one with a silent brute-force scan, and Doris gets + * there differently but ends up the same, since LanceScanNode.selectIndexSegments keeps + * only the segments of the first index it finds for the column's field id and + * metricMatches then rejects the query whose metric that index does not carry. + * + * What this proves: Doris plans an indexed split for the cell, and a refined indexed + * search returns exactly the rows an exhaustive scan returns. That is the same equality + * the IVF_FLAT suites assert, reached here by reranking with refine_factor so a + * quantizing or graph index can be held to it as well. + * + * What it does not prove, and the documentation must not claim: that the distances are + * right in absolute terms. Both sides of the comparison are computed by the same backend, + * so a distance kernel that is wrong in both directions passes here. The suites listed + * above are what pin absolute values, against a closed-form ladder and goldens. + * + * There are no goldens on purpose. Every assertion below is a property, so this suite + * costs nothing to regenerate when the fixture is rebuilt, and the cells it covers can + * grow without a golden churn. + * + * See lance_build_preinstalled_catalog.py (BREADTH_TABLE and check_breadth_table) for how + * the table is generated and what the generator verifies before committing it. + */ + String enabled = context.config.otherConfigs.get("enableIcebergTest") + if (enabled == null || !enabled.equalsIgnoreCase("true")) { + logger.info("disable Lance index matrix test because the Iceberg MinIO environment is disabled.") + return + } + + String externalEnvIp = context.config.otherConfigs.get("externalEnvIp") + String minioPort = context.config.otherConfigs.get("iceberg_minio_port") + String catalogName = "test_lance_vector_search_index_matrix" + String tableName = "${catalogName}.doris.vs_index_matrix" + int topK = 5 + + sql """DROP CATALOG IF EXISTS `${catalogName}`""" + sql """ + CREATE CATALOG `${catalogName}` PROPERTIES ( + "type" = "lance", + "lance.catalog.type" = "filesystem", + "warehouse" = "s3://warehouse/lance", + "s3.endpoint" = "http://${externalEnvIp}:${minioPort}", + "s3.access_key" = "admin", + "s3.secret_key" = "password", + "s3.region" = "us-east-1", + "use_path_style" = "true" + ) + """ + sql """SET enable_file_scanner_v2 = true""" + + // The cells under test are read from the table's own schema rather than listed here. A + // hardcoded list of 44 would be a second copy of the fixture's matrix, free to drift away + // from it the moment a cell is added or removed; deriving them means a cell that leaves + // the fixture leaves this suite with it, and one that arrives is picked up automatically. + // The generator names each column emb______, with a double + // underscore between the parts because an algorithm name contains single ones. + def describe = sql """DESC `${catalogName}`.`doris`.`vs_index_matrix`""" + def cells = [] + for (row : describe) { + String column = row[0] + if (!column.startsWith("emb__")) { + continue + } + def parts = column.split("__") + assertEquals(4, parts.length, + "${column}: expected emb______, so exactly four " + + "double-underscore parts, got ${parts.length}") + cells.add([column: column, elementType: parts[1], metric: parts[2], + algorithm: parts[3]]) + } + // A schema that silently lost vector columns would make every loop below a no-op and the + // suite would pass having tested nothing. Pinned exactly rather than as a lower bound: the + // count only changes when buildable_combos() does, which happens when the embedded Lance + // widens or narrows what it accepts - and that is a thing to notice, not to tolerate. + assertEquals(44, cells.size(), + "expected the breadth matrix to carry 44 indexed cells, found " + cells.size() + + ". Either the fixture was not rebuilt after buildable_combos() moved, or it is " + + "not the fixture this suite was written for.") + + // The total alone would not notice one cell being swapped for another, so pin the shape of + // the matrix too: how many cells each element type, metric and algorithm contributes. That + // is three short maps rather than a 44-entry list, so it still does not duplicate the + // fixture, but a cell replaced by a different one moves two of these counts. + def tally = { String axis -> cells.groupBy { it[axis] }.collectEntries { k, v -> [k, v.size()] } } + assertEquals([f32: 9, f64: 17, f16: 17, u8: 1], tally("elementType"), + "breadth matrix element-type shape changed: " + tally("elementType")) + assertEquals([l2: 11, cosine: 15, dot: 17, hamming: 1], tally("metric"), + "breadth matrix metric shape changed: " + tally("metric")) + assertEquals([ivf_flat: 5, ivf_sq: 8, ivf_pq: 6, + ivf_hnsw_flat: 9, ivf_hnsw_sq: 8, ivf_hnsw_pq: 8], tally("algorithm"), + "breadth matrix algorithm shape changed: " + tally("algorithm")) + logger.info("Lance index matrix: ${cells.size()} cells under test") + + // Query vectors are read back out of the table rather than written here. Each element + // type has its own shape and width - the generator sizes the uint8 thermometer to this + // table's row count, so hardcoding it would silently desync the moment the table grows - + // and none of the assertions below need the query to be any particular vector, only to be + // one the table actually stores. + def vectorCache = [:] + def queryVectorOf = { Map cell, int row -> + String key = "${cell.column}#${row}" + if (vectorCache.containsKey(key)) { + return vectorCache[key] + } + def rows = sql """SELECT `${cell.column}` FROM ${tableName} WHERE row_id = ${row}""" + assertEquals(1, rows.size(), + "${cell.column}: expected exactly one row with row_id ${row}") + String literal = rows[0][0].toString().replaceAll("\\s+", "") + assertTrue(literal.startsWith("[") && literal.endsWith("]"), + "${cell.column}: row ${row} did not come back as a vector literal: ${literal}") + vectorCache[key] = literal + return literal + } + + def search = { Map cell, String query, String nprobes = "4", String extraArgs = '' -> + String ef = cell.algorithm.contains("hnsw") ? ', "ef"="50"' : '' + """vector_search("table"="${tableName}", "column"="${cell.column}", """ + + """"query_vector"="${query}", "top_k"="${topK}", "metric"="${cell.metric}", """ + + """"nprobes"="${nprobes}", "use_index"="true"${ef}${extraArgs})""" + } + def flatSearch = { Map cell, String query -> + """vector_search("table"="${tableName}", "column"="${cell.column}", """ + + """"query_vector"="${query}", "top_k"="${topK}", """ + + """"metric"="${cell.metric}", "use_index"="false")""" + } + + // Every cell must reach an indexed plan. lanceSearchIndexSegments is the FE's own report + // of how many physical index segments it planned, so a non-zero count is what separates + // "the metric was accepted and the index was chosen" from "the query silently ran a flat + // scan and returned plausible rows anyway". + // lanceSearchUnindexedFragments=0 is the one thing only this check covers: an index that + // reached only one of the two fragments would still return correct rows, because the + // fragment Doris scans without an index contributes correct rows too, and it would still + // respond to nprobes through the fragment that is indexed. Both checks below would pass + // while half the column was being scanned unindexed. + for (Map cell : cells) { + explain { + sql("""SELECT row_id, _distance + FROM ${search(cell, queryVectorOf(cell, 1))} + ORDER BY _distance, row_id""") + contains "externalSearchType=VECTOR" + contains "lanceMetric=${cell.metric}" + contains "lanceSearchFragments=2" + contains "lanceSearchUnindexedFragments=0" + contains "lanceSearchIndexSegments=1" + } + } + + // Execution-level proof that the index is what answered, which the plan above cannot give + // and the result check below cannot either. A flat scan has no partitions, so nprobes + // means nothing to it and cannot change its answer: observing a difference proves the + // parameter reached partition-based code. The converse does not hold - the true top-k can + // simply all live in the one probed partition - so try several query rows, one per + // partition-sized stretch of the table, and take the first that discriminates. + List probeRows = [1, 17, 33, 49] + for (Map cell : cells) { + boolean discriminated = false + for (int row : probeRows) { + String query = queryVectorOf(cell, row) + def narrow = sql """SELECT row_id FROM ${search(cell, query, "1")} + ORDER BY _distance, row_id""" + def wide = sql """SELECT row_id FROM ${search(cell, query, "4")} + ORDER BY _distance, row_id""" + if (narrow.collect { it[0] } != wide.collect { it[0] }) { + discriminated = true + break + } + } + assertTrue(discriminated, + "${cell.column}: nprobes=1 returns what nprobes=4 returns at every row in " + + probeRows + ", so nothing here proves the search reached the index rather " + + "than falling back to a scan. Check the data shape first: a column whose " + + "dimensions are largely constant gives kmeans nothing to separate, and then " + + "no nprobes can restrict anything.") + } + + // Planning the split is not the same as answering it correctly. Every cell must return + // exactly the rows an exhaustive scan returns - the same equality the IVF_FLAT suites + // assert, reached here by reranking with refine_factor so that a quantizing or graph + // index is held to it too. Without refinement about 18 of these cells legitimately + // differ, which is a property of the algorithm rather than a defect. + // + // refine_factor is 10 here, the widest the generator tries, because that is the value + // whose margin survives a retrain. The generator measures how narrow each cell could + // actually go and records it; pinning that tightest value here would pin a zero margin, + // and it already broke once - 5 held on one set of indexes and failed on the next. + // + // No goldens: this is a property, so it survives a fixture rebuild untouched, which is + // what makes covering this many cells affordable at all. What it does not establish is + // that the distances are right in absolute terms - both sides are computed by the same + // backend. The suites listed at the top of this file are what pin absolute values, + // against a closed-form ladder and committed goldens. + for (Map cell : cells) { + String query = queryVectorOf(cell, 1) + def indexed = sql """ + SELECT row_id, _distance + FROM ${search(cell, query, "4", ', "refine_factor"="10"')} + ORDER BY _distance, row_id + """ + def flat = sql """ + SELECT row_id, _distance + FROM ${flatSearch(cell, query)} + ORDER BY _distance, row_id + """ + assertEquals(topK, indexed.size(), + "${cell.column}: indexed search returned ${indexed.size()} rows, expected " + + topK + ". The index segment was planned but did not answer it.") + assertEquals(flat.collect { it[0] }, indexed.collect { it[0] }, + "${cell.column}: a refined indexed search disagrees with an exhaustive scan. " + + "indexed=" + indexed + " flat=" + flat) + } +} diff --git a/regression-test/suites/external_table_p0/lance/test_lance_vector_search_index_types.groovy b/regression-test/suites/external_table_p0/lance/test_lance_vector_search_index_types.groovy index 52f1f2c7dcc6e1..105e75a7791404 100644 --- a/regression-test/suites/external_table_p0/lance/test_lance_vector_search_index_types.groovy +++ b/regression-test/suites/external_table_p0/lance/test_lance_vector_search_index_types.groovy @@ -47,12 +47,16 @@ suite("test_lance_vector_search_index_types", "p0,external") { String minioPort = context.config.otherConfigs.get("iceberg_minio_port") String catalogName = "test_lance_vector_search_index_types" String headQuery = "[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]" - // Row 256's vector, next to an IVF partition edge on every one of these frozen indexes. - String boundaryQuery = "[255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270]" - // Row 512's vector, in the middle of the data, where the graph traversal has room to + // Row 257's vector, next to an IVF partition edge on every one of these frozen indexes. + // 257 rather than 256 because it discriminates by a wider margin on all seven collinear + // tables; it is pinned as the collinear profile's boundary_row in the generator. + String boundaryQuery = "[256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271]" + // Row 518's vector, in the middle of the data, where the graph traversal has room to // settle for a worse neighbour when its candidate width is narrow. The generator pins - // this row for the ef discriminator below. - String midQuery = "[511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526]" + // this row for the ef discriminator below; which rows react to ef is decided by the + // graph draw, so it moves whenever the fixture is rebuilt and the generator reports the + // rows that still work when it does. + String midQuery = "[517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532]" // ef is what a graph index cannot be searched without; refine_factor is what makes a // lossy index comparable to an exact distance. Both stay out of the discriminators. @@ -91,7 +95,7 @@ suite("test_lance_vector_search_index_types", "p0,external") { order_qt_ivf_hnsw_pq_desc """DESC `${catalogName}`.`doris`.`vs_ivf_hnsw_pq_f32`""" // Silent-fallback discriminator, per table because each table trains its own IVF - // clustering. Row 256's true neighbours straddle a partition edge, so a genuine + // clustering. Row 257's true neighbours straddle a partition edge, so a genuine // single-partition probe must miss the ones on the far side; a pipeline that ignored // use_index/nprobes would return exactly the flat rows and fail here. top_k is 9 so the // cut lands on a complete symmetric tie pair, and the comparison is on distances, not diff --git a/regression-test/suites/external_table_p0/lance/test_lance_vector_search_indexed_element_types.groovy b/regression-test/suites/external_table_p0/lance/test_lance_vector_search_indexed_element_types.groovy new file mode 100644 index 00000000000000..78f47ceae9a899 --- /dev/null +++ b/regression-test/suites/external_table_p0/lance/test_lance_vector_search_indexed_element_types.groovy @@ -0,0 +1,295 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +suite("test_lance_vector_search_indexed_element_types", "p0,external") { + /* + * vector_search() through a physical index over non-Float32 vector element types. + * + * test_lance_vector_search_element_types already covers how the FE encodes a query + * vector of each element type, but it does so with flat search on purpose and stays + * away from indexes. This suite is the other half: the same element types read through + * an ANN index, which is a different BE path - the index stores its own copy of the + * vectors, and the query has to survive encoding, the index format and the distance + * kernel for that type rather than only the first of the three. + * + * vs_ivf_flat_f64 Float64 + l2 collinear data, exact ladder + * vs_ivf_flat_f16_cosine Float16 + cosine directional data + * vs_ivf_flat_u8 UInt8 + hamming thermometer data, 128 dimensions + * + * Every table is IVF_FLAT because that is the one algorithm whose full-partition probe + * must reproduce the flat search exactly, so each table can carry that assertion rather + * than only recording what it returned. For UInt8 it is a choice, not a constraint: + * measured on the embedded Lance, the PQ and SQ builders reject UInt8, which leaves + * IVF_FLAT and IVF_HNSW_FLAT - the graph variant is covered at plan level by + * test_lance_vector_search_index_matrix. + * + * The element types choose their metric rather than the other way round. Float16 uses + * cosine because a Float16 L2 index over the collinear ladder does not finish training - + * that ladder's squared distances reach 16 * 1023^2, past Float16's 65504 ceiling - and + * not because Float16 and L2 are incompatible; the same pairing builds fine on bounded + * data. UInt8 uses hamming because Lance treats UInt8 vectors as binary vectors + * and rejects every other distance for them. Int8 is absent for the reason recorded at + * the end of test_lance_vector_search_element_types. + * + * Data shapes differ per table and each is documented where its queries are built. See + * lance_build_preinstalled_catalog.py for how they are generated and verified. + */ + String enabled = context.config.otherConfigs.get("enableIcebergTest") + if (enabled == null || !enabled.equalsIgnoreCase("true")) { + logger.info("disable Lance indexed element type test because the Iceberg MinIO environment is disabled.") + return + } + + String externalEnvIp = context.config.otherConfigs.get("externalEnvIp") + String minioPort = context.config.otherConfigs.get("iceberg_minio_port") + String catalogName = "test_lance_vector_search_indexed_element_types" + + // Float64 keeps the collinear shape of the L2 suites: embedding[j] = (row_id - 1) + j, + // so a query equal to row r's vector puts row n at exact squared L2 distance + // 16 * (n - r)^2 - the same 0, 16, 64, 144, 256 ladder, now in double precision. + String f64Head = "[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]" + String f64Boundary = "[256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271]" + + // Float16 uses the directional data, whose rows sit on quasi-uniform directions with + // varying norms. No closed-form ladder, and the values below are the generator's + // rounded ones, which is what makes a Float16 round-trip of them meaningful. + String f16Head = "[0.5212,-1.0089,1.0115,-0.8052,0.9277,-0.6251,0.7094,0.7868,-0.9736,0.6707,-0.4194,0.5045,0.5806,-0.3585,-0.7997,0.9973]" + String f16Boundary = "[0.1835,0.4286,0.3099,0.7048,0.2626,0.1009,-0.072,-0.5285,-0.7581,-0.4567,0.6234,0.704,0.7249,-0.7313,0.2246,-0.7363]" + + // UInt8 uses a thermometer code: row r sets its first r bits, so Lance's hamming - which + // counts differing BITS, not bytes - works out to exactly |a - b| between rows a and b. + // That reproduces the symmetric ladder the collinear data gives under L2, which is why + // top_k below is 9: it is the last cut that ends on a complete tie pair. One bit per row + // means 1024 bits, hence 128 dimensions - the one table here whose width differs. + def thermometer = { int row -> + "[" + (0..<128).collect { j -> (1 << Math.max(0, Math.min(8, (row - 1) - j * 8))) - 1 }.join(",") + "]" + } + String u8Head = thermometer(1) + // Row 505 rather than 256: the generator measured this index's partition edges at rows + // 248-255, 502-509 and 760-767, and pins 505 - the middle of the run nearest the 512 + // split. A single-partition probe there misses part of row 505's true neighbourhood + // while a flat scan returns all of it, which is exactly what the discriminator below is + // looking for. The row moves whenever the fixture is rebuilt, because which side of a + // partition edge discriminates is decided by kmeans; it is pinned on the binary profile + // in lance_build_preinstalled_catalog.py and must be changed here at the same time. + String u8Boundary = thermometer(505) + + // One complete record per table rather than several maps keyed by the same table names: + // with parallel maps, a table added to one and forgotten in another interpolates a null + // into the SQL below and fails as an opaque vector-parse error instead of as the missing + // coverage it actually is. Every loop in this suite iterates this one map, so a table is + // either fully described or not tested at all - and the guard below says which. + // + // compareByDistance picks the column the nprobes=1 discriminator may compare. The + // collinear and thermometer profiles are symmetric - rows r-d and r+d tie - so only their + // distance sequence is stable enough to compare. The directional profile was verified + // tie-free, and there it is the other way round: the rows are exact while the distances + // carry float noise between the indexed and flat paths. This restates + // DataProfile.symmetric_ties in lance_build_preinstalled_catalog.py, which derives it from + // whether the profile has a closed-form ladder; if a profile's ladder changes there, this + // flag has to change with it. + Map> tables = [ + "vs_ivf_flat_f64" : [metric: "l2", head: f64Head, + boundary: f64Boundary, compareByDistance: true], + "vs_ivf_flat_f16_cosine": [metric: "cosine", head: f16Head, + boundary: f16Boundary, compareByDistance: false], + "vs_ivf_flat_u8" : [metric: "hamming", head: u8Head, + boundary: u8Boundary, compareByDistance: true], + ] + tables.each { String table, Map spec -> + for (String field : ["metric", "head", "boundary", "compareByDistance"]) { + assertNotNull(spec[field], + "${table}: incomplete test record, ${field} is missing. Every table in " + + "this suite must carry all four, or the queries below silently " + + "interpolate a null.") + } + } + + def search = { String table, String query, String topK, String nprobes, String metric -> + """vector_search("table"="${catalogName}.doris.${table}", "column"="embedding", "query_vector"="${query}", "top_k"="${topK}", "metric"="${metric}", "nprobes"="${nprobes}", "use_index"="true")""" + } + def flatSearch = { String table, String query, String topK, String metric -> + """vector_search("table"="${catalogName}.doris.${table}", "column"="embedding", "query_vector"="${query}", "top_k"="${topK}", "metric"="${metric}", "use_index"="false")""" + } + + sql """DROP CATALOG IF EXISTS `${catalogName}`""" + sql """ + CREATE CATALOG `${catalogName}` PROPERTIES ( + "type" = "lance", + "lance.catalog.type" = "filesystem", + "warehouse" = "s3://warehouse/lance", + "s3.endpoint" = "http://${externalEnvIp}:${minioPort}", + "s3.access_key" = "admin", + "s3.secret_key" = "password", + "s3.region" = "us-east-1", + "use_path_style" = "true" + ) + """ + sql """SET enable_file_scanner_v2 = true""" + + // The vector column's element type and width are part of what this suite is about, so + // record the mapping Doris reports for each of them. + order_qt_f64_desc """DESC `${catalogName}`.`doris`.`vs_ivf_flat_f64`""" + order_qt_f16_desc """DESC `${catalogName}`.`doris`.`vs_ivf_flat_f16_cosine`""" + order_qt_u8_desc """DESC `${catalogName}`.`doris`.`vs_ivf_flat_u8`""" + + // Each element type must reach an indexed plan, not quietly fall back to a flat scan. + for (Map.Entry> entry : tables.entrySet()) { + String table = entry.getKey() + Map spec = entry.getValue() + String metric = spec.metric + explain { + sql("""SELECT row_id, _distance + FROM ${search(table, spec.head, "5", "4", metric)} + ORDER BY _distance, row_id""") + contains "externalSearchType=VECTOR" + contains "lanceMetric=${metric}" + contains "lanceSearchFragments=2" + contains "lanceSearchUnindexedFragments=0" + contains "lanceSearchIndexSegments=1" + } + } + + // Silent-fallback discriminator: a real single-partition probe must miss part of the + // boundary row's true neighbourhood, while a pipeline that ignored use_index or nprobes + // would return exactly the flat rows. + for (Map.Entry> entry : tables.entrySet()) { + String table = entry.getKey() + Map spec = entry.getValue() + String metric = spec.metric + def singleProbe = sql """ + SELECT row_id, _distance + FROM ${search(table, spec.boundary, "9", "1", metric)} + ORDER BY _distance, row_id + """ + def flat = sql """ + SELECT row_id, _distance + FROM ${flatSearch(table, spec.boundary, "9", metric)} + ORDER BY _distance, row_id + """ + assertEquals(9, singleProbe.size()) + assertEquals(9, flat.size()) + int column = spec.compareByDistance ? 1 : 0 + assertFalse(singleProbe.collect { it[column] }.equals(flat.collect { it[column] }), + "${table}: nprobes=1 produced the same result as the flat search, so the " + + "single-partition restriction had no effect and the index was not used. " + + "nprobes=1=" + singleProbe + " flat=" + flat) + } + + // IVF_FLAT keeps the original vectors, so probing every partition is an exhaustive scan + // by another name and must reproduce the flat search. Row ids only: for Float16 in + // particular the two paths agree on the ordering but not on the last bits of a distance. + for (Map.Entry> entry : tables.entrySet()) { + String table = entry.getKey() + Map spec = entry.getValue() + String metric = spec.metric + def fullProbe = sql """ + SELECT row_id + FROM ${search(table, spec.head, "10", "4", metric)} + ORDER BY _distance, row_id + """ + def flat = sql """ + SELECT row_id + FROM ${flatSearch(table, spec.head, "10", metric)} + ORDER BY _distance, row_id + """ + assertEquals(10, fullProbe.size()) + assertEquals(flat.collect { it[0] }, fullProbe.collect { it[0] }, + "${table}: probing every partition did not reproduce the flat search, which " + + "IVF_FLAT guarantees it must. indexed=" + fullProbe + " flat=" + flat) + } + + // Float64 keeps the exact ladder, so these distances are hand-checkable: 0, 16, 64, 144, + // 256 for rows 1 through 5. + qt_f64_l2 """ + SELECT row_id, label, _distance + FROM ${search("vs_ivf_flat_f64", f64Head, "5", "4", "l2")} + ORDER BY _distance, row_id + """ + // The magnitude the golden above cannot record. A Float16 column queried with the + // pre-rounding value does not return an exactly-zero self-distance, and that is worth + // pinning: a backend that started widening Float16 to Float32 before comparing, or one + // that lost the query vector's precision entirely, would move this off 1ulp. Asserted on + // the absolute value and with a tolerance, because only the magnitude is reproducible. + def f16Self = sql """ + SELECT _distance + FROM ${search("vs_ivf_flat_f16_cosine", f16Head, "1", "4", "cosine")} + """ + assertEquals(1, f16Self.size()) + double f16SelfDistance = Math.abs((f16Self[0][0] as Number).doubleValue()) + assertTrue(f16SelfDistance < 1e-5, + "Float16 cosine self-distance is ${f16Self[0][0]}, expected something within one " + + "float32 ulp of zero. A larger value means the query vector no longer reaches " + + "the distance kernel at the precision this test assumes.") + + // Float16 records rows only, no `_distance`. Cosine divides by the vector norms, and the + // query literal is the value before Float16 rounding while the column stores the value + // after, so the two are not bit-identical and the cosine of a row against itself comes out + // as 1 +/- 1ulp instead of exactly 1. The distance is then +/-2^-23, and which sign it + // takes depends on the accumulation order of the build running the query: arm64 produced + // +1.1920929E-7 here and x86_64 produced -1.1920929E-7 on CI, a relative difference of 2. + // The magnitude is meaningful and is asserted below with a tolerance; the sign is not, and + // a golden cannot record one without the other. Float64 and UInt8 keep their distances + // because those are exact integers on any platform. Float32 cosine is unaffected - there + // the query literal and the stored value are bit-identical, so its self-distance is a + // clean 0.0 (see test_lance_vector_search_metrics). + qt_f16_cosine """ + SELECT row_id, label + FROM ${search("vs_ivf_flat_f16_cosine", f16Head, "5", "4", "cosine")} + ORDER BY _distance, row_id + """ + // Hamming over the thermometer code: rows 1 through 5 are at distances 0, 1, 2, 3, 4. + qt_u8_hamming """ + SELECT row_id, label, _distance + FROM ${search("vs_ivf_flat_u8", u8Head, "5", "4", "hamming")} + ORDER BY _distance, row_id + """ + + // Flat baselines for the same three queries. The loop above already asserts that a full + // probe returns the same rows as a flat scan, but an assertion that two things are equal + // says nothing when both move together: a change to the Float64 L2, Float16 cosine or + // UInt8 hamming distance kernel in the BE shifts the indexed and flat paths identically, + // keeps that assertion green, and shows up only as a bare diff in the goldens above with + // no way to tell whether the index path or the kernel moved. Recording the flat answer + // separates the two: both goldens moving means the kernel changed, only the indexed one + // moving means the index path did. Float16 needs this most: it is the one table here + // whose distances have no closed form to anchor against, which is also why its two + // blocks record rows only. + qt_f64_l2_flat """ + SELECT row_id, label, _distance + FROM ${flatSearch("vs_ivf_flat_f64", f64Head, "5", "l2")} + ORDER BY _distance, row_id + """ + qt_f16_cosine_flat """ + SELECT row_id, label + FROM ${flatSearch("vs_ivf_flat_f16_cosine", f16Head, "5", "cosine")} + ORDER BY _distance, row_id + """ + qt_u8_hamming_flat """ + SELECT row_id, label, _distance + FROM ${flatSearch("vs_ivf_flat_u8", u8Head, "5", "hamming")} + ORDER BY _distance, row_id + """ + + // Asking an index for a distance its element type does not support is a query error and + // not a wrong answer. UInt8 is hamming-only in Lance, and the check happens on the + // scanner, so it surfaces the same way with an index as it does on a flat search. + test { + sql """SELECT row_id FROM ${search("vs_ivf_flat_u8", u8Head, "5", "4", "l2")}""" + exception "does not support UInt8" + } +} diff --git a/regression-test/suites/external_table_p0/lance/test_lance_vector_search_ivf_flat.groovy b/regression-test/suites/external_table_p0/lance/test_lance_vector_search_ivf_flat.groovy index 0c49edd4e47fc5..baac1e6e09ea4c 100644 --- a/regression-test/suites/external_table_p0/lance/test_lance_vector_search_ivf_flat.groovy +++ b/regression-test/suites/external_table_p0/lance/test_lance_vector_search_ivf_flat.groovy @@ -46,9 +46,9 @@ suite("test_lance_vector_search_ivf_flat", "p0,external") { // deterministic ladder 0, 16, 64, 144, ... with no ties. String headQuery = "[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]" String tailQuery = "[1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038]" - // boundaryQuery is row 256's vector; it sits next to an IVF partition edge on this + // boundaryQuery is row 257's vector; it sits next to an IVF partition edge on this // frozen index (pinned by the generator self-check). See the discriminator below. - String boundaryQuery = "[255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270]" + String boundaryQuery = "[256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271]" def indexedSearch = { String query, String topK -> """vector_search("table"="${tableName}", "column"="embedding", "query_vector"="${query}", "top_k"="${topK}", "metric"="l2", "nprobes"="4", "use_index"="true")""" @@ -119,7 +119,7 @@ suite("test_lance_vector_search_ivf_flat", "p0,external") { ORDER BY _distance, row_id """ - // Silent-fallback discriminator. Row 256's true nearest neighbours straddle an IVF + // Silent-fallback discriminator. Row 257's true nearest neighbours straddle an IVF // partition edge, so a genuine single-partition probe must miss the ones on the far side // and differ from the flat search. A pipeline that ignores use_index/nprobes and scans // flat fails this: on an unindexed table Lance ignores nprobes and returns exactly the diff --git a/regression-test/suites/external_table_p0/lance/test_lance_vector_search_metrics.groovy b/regression-test/suites/external_table_p0/lance/test_lance_vector_search_metrics.groovy new file mode 100644 index 00000000000000..b557bc910a452a --- /dev/null +++ b/regression-test/suites/external_table_p0/lance/test_lance_vector_search_metrics.groovy @@ -0,0 +1,241 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +suite("test_lance_vector_search_metrics", "p0,external") { + /* + * vector_search() against indexes built with cosine and dot. The other vector suites are + * all L2, and an L2 index cannot stand in for these: Doris plans an indexed split only + * when the requested metric equals the metric the index was built with + * (LanceScanNode.metricMatches), so the cosine and dot branches of that comparison have + * never run against a real index. That is what this suite covers - it is a Doris + * planning path, not only a Lance capability claim. + * + * Three tables, all 1024 rows in two fragments with 16-dim Float32 embeddings: + * + * vs_ivf_flat_f32_cosine IVF_FLAT, cosine - exact, so full probe must equal flat + * vs_ivf_pq_f32_cosine IVF_PQ, cosine - lossy, queried with refine_factor + * vs_ivf_pq_f32_dot IVF_PQ, dot - lossy, queried with refine_factor + * + * These tables do NOT hold the collinear embedding[j] = (row_id - 1) + j data the L2 + * suites use, because that shape is degenerate under both of these metrics: under dot + * every query returns the same highest-norm rows regardless of the query, and under + * cosine all row directions converge so the top distances collapse to 0.0 and the + * ranking becomes arbitrary tie-breaking. Instead each row sits on a quasi-uniform + * direction with an independently varying norm, which the fixture generator verifies is + * tie-free and ranks differently under l2, cosine and dot. So there is no closed-form + * distance ladder here; the goldens record what the frozen fixture produces, and the + * assertions below check properties rather than hand-derived numbers. + * + * See lance_build_preinstalled_catalog.py for how the data is generated and what the + * generator verifies about each index before it is committed. + */ + String enabled = context.config.otherConfigs.get("enableIcebergTest") + if (enabled == null || !enabled.equalsIgnoreCase("true")) { + logger.info("disable Lance vector metric test because the Iceberg MinIO environment is disabled.") + return + } + + String externalEnvIp = context.config.otherConfigs.get("externalEnvIp") + String minioPort = context.config.otherConfigs.get("iceberg_minio_port") + String catalogName = "test_lance_vector_search_metrics" + + // Row 1's stored vector, and row 256's. Both are the generator's rounded values, so a + // query equal to one of them puts that row at distance 0 under cosine. + String headQuery = "[0.5212,-1.0089,1.0115,-0.8052,0.9277,-0.6251,0.7094,0.7868,-0.9736,0.6707,-0.4194,0.5045,0.5806,-0.3585,-0.7997,0.9973]" + String boundaryQuery = "[0.1835,0.4286,0.3099,0.7048,0.2626,0.1009,-0.072,-0.5285,-0.7581,-0.4567,0.6234,0.704,0.7249,-0.7313,0.2246,-0.7363]" + + // One complete record per table rather than maps keyed by the same table names: with + // parallel maps, a table added to one and forgotten in another interpolates a null + // straight into the vector_search argument list below and fails as an opaque parse error + // instead of as the missing coverage it is. The guard below makes a partial record fail + // by name. + // + // refine carries the refinement clause: only the quantized tables need it, because + // IVF_FLAT already answers from the original vectors and adding refine_factor there would + // hide what the exactness check proves. + Map> tables = [ + "vs_ivf_flat_f32_cosine": [metric: "cosine", refine: ""], + "vs_ivf_pq_f32_cosine" : [metric: "cosine", refine: ', "refine_factor"="10"'], + "vs_ivf_pq_f32_dot" : [metric: "dot", refine: ', "refine_factor"="10"'], + ] + tables.each { String table, Map spec -> + for (String field : ["metric", "refine"]) { + assertNotNull(spec[field], + "${table}: incomplete test record, ${field} is missing. Every table in " + + "this suite must carry both, or the queries below silently interpolate " + + "a null.") + } + } + + def search = { String table, String query, String topK, String nprobes, String metric, String extra -> + """vector_search("table"="${catalogName}.doris.${table}", "column"="embedding", "query_vector"="${query}", "top_k"="${topK}", "metric"="${metric}", "nprobes"="${nprobes}", "use_index"="true"${extra})""" + } + def flatSearch = { String table, String query, String topK, String metric -> + """vector_search("table"="${catalogName}.doris.${table}", "column"="embedding", "query_vector"="${query}", "top_k"="${topK}", "metric"="${metric}", "use_index"="false")""" + } + // Deliberately omits metric, to pin what Doris does with an unset one. + def defaultMetricSearch = { String table, String query, String topK -> + """vector_search("table"="${catalogName}.doris.${table}", "column"="embedding", "query_vector"="${query}", "top_k"="${topK}", "use_index"="true")""" + } + + sql """DROP CATALOG IF EXISTS `${catalogName}`""" + sql """ + CREATE CATALOG `${catalogName}` PROPERTIES ( + "type" = "lance", + "lance.catalog.type" = "filesystem", + "warehouse" = "s3://warehouse/lance", + "s3.endpoint" = "http://${externalEnvIp}:${minioPort}", + "s3.access_key" = "admin", + "s3.secret_key" = "password", + "s3.region" = "us-east-1", + "use_path_style" = "true" + ) + """ + sql """SET enable_file_scanner_v2 = true""" + + order_qt_ivf_flat_cosine_desc """DESC `${catalogName}`.`doris`.`vs_ivf_flat_f32_cosine`""" + order_qt_ivf_pq_cosine_desc """DESC `${catalogName}`.`doris`.`vs_ivf_pq_f32_cosine`""" + order_qt_ivf_pq_dot_desc """DESC `${catalogName}`.`doris`.`vs_ivf_pq_f32_dot`""" + + // A metric that matches the index has to reach an indexed plan. lanceSearchIndexSegments + // is the FE's own report of how many physical index segments it planned, so a non-zero + // count here is what proves metricMatches accepted a non-L2 metric - without it the + // queries below would still return correct rows, from a flat scan, and prove nothing. + for (Map.Entry> entry : tables.entrySet()) { + String table = entry.getKey() + Map spec = entry.getValue() + String metric = spec.metric + explain { + sql("""SELECT row_id, _distance + FROM ${search(table, headQuery, "5", "4", metric, spec.refine)} + ORDER BY _distance, row_id""") + contains "externalSearchType=VECTOR" + contains "lanceMetric=${metric}" + contains "lanceSearchFragments=2" + contains "lanceSearchUnindexedFragments=0" + contains "lanceSearchIndexSegments=1" + } + } + + // The other side of the same comparison: asking a cosine index for l2 must not use it. + // Doris declines the index and plans flat splits rather than passing the mismatch down + // to Lance, which would answer from a brute-force scan without saying so. + explain { + sql("""SELECT row_id, _distance + FROM ${search("vs_ivf_flat_f32_cosine", headQuery, "5", "4", "l2", "")} + ORDER BY _distance, row_id""") + contains "lanceMetric=l2" + contains "lanceSearchIndexSegments=0" + } + + // An omitted metric is treated as l2 during index selection, so a cosine index is not + // selected either. This pins current behaviour deliberately: the user-facing default + // documented for `metric` is the metric of the matching index, which is not what index + // selection does. If that is ever reconciled, this assertion is the one that has to be + // updated, and it should be updated knowingly rather than discovered by a golden diff. + explain { + sql("""SELECT row_id, _distance + FROM ${defaultMetricSearch("vs_ivf_flat_f32_cosine", headQuery, "5")} + ORDER BY _distance, row_id""") + contains "lanceSearchIndexSegments=0" + } + + // Silent-fallback discriminator, per table because each trains its own IVF clustering. + // Row 256's true neighbours are spread across partitions here rather than sitting next + // to one edge - these directions do not cluster into contiguous row ranges the way the + // collinear data does - so a genuine single-partition probe must miss some of them. + // Unlike the L2 suites this compares row ids, not distances: this data was verified + // tie-free, so the rows are the exact quantity, while the distances differ in the last + // few bits between the indexed and flat paths and would make any two results "differ". + for (Map.Entry> entry : tables.entrySet()) { + String table = entry.getKey() + Map spec = entry.getValue() + String metric = spec.metric + def singleProbe = sql """ + SELECT row_id, _distance + FROM ${search(table, boundaryQuery, "9", "1", metric, spec.refine)} + ORDER BY _distance, row_id + """ + def flat = sql """ + SELECT row_id, _distance + FROM ${flatSearch(table, boundaryQuery, "9", metric)} + ORDER BY _distance, row_id + """ + assertEquals(9, singleProbe.size()) + assertEquals(9, flat.size()) + assertFalse(singleProbe.collect { it[0] }.equals(flat.collect { it[0] }), + "${table}: nprobes=1 returned the same rows as the flat search, so the " + + "single-partition restriction had no effect and the index was not used. " + + "nprobes=1=" + singleProbe + " flat=" + flat) + } + + // IVF_FLAT stores the original vectors, so probing every partition is an exhaustive + // scan by another name and must reproduce the flat result exactly. This is the + // algorithm's guarantee and holds for cosine just as it does for L2. Row ids only: the + // distances are equal to within float rounding, not bit for bit. + def fullProbe = sql """ + SELECT row_id + FROM ${search("vs_ivf_flat_f32_cosine", headQuery, "10", "4", "cosine", "")} + ORDER BY _distance, row_id + """ + def flatCosine = sql """ + SELECT row_id + FROM ${flatSearch("vs_ivf_flat_f32_cosine", headQuery, "10", "cosine")} + ORDER BY _distance, row_id + """ + assertEquals(10, fullProbe.size()) + assertEquals(flatCosine.collect { it[0] }, fullProbe.collect { it[0] }, + "vs_ivf_flat_f32_cosine: probing every partition did not reproduce the flat " + + "cosine search, which IVF_FLAT guarantees it must. indexed=" + fullProbe + + " flat=" + flatCosine) + + qt_ivf_flat_cosine """ + SELECT row_id, label, _distance + FROM ${search("vs_ivf_flat_f32_cosine", headQuery, "5", "4", "cosine", "")} + ORDER BY _distance, row_id + """ + qt_ivf_pq_cosine """ + SELECT row_id, label, _distance + FROM ${search("vs_ivf_pq_f32_cosine", headQuery, "5", "4", "cosine", tables["vs_ivf_pq_f32_cosine"].refine)} + ORDER BY _distance, row_id + """ + // dot is not a proper metric: a longer vector scores better than a closer one, so in + // general the nearest row need not be the row the query vector was taken from. On this + // data row 1 does come back first - its norm happens to be large enough to win - but that + // is a coincidence of the fixture rather than something to rely on, which is why the + // generator skips the "the query's own row is at distance 0" assertion whenever the metric + // is dot. Lance reports the score as a negated inner product, so ORDER BY _distance ASC + // still puts the best match first and every distance below is negative. + qt_ivf_pq_dot """ + SELECT row_id, label, _distance + FROM ${search("vs_ivf_pq_f32_dot", headQuery, "5", "4", "dot", tables["vs_ivf_pq_f32_dot"].refine)} + ORDER BY _distance, row_id + """ + + // Flat baselines for the same queries, so a golden diff shows immediately whether a + // change moved the index path, the flat path, or both. + qt_flat_cosine """ + SELECT row_id, label, _distance + FROM ${flatSearch("vs_ivf_flat_f32_cosine", headQuery, "5", "cosine")} + ORDER BY _distance, row_id + """ + qt_flat_dot """ + SELECT row_id, label, _distance + FROM ${flatSearch("vs_ivf_pq_f32_dot", headQuery, "5", "dot")} + ORDER BY _distance, row_id + """ +}