boolean comparison handling

This commit is contained in:
Alex Garcia 2024-11-14 16:36:53 -08:00
parent 3965029726
commit a1a64427fc
4 changed files with 189 additions and 25 deletions

View file

@ -1638,13 +1638,140 @@
]),
})
# ---
# name: test_stress.8
# name: test_stress[bool-eq-false]
OrderedDict({
'sql': "select movie_id, mean_rating, distance from vec_movies where synopsis_embedding match '[100]' and k = 5 and is_favorited = TRUE",
'sql': "select movie_id, is_favorited, distance from vec_movies where synopsis_embedding match '[100]' and k = 5 and is_favorited = FALSE",
'rows': list([
OrderedDict({
'movie_id': 16,
'is_favorited': 0,
'distance': 84.0,
}),
OrderedDict({
'movie_id': 14,
'is_favorited': 0,
'distance': 86.0,
}),
OrderedDict({
'movie_id': 12,
'is_favorited': 0,
'distance': 88.0,
}),
OrderedDict({
'movie_id': 10,
'is_favorited': 0,
'distance': 90.0,
}),
OrderedDict({
'movie_id': 8,
'is_favorited': 0,
'distance': 92.0,
}),
]),
})
# ---
# name: test_stress[bool-eq-true]
OrderedDict({
'sql': "select movie_id, is_favorited, distance from vec_movies where synopsis_embedding match '[100]' and k = 5 and is_favorited = TRUE",
'rows': list([
OrderedDict({
'movie_id': 25,
'is_favorited': 1,
'distance': 75.0,
}),
OrderedDict({
'movie_id': 24,
'is_favorited': 1,
'distance': 76.0,
}),
OrderedDict({
'movie_id': 23,
'is_favorited': 1,
'distance': 77.0,
}),
OrderedDict({
'movie_id': 22,
'is_favorited': 1,
'distance': 78.0,
}),
OrderedDict({
'movie_id': 21,
'is_favorited': 1,
'distance': 79.0,
}),
]),
})
# ---
# name: test_stress[bool-ne-false]
OrderedDict({
'sql': "select movie_id, is_favorited, distance from vec_movies where synopsis_embedding match '[100]' and k = 5 and is_favorited != FALSE",
'rows': list([
OrderedDict({
'movie_id': 25,
'is_favorited': 1,
'distance': 75.0,
}),
OrderedDict({
'movie_id': 24,
'is_favorited': 1,
'distance': 76.0,
}),
OrderedDict({
'movie_id': 23,
'is_favorited': 1,
'distance': 77.0,
}),
OrderedDict({
'movie_id': 22,
'is_favorited': 1,
'distance': 78.0,
}),
OrderedDict({
'movie_id': 21,
'is_favorited': 1,
'distance': 79.0,
}),
]),
})
# ---
# name: test_stress[bool-ne-true]
OrderedDict({
'sql': "select movie_id, is_favorited, distance from vec_movies where synopsis_embedding match '[100]' and k = 5 and is_favorited != TRUE",
'rows': list([
OrderedDict({
'movie_id': 16,
'is_favorited': 0,
'distance': 84.0,
}),
OrderedDict({
'movie_id': 14,
'is_favorited': 0,
'distance': 86.0,
}),
OrderedDict({
'movie_id': 12,
'is_favorited': 0,
'distance': 88.0,
}),
OrderedDict({
'movie_id': 10,
'is_favorited': 0,
'distance': 90.0,
}),
OrderedDict({
'movie_id': 8,
'is_favorited': 0,
'distance': 92.0,
}),
]),
})
# ---
# name: test_stress[bool-other-op]
dict({
'error': 'OperationalError',
'message': 'ONLY EQUALS (=) or NOT_EQUALS (!=) operators are allowed on boolean metadata columns.',
})
# ---
# name: test_types[illegal-boolean]
dict({
'error': 'OperationalError',

View file

@ -355,13 +355,28 @@ def test_stress(db, snapshot):
== snapshot()
)
assert (
exec(
db,
"select movie_id, mean_rating, distance from vec_movies where synopsis_embedding match '[100]' and k = 5 and is_favorited = TRUE",
)
== snapshot()
)
assert exec(
db,
"select movie_id, is_favorited, distance from vec_movies where synopsis_embedding match '[100]' and k = 5 and is_favorited = TRUE",
) == snapshot(name="bool-eq-true")
assert exec(
db,
"select movie_id, is_favorited, distance from vec_movies where synopsis_embedding match '[100]' and k = 5 and is_favorited != TRUE",
) == snapshot(name="bool-ne-true")
assert exec(
db,
"select movie_id, is_favorited, distance from vec_movies where synopsis_embedding match '[100]' and k = 5 and is_favorited = FALSE",
) == snapshot(name="bool-eq-false")
assert exec(
db,
"select movie_id, is_favorited, distance from vec_movies where synopsis_embedding match '[100]' and k = 5 and is_favorited != FALSE",
) == snapshot(name="bool-ne-false")
# EVIDENCE-OF: V10145_26984
assert exec(
db,
"select movie_id, is_favorited, distance from vec_movies where synopsis_embedding match '[100]' and k = 5 and is_favorited >= 999",
) == snapshot(name="bool-other-op")
def exec(db, sql, parameters=[]):