- New #913: Add methods
SchemaInterface::hasSchema(),SchemaInterface::hasTable(),SchemaInterface::hasView()(@evil1) - Enh #820: Support
Traversablevalues forAbstractDMLQueryBuilder::batchInsert()method with empty columns (@Tigrov) - Enh #815: Refactor
Query::column()method (@Tigrov) - Enh #816: Allow scalar values for
$columnsparameter ofQuery::select()andQuery::addSelect()methods (@Tigrov) - Enh #806: Non-unique placeholder names inside
Expression::$paramswill be replaced with unique names (@Tigrov) - Enh #806, #964: Build
Expressioninstances insideExpression::$paramswhen build a query usingQueryBuilder(@Tigrov) - Enh #766: Allow
ColumnInterfaceas column type. (@Tigrov) - Bug #828: Fix
floattype when useAbstractCommand::getRawSql()method (@Tigrov) - New #752, #974: Implement
ColumnSchemaInterfaceclasses according to the data type of database table columns for type casting performance (@Tigrov) - Enh #829: Rename
batchInsert()toinsertBatch()inDMLQueryBuilderInterfaceandCommandInterfaceand change parameters from$table, $columns, $rowsto$table, $rows, $columns = [](@Tigrov) - Enh #834: Refactor
AbstractCommand::insertBatch(), addQuoter::getRawTableName()toQuoterInterface(@Tigrov) - Chg #836: Remove
AbstractDMLQueryBuilder::getTypecastValue()method (@Tigrov) - Chg #837: Remove
$tableparameter fromnormalizeColumnNames()andgetNormalizeColumnNames()methods ofAbstractDMLQueryBuilderclass (@Tigrov) - Chg #838: Remove
SchemaInterface::TYPE_JSONBconstant (@Tigrov) - Chg #839: Remove
TableSchemaInterface::compositeForeignKey()method (@Tigrov) - Chg #840: Remove parameter
$withColumnfromQuoterInterface::getTableNameParts()method (@Tigrov) - Enh #840: Remove
Quoter::unquoteParts()method (@Tigrov) - Chg #841: Remove
$rawSqlparameter fromAbstractCommand::internalExecute()method andAbstractPdoCommand::internalExecute()method (@Tigrov) - Enh #842: Allow
ExpressionInterfacefor$aliasparameter ofQueryPartsInterface::withQuery()method (@Tigrov) - Enh #843: Remove
AbstractPdoCommand::logQuery()method (@Tigrov) - Chg #845: Remove
AbstractSchema::normalizeRowKeyCase()method (@Tigrov) - Chg #846: Remove
SchemaInterface::isReadQuery()andAbstractSchema::isReadQuery()methods (@Tigrov) - Chg #847: Remove
SchemaInterface::getRawTableName()andAbstractSchema::getRawTableName()methods (@Tigrov) - Enh #852: Add method chaining for column classes (@Tigrov)
- New #855: Add array and JSON overlaps conditions (@Tigrov)
- New #860: Add
bitabstract type (@Tigrov) - Enh #862: Refactor PHP type of
ColumnSchemaInterfaceinstances (@Tigrov) - Enh #865: Raise minimum PHP version to
^8.1with minor refactoring (@Tigrov, @vjik) - Enh #798: Allow
QueryInterface::one()andQueryInterface::all()to return objects (@darkdef, @Tigrov) - Enh #872: Use
#[\SensitiveParameter]attribute to mark sensitive parameters (@heap-s) - New #864, #897, #898, #950: Realize column factory (@Tigrov)
- Enh #875: Ignore "Packets out of order..." warnings in
AbstractPdoCommand::internalExecute()method (@Tigrov) - Enh #877: Separate column type constants (@Tigrov)
- New #878: Realize
ColumnBuilderclass (@Tigrov) - New #773: Add parameters
$ifExistsand$cascadetoCommandInterface::dropTable()andDDLQueryBuilderInterface::dropTable()methods (@vjik) - New #878, #900, #914, #922: Implement
ColumnDefinitionParserclass (@Tigrov) - Enh #881: Refactor
ColumnSchemaInterfaceandAbstractColumnSchema(@Tigrov) - New #882: Move
ArrayColumnSchemaandStructuredColumnSchemaclasses fromdb-pgsqlpackage (@Tigrov) - New #883, #901, #922: Add
ColumnDefinitionBuilderclass andQueryBuilderInterface::buildColumnDefinition()method (@Tigrov) - Enh #885: Refactor
AbstractDsnclass (@Tigrov) - Chg #889: Update
AbstractDMLQueryBuilder::insertBatch()method (@Tigrov) - Enh #890: Add properties of
AbstractColumnSchemaclass to constructor (@Tigrov) - New #899: Add
ColumnSchemaInterface::hasDefaultValue()andColumnSchemaInterface::null()methods (@Tigrov) - New #902, #983: Add
QueryBuilderInterface::prepareParam()andQueryBuilderInterface::prepareValue()methods (@Tigrov) - Enh #902: Refactor
Quoter::quoteValue()method (@Tigrov) - New #906: Add
ServerInfoInterfaceand its implementation (@Tigrov) - Enh #905: Use
AbstractColumnDefinitionBuilderto generate table column SQL representation (@Tigrov) - Enh #915: Remove
ColumnInterface(@Tigrov) - Enh #917: Rename
ColumnSchemaInterfacetoColumnInterface(@Tigrov) - Enh #919: Replace
name()with immutablewithName()method inColumnInterfaceinterface (@Tigrov) - Enh #921: Move
DataTypeclass toYiisoft\Db\Constantnamespace (@Tigrov) - Enh #926, #954: Refactor
DbArrayHelper(@Tigrov) - Enh #920: Move index constants to the appropriate DBMS driver's
IndexTypeandIndexMethodclasses (@Tigrov) - New #928: Add
ReferentialActionclass with constants of possible values of referential actions (@Tigrov) - Enh #929: Refactor array, structured and JSON column type expressions and expression builders (@Tigrov)
- Enh #929: Implement lazy arrays for array, structured and JSON column types (@Tigrov)
- Bug #933: Explicitly mark nullable parameters (@vjik)
- Chg #911: Change supported PHP versions to
8.1 - 8.4(@Tigrov) - Enh #911, #940: Minor refactoring (@Tigrov)
- Chg #938, #936, #937: Remove
ext-json,ext-ctype,ext-mbstringfromrequiresection ofcomposer.json(@Tigrov) - Chg #936: Remove
hasLimit()andhasOffset()methods fromAbstractDQLQueryBuilderclass (@Tigrov) - Chg #937: Remove
baseName()andpascalCaseToId()methods fromDbStringHelper(@Tigrov) - Enh #940: Rename
quoter()method togetQuoter()inQueryBuilderInterfaceandAbstractQueryBuilderclass (@Tigrov) - Enh #940: Change constructor parameters in
AbstractQueryBuilderclass (@Tigrov) - New #939: Add
caseSensitiveoption to like condition (@vjik) - New #942: Allow PHP backed enums as values (@Tigrov)
- Enh #943: Add
getCacheKey()andgetCacheTag()methods toAbstractPdoSchemaclass (@Tigrov) - Enh #944: Added
setWhere()as a forced method to overwritewhere()(@lav45) - Enh #925, #951: Add callback to
Query::all()andQuery::one()methods (@Tigrov, @vjik) - New #954: Add
DbArrayHelper::arrange()method (@Tigrov) - Chg #956: Remove nullable from
PdoConnectionInterface::getActivePdo()result (@vjik) - New #949: Add option for typecasting when insert or update values (@Tigrov)
- New #945: Add option for typecasting values retrieved from DB (@Tigrov)
- Enh #941: Add the ability for user-defined type casting (@Tigrov)
- Enh #961: Added
setHaving()as a forced method to overwritehaving()(@lav45) - Enh #822: Refactor data readers (@Tigrov)
- Enh #963: Make
Query::andHaving()similar toQuery::andWhere()(@Tigrov) - New #964: Add
QueryBuilderInterface::replacePlaceholders()method (@Tigrov) - Enh #879: Rename
getLastInsertID()method inConnectionInterfacetogetLastInsertId()(@vjik) - New #967: Add
FORclause to query (@vjik) - Chg #972: Change in query "distinct" flag type from
bool|nulltobool(@vjik) - New #973, #976: Add
CommandInterface::upsertReturningPks()method (@Tigrov) - New #973, #976: Add
upsertReturning()method toCommandInterfaceandDMLQueryBuilderInterface(@Tigrov) - New #968: Add
DateTimeColumncolumn class (@Tigrov) - Bug #978: Fix memory leaking in
Command::exists()method (@Tigrov) - Chg #980: Add constructor with DB connection to
AbstractCommand(@vjik) - Enh #979: Allow
ExpressionInterfacefor column definitions when create table (@Tigrov) - Enh #982: Reduce binding parameters (@Tigrov)
- New #984: Add
createQuery()andselect()methods toConnectionInterface(@Tigrov) - Chg #985: Rename
insertWithReturningPks()toinsertReturningPks()inCommandInterfaceandDMLQueryBuilderInterface(@Tigrov)
- Enh #778: Deprecate unnecessary argument
$rawSqlofAbstractCommand::internalExecute()(@Tigrov) - Enh #779: Specify result type of
QueryInterface::all(),CommandInterface::queryAll()andDbArrayHelper::populate()methods toarray[](@vjik) - Enh #779: Specify populate closure type in
BatchQueryResultInterface(@vjik) - Enh #781: Skip calling
CommandInterface::getRawSql()if nologgerorprofileris set (@Tigrov) - Enh #784: Specify result type of
ConstraintSchemaInterface::getTableIndexes()method toIndexConstraint[](@vjik) - Enh #784: Remove unused code in
AbstractSchema::getTableIndexes()(@vjik) - Enh #785: Refactor
AbstractCommand::getRawSql()(@Tigrov) - Enh #786: Refactor
AbstractSchema::getDataType()(@Tigrov) - Enh #789: Remove unnecessary type casting to array in
AbstractDMLQueryBuilder::getTableUniqueColumnNames()(@Tigrov) - Enh #794: Add message type to log context (@darkdef)
- Enh #795: Allow to use
DMLQueryBuilderInterface::batchInsert()method with empty columns (@Tigrov) - Enh #801: Deprecate
AbstractSchema::normalizeRowKeyCase()method (@Tigrov) - Enh #801: Deprecate
SchemaInterface::getRawTableName()and addQuoter::getRawTableName()method (@Tigrov) - Enh #801: Deprecate
SchemaInterface::isReadQuery()and addDbStringHelper::isReadQuery()method (@Tigrov) - Enh #801: Remove unnecessary symbol
\\fromrtrim()function insideDbStringHelper::baseName()method (@Tigrov) - Enh #802: Minor refactoring of
SchemaCache,AbstractPdoCommandandAbstractDDLQueryBuilder(@Tigrov) - Enh #809: Add psalm type for parameters to bind to the SQL statement (@vjik)
- Enh #810: Add more specific psalm type for
QueryFunctionsInterface::count()result (@vjik) - Bug #777: Fix
Query::count()when it returns an incorrect value if the result is greater thanPHP_INT_MAX(@Tigrov) - Bug #785: Fix bug of
AbstractCommand::getRawSql()when a param value isStringableobject (@Tigrov) - Bug #788: Fix casting integer to string in
AbstractCommand::getRawSql()(@Tigrov) - Bug #801: Fix bug with
Quoter::$tablePrefixwhen changeAbstractConnection::$tablePrefixproperty (@Tigrov)
- Chg #755: Deprecate
TableSchemaInterface::compositeForeignKey()(@Tigrov) - Chg #765: Deprecate
SchemaInterface::TYPE_JSONB(@Tigrov) - Enh #746: Enhanced documentation of
batchInsert()andupdate()methods ofDMLQueryBuilderInterfaceinterface (@Tigrov) - Enh #756: Refactor
Quoter(@Tigrov) - Enh #770: Move methods from concrete
Commandclass toAbstractPdoCommandclass (@Tigrov) - Bug #746: Typecast values in
AbstractDMLQueryBuilder::batchInsert()if column names with table name and brackets (@Tigrov) - Bug #746, #61: Typecast values in
AbstractDMLQueryBuilder::batchInsert()if values with string keys (@Tigrov) - Bug #751: Fix collected debug actions (@xepozz)
- Bug #756: Fix
Quoter::quoteTableName()for sub-query with alias (@Tigrov) - Bug #761: Quote aliases of CTE in
WITHqueries (@Tigrov) - Bug #769, #61: Fix
AbstractDMLQueryBuilder::batchInsert()for values as associative arrays (@Tigrov)
- New #617: Add debug collector for
yiisoft/yii-debug(@xepozz) - Enh #617, #733: Add specific psalm annotation of
$closureparameter inConnectionInterface::transaction()method (@xepozz, @vjik) - Bug #741: Fix
alterColumn()method to acceptColumnInterface::classin argument$type(@terabytesoftw)
- Chg #722: Remove legacy array syntax for typecast. Use
Paraminstead (@terabytesoftw) - Chg #724: Typecast refactoring (@Tigrov)
- Chg #728: Refactor
AbstractSchema::getColumnPhpType()(@Tigrov)
- Initial release.