Releases: yiisoft/db
Releases · yiisoft/db
Version 2.0.0
- New #1013: Add
StringableStreamclass to cast binary column values tostringusing(string) $value(@Tigrov) - New #1015: Add mode parameter to
Likecondition (@vjik) - New #1020: Support column's collation (@Tigrov)
- New #1024: Add
ColumnNameandValueexpressions (@vjik) - New #1029, #1048, #1069: Add functions as expressions (@Tigrov)
- New #1033: Add
AllandNoneconditions (@vjik) - New #1034: Add
ConnectionInterface::getColumnBuilderClass()method (@Tigrov) - New #1040, #1043: Add
DateTimeValueclass (@vjik, @Tigrov) - New #1057: Add
CompositeExpressionclass (@vjik) - New #1062:
Stringablevalue support inLikeandNotLikeconditions (@vjik) - New #1063: Add
indexBy()method toBatchQueryResultInterfaceandBatchQueryResultclass (@vjik) - New #1074: Add
ConnectionProviderclass (@Tigrov) - New #1076: Allow to use expressions as table name or condition in "join" query methods (@vjik)
- New #1082: Add
WithQueryclass that holds the information for a single "WITH" query clause (@vjik) - New #1082: Add
QueryPartsInterface::addWithQuery()method (@vjik) - New #1107: Add abstract enumeration column type (@vjik)
- New #1121: Add
yiisoft/db.schema-cache.enabledparameter to disable schema caching via configuration (@samdark) - New #1124: Add source of column information (@Tigrov)
- New #752, #974, #1013: Implement
ColumnInterfaceclasses according to the data type of database table columns
for type casting performance (@Tigrov) - New #773: Add parameters
$ifExistsand$cascadetoCommandInterface::dropTable()and
DDLQueryBuilderInterface::dropTable()methods (@vjik) - New #855: Add array and JSON overlaps conditions (@Tigrov)
- New #860: Add
bitabstract type (@Tigrov) - New #864, #897, #898, #950, #1009, #1125: Realize column factory (@Tigrov, @vjik)
- New #878, #1095: Realize
ColumnBuilderclass (@Tigrov, @vjik) - New #878, #900, #914, #922: Implement
ColumnDefinitionParserclass (@Tigrov) - New #882: Move
ArrayColumnSchemaandStructuredColumnSchemaclasses fromdb-pgsqlpackage (@Tigrov) - New #883, #901, #922: Add
ColumnDefinitionBuilderclass andQueryBuilderInterface::buildColumnDefinition()method (@Tigrov) - New #899: Add
ColumnSchemaInterface::hasDefaultValue()andColumnSchemaInterface::null()methods (@Tigrov) - New #902, #982, #983, #995: Add
prepareParam()andprepareValue()methods inQueryBuilderInterface(@Tigrov) - New #906: Add
ServerInfoInterfaceand its implementation (@Tigrov) - New #913: Add methods
SchemaInterface::hasSchema(),SchemaInterface::hasTable(),SchemaInterface::hasView()(@evil1) - New #928: Add
ReferentialActionclass with constants of possible values of referential actions (@Tigrov) - New #939: Add
caseSensitiveoption to like condition (@vjik) - New #942: Allow PHP backed enums as values (@Tigrov)
- New #945: Add option for typecasting values retrieved from DB (@Tigrov)
- New #949: Add option for typecasting when insert or update values (@Tigrov)
- New #954: Add
DbArrayHelper::arrange()method (@Tigrov) - New #964: Add
QueryBuilderInterface::replacePlaceholders()method (@Tigrov) - New #967, #1059: Add
FORclause to query (@vjik) - New #968: Add
DateTimeColumncolumn class (@Tigrov) - New #973, #976, #1081: Add
CommandInterface::upsertReturningPks()method (@Tigrov, @vjik) - New #973, #976, #1081: Add
upsertReturning()method toCommandInterfaceandDMLQueryBuilderInterface(@Tigrov, @vjik) - New #984: Add
createQuery()andselect()methods toConnectionInterface(@Tigrov) - New #988, #1053, #1067: Add
CaseXandCaseXBuilderto buildCASE-WHEN-THEN-ELSESQL expressions (@Tigrov) - Chg #1000, #1007, #1027: Add compare conditions:
Equals,NotEquals,GreaterThan,GreaterThanOrEqual,
LessThanandLessThanOrEqual. RemoveHashcondition in favorEqualsandInusage (@vjik) - Chg #1001: Remove
ParamInterface(@vjik) - Chg #1001: Add public properties
$typeand$valuetoParamclass instead ofgetType()andgetValue()methods that were removed (@vjik) - Chg #1002: Remove specific condition interfaces (@vjik)
- Chg #1003, #1006: Refactor namespace of condition objects and use promoted properties instead of getters (@vjik)
- Chg #1014: Replace
getEscapingReplacements()/setEscapingReplacements()methods withescapeconstructor parameter
inLikecondition (@vjik) - Chg #1017: Split
Betweencondition toBetweenandNotBetween(@vjik) - Chg #1018, #1024: Remove
BetweenColumnsin favorBetweenwithColumnNameusage (@vjik) - Chg #1019: Split
Incondition toInandNotIn(@vjik) - Chg #1021: Move conjunction type from operator string value to
Likecondition constructor parameter (@vjik) - Chg #1023: Split
Likecondition toLikeandNotLike(@vjik) - Chg #1025: Move expression builders to
Yiisoft\Db\Expression\Buildernamespace (@vjik) - Chg #1026: Remove
precision(),getPrecision()andgetPhpType()methods fromColumnInterface(@vjik) - Chg #1028: Split
Existscondition toExistsandNotExists(@vjik) - Chg #1037: Change result type of
QueryBuilderInterface::getExpressionBuilder()and
DQLQueryBuilderInterface::getExpressionBuilder()methods toExpressionBuilderInterface(@vjik) - Chg #1052: Rearrange expression namespaces (@Tigrov)
- Chg #1054: Rename
ArrayExpressiontoArrayValue,JsonExpressiontoJsonValue,
StructuredExpressiontoStructuredValue(@Tigrov) - Chg #1056: Remove unused exceptions (@Tigrov)
- Chg #1058: Refactor
Expressionclass: declare$expressionand$paramsas public readonly properties, remove
getParams()method (@vjik) - Chg #1063:
AbstractConnection::createBatchQueryResult()passes parametersindexByandresultCallbackto
BatchQueryResultbeing created (@vjik) - Chg #1070: Change "IndexBy" closure signature to
Closure(array|object):int|string(@vjik) - Chg #1075: Rename
Query::$joinproperty to$joins(@vjik) - Chg #1078: Change type of
$tablestoarrayinDQLQueryBuilderInterface::buildFrom()(@vjik) - Chg #1082:
QueryPartsInterface::withQuery()method replace "WITH" clause instead of adding before (@vjik) - Chg #1083: Add
pdoStatementExecute()protected method toAbstractPdoCommandclass and cleanupinternalExecute()
method (@vjik) - Chg #1091: Remove
SchemaInterface::findUniqueIndexes()method (@vjik) - Chg #1091: Remove
SchemaInterface::INDEX_*andSchemaInterface::TYPE_*constants (@vjik) - Chg #1103: Remove
AbstractCommand::refreshTableSchema()method (@vjik) - Chg #1106: Remove parameters from
PdoConnectionInterface::getActivePdo()method (@vjik) - 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) - Chg #841: Remove
$rawSqlparameter fromAbstractCommand::internalExecute()method
andAbstractPdoCommand::internalExecute()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) - Chg #889: Update
AbstractDMLQueryBuilder::insertBatch()method (@Tigrov) - Chg #911, #1113: Change supported PHP versions to
8.1 - 8.5(@Tigrov, @vjik) - Chg #936: Remove
hasLimit()andhasOffset()methods fromAbstractDQLQueryBuilderclass (@Tigrov) - Chg #937: Remove
baseName()andpascalCaseToId()methods fromDbStringHelper(@Tigrov) - Chg #938, #936, #937: Remove
ext-json,ext-ctype,ext-mbstringfromrequiresection ofcomposer.json(@Tigrov) - Chg #956: Remove nullable from
PdoConnectionInterface::getActivePdo()result (@vjik) - Chg #972: Change in query "distinct" flag type from
bool|nulltobool(@vjik) - Chg #980: Add constructor with DB connection to
AbstractCommand(@vjik) - Chg #985: Rename
insertWithReturningPks()toinsertReturningPks()inCommandInterfaceandDMLQueryBuilderInterface(@Tigrov) - Chg #990: Delete
Yiisoft\Db\Exception\InvalidArgumentExceptionandYiisoft\Db\Exception\InvalidParamExceptionand
use\InvalidArgumentExceptioninstead (@DikoIbragimov) - Chg #998: Add
yiisoft/db-implementationvirtual package as dependency (@vjik) - Chg #999: Remove
requireTransaction()method and$isolationLevelproperty fromAbstractCommand(@vjik) - Enh #1010: Improve
Quoter::getTableNameParts()method (@Tigrov) - Enh #1011: Refactor
TableSchemaInterfaceandAbstractSchema(@Tigrov) - Enh #1011: Remove
AbstractTableSchemaand addTableSchemainstead (@Tigrov) - Enh #1016: Refactor
AbstractDMLQueryBuilder::getTableUniqueColumnNames()method (@Tigrov) - Enh #1031: Optimize SQL generation for
Notcondition (@vjik) - Enh #1038: Add ability to pass
FROMclause toCommandInterface::update()andDMLQueryBuilderInterface::update()methods (@rustamwin) - Enh #1038: Allow passing
ExpressionInterfaceas condition inCommandInterface::update()andDMLQueryBuilderInterface::update()methods (@rustamwin) - Enh #1042, #1084: Refactor
AbstractDMLQueryBuilderclass toupsert()method (@Tigrov) - Enh #1045: Support multi-operand functions in
CommandInterface::upsert()andDMLQueryBuilderInterface::upsert()
methods (@Tigrov) - Enh #1049: Refactor
AbstractDQLQueryBuilder::buildSelect()to fix possible bugs (@Tigrov) - Enh #1051: Refactor
Quoterclass (@Tigrov) - Enh #1064: Remove duplicate code in favor of the `DbArrayHelp...
Version 1.3.0
- Enh #778: Deprecate unnecessary argument
$rawSqlofAbstractCommand::internalExecute()(@Tigrov) - Enh #779: Specify result type of
QueryInterface::all(),CommandInterface::queryAll()and
DbArrayHelper::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)
Version 1.2.0
- 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)
Version 1.1.1
Version 1.1.0
Version 1.0.0
- Initial release.