|
@@ -22,7 +22,7 @@ const { BaseES } = require("./BaseES");
|
|
const APIError = require("../../api/APIError");
|
|
const APIError = require("../../api/APIError");
|
|
const { Entity } = require("./Entity");
|
|
const { Entity } = require("./Entity");
|
|
const { WeakConstructorTrait } = require("../../traits/WeakConstructorTrait");
|
|
const { WeakConstructorTrait } = require("../../traits/WeakConstructorTrait");
|
|
-const { And, Or, Eq, Like, Null, Predicate, PredicateUtil } = require("../query/query");
|
|
|
|
|
|
+const { And, Or, Eq, Like, Null, Predicate, PredicateUtil, IsNotNull } = require("../query/query");
|
|
const { DB_WRITE } = require("../../services/database/consts");
|
|
const { DB_WRITE } = require("../../services/database/consts");
|
|
|
|
|
|
class RawCondition extends AdvancedBase {
|
|
class RawCondition extends AdvancedBase {
|
|
@@ -350,7 +350,23 @@ class SQLES extends BaseES {
|
|
const options = prop.descriptor.sql ?? {};
|
|
const options = prop.descriptor.sql ?? {};
|
|
const col_name = options.column_name ?? prop.name;
|
|
const col_name = options.column_name ?? prop.name;
|
|
|
|
|
|
- const sql = `${col_name} = ?`;
|
|
|
|
|
|
+ const sql = value === null ? `${col_name} IS NULL` : `${col_name} = ?`;
|
|
|
|
+ const values = value === null ? [] : [value];
|
|
|
|
+
|
|
|
|
+ return new RawCondition({ sql, values });
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if ( om_query instanceof IsNotNull ) {
|
|
|
|
+ const key = om_query.key;
|
|
|
|
+ let value = om_query.value;
|
|
|
|
+ const prop = this.om.properties[key];
|
|
|
|
+
|
|
|
|
+ value = await prop.sql_reference(value);
|
|
|
|
+
|
|
|
|
+ const options = prop.descriptor.sql ?? {};
|
|
|
|
+ const col_name = options.column_name ?? prop.name;
|
|
|
|
+
|
|
|
|
+ const sql = `${col_name} IS NOT NULL`;
|
|
const values = [value];
|
|
const values = [value];
|
|
|
|
|
|
return new RawCondition({ sql, values });
|
|
return new RawCondition({ sql, values });
|