@lancedb/lancedb 0.22.2-beta.1 → 0.22.2-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/arrow.js +21 -5
  2. package/package.json +9 -9
package/dist/arrow.js CHANGED
@@ -1048,17 +1048,33 @@ function validateSchemaEmbeddings(schema, data, embeddings) {
1048
1048
  if (isFixedSizeList(field.type)) {
1049
1049
  field = (0, sanitize_1.sanitizeField)(field);
1050
1050
  if (data.length !== 0 && data?.[0]?.[field.name] === undefined) {
1051
+ // Check if there's an embedding function registered for this field
1052
+ let hasEmbeddingFunction = false;
1053
+ // Check schema metadata for embedding functions
1051
1054
  if (schema.metadata.has("embedding_functions")) {
1052
1055
  const embeddings = JSON.parse(schema.metadata.get("embedding_functions"));
1053
- if (
1054
1056
  // biome-ignore lint/suspicious/noExplicitAny: we don't know the type of `f`
1055
- embeddings.find((f) => f["vectorColumn"] === field.name) ===
1056
- undefined) {
1057
- missingEmbeddingFields.push(field);
1057
+ if (embeddings.find((f) => f["vectorColumn"] === field.name)) {
1058
+ hasEmbeddingFunction = true;
1058
1059
  }
1059
1060
  }
1061
+ // Check passed embedding function parameter
1062
+ if (embeddings && embeddings.vectorColumn === field.name) {
1063
+ hasEmbeddingFunction = true;
1064
+ }
1065
+ // If the field is nullable AND there's no embedding function, allow undefined/omitted values
1066
+ if (field.nullable && !hasEmbeddingFunction) {
1067
+ fields.push(field);
1068
+ }
1060
1069
  else {
1061
- missingEmbeddingFields.push(field);
1070
+ // Either not nullable OR has embedding function - require explicit values
1071
+ if (hasEmbeddingFunction) {
1072
+ // Don't add to missingEmbeddingFields since this is expected to be filled by embedding function
1073
+ fields.push(field);
1074
+ }
1075
+ else {
1076
+ missingEmbeddingFields.push(field);
1077
+ }
1062
1078
  }
1063
1079
  }
1064
1080
  else {
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "ann"
12
12
  ],
13
13
  "private": false,
14
- "version": "0.22.2-beta.1",
14
+ "version": "0.22.2-beta.2",
15
15
  "main": "dist/index.js",
16
16
  "exports": {
17
17
  ".": "./dist/index.js",
@@ -100,14 +100,14 @@
100
100
  "reflect-metadata": "^0.2.2"
101
101
  },
102
102
  "optionalDependencies": {
103
- "@lancedb/lancedb-darwin-x64": "0.22.2-beta.1",
104
- "@lancedb/lancedb-darwin-arm64": "0.22.2-beta.1",
105
- "@lancedb/lancedb-linux-x64-gnu": "0.22.2-beta.1",
106
- "@lancedb/lancedb-linux-arm64-gnu": "0.22.2-beta.1",
107
- "@lancedb/lancedb-linux-x64-musl": "0.22.2-beta.1",
108
- "@lancedb/lancedb-linux-arm64-musl": "0.22.2-beta.1",
109
- "@lancedb/lancedb-win32-x64-msvc": "0.22.2-beta.1",
110
- "@lancedb/lancedb-win32-arm64-msvc": "0.22.2-beta.1"
103
+ "@lancedb/lancedb-darwin-x64": "0.22.2-beta.2",
104
+ "@lancedb/lancedb-darwin-arm64": "0.22.2-beta.2",
105
+ "@lancedb/lancedb-linux-x64-gnu": "0.22.2-beta.2",
106
+ "@lancedb/lancedb-linux-arm64-gnu": "0.22.2-beta.2",
107
+ "@lancedb/lancedb-linux-x64-musl": "0.22.2-beta.2",
108
+ "@lancedb/lancedb-linux-arm64-musl": "0.22.2-beta.2",
109
+ "@lancedb/lancedb-win32-x64-msvc": "0.22.2-beta.2",
110
+ "@lancedb/lancedb-win32-arm64-msvc": "0.22.2-beta.2"
111
111
  },
112
112
  "peerDependencies": {
113
113
  "apache-arrow": ">=15.0.0 <=18.1.0"