Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions docs/guide/models.md
Original file line number Diff line number Diff line change
Expand Up @@ -296,10 +296,7 @@ const users = await User.where({ status: ['active', 'pending'] }).list();
// IS NULL
const users = await User.where({ deleted_at: null }).list();

// LIKE (auto-detected with %)
const users = await User.where({ last_name: 'Dup%' }).list();

// $like - explicit LIKE
// $like - LIKE
const users = await User.where({ last_name: { $like: 'Dup%' } }).list();

// $between - range
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "igo",
"version": "5.5.0",
"version": "5.5.1",
"homepage": "https://github.com/igocreate/igo",
"description": "Igo is a Node.js Web Framework based on Express",
"main": "index.js",
Expand Down
11 changes: 1 addition & 10 deletions src/db/OperatorCompiler.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const _ = require('lodash');
* Compile une condition unitaire (colonne + valeur) en SQL
*
* Supporte : null (IS NULL), array (IN), $like, $between, $gte, $lte, $gt, $lt,
* string avec % (LIKE implicite), et égalité par défaut.
* et égalité par défaut.
*
* @param {string} columnRef - Référence qualifiée de la colonne (ex: `table`.`col`)
* @param {any} value - Valeur ou objet opérateur
Expand Down Expand Up @@ -53,10 +53,6 @@ const compileCondition = (columnRef, value, dialect, i) => {
}
}

if (_.isString(value) && value.includes('%')) {
return { sql: `${columnRef} LIKE ${dialect.param(i++)}`, params: [value], i };
}

return { sql: `${columnRef} = ${dialect.param(i++)}`, params: [value], i };
};

Expand Down Expand Up @@ -110,11 +106,6 @@ const compileNotCondition = (columnRef, value, dialect, i) => {
}
}

// String avec % → NOT LIKE implicite
if (_.isString(value) && value.includes('%')) {
return { sql: `${columnRef} NOT LIKE ${dialect.param(i++)}`, params: [value], i };
}

return { sql: `${columnRef} != ${dialect.param(i++)}`, params: [value], i };
};

Expand Down
6 changes: 3 additions & 3 deletions src/db/PaginatedOptimizedSql.js
Original file line number Diff line number Diff line change
Expand Up @@ -910,8 +910,8 @@ module.exports = class PaginatedOptimizedSql extends Sql {
*
* Exemple :
* Input: [
* { 'applicant.last_name': 'Dupont%' },
* { 'applicant.first_name': 'Jean%' },
* { 'applicant.last_name': { $like: 'Dupont%' } },
* { 'applicant.first_name': { $like: 'Jean%' } },
* { 'beneficiary.email': 'test@test.com' }
* ]
* Output: (
Expand Down Expand Up @@ -1022,7 +1022,7 @@ module.exports = class PaginatedOptimizedSql extends Sql {
* - Égalité : { status: 'ACTIVE' }
* - IN : { status: ['ACTIVE', 'PENDING'] }
* - IS NULL : { email: null }
* - LIKE : { last_name: 'Dupont%' }
* - LIKE : { last_name: { $like: 'Dupont%' } }
* - BETWEEN : { created_at: { $between: ['2024-01-01', '2024-12-31'] } }
* - >= : { created_at: { $gte: '2024-01-01' } }
* - <= : { created_at: { $lte: '2024-12-31' } }
Expand Down
Loading