- Enh #820: Support
Traversable
values forAbstractDMLQueryBuilder::batchInsert()
method with empty columns (@Tigrov) - Enh #815: Refactor
Query::column()
method (@Tigrov) - Enh #816: Allow scalar values for
$columns
parameter ofQuery::select()
andQuery::addSelect()
methods (@Tigrov) - Enh #806: Non-unique placeholder names inside
Expression::$params
will be replaced with unique names (@Tigrov) - Enh #806: Build
Expression
instances insideExpression::$params
when build a query usingQueryBuilder
(@Tigrov) - Enh #766: Allow
ColumnInterface
as column type. (@Tigrov) - Bug #828: Fix
float
type when useAbstractCommand::getRawSql()
method (@Tigrov) - New #752: Implement
ColumnSchemaInterface
classes according to the data type of database table columns for type casting performance (@Tigrov) - Enh #829: Rename
batchInsert()
toinsertBatch()
inDMLQueryBuilderInterface
andCommandInterface
and change parameters from$table, $columns, $rows
to$table, $rows, $columns = []
(@Tigrov) - Enh #834: Refactor
AbstractCommand::insertBatch()
, addQuoter::getRawTableName()
toQuoterInterface
(@Tigrov) - Chg #836: Remove
AbstractDMLQueryBuilder::getTypecastValue()
method (@Tigrov) - Chg #837: Remove
$table
parameter fromnormalizeColumnNames()
andgetNormalizeColumnNames()
methods ofAbstractDMLQueryBuilder
class (@Tigrov) - Chg #838: Remove
SchemaInterface::TYPE_JSONB
constant (@Tigrov) - Chg #839: Remove
TableSchemaInterface::compositeForeignKey()
method (@Tigrov) - Chg #840: Remove parameter
$withColumn
fromQuoterInterface::getTableNameParts()
method (@Tigrov) - Enh #840: Remove
Quoter::unquoteParts()
method (@Tigrov) - Chg #841: Remove
$rawSql
parameter fromAbstractCommand::internalExecute()
method andAbstractPdoCommand::internalExecute()
method (@Tigrov) - Enh #842: Allow
ExpressionInterface
for$alias
parameter 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
bit
abstract type (@Tigrov) - Enh #862: Refactor PHP type of
ColumnSchemaInterface
instances (@Tigrov) - Enh #865: Raise minimum PHP version to
^8.1
with 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: 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
ColumnBuilder
class (@Tigrov) - New #878, #900: Realize
ColumnDefinitionParser
class (@Tigrov) - Enh #881: Refactor
ColumnSchemaInterface
andAbstractColumnSchema
(@Tigrov) - New #882: Move
ArrayColumnSchema
andStructuredColumnSchema
classes fromdb-pgsql
package (@Tigrov) - New #883, #901: Add
ColumnDefinitionBuilder
class andQueryBuilderInterface::buildColumnDefinition()
method (@Tigrov) - Enh #885: Refactor
AbstractDsn
class (@Tigrov) - Chg #889: Update
AbstractDMLQueryBuilder::insertBatch()
method (@Tigrov) - Enh #890: Add properties of
AbstractColumnSchema
class to constructor (@Tigrov) - New #899: Add
ColumnSchemaInterface::hasDefaultValue()
andColumnSchemaInterface::null()
methods (@Tigrov) - New #902: Add
QueryBuilderInterface::prepareParam()
andQueryBuilderInterface::prepareValue()
methods (@Tigrov) - Enh #902: Refactor
Quoter::quoteValue()
method (@Tigrov) - New #906: Add
ServerInfoInterface
and its implementation (@Tigrov) - Enh #905: Use
AbstractColumnDefinitionBuilder
to generate table column SQL representation (@Tigrov)
- Enh #778: Deprecate unnecessary argument
$rawSql
ofAbstractCommand::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 nologger
orprofiler
is 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
,AbstractPdoCommand
andAbstractDDLQueryBuilder
(@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 isStringable
object (@Tigrov) - Bug #788: Fix casting integer to string in
AbstractCommand::getRawSql()
(@Tigrov) - Bug #801: Fix bug with
Quoter::$tablePrefix
when changeAbstractConnection::$tablePrefix
property (@Tigrov)
- Chg #755: Deprecate
TableSchemaInterface::compositeForeignKey()
(@Tigrov) - Chg #765: Deprecate
SchemaInterface::TYPE_JSONB
(@Tigrov) - Enh #746: Enhanced documentation of
batchInsert()
andupdate()
methods ofDMLQueryBuilderInterface
interface (@Tigrov) - Enh #756: Refactor
Quoter
(@Tigrov) - Enh #770: Move methods from concrete
Command
class toAbstractPdoCommand
class (@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
WITH
queries (@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
$closure
parameter inConnectionInterface::transaction()
method (@xepozz, @vjik) - Bug #741: Fix
alterColumn()
method to acceptColumnInterface::class
in argument$type
(@terabytesoftw)
- Chg #722: Remove legacy array syntax for typecast. Use
Param
instead (@terabytesoftw) - Chg #724: Typecast refactoring (@Tigrov)
- Chg #728: Refactor
AbstractSchema::getColumnPhpType()
(@Tigrov)
- Initial release.