File tree Expand file tree Collapse file tree
SQLite3MultipleCiphers/src Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -216033,6 +216033,7 @@ int vectorIndexSearch(
216033216033 char **pzErrMsg
216034216034) {
216035216035 int type, dims, k, rc;
216036+ double kDouble;
216036216037 const char *zIdxName;
216037216038 const char *zErrMsg;
216038216039 Vector *pVector = NULL;
@@ -216063,17 +216064,32 @@ int vectorIndexSearch(
216063216064 rc = SQLITE_ERROR;
216064216065 goto out;
216065216066 }
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");
216074216089 rc = SQLITE_ERROR;
216075216090 goto out;
216076216091 }
216092+
216077216093 if( sqlite3_value_type(argv[0]) != SQLITE_TEXT ){
216078216094 *pzErrMsg = sqlite3_mprintf("vector index(search): first parameter (index) must be a string");
216079216095 rc = SQLITE_ERROR;
Original file line number Diff line number Diff line change @@ -216033,6 +216033,7 @@ int vectorIndexSearch(
216033216033 char **pzErrMsg
216034216034) {
216035216035 int type, dims, k, rc;
216036+ double kDouble;
216036216037 const char *zIdxName;
216037216038 const char *zErrMsg;
216038216039 Vector *pVector = NULL;
@@ -216063,17 +216064,32 @@ int vectorIndexSearch(
216063216064 rc = SQLITE_ERROR;
216064216065 goto out;
216065216066 }
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");
216074216089 rc = SQLITE_ERROR;
216075216090 goto out;
216076216091 }
216092+
216077216093 if( sqlite3_value_type(argv[0]) != SQLITE_TEXT ){
216078216094 *pzErrMsg = sqlite3_mprintf("vector index(search): first parameter (index) must be a string");
216079216095 rc = SQLITE_ERROR;
You can’t perform that action at this time.
0 commit comments