Skip to content

Commit f21fdab

Browse files
committed
Revert "Switched to local functions"
This reverts commit 64f9d18.
1 parent 64f9d18 commit f21fdab

1 file changed

Lines changed: 33 additions & 33 deletions

File tree

src/pgvector.lua

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,28 @@ end
3434

3535
-- halfvec
3636

37-
local function halfvec_serialize(v)
37+
local halfvec_mt = {
38+
pgmoon_serialize = function(v)
39+
return 0, halfvec_serialize(v)
40+
end
41+
}
42+
43+
function pgvector.halfvec(v)
44+
local vec = {}
45+
for _, x in ipairs(v) do
46+
table.insert(vec, x)
47+
end
48+
return setmetatable(vec, halfvec_mt)
49+
end
50+
51+
function halfvec_serialize(v)
3852
for _, v in ipairs(v) do
3953
assert(type(v) == "number")
4054
end
4155
return "[" .. table.concat(v, ",") .. "]"
4256
end
4357

44-
local function halfvec_deserialize(v)
58+
function halfvec_deserialize(v)
4559
local vec = {}
4660
for x in string.gmatch(string.sub(v, 2, -2), "[^,]+") do
4761
table.insert(vec, tonumber(x))
@@ -50,31 +64,37 @@ local function halfvec_deserialize(v)
5064
return setmetatable(vec, halfvec_mt)
5165
end
5266

53-
local halfvec_mt = {
67+
-- sparsevec
68+
69+
local sparsevec_mt = {
5470
pgmoon_serialize = function(v)
55-
return 0, halfvec_serialize(v)
71+
return 0, sparsevec_serialize(v)
5672
end
5773
}
5874

59-
function pgvector.halfvec(v)
60-
local vec = {}
61-
for _, x in ipairs(v) do
62-
table.insert(vec, x)
75+
function pgvector.sparsevec(elements, dim)
76+
for k, v in pairs(elements) do
77+
assert(type(k) == "number")
78+
assert(type(v) == "number")
6379
end
64-
return setmetatable(vec, halfvec_mt)
65-
end
80+
assert(type(dim) == "number")
6681

67-
-- sparsevec
82+
local vec = {
83+
elements = elements,
84+
dim = dim
85+
}
86+
return setmetatable(vec, sparsevec_mt)
87+
end
6888

69-
local function sparsevec_serialize(vec)
89+
function sparsevec_serialize(vec)
7090
local elements = {}
7191
for i, v in pairs(vec["elements"]) do
7292
table.insert(elements, tonumber(i) .. ":" .. tonumber(v))
7393
end
7494
return "{" .. table.concat(elements, ",") .. "}/" .. tonumber(vec["dim"])
7595
end
7696

77-
local function sparsevec_deserialize(v)
97+
function sparsevec_deserialize(v)
7898
local m = string.gmatch(v, "[^/]+")
7999
local elements = {}
80100
for e in string.gmatch(string.sub(m(), 2, -2), "[^,]+") do
@@ -90,26 +110,6 @@ local function sparsevec_deserialize(v)
90110
return setmetatable(vec, sparsevec_mt)
91111
end
92112

93-
local sparsevec_mt = {
94-
pgmoon_serialize = function(v)
95-
return 0, sparsevec_serialize(v)
96-
end
97-
}
98-
99-
function pgvector.sparsevec(elements, dim)
100-
for k, v in pairs(elements) do
101-
assert(type(k) == "number")
102-
assert(type(v) == "number")
103-
end
104-
assert(type(dim) == "number")
105-
106-
local vec = {
107-
elements = elements,
108-
dim = dim
109-
}
110-
return setmetatable(vec, sparsevec_mt)
111-
end
112-
113113
-- register
114114

115115
function pgvector.setup_vector(pg)

0 commit comments

Comments
 (0)