[DBAL-544] Where's the Query::HYDRATE_BOTH constant? Created: 12/Jun/13 Updated: 13/Jun/13 |
|
| Status: | Reopened |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | 2.3.4 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Minor |
| Reporter: | Julio Montoya | Assignee: | Marco Pivetta |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | Query::HYDRATE_BOTH | ||
| Environment: |
Doctrine 2.3.4 DBAL + ORM, using Silex |
||
| Description |
|
In the documentation of the the ResultStatement::fetch() function says that we should use the Query::HYDRATE_* constants but that constant does not exist at least not in 2.3.4. Should I just use PDO::FETCH_BOTH? But if I change the driver to sqlite or whatever is it going to work well? |
| Comments |
| Comment by Marco Pivetta [ 12/Jun/13 ] |
|
Query constants are defined in AbstractQuery (superclass of the Query class) - see https://github.com/doctrine/doctrine2/blob/2.3.4/lib/Doctrine/ORM/AbstractQuery.php#L45-L60 |
| Comment by Julio Montoya [ 12/Jun/13 ] |
|
Hello Marco! Thanks for your fast answer! |
| Comment by Marco Pivetta [ 12/Jun/13 ] |
|
Sorry, confused this one as an ORM issue. |
| Comment by Marco Pivetta [ 12/Jun/13 ] |
|
Checked briefly - you should indeed use the `PDO::FETCH_*` constants. Can you link the document that contains the imprecision? |
| Comment by Julio Montoya [ 12/Jun/13 ] |
|
This is the documentation in the fetch(), fetchAll() functions in DBAL: https://github.com/doctrine/dbal/blob/master/lib/Doctrine/DBAL/Driver/ResultStatement.php#L61 For example, if I want to fetch an Object what should I use 1. or 2. ? I don't know if this have some implications in other drivers. 1. $statement->fetch(\Doctrine\ORM\Query::HYDRATE_OBJECT); An update to the documentation will be fine too: it should be: fetch($fetchMode) instead of fetch($fetchStyle) with a list of options (constants) ... |
| Comment by Julio Montoya [ 13/Jun/13 ] |
|
Working in a PR but first we need to define those constants ... https://github.com/jmontoyaa/dbal/commit/d3a44589cdef6c146592eee2b2bd9f8907dadd1f |
[DBAL-543] Oracle DSN pooled option in wrong place of TNS connect descriptor and missing in Oracle PDO driver Created: 12/Jun/13 Updated: 12/Jun/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | Drivers |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Minor |
| Reporter: | Martijn Evers | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
oci8 driver: wrong TNS connect descriptor |
||
| Description |
|
The DBAL OCI8 driver places the "(SERVER=POOLED)" directive in the wrong place. To illustrate, when the "pooled" option is given to the driver options the following TNS connect descriptor is build:
(
DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=myhost)(PORT=1521)))
(
CONNECT_DATA=(SID=sales)
)
(
SERVER=POOLED
)
)
However the correct TNS connect descriptor is:
(
DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=myhost)(PORT=1521)))
(
CONNECT_DATA=(SID=sales)(SERVER=POOLED)
)
)
Also, the pooled option is missing in the PDO Oracle driver. See this page for more info: http://docs.oracle.com/cd/B28359_01/server.111/b28310/manproc004.htm |
[DBAL-464] MySQL fails when try to drop a primary index with Auto Increment Created: 14/Mar/13 Updated: 14/Mar/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | 2.3.2 |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Minor |
| Reporter: | Julien Rosset | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Linux (ubuntu), PHP 5.3.10, MySQL 5.5.29, Symfony2 |
||
| Description |
|
When an update of schema tries to drop a primary key with "auto increment" property (example : @ORM\GeneratedValue(strategy="AUTO")), the execution will fail : it say : SQLSTATE[42000]: Syntax error or access violation: 1075 Incorrect table definition; there can be only one auto column and it must be defined as a key Apparently, this error occurs because Doctrine try to execute a "drop primary key" on a table and the resulting column of old primary key will be "auto increment". The answer is to remove "auto increment" attribut of primary key column juste before try to drop the primary key itself. |
[DBAL-423] Type GUID = VARCHAR(255) on platforms that don't have a native GUID support Created: 25/Jan/13 Updated: 25/Jan/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Minor |
| Reporter: | amr | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
I'm using MySQL with entities that have GUID ids. Therefore I'm using @ORM\Column(type="guid") for the ORM mapping. As MySQL does not have a native GUID data type, it gets mapped to type="string" with a default length of 255 -> VARCHAR(255). I don't really understand why we don't limit the length to 36, which is the fixed length for GUIDs. You could even think about using CHAR(36) for MySQL. -> see Doctrine\DBAL\Platforms\AbstractPlatform -> getGuidTypeDeclarationSQL() |
[DBAL-422] Wrong VARCHAR default length in SQLServerPlatform Created: 24/Jan/13 Updated: 24/Jan/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | Platforms |
| Affects Version/s: | 2.3.2 |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Minor |
| Reporter: | Steve Müller | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | platform, sqlserver, sqlsrv, varchar | ||
| Description |
|
In SQLServerPlatform the default length for a VARCHAR declaration is set to "255". But according to the SQLServer documentation from Microsoft the default length is "1", if omitted in the declaration. I don't exactly know if the current implementation is intended, otherwise it should be fixed. I would then create an PR if desired. |
[DBAL-411] Schema updater breaks when using backticks in tablenames. Created: 08/Jan/13 Updated: 08/Jan/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | Schema Managers |
| Affects Version/s: | 2.3.2 |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Minor |
| Reporter: | Endaco | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | schematool | ||
| Environment: |
Debian Linux 6.0, PHP 5.3.3, MySQL 5.1.63 |
||
| Description |
|
When using backticks around table-names (for example "`Order`"), the Doctrine schema update tool wants to recreate all foreign keys on every run. This error was introduced in commit cb3ec49cb4401bd1c8be6ba9671f651802586eaf |
[DBAL-406] PostgreSqlSchemaManager::tablesExist() misses schema-qualified table names if they exist in the first schema on the search path Created: 07/Jan/13 Updated: 07/Jan/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | Schema Managers |
| Affects Version/s: | 2.3.1 |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Minor |
| Reporter: | Roger Hunwicks | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | postgresql | ||
| Environment: |
Postgresql 9.1 |
||
| Description |
|
Please see https://github.com/doctrine/migrations/issues/99 for additional background. To reproduce: CREATE SCHEMA test_schema; CREATE TABLE test_schema.test_table (test_column TEXT); Then in Doctrine: Unable to find source-code formatter for language: php. Available languages are: actionscript, html, java, javascript, none, sql, xhtml, xml
$connection->executeUpdate('SET search_path=test_schema;');
$result = $connection->getSchemaManager()->tablesExist(array('test_schema.test_table'));
$result is false when it should be true. The error occurs because PostgreSqlSchemaManager returns the bare table name from getPortableTablesList() if the schema is the first one in the search path. The full explanation is... AbstractSchemaManager::tablesExist() calls $this->getPortableTablesList() before checking if the tables exist. PostgreSqlSchemaManager overrides this in _getPortableTableDefinition() by comparing the schema for the table with the search path for the connection. If the table schema is the first one in the search path, then it returns the bare table name, if it isn't then it returns the schema-qualified table name (i.e. schema.table). tablesExist() does an array_intersect to check that all the tables in the search array exist in the database. If one of the tables in the search array was schema-qualified but also in the first schema on the search path, then you end up checking: array_intersect(array('test_schema.test_table'), array('test_table')) which fails. One way to fix it would be to override tablesExist() in PostgreSqlSchemaManager so that it passes the search array through getPortableTableDefinition() before doing the array_intersect: Unable to find source-code formatter for language: php. Available languages are: actionscript, html, java, javascript, none, sql, xhtml, xml
/**
* Return true if all the given tables exist.
*
* @param array $tableNames
* @return bool
*/
public function tablesExist($tableNames)
{
foreach ($tableNames as $key => $tableName) {
if (strpos($tableName, '.') !== false) {
$tableName = explode('.', $tableName, 2);
$tableNames[$key] = $this->_getPortableTableDefinition(array('schema_name'=>$tableName[0], 'table_name'=>$tableName[1]));
}
}
return parent::tablesExist($tableNames);
}
I'm happy to provide a PR on GitHub if you want. |
[DBAL-400] can't add primary key to mysql table after the table is created Created: 20/Dec/12 Updated: 20/Dec/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | Platforms, Schema Managers |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Minor |
| Reporter: | John Robeson | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
A table in this application had no primary keys. I created an entity When i attempted to add this:
to this:
it generates SQL like this:
and says this:
|
[DBAL-375] Warning "Udefined index dbname" while creating database with oci8 driver Created: 31/Oct/12 Updated: 20/Apr/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | Drivers |
| Affects Version/s: | 2.2.2, 2.3.1 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Minor |
| Reporter: | pavel patrin | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 1 |
| Labels: | dbname, oci8 | ||
| Description |
|
In config specified: doctrine: When i create database (with symfony 2, doctrine:database:create), got that error: ===================================== If i comment "unset($params['dbname'])" in CreateDatabaseDoctrineCommand.php:54 all works fine. |
| Comments |
| Comment by Kris Willis [ 13/Nov/12 ] |
|
I'm experiencing the same issue and your fix appears to work for me too; thanks! |
| Comment by Benjamin Eberlei [ 20/Apr/13 ] |
|
on Oracle CREATE DATABASE is actually a CREATE USER. I am not sure the command should allow to do this. |
[DBAL-373] Indexes and uniqueConstraints has been ignored Created: 26/Oct/12 Updated: 20/Apr/13 |
|
| Status: | Awaiting Feedback |
| Project: | Doctrine DBAL |
| Component/s: | Schema Managers |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Minor |
| Reporter: | Diego Oliveira | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Ubuntu 12.04 with MySQL 5.5 and PHP 5.4 |
||
| Attachments: |
|
| Description |
|
I using the Doctrine Migrations and when I declared my entity with the indexes section, the index name has been ignored. It's like this: indexes: but, the diff tools ignore it and give me this code: and it should be: Notice: I open the same bug on the migrations repository in github and @kimhemsoe told me to open here, since this is generated by DBAL component. |
| Comments |
| Comment by Padraig O'Sullivan [ 11/Dec/12 ] |
|
Did you specify an index name in the indexes property for your entity in your PHP file? In this case, you should have something like:
indexes={@Index(name="IDX_ADDRESS_CITY", columns={"city_id"})}
That should result in the correct SQL being generated. If I modify the above to:
indexes={@Index(columns={"city_id"})}
I also get a migration that has SQL with an auto-generated index name. |
| Comment by Diego Oliveira [ 02/Feb/13 ] |
|
Yes I did specify a name, as you can see: uniqueConstraints:
UNIQUE_STATE_SLUG:
columns: slug
indexes:
IDX_USER_ADDRESS:
columns: address_id
I don't try do to it using annotations because I choose do use yaml to describe my entities. I will take a look on the source code to see if I can fix it and send a PR. |
| Comment by Diego Oliveira [ 02/Apr/13 ] |
|
I already sent this patch to Guilherme Blanco, but I guess he doesn't have time to take a look on it. I guess my solution it's not ideal, but it solve the problem and can be a base to make a better solution. |
| Comment by Benjamin Eberlei [ 20/Apr/13 ] |
|
Diego Oliveira the fix doesn't seem too nice with the additional boolean flag. I would rather like to fix the root cause instead of adding this solution. |
| Comment by Benjamin Eberlei [ 20/Apr/13 ] |
|
The issue is tricky, because we cannot just move the index definitions above, they will need the columns, however that directly generates the index in the schema tool. Maybe if the gather join column methods would check if they can add an index already it would work. |
[DBAL-372] Add SQL parser Created: 25/Oct/12 Updated: 25/Oct/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | New Feature | Priority: | Minor |
| Reporter: | Martin Hasoň | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
It is useful for create sql highlighter. See https://github.com/doctrine/DoctrineBundle/pull/117 or https://github.com/doctrine/DoctrineBundle/issues/107 |
[DBAL-352] Running doctrine:schema:update throws an exception the first time, succeeds the second time. Created: 25/Sep/12 Updated: 25/Sep/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | Schema Managers |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Minor |
| Reporter: | Mark A. Hershberger | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Shell output from my symfony project: [Doctrine\DBAL\DBALException] SQLSTATE[42000]: Syntax error or access violation: 1072 Key column 'account' doesn't exist in table [PDOException] doctrine:schema:update [--complete] [--dump-sql] [--force] [--em[="..."]] $ app/console doctrine:schema:update --force |
| Comments |
| Comment by Christophe Coevoet [ 25/Sep/12 ] |
|
Please run the command with the --dump-sql option instead of --force each time before launching it for real, to be able to see which SQL queries are executed in both cases |
| Comment by Mark A. Hershberger [ 25/Sep/12 ] |
|
I'm not sure how to roll back the changes so that I can reproduce this. |
| Comment by Mark A. Hershberger [ 25/Sep/12 ] |
|
Got it after a little poking around with git. Rolling back to a commit in my code before the one given here didn't didn't show this reproduce this. $ php app/console doctrine:schema:create Creating database schema... $ git checkout d686a39fb664dca540167e1b3e96ea0ffd67bc00 $ php app/console doctrine:schema:update --dump-sql [Doctrine\DBAL\DBALException] SQLSTATE[42000]: Syntax error or access violation: 1072 Key column 'account' doesn't exist in table [PDOException] doctrine:schema:update [--complete] [--dump-sql] [--force] [--em[="..."]] $ php app/console doctrine:schema:update --dump-sql $ php app/console doctrine:schema:update --force $ |
| Comment by Christophe Coevoet [ 25/Sep/12 ] |
|
hmm, the first update seems to miss the addition of the account field, which is done the second time through ALTER TABLE Tn ADD account INT DEFAULT NULL; |
[DBAL-319] Doctrine\DBAL\Types\Type Created: 12/Aug/12 Updated: 12/Aug/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | 2.2.2 |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Minor |
| Reporter: | Till | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
The API could be improved in the next major release:
Etc.. I think the 'type' in the methods is redundant since Type is already the object I am dealing with. I'd also like a remove() method to unregister a type at runtime. Would make testing a little easier and I don't have to check with hasType() etc.. |
| Comments |
| Comment by Marco Pivetta [ 12/Aug/12 ] |
|
I don't think those namings are really important. |
| Comment by Till [ 12/Aug/12 ] |
|
I agree on the static. But I'd also like the API to be cleaned up and the remove method. |
[DBAL-318] getSQLDeclaration Created: 12/Aug/12 Updated: 19/Aug/12 |
|
| Status: | In Progress |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | 2.2.2 |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Minor |
| Reporter: | Till | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
https://github.com/doctrine/dbal/blob/master/lib/Doctrine/DBAL/Types/Type.php#L119-L125 Should define a @return type. Otherwise you have to step through other types to figure this out. |
| Comments |
| Comment by Christophe Coevoet [ 19/Aug/12 ] |
|
Already fixed in master |
[DBAL-297] PDO::PARAM_LOB (value=3) overlaps with PDO::FETCH_NUM (value=3) in OCI8Statement::$fetchModeMap Created: 05/Jul/12 Updated: 05/Jul/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | Drivers |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Minor |
| Reporter: | Charles Gunawan | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
N/A |
||
| Description |
|
Hi, In OCI8Statement, using PDO::FETCH_NUM does not work because the fetch style mapping is overwritten by PDO::PARAM_LOB since the two has the same value (3); protected static $fetchModeMap = array( so PDO::FETCH_NUM is mapped to OCI_B_BLOB |
[DBAL-293] mysql platform can not choose text type column Created: 20/Jun/12 Updated: 08/Sep/12 |
|
| Status: | In Progress |
| Project: | Doctrine DBAL |
| Component/s: | Platforms |
| Affects Version/s: | 2.2.2 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Minor |
| Reporter: | Kiichi Kajiura | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
getVarcharMaxLength() in DBAL/Platforms/MySqlPlatform.php returns 65535; |
| Comments |
| Comment by Benjamin Eberlei [ 05/Jul/12 ] |
|
How do you call the schema/platform code? The code is correct, i think you are using it wrong. |
| Comment by Kiichi Kajiura [ 19/Jul/12 ] |
|
I don't use it directly. |
[DBAL-292] Multiple use of named parameter doesn't work Created: 12/Jun/12 Updated: 23/Jan/13 |
|
| Status: | Awaiting Feedback |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | 2.2.2 |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Minor |
| Reporter: | Jürgen | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
IIS 7.5, MS-SQL-Server 2005, PHP 5.4.0 |
||
| Description |
|
In the example in the documentation http://doctrine-dbal.readthedocs.org/en/2.0.x/reference/data-retrieval-and-manipulation.html#dynamic-parameters-and-prepared-statements there is the following example:
When I try this example using pdo_sqlsrv I get the following error: When I use instead the parameters name1 and name2 the query works as expected. |
| Comments |
| Comment by Alexander [ 07/Jul/12 ] |
|
Are you sure you were using the 2.2.2 version of the ORM? Can you try to reproduce this with the latest master? |
[DBAL-209] fetchAll should include $types array for executeQuery Created: 25/Jan/12 Updated: 29/Dec/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | 2.2.0-RC3 |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Improvement | Priority: | Minor |
| Reporter: | Jamie Taniguchi | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
The fetchAll function should include a $types parameter since it is utilizing executeQuery. |
| Comments |
| Comment by Paweł Nowak [ 29/Dec/12 ] |
|
A proposed fix is available with the following pull request: https://github.com/doctrine/dbal/pull/240 |
[DBAL-180] Documentation states that Doctrine 'decimal' (DecimalType) is mapped to PHP 'double', however, string is returned Created: 11/Nov/11 Updated: 20/Dec/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | 2.1.2 |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Documentation | Priority: | Minor |
| Reporter: | Menno Holtkamp | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
At http://www.doctrine-project.org/docs/orm/2.1/en/reference/basic-mapping.html#doctrine-mapping-types, it is stated that: "decimal: Type that maps an SQL DECIMAL to a PHP double." However, in the commit history, we can see that the casting to a float is removed: https://github.com/doctrine/dbal/commits/master/lib/Doctrine/DBAL/Types/DecimalType.php. Casting to a double is not possible in PHP?This seems to result in a float as well, that is probably why it was removed. I found this out when using PHP's 'is_double()' function (alias of is_float()) to check whether a decimal property was set or not. Suggestion is to either:
In my check function I guess I will use the is_numeric() function. |
| Comments |
| Comment by Roel Harbers [ 19/Mar/12 ] |
|
I would strongly suggest to leave the behaviour as-is, and fix the documentation, because of all the trouble associated with floating point and rounding. People use the DECIMAL type to prevent those issues, so having the ORM convert it to floating point again would be pretty bad. |
| Comment by Patrick McDougle [ 26/Apr/12 ] |
|
I have submitted a pull request on this issue on github. Hopefully the doc will be updated soon so other people don't expect the wrong behavior! https://github.com/doctrine/orm-documentation/pull/93 Mods, this issue can probably be closed. |
| Comment by Oleg Namaka [ 24/May/12 ] |
|
Leaving decimal values as strings creates another issue with unnecessary entity updates because old and new same values have different types: old value is always the string type, the new one - decimal. If an old value is '10.00' as a string and the new value is 10 decimal than Doctrine will issue the UPDATE statement for that entity. This is plainly wrong IMHO. |
| Comment by karlie verkest [ 20/Dec/12 ] |
|
There may be other issues around comparison. I'd rather be comparing numeric types than strings when comparing "decimal" values. |
[DBAL-179] SQLLogger API improvement: log rows affected Created: 10/Nov/11 Updated: 10/Nov/11 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | 2.1.2 |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Improvement | Priority: | Minor |
| Reporter: | Howard Ha | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
A small suggestion. It is useful in our application to log the affected rows in queries in order to make it easier to trace what queries did what. I think a simple way to enable this in the SQLLogger is to modify the stopQuery() interface to receive an option rowcount parameter. |
[DBAL-175] Table comments in Doctrine\DBAL\Schema\Table Object Created: 06/Oct/11 Updated: 17/Oct/11 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | Platforms, Schema Managers |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | New Feature | Priority: | Minor |
| Reporter: | Asmir Mustafic | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Should be useful discover the table comments from database schema. This feature is already available for column comments, but not for table comments |
[DBAL-167] Schema comparator doesn't work properly with columnDefinition's Created: 17/Sep/11 Updated: 16/Jul/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | Drivers, Platforms, Schema Managers |
| Affects Version/s: | 2.0.8, 2.1, 2.1.1, 2.1.2 |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Minor |
| Reporter: | Dmitry Strygin | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 2 |
| Labels: | None | ||
| Description |
|
Schema comparator will mostly always return changed properties on columns for entities defined with columnDefinition even they are identical in the DB. This is due to weak low-lever compatibility of SchemaTool#getCreateSchemaSql() and SchemaTool#getSchemaFromMetadata() – the first one doesn't reconstruct columnDefinition, and the other one never supports 'fixed', 'default', cannot determine, whether it is boolean or integer (ex. TINYINT in the DB), etc... All this results in extremely annoying unnecessary alter-table-change-columns surrounded by dropping and after that re-enabling constrains dependent on those columns. I mean stuff like this: symfony2#app/console doctrine:schema:update --dump-sql ... ALTER TABLE es_hotels DROP FOREIGN KEY FK_527F88EE584598A3F92F3E70; ALTER TABLE es_hotels DROP FOREIGN KEY FK_527F88EE584598A37A3ABE5D; ALTER TABLE es_hotels DROP FOREIGN KEY FK_527F88EE584598A3EE551564; ALTER TABLE es_hotels CHANGE is_active is_active TINYINT(1) NOT NULL DEFAULT '1', CHANGE checksum checksum CHAR(32) DEFAULT NULL; ALTER TABLE es_hotels ADD CONSTRAINT FK_527F88EE584598A3F92F3E70 FOREIGN KEY (operator_id, country_id) REFERENCES es_countries(operator_id, id) ON DELETE CASCADE; ALTER TABLE es_hotels ADD CONSTRAINT FK_527F88EE584598A37A3ABE5D FOREIGN KEY (operator_id, resort_id) REFERENCES es_resorts(operator_id, id) ON DELETE CASCADE; ALTER TABLE es_hotels ADD CONSTRAINT FK_527F88EE584598A3EE551564 FOREIGN KEY (operator_id, subresort_id) REFERENCES es_subresorts(operator_id, id) ON DELETE CASCADE; ... The simple solution would be to fix schema comparator not to signal any changes on columns with columnDefinition properties. I can do this |
| Comments |
| Comment by Roderick Schaefer | We handle IT [ 16/Oct/11 ] |
|
I'm having the same issue on my production webserver, but not on the development webserver. I find that odd. It tries to drop all foreign keys and create them again, although without the CHANGE statement you are referring to, Dmitry. |
| Comment by Benjamin Eberlei [ 09/Jan/12 ] |
|
This maybe fixable by making a hash out of the column definition and saving it into a database comment. The Foreign Key problem maybe because of an old MySQL version 5.0.x |
| Comment by Joe Cai [ 16/Jul/12 ] |
|
@beberlei, sounds good to me. any plan of implementing this? |
[DBAL-150] noSQL Shema Management Created: 21/Aug/11 Updated: 21/Aug/11 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | New Feature | Priority: | Minor |
| Reporter: | Alexey Shatunov | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
all |
||
| Description |
|
I have a few ideas to improve DBAL and ORM management for php: So we get: What do you thinking about it? |
[DBAL-59] Add support for PDO_CUBRID driver when stable Created: 09/Nov/10 Updated: 22/Aug/11 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | New Feature | Priority: | Minor |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 3 |
| Labels: | None | ||
| Description |
|
CUBRID is a relational database focused on high performance web-apps. If the PDO_CUBRID http://pecl.php.net/package/PDO_CUBRID gets stable or betaish anytime we should think about support it. |
| Comments |
| Comment by Esen Sagynov [ 22/Aug/11 ] |
|
Hello, I was recently looking if Doctrene supports CUBRID and found this issue. CUBRID PDO Driver is production-ready now, being used in Yii PHP Framework, for instance. I am CUBRID Project Manager and would like to know if you plan to elevate this issue up so that we could use Doctrene, too. We also plan to include Doctrene into CUBRID Projects site after it gets official support. If you need any assistance, let me know. I will be glad to assist you. |
[DBAL-7] Add support for char fields in the ORM layer Created: 24/Jan/10 Updated: 17/Sep/11 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | Drivers, Platforms, Schema Managers |
| Affects Version/s: | 2.1, 2.1.1, 2.1.2 |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Minor |
| Reporter: | Glen Ainscow | Assignee: | Roman S. Borschel |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
It's not possible to use char fields in the ORM layer. It should be possible to use something like: @Column(type="char") or ... |
| Comments |
| Comment by Roman S. Borschel [ 24/Jan/10 ] |
|
I dont think this is worth including in the main distribution. A char does not save much compared to a varchar (1 Byte?) and you already have 2 options to make a char:
IMHO, just use a string type with the length you want: @Column(type="string", length=2). That becomes a varchar with length 2. |
| Comment by Glen Ainscow [ 24/Jan/10 ] |
|
Ya, it is only 1 extra byte. I'm not sure what to do, I like things as optimized as possible, but I guess I could just use columnDefinition if necessary. |
| Comment by Glen Ainscow [ 24/Jan/10 ] |
|
Actually, I don't really see any reason not to include the char type. |
| Comment by Roman S. Borschel [ 24/Jan/10 ] |
|
How about code bloat? |
| Comment by Glen Ainscow [ 24/Jan/10 ] |
|
How many LoC? |
| Comment by Guilherme Blanco [ 25/Jan/10 ] |
|
@darkangel Around 40. And lots of conditionals, which decreases efficiency of algorithm. I vote for FixedString DBAL DataType. |
| Comment by Roman S. Borschel [ 25/Jan/10 ] |
|
We will not put every special data type someone comes up with in the core library. If we go this route, at the end we have 100+ data types (100+ classes plus a bloated type map) in the core library. There are at least 2 decent options of making a char already if you care about byte counting (see above). "Why not?" is not the question to ask for when it comes to new features. If it were, we would include a whole lot of stuff that is useless for 99% of the users. There must be strong arguments for "Why?" and there are none. If we get 50+ votes on this issue we can talk again. |
| Comment by Glen Ainscow [ 25/Jan/10 ] |
|
Of course not. I didn't know that char was a special data type (especially since it's supported in DC1.2). I will use @columnDefinition. You may close this issue. |
| Comment by Roman S. Borschel [ 25/Jan/10 ] |
|
No need to become defensive. There is still the chance that demand for this particular type gets very high and that can change things. Thats why this stays open. Otherwise the next guy would probably just create a duplicate ticket (not sure whether non-owners can reopen other tickets). |
| Comment by Benjamin Eberlei [ 25/Jan/10 ] |
|
@Glen The problem with Doctrine 1 and having lots of different data-types is that of maintainability. You have to ensure that all the types work on all supported platforms with each and every version. The more datatypes we support by default the more complex will it be for the Doctrine 2 Core to ensure compability and maintainability in this regard. For each new platform that we will support all datatypes have to be supported for example, something that might even become impossible for some databases. Adding a datatype from the user perspective is rather simple though, it has to be tested once and is only about 20-40 LOC. I bet you 100 bucks that soon there will be code-snippets out there on all the different database specific types as a doctrine 2 implemention. |
| Comment by Glen Ainscow [ 25/Jan/10 ] |
|
@Roman @Benamin Thanks. |
| Comment by Dmitry Strygin [ 17/Sep/11 ] |
|
Sorry for party rocking but i think that 'fixed' annotation should be enabled in ORM column definitions. |