@@ -459,20 +459,23 @@ SELECT count(*) FROM sqlite_master
459459 }
460460
461461 /// <summary>
462- /// Create an index on a json parameter using the <b> ->> </b> opperator.
462+ /// Create an index on a json parameter using the <b> json_extract(json, '$.param') </b> opperator.
463463 /// Parameter can include nested json values eg: assets.house.location
464464 /// </summary>
465465 /// <param name="indexName">The name of the index. If this name exists the index won't be created.</param>
466466 /// <param name="parameter">The json parameter to create the index for.</param>
467- /// <remarks>Index on sqlite is always <see cref="Table"/>_<paramref name="indexName"/></remarks>
468- public void CreateIndex ( string indexName , string parameter )
467+ /// <remarks>
468+ /// Parameter names are case sensitive.<br/>
469+ /// Index name on sqlite will always be created as <see cref="Table"/>_<paramref name="indexName"/>
470+ /// </remarks>
471+ public bool CreateIndex ( string indexName , string parameter )
469472 {
470473 string sql = $ """
471- CREATE INDEX IF NOT EXISTS "{ Table } _{ indexName } "
472- ON "{ Table } "(json ->> '$.{ parameter } ');
474+ CREATE INDEX "{ Table } _{ indexName } "
475+ ON "{ Table } "(json_extract(" json", '$.{ parameter } ') );
473476 """ ;
474477
475- sqlite3_exec ( db , sql ) ;
478+ return sqlite3_exec ( db , sql ) == SQLITE_OK ;
476479 }
477480
478481 /// <summary>
@@ -481,7 +484,7 @@ CREATE INDEX IF NOT EXISTS "{Table}_{indexName}"
481484 /// <param name="indexName">The name of the index.</param>
482485 /// <param name="parameter">The json parameter to update the index for.</param>
483486 /// <remarks>Index on sqlite is always <see cref="Table"/>_<paramref name="indexName"/></remarks>
484- public void UpdateIndex ( string indexName , string parameter )
487+ public void RecreateIndex ( string indexName , string parameter )
485488 {
486489 DeleteIndex ( indexName ) ;
487490 CreateIndex ( indexName , parameter ) ;
@@ -492,13 +495,13 @@ public void UpdateIndex(string indexName, string parameter)
492495 /// </summary>
493496 /// <param name="indexName">The name of the index.</param>
494497 /// <remarks>Index on sqlite is always <see cref="Table"/>_<paramref name="indexName"/></remarks>
495- public void DeleteIndex ( string indexName )
498+ public bool DeleteIndex ( string indexName )
496499 {
497500 string sql = $ """
498- DROP INDEX IF EXISTS "{ Table } _{ indexName } "
501+ DROP INDEX "{ Table } _{ indexName } "
499502 """ ;
500503
501- sqlite3_exec ( db , sql ) ;
504+ return sqlite3_exec ( db , sql ) == SQLITE_OK ;
502505 }
503506
504507 #endregion
0 commit comments