IP Library Granted Patent US 12,608,355
Granted Patent B2
US 12,608,355 · App. 18/885,645 · Granted Apr 21, 2026

Flexible specification and storage of vector type

Inventors: Aurosish Mishra (Foster City, CA); Shasank Kisan Chavan (Menlo Park, CA); Shubha Bose (Foster City, CA); Meenakshi Sundaram Arumugam (Belmont, CA); Zhen Hua Liu (San Mateo, CA); Tirthankar Lahiri (Palo Alto, CA); Juan R. Loaiza (Woodside, CA)
Assignee: Oracle International Corporation
G06F16/2237G06F16/221G06F16/2264G06F16/245G06F16/24553G06F16/2456G06F16/3347
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,608,355
App. No.
18/885,645
Granted
Apr 21, 2026
Kind
B2
Abstract

Techniques for flexible specification and storage of objects of the VECTOR type are provided. In one technique, a table specification that specifies a column having a VECTOR data type is received. A first vector that has a first number of dimensions and a first dimension format is stored in the column. A second vector that has a second number of dimensions and a second dimension format is stored in the column. The first number of dimensions is different than the second number of dimensions or the first dimension format is different than the second dimension format.

Claims (67)

1 . A method comprising:

receiving a table specification that specifies a column having a VECTOR data type;

creating a table based on the table specification, wherein the table includes the column having the VECTOR data type;

storing, in the column, a first vector that has a first number of dimensions and a first dimension format;

storing, in the column, a second vector that has a second number of dimensions and a second dimension format;

wherein the first number of dimensions is different than the second number of dimensions or the first dimension format is different than the second dimension format;

wherein the method is performed by one or more computing devices.

2 . The method of claim 1 , wherein the first number of dimensions is different than the second number of dimensions and the first dimension format is different than the second dimension format.

3 . The method of claim 1 , wherein the table specification does not specify a number of dimensions for vectors that will be stored in the column.

4 . The method of claim 1 , wherein the table specification does not specify a dimension format for vectors that will be stored in the column.

5 . The method of claim 1 , wherein a third vector has a third number of dimensions and a third dimension format, wherein a fourth vector has the third number of dimensions and a fourth dimension format that is different than the third dimension format, the method further comprising:

receiving a vector query that results in a comparison between the third vector and the fourth vector;

in response to receiving the vector query:

converting the dimension values in the fourth vector to the third dimension format to generate a temporary version of the fourth vector;

performing the comparison between the third vector and the temporary version of the fourth vector.

6 . The method of claim 1 , further comprising:

receiving a second table specification that specifies a second column having the VECTOR data type, wherein the second table specification does not indicate a dimension count or a dimension format for vectors that will be stored in the second column;

storing a first plurality of vectors in the second column;

receiving a database statement that includes an operator that specifies, as input, the first plurality of vectors and a dimension format, and outputs a second plurality of vectors that correspond to the first plurality of vectors and whose dimension values are of the dimension format.

7 . The method of claim 1 , wherein:

storing the first vector comprises storing the first vector in a first vector object that specifies the first number of dimensions and the first dimension format;

storing the second vector comprises storing the second vector in a second vector object that specifies the second number of dimensions and the second dimension format.

8 . The method of claim 7 , further comprising:

generating a Euclidean norm based on dimension values of the first vector;

wherein storing the first vector in the first vector object comprises storing the Euclidean norm in the first vector object.

9 . The method of claim 1 , further comprising:

storing, in one or more data blocks in persistent storage, a plurality of vector objects of a flexible type;

determining whether each vector object in the one or more data blocks has the same dimension count and the same dimension format;

in response to determining that each vector object in the one or more data blocks have the same dimension count and the same dimension format:

generating metadata that indicates the dimension count and the dimension format;

associating the metadata with the plurality of vector objects.

10 . The method of claim 9 , further comprising:

generating, in volatile memory, a data structure that includes vector data from each vector object in the plurality of vector objects;

wherein associating the metadata with the plurality of vector objects comprises including the metadata in the data structure.

11 . The method of claim 1 , further comprising:

receiving a database statement that indicates a vector column and includes a check dimension operator that specifies a dimension count or a dimension format;

in response to receiving the database statement, verifying whether each vector in the vector column has the dimension count or the dimension format.

12 . The method of claim 1 , further comprising:

receiving a database statement that indicates a vector column and includes a check dimension operator that specifies a dimension count or a dimension format;

for each vector of the one or more vectors, loading said each vector into the vector column only in response to determining that said each vector has the dimension count of the dimension format.

