File tree Expand file tree Collapse file tree 2 files changed +48
-16
lines changed
SQLite3MultipleCiphers/src Expand file tree Collapse file tree 2 files changed +48
-16
lines changed Original file line number Diff line number Diff line change @@ -216033,6 +216033,7 @@ int vectorIndexSearch(
216033
216033
char **pzErrMsg
216034
216034
) {
216035
216035
int type, dims, k, rc;
216036
+ double kDouble;
216036
216037
const char *zIdxName;
216037
216038
const char *zErrMsg;
216038
216039
Vector *pVector = NULL;
@@ -216063,17 +216064,32 @@ int vectorIndexSearch(
216063
216064
rc = SQLITE_ERROR;
216064
216065
goto out;
216065
216066
}
216066
- if( sqlite3_value_type(argv[2]) != SQLITE_INTEGER ){
216067
- *pzErrMsg = sqlite3_mprintf("vector index(search): third parameter (k) must be a non-negative integer");
216068
- rc = SQLITE_ERROR;
216069
- goto out;
216070
- }
216071
- k = sqlite3_value_int(argv[2]);
216072
- if( k < 0 ){
216073
- *pzErrMsg = sqlite3_mprintf("vector index(search): third parameter (k) must be a non-negative integer");
216067
+ if( sqlite3_value_type(argv[2]) == SQLITE_INTEGER ){
216068
+ k = sqlite3_value_int(argv[2]);
216069
+ if( k < 0 ){
216070
+ *pzErrMsg = sqlite3_mprintf("vector index(search): third parameter (k) must be a non-negative integer, but negative value were provided");
216071
+ rc = SQLITE_ERROR;
216072
+ goto out;
216073
+ }
216074
+ }else if( sqlite3_value_type(argv[2]) == SQLITE_FLOAT ) {
216075
+ kDouble = sqlite3_value_double(argv[2]);
216076
+ k = (int)kDouble;
216077
+ if( (double)k != kDouble ){
216078
+ *pzErrMsg = sqlite3_mprintf("vector index(search): third parameter (k) must be an integer, but float value were provided");
216079
+ rc = SQLITE_ERROR;
216080
+ goto out;
216081
+ }
216082
+ if( k < 0 ){
216083
+ *pzErrMsg = sqlite3_mprintf("vector index(search): third parameter (k) must be a non-negative integer, but negative value were provided");
216084
+ rc = SQLITE_ERROR;
216085
+ goto out;
216086
+ }
216087
+ }else{
216088
+ *pzErrMsg = sqlite3_mprintf("vector index(search): third parameter (k) must be an integer, but unexpected type of value were provided");
216074
216089
rc = SQLITE_ERROR;
216075
216090
goto out;
216076
216091
}
216092
+
216077
216093
if( sqlite3_value_type(argv[0]) != SQLITE_TEXT ){
216078
216094
*pzErrMsg = sqlite3_mprintf("vector index(search): first parameter (index) must be a string");
216079
216095
rc = SQLITE_ERROR;
Original file line number Diff line number Diff line change @@ -216033,6 +216033,7 @@ int vectorIndexSearch(
216033
216033
char **pzErrMsg
216034
216034
) {
216035
216035
int type, dims, k, rc;
216036
+ double kDouble;
216036
216037
const char *zIdxName;
216037
216038
const char *zErrMsg;
216038
216039
Vector *pVector = NULL;
@@ -216063,17 +216064,32 @@ int vectorIndexSearch(
216063
216064
rc = SQLITE_ERROR;
216064
216065
goto out;
216065
216066
}
216066
- if( sqlite3_value_type(argv[2]) != SQLITE_INTEGER ){
216067
- *pzErrMsg = sqlite3_mprintf("vector index(search): third parameter (k) must be a non-negative integer");
216068
- rc = SQLITE_ERROR;
216069
- goto out;
216070
- }
216071
- k = sqlite3_value_int(argv[2]);
216072
- if( k < 0 ){
216073
- *pzErrMsg = sqlite3_mprintf("vector index(search): third parameter (k) must be a non-negative integer");
216067
+ if( sqlite3_value_type(argv[2]) == SQLITE_INTEGER ){
216068
+ k = sqlite3_value_int(argv[2]);
216069
+ if( k < 0 ){
216070
+ *pzErrMsg = sqlite3_mprintf("vector index(search): third parameter (k) must be a non-negative integer, but negative value were provided");
216071
+ rc = SQLITE_ERROR;
216072
+ goto out;
216073
+ }
216074
+ }else if( sqlite3_value_type(argv[2]) == SQLITE_FLOAT ) {
216075
+ kDouble = sqlite3_value_double(argv[2]);
216076
+ k = (int)kDouble;
216077
+ if( (double)k != kDouble ){
216078
+ *pzErrMsg = sqlite3_mprintf("vector index(search): third parameter (k) must be an integer, but float value were provided");
216079
+ rc = SQLITE_ERROR;
216080
+ goto out;
216081
+ }
216082
+ if( k < 0 ){
216083
+ *pzErrMsg = sqlite3_mprintf("vector index(search): third parameter (k) must be a non-negative integer, but negative value were provided");
216084
+ rc = SQLITE_ERROR;
216085
+ goto out;
216086
+ }
216087
+ }else{
216088
+ *pzErrMsg = sqlite3_mprintf("vector index(search): third parameter (k) must be an integer, but unexpected type of value were provided");
216074
216089
rc = SQLITE_ERROR;
216075
216090
goto out;
216076
216091
}
216092
+
216077
216093
if( sqlite3_value_type(argv[0]) != SQLITE_TEXT ){
216078
216094
*pzErrMsg = sqlite3_mprintf("vector index(search): first parameter (index) must be a string");
216079
216095
rc = SQLITE_ERROR;
You can’t perform that action at this time.
0 commit comments