-
Notifications
You must be signed in to change notification settings - Fork 0
FieldScope
class FieldScope extends QueryEngineBase 📜
FieldScope is the "field level" of a query.
It manages conditions, such as things like EQ, NEQ,
GT, LT, etc...
Any operator completed on this "field scope" will return
the previous ModelScope so the user can continue chaining
operations on the query. All operators at this level (except
NOT, AND, and OR) must be called and provided a value.
Notes:
-
FieldScopeis a sub-part of theQueryEngine, and so is generally referred to simply as theQueryEngineas a whole. This is also the case for QueryEngineBase, and ModelScope, which also make up theQueryEngineas sub-parts, and so are also often referred to simply as "the query engine".
See also: QueryEngineBase, QueryEngine, ModelScope
method FieldScope::_fetchOperatorValue(value: any): any 📜
This method assists in conversion of provided values to conditions.
For example, if you provide a conditional operator (i.e. EQ) with
a model, i.e. Role.where.userID.EQ(User), then this method will
look up the primary key field of the model, and use that to create
a table-join.
If instead you provided a model instance as a value, then the primary
key field of that model will be looked up, and the resulting value from
the instance will be used as the value. For example: Role.where.userID.EQ(userInstance)
is equivalent to Role.where.userID.EQ(userInstance.id).
Aside from these two exceptions (model classes, and model instances) this method will simply return the value it was provided.
This method is called on every value provided to every call to a conditional operator. It can be overloaded if you want to mutate specific values going into conditional operations.
Arguments:
value:anyThe value being provided to a conditional operator.
Return value:
anyIf
valueis a model class, then return a table-join query with that model. Ifvalueis a model instance, then return the value of the model's primary key field. Otherwise, return thevalueprovided.
method FieldScope::EQ(value: any, options?: object): ModelScope 📜
"equals" condition.
This will check equality with the value(s) provided.
If null, true, or false are provided as a value,
then the underlying database driver will convert it to
the proper query. For example, given a SQL-type database
driver, these values would be generated in the query as
"table"."column" IS NULL, "table"."column" IS TRUE, or "table"."column" IS FALSE.
If an array is provided as the value, then this stops being an "equals",
and instead will turn into an IN operator (in SQL-type databases).
For example, given the following query: User.where.id.EQ([ 1, 2, 3, 4 ]),
the resulting SQL query would be ... WHERE "users"."id" IN(1,2,3,4). If a null,
true, or false value is encountered in the array, then the condition
will be grouped, and these values will be split out and handled separately.
For example: User.where.id.EQ([ 1, 2, 3, null, true, false ]) would result
in the following SQL: ("users"."id" IS NULL OR "users"."id" IS TRUE OR "users"."id" IS FALSE OR "users"."id" IN(1,2,3)).
If the array provided is empty, than an exception will be thrown. This is for safety reasons.
For example, if one were to do User.where.id.EQ([]).destroy(), then the result
would be DELETE FROM USERS... truncating your entire table. This is obviously not
at all ideal... so Mythix ORM will throw an exception if an empty array is encountered,
requiring that the user be explicit.
This condition also has two other variants, EQ.ALL, and EQ.ANY to check
equality with a sub-query. For example, a User.where.firstName.EQ.ANY(User.where.age.GTE(18).PROJECT('firstName'))
would generate the following SQL query: ... WHERE "users"."firstName" = ANY(SELECT "users"."firstName" FROM "users" WHERE "users"."age" >= 18),
checking if the users first name matches any of the adult user names in the database.
ALL is identical in how it functions, except it uses the ALL SQL operator instead of the ANY operator.
ANY will check to see if any of the resulting rows match, ALL (for this conditional only) will also check
if any of the resulting rows of the sub-query match. ALL behaves differently than ANY for GT, GTE, LT, or LTE operators.
For EQ and NEQ operators, ANY and ALL behave identically.
If a sub-query is provided as a value, then one of two things will happen:
- If the sub-query has no conditions, then a table-join operation will be the result.
- If the sub-query has conditions, then a sub-query will be executed using an
INoperator. For example, given the following query:User.where.id.EQ(User.where.firstName.EQ('Bob').PROJECT('id')), the sub-query does have conditions (EQ('Bob')), so the following SQL query that would be generated would be... WHERE "users"."id" IN (SELECT "users"."id" FROM "users" WHERE "users"."firstName" = 'Bob'). If instead a sub-query is provided as a value that does not have conditions, such asUser.where.id.EQ(Role.where.userID), then this is specifying a table join, joining on the"roles"table where"users"."id" = "roles"."userID".
Notes:
- Mythix ORM has no
INoperator built into the query engine by design. It is expected that you will useEQorNEQin combination with an array to getINandNOT INfunctionality.Arguments:
value:anyThe value to check against for equality. If an array is provided, then this operator will turn into an
INoperator instead.null,true, andfalsevalues are treated separately.options?:objectOptions to supply to the operation. This is not used by Mythix ORM, but is provided should the user or underlying database driver need options.
Return value: ModelScope
Return a ModelScope to allow the user to continue chaining operations on the query.
method FieldScope::GT(value: any, options?: object): ModelScope 📜
"greater than" condition.
This will check if values in the database are greater than the value provided.
This condition also has two other variants, GT.ALL, and GT.ANY to compare
with a sub-query. For example, a User.where.age.GT.ANY(User.where.age.GTE(18).PROJECT('age'))
would generate the following SQL query: ... WHERE "users"."age" > ANY(SELECT "users"."age" FROM "users" WHERE "users"."age" >= 18),
checking if the users age is greater than any of the adult aged users in the database.
ALL is identical in how it functions, except it uses the ALL SQL operator instead of the ANY operator.
ANY will check to see if any of the resulting rows of the sub-query match the condition. ALL will compare all returned rows
from the sub-query, and check to see if the value provided is greater than the largest value across all
rows of the sub-query.
If a sub-query is provided as a value, then one of two things will happen:
- If the sub-query has no conditions, then a table-join operation will be the result.
- If the sub-query has conditions, then any exception will be thrown.
For example, if a sub-query is provided as a value that does not have conditions, such as
User.where.createdAt.GT(Role.where.createdAt), then this is specifying a table join, joining on the"roles"table where"users"."createdAt" > "roles"."createdAt".
Notes:
- If you want to compare "greater than" on a sub-query, use
GT.ANY, orGT.ALL.Arguments:
value:anyThe value to compare against for a "greater than" operation. Providing an array, a
null, atrue, or afalsevalue will generally throw an exception... unless this means something to the underlying database driver.options?:objectOptions to supply to the operation. This is not used by Mythix ORM, but is provided should the user or underlying database driver need options.
Return value: ModelScope
Return a ModelScope to allow the user to continue chaining operations on the query.
method FieldScope::GTE(value: any, options?: object): ModelScope 📜
"greater than or equals to" condition.
This will check if values in the database are greater than or equal to the value provided.
This condition also has two other variants, GTE.ALL, and GTE.ANY to compare
with a sub-query. For example, a User.where.age.GTE.ANY(User.where.age.GTE(18).PROJECT('age'))
would generate the following SQL query: ... WHERE "users"."age" >= ANY(SELECT "users"."age" FROM "users" WHERE "users"."age" >= 18),
checking if the users age is greater than or equal to any of the adult aged users in the database.
ALL is identical in how it functions, except it uses the ALL SQL operator instead of the ANY operator.
ANY will check to see if any of the resulting rows of the sub-query match the condition. ALL will compare all returned rows
from the sub-query, and check to see if the value provided is greater than or equal to the largest value across all
rows of the sub-query.
If a sub-query is provided as a value, then one of two things will happen:
- If the sub-query has no conditions, then a table-join operation will be the result.
- If the sub-query has conditions, then any exception will be thrown.
For example, if a sub-query is provided as a value that does not have conditions, such as
User.where.createdAt.GTE(Role.where.createdAt), then this is specifying a table join, joining on the"roles"table where"users"."createdAt" >= "roles"."createdAt".
Notes:
- If you want to compare "greater than or equal to" on a sub-query, use
GTE.ANY, orGTE.ALL.Arguments:
value:anyThe value to compare against for a "greater than or equal to" operation. Providing an array, a
null, atrue, or afalsevalue will generally throw an exception... unless this means something to the underlying database driver.options?:objectOptions to supply to the operation. This is not used by Mythix ORM, but is provided should the user or underlying database driver need options.
Return value: ModelScope
Return a ModelScope to allow the user to continue chaining operations on the query.
method FieldScope::LIKE(value: any, options?: object): ModelScope 📜
A "like" wildcard condition.
This will check if values in the database are "like" the value provided, using wildcards and pattern matching.
The LIKE operator in Mythix ORM follows PostgreSQL design, using % for a "zero or more" match, and an _
for a "single character" match. All database engines are required to follow this pattern, even if the underlying
database uses a different syntax. If that is the case, then the underlying database driver is required to behave
correctly by translating the value to the input it expects. In short, the interface here in Mythix ORM is unified,
and it is up to the underlying database driver to carry out the operation correctly.
The "escape character" for this operation is always set to a backslash \ for all database drivers. So if you
need to match against a literal % or _ character, you would do so by using the escape character, i.e. LIKE('100\\%').
Two escape characters are needed, because Javascript also interprets \ as an escape character, so a double backslash
'\\' will "escape" to a single backslash in Javascript.
For all databases, the Mythix ORM LIKE is case-insensitive. For databases like PostgreSQL, a standard Mythix ORM LIKE operation
is actually carried out as an ILIKE operation to follow this convention of case-insensitivity. There is
a boolean options that can be supplied to this operator, named caseSensitive. If supplied, for example
LIKE('%something%', { caseSensitive: true }), then the operation will be case-sensitive... but only if the underlying database
supports case-sensitivity for LIKE... and not all databases do. LIKE operations in most SQL databases are case-insensitive by default.
Arguments:
value:anyThe value to compare against for a "LIKE" operation. Providing any non-string value will likely throw an exception... unless the underlying database driver supports other pattern formats (i.e.
RegExpis supported in Mongo).options?:objectOptions to supply to the operation. The only option supported for this operator is the boolean option
caseSensitive. Iftrue, then the database driver will attempt to carry out a case-sensitive operation. If not supported by the database, then the database driver should throw an exception. If aRegExpvalue is used (for databases that support it), then this option will be ignored.Return value: ModelScope
Return a ModelScope to allow the user to continue chaining operations on the query.
method FieldScope::LT(value: any, options?: object): ModelScope 📜
"less than" condition.
This will check if values in the database are less than the value provided.
This condition also has two other variants, LT.ALL, and LT.ANY to compare
with a sub-query. For example, a User.where.age.LT.ANY(User.where.age.GTE(18).PROJECT('age'))
would generate the following SQL query: ... WHERE "users"."age" < ANY(SELECT "users"."age" FROM "users" WHERE "users"."age" >= 18),
checking if the users age is less than any of the adult aged users in the database.
ALL is identical in how it functions, except it uses the ALL SQL operator instead of the ANY operator.
ANY will check to see if any of the resulting rows of the sub-query match the condition. ALL will compare all returned rows
from the sub-query, and check to see if the value provided is less than the smallest value across all
rows of the sub-query.
If a sub-query is provided as a value, then one of two things will happen:
- If the sub-query has no conditions, then a table-join operation will be the result.
- If the sub-query has conditions, then any exception will be thrown.
For example, if a sub-query is provided as a value that does not have conditions, such as
User.where.createdAt.LT(Role.where.createdAt), then this is specifying a table join, joining on the"roles"table where"users"."createdAt" < "roles"."createdAt".
Notes:
- If you want to compare "less than" on a sub-query, use
LT.ANY, orLT.ALL.Arguments:
value:anyThe value to compare against for a "less than" operation. Providing an array, a
null, atrue, or afalsevalue will generally throw an exception... unless this means something to the underlying database driver.options?:objectOptions to supply to the operation. This is not used by Mythix ORM, but is provided should the user or underlying database driver need options.
Return value: ModelScope
Return a ModelScope to allow the user to continue chaining operations on the query.
method FieldScope::LTE(value: any, options?: object): ModelScope 📜
"less than or equals to" condition.
This will check if values in the database are less than or equal to the value provided.
This condition also has two other variants, LTE.ALL, and LTE.ANY to compare
with a sub-query. For example, a User.where.age.LTE.ANY(User.where.age.GTE(18).PROJECT('age'))
would generate the following SQL query: ... WHERE "users"."age" <= ANY(SELECT "users"."age" FROM "users" WHERE "users"."age" >= 18),
checking if the users age is less than or equal to any of the adult aged users in the database.
ALL is identical in how it functions, except it uses the ALL SQL operator instead of the ANY operator.
ANY will check to see if any of the resulting rows of the sub-query match the condition. ALL will compare all returned rows
from the sub-query, and check to see if the value provided is less than or equal to the smallest value across all
rows of the sub-query.
If a sub-query is provided as a value, then one of two things will happen:
- If the sub-query has no conditions, then a table-join operation will be the result.
- If the sub-query has conditions, then any exception will be thrown.
For example, if a sub-query is provided as a value that does not have conditions, such as
User.where.createdAt.LTE(Role.where.createdAt), then this is specifying a table join, joining on the"roles"table where"users"."createdAt" <= "roles"."createdAt".
Notes:
- If you want to compare "less than or equal to" on a sub-query, use
LTE.ANY, orLTE.ALL.Arguments:
value:anyThe value to compare against for a "less than or equal to" operation. Providing an array, a
null, atrue, or afalsevalue will generally throw an exception... unless this means something to the underlying database driver.options?:objectOptions to supply to the operation. This is not used by Mythix ORM, but is provided should the user or underlying database driver need options.
Return value: ModelScope
Return a ModelScope to allow the user to continue chaining operations on the query.
method FieldScope::NEQ(value: any, options?: object): ModelScope 📜
"not equals" condition.
This will check inverse (not) equality with the value(s) provided.
If null, true, or false are provided as a value,
then the underlying database driver will convert it to
the proper query. For example, given a SQL-type database
driver, these values would be generated in the query as
"table"."column" IS NOT NULL, "table"."column" IS NOT TRUE, or "table"."column" IS NOT FALSE.
If an array is provided as the value, then this stops being a "not equals",
and instead will turn into a NOT IN operator (in SQL-type databases).
For example, given the following query: User.where.id.NEQ([ 1, 2, 3, 4 ]),
the resulting SQL query would be ... WHERE "users"."id" NOT IN(1,2,3,4). If a null,
true, or false value is encountered in the array, then the condition
will be grouped, and these values will be split out and handled separately.
For example: User.where.id.NEQ([ 1, 2, 3, null, true, false ]) would result
in the following SQL: ("users"."id" IS NOT NULL AND "users"."id" IS NOT TRUE AND "users"."id" IS NOT FALSE AND "users"."id" NOT IN(1,2,3)).
If the array provided is empty, than an exception will be thrown. This is for safety reasons.
For example, if one were to do User.where.id.NEQ([]).destroy(), then the result
would be DELETE FROM USERS... truncating your entire table. This is obviously not
at all ideal... so Mythix ORM will throw an exception if an empty array is encountered,
requiring that the user be explicit.
This condition also has two other variants, NEQ.ALL, and NEQ.ANY to check
equality with a sub-query. For example, a User.where.firstName.NEQ.ANY(User.where.age.GTE(18).PROJECT('firstName'))
would generate the following SQL query: ... WHERE "users"."firstName" != ANY(SELECT "users"."firstName" FROM "users" WHERE "users"."age" >= 18),
checking if the users first name does not match any of the adult user names in the database.
ALL is identical in how it functions, except it uses the ALL SQL operator instead of the ANY operator.
ANY will check to see if any of the resulting rows do not match, ALL (for this conditional only) will also check
if any of the resulting rows of the sub-query do not match. ALL behaves differently than ANY for GT, GTE, LT, or LTE operators.
For EQ and NEQ operators, ANY and ALL behave identically.
If a sub-query is provided as a value, then one of two things will happen:
- If the sub-query has no conditions, then a table-join operation will be the result.
- If the sub-query has conditions, then a sub-query will be executed using an
INoperator. For example, given the following query:User.where.id.NEQ(User.where.firstName.EQ('Bob').PROJECT('id')), the sub-query does have conditions (EQ('Bob')), so the following SQL query that would be generated would be... WHERE "users"."id" NOT IN (SELECT "users"."id" FROM "users" WHERE "users"."firstName" = 'Bob'). If instead a sub-query is provided as a value that does not have conditions, such asUser.where.id.NEQ(Role.where.userID), then this is specifying a table join, joining on the"roles"table where"users"."id" != "roles"."userID".
Notes:
- Mythix ORM has no
INoperator built into the query engine by design. It is expected that you will useEQorNEQin combination with an array to getINandNOT INfunctionality.Arguments:
value:anyThe value to check against for inverse (not) equality. If an array is provided, then this operator will turn into an
NOT INoperator instead.null,true, andfalsevalues are treated separately.options?:objectOptions to supply to the operation. This is not used by Mythix ORM, but is provided should the user or underlying database driver need options.
Return value: ModelScope
Return a ModelScope to allow the user to continue chaining operations on the query.
method FieldScope::NOT() 📜
Invert the logic of the following operator.
This method does not need to be called.
Unlike AND and OR operators, this is not a permanent toggle.
As soon as a following operator is encountered, the NOT operation
will be "turned off". NOT will invert any operation, so for example
if you did a User.where.id.NOT.EQ('test') then this is the same as
User.where.id.NEQ('test')--selecting everything NOT EQUAL TO 'test'.
NOT can also be used in combination with EXISTS, ANY, ALL, IN,
etc... inverting any operator following NOT.
Notes:
NOTis only ever used once, and then it is toggled back off. For example, if we did:User.where.id.NOT.EQ('test').AND.lastName.EQ('Smith'), then we would have a query whereid != 'test' AND lastName = 'Smith'. As you can see, theNOTdoesn't apply to the secondlastNameoperator, as it was turned off as soon as the firstEQoperator was encountered on theidfield.
method FieldScope::NOT_LIKE(value: any, options?: object): ModelScope 📜
A "not like" wildcard condition.
This will check if values in the database are "not like" the value provided, using wildcards and pattern matching.
The LIKE operator in Mythix ORM follows PostgreSQL design, using % for a "zero or more" match, and an _
for a "single character" match. All database engines are required to follow this pattern, even if the underlying
database uses a different syntax. If that is the case, then the underlying database driver is required to behave
correctly by translating the value to the input it expects. In short, the interface here in Mythix ORM is unified,
and it is up to the underlying database driver to carry out the operation correctly.
The "escape character" for this operation is always set to a backslash \ for all database drivers. So if you
need to match against a literal % or _ character, you would do so by using the escape character, i.e. NOT LIKE('100\\%').
Two escape characters are needed, because Javascript also interprets \ as an escape character, so a double backslash
'\\' will "escape" to a single backslash in Javascript.
For all databases, the Mythix ORM NOT_LIKE is case-insensitive. For databases like PostgreSQL, a standard Mythix ORM NOT_LIKE operation
is actually carried out as an NOT ILIKE operation to follow this convention of case-insensitivity. There is
a boolean options that can be supplied to this operator, named caseSensitive. If supplied, for example
NOT_LIKE('%something%', { caseSensitive: true }), then the operation will be case-sensitive... but only if the underlying database
supports case-sensitivity for NOT LIKE... and not all databases do. NOT LIKE operations in most SQL databases are case-insensitive by default.
Arguments:
value:anyThe value to compare against for a "NOT LIKE" operation. Providing any non-string value will likely throw an exception... unless the underlying database driver supports other pattern formats (i.e.
RegExpis supported in Mongo).options?:objectOptions to supply to the operation. The only option supported for this operator is the boolean option
caseSensitive. Iftrue, then the database driver will attempt to carry out a case-sensitive operation. If not supported by the database, then the database driver should throw an exception. If aRegExpvalue is used (for databases that support it), then this option will be ignored.Return value: ModelScope
Return a ModelScope to allow the user to continue chaining operations on the query.
- Associations
- Certifications
- Connection Binding
- Home
- Models
- Queries
- TypeScript
- Types Reference
-
namespace AsyncStore
- function getContextStore
- function getContextValue
- function runInContext
- function setContextValue
-
namespace Helpers
- function checkDefaultValueFlags
- function defaultValueFlags
- function getDefaultValueFlags
- property FLAG_LITERAL
- property FLAG_ON_INITIALIZE
- property FLAG_ON_INSERT
- property FLAG_ON_STORE
- property FLAG_ON_UPDATE
- property FLAG_REMOTE
-
namespace MiscUtils
- function collect
- function valueToDateTime
-
namespace ModelUtils
- function parseQualifiedName
-
namespace QueryUtils
- function generateQueryFromFilter
- function mergeFields
- function parseFilterFieldAndOperator
-
class AverageLiteral
- method static isAggregate
- method toString
-
class BigIntType
- property Default
- method castToType
- method constructor
- method isValidValue
- method static getDisplayName
- method toString
-
class BlobType
- method castToType
- method constructor
- method isValidValue
- method static getDisplayName
- method toString
-
class BooleanType
- method castToType
- method isValidValue
- method static getDisplayName
- method toString
-
class CacheKey
- method constructor
- method valueOf
-
class CharType
- method castToType
- method isValidValue
- method static getDisplayName
- method toString
-
class ConnectionBase
- property _isMythixConnection
- property DefaultQueryGenerator
- property dialect
- property Literals
- method _averageLiteralToString
- method _bigintTypeToString
- method _blobTypeToString
- method _booleanTypeToString
- method _charTypeToString
- method _countLiteralToString
- method _datetimeTypeToString
- method _dateTypeToString
- method _distinctLiteralToString
- method _escape
- method _escapeID
- method _fieldLiteralToString
- method _getFromModelCache
- method _integerTypeToString
- method _maxLiteralToString
- method _minLiteralToString
- method _numericTypeToString
- method _realTypeToString
- method _setToModelCache
- method _stringTypeToString
- method _sumLiteralToString
- method _textTypeToString
- method _uuidV1TypeToString
- method _uuidV3TypeToString
- method _uuidV4TypeToString
- method _uuidV5TypeToString
- method _xidTypeToString
- method addColumn
- method addIndex
- method aggregate
- method alterColumn
- method alterTable
- method average
- method buildConnectionContext
- method bulkModelOperation
- method constructor
- method convertDateToDBTime
- method count
- method createContext
- method createQueryGenerator
- method createTable
- method createTables
- method destroy
- method destroyModels
- method dirtyFieldHelper
- method dropColumn
- method dropIndex
- method dropTable
- method dropTables
- method ensureAllModelsAreInstances
- method escape
- method escapeID
- method exists
- method finalizeQuery
- method findModelField
- method getContextValue
- method getDefaultFieldValue
- method getDefaultOrder
- method getField
- method getLockMode
- method getModel
- method getModels
- method getOptions
- method getQueryEngineClass
- method getQueryGenerator
- method insert
- method isStarted
- method literalToString
- method max
- method min
- method parseQualifiedName
- method pluck
- method prepareAllModelsAndSubModelsForOperation
- method prepareAllModelsForOperation
- method query
- method registerModel
- method registerModels
- method runSaveHooks
- method select
- method setContextValue
- method setPersisted
- method setQueryGenerator
- method splitModelAndSubModels
- method stackAssign
- method start
- method static getLiteralClassByName
- method static isConnection
- method static isConnectionClass
- method static Literal
- method stop
- method sum
- method toQueryEngine
- method transaction
- method truncate
- method typeToString
- method update
- method updateAll
- method upsert
-
class CountLiteral
- method static isAggregate
- method static isFieldRequired
- method toString
-
class DateTimeType
- property Default
- method castToType
- method constructor
- method deserialize
- method isValidValue
- method serialize
- method static getDisplayName
- method toString
-
class DateType
- property Default
- method castToType
- method constructor
- method deserialize
- method isValidValue
- method serialize
- method static getDisplayName
- method toString
-
class DistinctLiteral
- method toString
-
class Field
- property _isMythixField
- property allowNull
- property defaultValue
- property fieldName
- property get
- property index
- property primaryKey
- property set
- property type
- property unique
- property validate
- method clone
- method constructor
- method setModel
- method static isField
- method static isFieldClass
-
class FieldLiteral
- method toString
- class FieldScope
-
class ForeignKeyType
- method castToType
- method constructor
- method getOptions
- method getTargetField
- method getTargetFieldName
- method getTargetModel
- method getTargetModelName
- method initialize
- method isValidValue
- method parseOptionsAndCheckForErrors
- method static getDisplayName
- method static isForeignKey
- method toString
-
class IntegerType
- property Default
- method castToType
- method constructor
- method isValidValue
- method static getDisplayName
- method toString
-
class Literal
- method constructor
-
class LiteralBase
- property _isMythixLiteral
- method constructor
- method definitionToField
- method fullyQualifiedNameToDefinition
- method static isAggregate
- method static isLiteral
- method static isLiteralClass
- method static isLiteralType
- method toString
- method valueOf
-
class LiteralFieldBase
- method constructor
- method getField
- method getFullyQualifiedFieldName
- method static isFieldRequired
- method valueOf
-
class MaxLiteral
- method static isAggregate
- method toString
-
class MinLiteral
- method static isAggregate
- method toString
-
class Model
- property _isMythixModel
- method _castFieldValue
- method _constructField
- method _constructFields
- method _constructor
- method _getConnection
- method _getDirtyFields
- method _getFieldValue
- method _initializeFieldData
- method _initializeModelData
- method _setFieldValue
- method clearDirty
- method constructor
- method destroy
- method getAttributes
- method getConnection
- method getDataValue
- method getDirtyFields
- method getOptions
- method hasValidPrimaryKey
- method isDirty
- method isPersisted
- method onAfterCreate
- method onAfterSave
- method onAfterUpdate
- method onBeforeCreate
- method onBeforeSave
- method onBeforeUpdate
- method onValidate
- method reload
- method save
- method setAttributes
- method setDataValue
- method static _getConnection
- method static all
- method static bindConnection
- method static count
- method static create
- method static cursor
- method static defaultScope
- method static finalizeQuery
- method static first
- method static getConcreteFieldCount
- method static getContextValue
- method static getField
- method static getFields
- method static getForeignKeyFieldsMap
- method static getForeignKeysTargetField
- method static getForeignKeysTargetFieldNames
- method static getForeignKeysTargetModelNames
- method static getForeignKeysTargetModels
- method static getModel
- method static getModelContext
- method static getModelName
- method static getPluralModelName
- method static getPrimaryKeyField
- method static getPrimaryKeyFieldName
- method static getQueryEngine
- method static getQueryEngineClass
- method static getSingularName
- method static getSortedFields
- method static getTableName
- method static getUnscopedQueryEngine
- method static getWhereWithConnection
- method static hasField
- method static hasRemoteFieldValues
- method static initializeFields
- method static isForeignKeyTargetModel
- method static isModel
- method static isModelClass
- method static iterateFields
- method static last
- method static mergeFields
- method static pluck
- method static primaryKeyHasRemoteValue
- method static setContextValue
- method static toString
- method static updateModelContext
- method toJSON
- method toString
- method updateDirtyID
-
class ModelScope
- method _getField
- method AND
- method CROSS_JOIN
- method DISTINCT
- method EXISTS
- method Field
- method FULL_JOIN
- method GROUP_BY
- method HAVING
- method INNER_JOIN
- method JOIN
- method LEFT_JOIN
- method LIMIT
- method mergeFields
- method NOT
- method OFFSET
- method OR
- method ORDER
- method PROJECT
- method RIGHT_JOIN
-
class ModelType
- method fieldNameToOperationName
- method initialize
-
class ModelsType
- method fieldNameToOperationName
- method initialize
-
class NumericType
- method castToType
- method constructor
- method isValidValue
- method static getDisplayName
- method toString
-
class ProxyClass
- property APPLY
- property AUTO_CALL
- property AUTO_CALL_CALLED
- property AUTO_CALL_CALLER
- property CALLABLE
- property CONSTRUCT
- property DEFINE_PROPERTY
- property DELETE_PROPERTY
- property GET
- property GET_OWN_PROPERTY_DESCRIPTOR
- property GET_PROTOTYPEOF
- property HAS
- property IS_EXTENSIBLE
- property MISSING
- property OWN_KEYS
- property PREVENT_EXTENSIONS
- property PROXY
- property SELF
- property SET
- property SET_PROTOTYPEOF
- property shouldSkipProxy
- property TARGET
- method ___autoCall
- method ___call
- method constructor
-
class QueryEngine
- method all
- method average
- method constructor
- method count
- method cursor
- method destroy
- method exists
- method finalizeQuery
- method first
- method getFieldScopeClass
- method getModelScopeClass
- method last
- method max
- method MERGE
- method min
- method Model
- method pluck
- method sum
- method toString
- method unscoped
- method updateAll
-
class QueryEngineBase
- method _fetchScope
- method _inheritContext
- method _newFieldScope
- method _newModelScope
- method _newQueryEngineScope
- method _pushOperationOntoStack
- method clone
- method constructor
- method filter
- method getAllModelsUsedInQuery
- method getConnection
- method getFieldScopeClass
- method getModel
- method getModelScopeClass
- method getOperationContext
- method getOperationStack
- method getQueryEngineClass
- method getQueryEngineScope
- method getQueryEngineScopeClass
- method getQueryID
- method isLastOperationCondition
- method isLastOperationControl
- method isModelUsedInQuery
- method logQueryOperations
- method map
- method queryHasConditions
- method queryHasJoins
- method static generateID
- method static getQueryOperationInfo
- method static isQuery
- method static isQueryOperationContext
- method walk
-
class QueryGeneratorBase
- method _averageLiteralToString
- method _countLiteralToString
- method _distinctLiteralToString
- method _fieldLiteralToString
- method _maxLiteralToString
- method _minLiteralToString
- method _sumLiteralToString
- method constructor
- method escape
- method escapeID
- method getConnection
- method getFieldDefaultValue
- method getIndexFieldsFromFieldIndex
- method setConnection
- method stackAssign
- method toConnectionString
-
class RealType
- method castToType
- method constructor
- method isValidValue
- method static getDisplayName
- method toString
-
class SerializedType
- method castToType
- method constructor
- method deserialize
- method getOptions
- method initialize
- method isDirty
- method isValidValue
- method onSetFieldValue
- method serialize
- method static getDisplayName
- method toString
-
class StringType
- method castToType
- method constructor
- method isValidValue
- method static getDisplayName
- method toString
-
class SumLiteral
- method static isAggregate
- method toString
-
class TextType
- method castToType
- method constructor
- method isValidValue
- method static getDisplayName
- method toString
-
class Type
- property _isMythixFieldType
- property clone
- method castToType
- method clone
- method constructor
- method deserialize
- method exposeToModel
- method getDisplayName
- method getField
- method getModel
- method initialize
- method isDirty
- method isForeignKey
- method isRelational
- method isRemote
- method isValidValue
- method isVirtual
- method onSetFieldValue
- method serialize
- method setField
- method setModel
- method static instantiateType
- method static isSameType
- method static isType
- method static isTypeClass
- method static wrapConstructor
- method toConnectionType
-
class UUIDV1Type
- property Default
- method castToType
- method getArgsForUUID
- method isValidValue
- method static getDisplayName
- method validateOptions
-
class UUIDV3Type
- property Default
- method castToType
- method getArgsForUUID
- method isValidValue
- method static getDisplayName
- method validateOptions
-
class UUIDV4Type
- property Default
- method castToType
- method getArgsForUUID
- method isValidValue
- method static getDisplayName
- method validateOptions
-
class UUIDV5Type
- property Default
- method castToType
- method getArgsForUUID
- method isValidValue
- method static getDisplayName
- method validateOptions
-
class XIDType
- property Default
- method castToType
- method isValidValue
- method static getDisplayName