13 . One or more non-transitory storage media storing instructions which, when executed by one or more computing devices, cause:

receiving a table specification that specifies a column having a VECTOR data type;

creating a table based on the table specification, wherein the table includes the column having the VECTOR data type;

storing, in the column, a first vector that has a first number of dimensions and a first dimension format;

storing, in the column, a second vector that has a second number of dimensions and a second dimension format;

wherein the first number of dimensions is different than the second number of dimensions or the first dimension format is different than the second dimension format.

14 . The one or more storage media of claim 13 , wherein the first number of dimensions is different than the second number of dimensions and the first dimension format is different than the second dimension format.

15 . The one or more storage media of claim 13 , wherein the table specification does not specify a number of dimensions for vectors that will be stored in the column.

16 . The one or more storage media of claim 13 , wherein the table specification does not specify a dimension format for vectors that will be stored in the column.

17 . The one or more storage media of claim 13 , wherein a third vector has a third number of dimensions and a third dimension format, wherein a fourth vector has the third number of dimensions and a fourth dimension format that is different than the third dimension format, wherein the instructions which, when executed by the one or more computing devices, further cause:

receiving a vector query that results in a comparison between the third vector and the fourth vector;

in response to receiving the vector query:

converting the dimension values in the fourth vector to the third dimension format to generate a temporary version of the fourth vector;

performing the comparison between the third vector and the temporary version of the fourth vector.

18 . The one or more storage media of claim 13 , wherein the instructions which, when executed by the one or more computing devices, further cause:

receiving a second table specification that specifies a second column having the VECTOR data type, wherein the second table specification does not indicate a dimension count or a dimension format for vectors that will be stored in the second column;

storing a first plurality of vectors in the second column;

receiving a database statement that includes an operator that specifies, as input, the first plurality of vectors and a dimension format, and outputs a second plurality of vectors that correspond to the first plurality of vectors and whose dimension values are of the dimension format.

19 . The one or more storage media of claim 13 , wherein:

storing the first vector comprises storing the first vector in a first vector object that specifies the first number of dimensions and the first dimension format;

storing the second vector comprises storing the second vector in a second vector object that specifies the second number of dimensions and the second dimension format.

20 . The one or more storage media of claim 13 , wherein the instructions which, when executed by the one or more computing devices, further cause:

storing, in one or more data blocks in persistent storage, a plurality of vector objects of a flexible type;

determining whether each vector object in the one or more data blocks has the same dimension count and the same dimension format;

in response to determining that each vector object in the one or more data blocks have the same dimension count and the same dimension format:

generating metadata that indicates the dimension count and the dimension format;

associating the metadata with the plurality of vector objects.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2024
From: MISHRA, AUROSISH; CHAVAN, SHASANK KISAN; BOSE, SHUBHA; ARUMUGAM, MEENAKSHI SUNDARAM; LIU, ZHEN HUA; LAHIRI, TIRTHANKAR; LOAIZA, JUAN R.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 068712/0051 →
Continuity (2)
Provisional Application 63563926 · Mar 11, 2024
Related Publication 20250284679A1 · Sep 11, 2025
References Cited (21)
US 10268710B2 · Hu · 2019 [cited by applicant]
US 10496614B2 · Hu · 2019 [cited by applicant]
US 11204900B2 · Hu · 2021 [cited by applicant]
US 12210537B2 · Ilan · 2025 [cited by examiner]
US 20120310916A1 · Abadi · 2012 [cited by applicant]
US 20170103092A1 · Hu · 2017 [cited by applicant]
US 20170103094A1 · Hu · 2017 [cited by applicant]
US 20170103116A1 · Hu · 2017 [cited by applicant]
US 20170293662A1 · Tyercha · 2017 [cited by examiner]
US 20180329935A1 · Mugali · 2018 [cited by applicant]
US 20190220450A1 · Hu · 2019 [cited by applicant]
US 20190227739A1 · Khan · 2019 [cited by examiner]
US 20190258613A1 · Hu · 2019 [cited by applicant]
US 20200242157A1 · Liu · 2020 [cited by applicant]
US 20220035848A1 · Kataoka · 2022 [cited by examiner]
US 20220067008A1 · Li · 2022 [cited by examiner]
US 20230051059A1 · Portisch · 2023 [cited by examiner]
US 20230273940A1 · Shu · 2023 [cited by applicant]
US 20230297891A1 · Kataoka · 2023 [cited by examiner]
US 20230306028A1 · Kogan · 2023 [cited by applicant]
WO WO2017062288A1 · 2017 [cited by applicant]