feat(server)!: pgvecto.rs 0.2 and pgvector compatibility (#6785)
* basic changes update version check set ef_search for clip * pgvector compatibility Revert "pgvector compatibility" This reverts commit 2b66a52aa4097dd27da58138c5288fd87cb9b24a. pgvector compatibility: minimal edition pgvector startup check * update extension at startup * wording shortened vector extension variable name * nightly docker * fixed version checks * update tests add tests for updating extension remove unnecessary check * simplify `getRuntimeConfig` * wording * reindex on minor version update * 0.2 upgrade testing update prod compose * acquire lock for init * wip vector down on shutdown * use upgrade helper * update image tag * refine restart check check error message * test reindex testing upstream fix formatting fixed reindexing * use enum in signature * fix tests remove unused code * add reindexing tests * update to official 0.2 remove alpha from version name * add warning test if restart required * update test image to 0.2.0 * linting and test cleanup * formatting * update sql * wording * handle setting search path for new and existing databases * handle new db in reindex check * fix post-update reindexing * get dim size * formatting * use vbase * handle different db name * update sql * linting * fix suggested env
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { Version, mimeTypes } from './domain.constant';
|
||||
import { Version, VersionType, mimeTypes } from './domain.constant';
|
||||
|
||||
describe('mimeTypes', () => {
|
||||
for (const { mimetype, extension } of [
|
||||
@@ -196,45 +196,37 @@ describe('mimeTypes', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('ServerVersion', () => {
|
||||
describe('Version', () => {
|
||||
const tests = [
|
||||
{ this: new Version(0, 0, 1), other: new Version(0, 0, 0), expected: 1 },
|
||||
{ this: new Version(0, 1, 0), other: new Version(0, 0, 0), expected: 1 },
|
||||
{ this: new Version(1, 0, 0), other: new Version(0, 0, 0), expected: 1 },
|
||||
{ this: new Version(0, 0, 0), other: new Version(0, 0, 1), expected: -1 },
|
||||
{ this: new Version(0, 0, 0), other: new Version(0, 1, 0), expected: -1 },
|
||||
{ this: new Version(0, 0, 0), other: new Version(1, 0, 0), expected: -1 },
|
||||
{ this: new Version(0, 0, 0), other: new Version(0, 0, 0), expected: 0 },
|
||||
{ this: new Version(0, 0, 1), other: new Version(0, 0, 1), expected: 0 },
|
||||
{ this: new Version(0, 1, 0), other: new Version(0, 1, 0), expected: 0 },
|
||||
{ this: new Version(1, 0, 0), other: new Version(1, 0, 0), expected: 0 },
|
||||
{ this: new Version(1, 0), other: new Version(1, 0, 0), expected: 0 },
|
||||
{ this: new Version(1, 0), other: new Version(1, 0, 1), expected: -1 },
|
||||
{ this: new Version(1, 1), other: new Version(1, 0, 1), expected: 1 },
|
||||
{ this: new Version(1), other: new Version(1, 0, 0), expected: 0 },
|
||||
{ this: new Version(1), other: new Version(1, 0, 1), expected: -1 },
|
||||
{ this: new Version(0, 0, 1), other: new Version(0, 0, 0), compare: 1, type: VersionType.PATCH },
|
||||
{ this: new Version(0, 1, 0), other: new Version(0, 0, 0), compare: 1, type: VersionType.MINOR },
|
||||
{ this: new Version(1, 0, 0), other: new Version(0, 0, 0), compare: 1, type: VersionType.MAJOR },
|
||||
{ this: new Version(0, 0, 0), other: new Version(0, 0, 1), compare: -1, type: VersionType.PATCH },
|
||||
{ this: new Version(0, 0, 0), other: new Version(0, 1, 0), compare: -1, type: VersionType.MINOR },
|
||||
{ this: new Version(0, 0, 0), other: new Version(1, 0, 0), compare: -1, type: VersionType.MAJOR },
|
||||
{ this: new Version(0, 0, 0), other: new Version(0, 0, 0), compare: 0, type: VersionType.EQUAL },
|
||||
{ this: new Version(0, 0, 1), other: new Version(0, 0, 1), compare: 0, type: VersionType.EQUAL },
|
||||
{ this: new Version(0, 1, 0), other: new Version(0, 1, 0), compare: 0, type: VersionType.EQUAL },
|
||||
{ this: new Version(1, 0, 0), other: new Version(1, 0, 0), compare: 0, type: VersionType.EQUAL },
|
||||
{ this: new Version(1, 0), other: new Version(1, 0, 0), compare: 0, type: VersionType.EQUAL },
|
||||
{ this: new Version(1, 0), other: new Version(1, 0, 1), compare: -1, type: VersionType.PATCH },
|
||||
{ this: new Version(1, 1), other: new Version(1, 0, 1), compare: 1, type: VersionType.MINOR },
|
||||
{ this: new Version(1), other: new Version(1, 0, 0), compare: 0, type: VersionType.EQUAL },
|
||||
{ this: new Version(1), other: new Version(1, 0, 1), compare: -1, type: VersionType.PATCH },
|
||||
];
|
||||
|
||||
describe('compare', () => {
|
||||
for (const { this: thisVersion, other: otherVersion, expected } of tests) {
|
||||
it(`should return ${expected} when comparing ${thisVersion} to ${otherVersion}`, () => {
|
||||
expect(thisVersion.compare(otherVersion)).toEqual(expected);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
describe('isOlderThan', () => {
|
||||
for (const { this: thisVersion, other: otherVersion, expected } of tests) {
|
||||
const bool = expected < 0;
|
||||
it(`should return ${bool} when comparing ${thisVersion} to ${otherVersion}`, () => {
|
||||
expect(thisVersion.isOlderThan(otherVersion)).toEqual(bool);
|
||||
for (const { this: thisVersion, other: otherVersion, compare, type } of tests) {
|
||||
const expected = compare < 0 ? type : VersionType.EQUAL;
|
||||
it(`should return '${expected}' when comparing ${thisVersion} to ${otherVersion}`, () => {
|
||||
expect(thisVersion.isOlderThan(otherVersion)).toEqual(expected);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
describe('isEqual', () => {
|
||||
for (const { this: thisVersion, other: otherVersion, expected } of tests) {
|
||||
const bool = expected === 0;
|
||||
for (const { this: thisVersion, other: otherVersion, compare } of tests) {
|
||||
const bool = compare === 0;
|
||||
it(`should return ${bool} when comparing ${thisVersion} to ${otherVersion}`, () => {
|
||||
expect(thisVersion.isEqual(otherVersion)).toEqual(bool);
|
||||
});
|
||||
@@ -242,10 +234,10 @@ describe('ServerVersion', () => {
|
||||
});
|
||||
|
||||
describe('isNewerThan', () => {
|
||||
for (const { this: thisVersion, other: otherVersion, expected } of tests) {
|
||||
const bool = expected > 0;
|
||||
it(`should return ${bool} when comparing ${thisVersion} to ${otherVersion}`, () => {
|
||||
expect(thisVersion.isNewerThan(otherVersion)).toEqual(bool);
|
||||
for (const { this: thisVersion, other: otherVersion, compare, type } of tests) {
|
||||
const expected = compare > 0 ? type : VersionType.EQUAL;
|
||||
it(`should return ${expected} when comparing ${thisVersion} to ${otherVersion}`, () => {
|
||||
expect(thisVersion.isNewerThan(otherVersion)).toEqual(expected);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user