[DBAL-81] Add support for auto-commit = NO accross databases Created: 02/Jan/11 Updated: 20/Sep/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 2.4 |
| Type: | Improvement | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Currently all databases are running in AUTO-COMMIT = Yes Mode. This means that you have to explicitly open a transaction to be able to use transactional features. There should be support to run in auto-commit = no mode, which means after connect and after each commit a new transaction is opened automatically. |
[DBAL-76] PostgreSQL Platform list* SQL code is in need of serious love Created: 12/Dec/10 Updated: 08/Jun/11 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
The Postgres Schema code is very hard to read and inconsistent across the board. Some use pg_class, some pg_tables. Namespaces /Schema are not always properly checked for. There should be a really unified way on how to approach schema query issues. |
| Comments |
| Comment by Denis [ 08/Jun/11 ] |
|
I'm not sure what this ticket is about exactly, but... "Namespaces /Schema are not always properly checked for." Usually, one would not want to specify them and set the search_path instead. Or are you meaning the schema analysis queries used internally? (If so, yes, it kind of sucks in that case, but note that there are a bunch of *_is_visible() methods, e.g. pg_catalog.pg_table_is_visible(rel.oid) which will strip out invisible schemas directly. This may be simpler than injecting schema references all over the place in that it also processes permissions.) Also, note that PG has a whole bunch of pg_catalog views, which are available in the information_schema. |
Length of a string column cannot exceed 255
(DBAL-62)
|
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | 2.0.0-RC1-RC3 |
| Fix Version/s: | 2.4 |
| Type: | Sub-task | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
In the future we would probably allow arbitrary large sizes here and switch to a CLOB definition automatically if the specifed string length is larger than max length. |
[DBAL-163] Upsert support in DBAL Created: 10/Sep/11 Updated: 20/Sep/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 2.4 |
| Security Level: | All |
| Type: | Improvement | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Upsert support in DBAL (replace, insert into usw..) |
| Comments |
| Comment by Miha Vrhovnik [ 11/Jun/12 ] |
|
FYI: http://www.depesz.com/2012/06/10/why-is-upsert-so-complicated/ |
[DBAL-155] Github-PR-46 by gnomii: 2.1.x PgSql - Same problem with the master 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: | Improvement | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of {username}: Url: https://github.com/doctrine/dbal/pull/46 Message: Hi, Sorry, I was not able to merge the branchs with the master Best regards, |
[DBAL-153] Github-PR-48 by phekmat: Added a regression test case for recently fixed PostgreSQLSchemaManager bug Created: 21/Aug/11 Updated: 24/Mar/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of {username}: Url: https://github.com/doctrine/dbal/pull/48 Message: Regression test for the following change: https://github.com/doctrine/dbal/commit/2434d95aab231273eea8fb555155e9e9c195bcc9 |
| Comments |
| Comment by Benjamin Eberlei [ 24/Mar/12 ] |
|
A related Github Pull-Request [GH-48] was |
| Comment by Benjamin Eberlei [ 24/Mar/12 ] |
|
A related Github Pull-Request [GH-48] was |
| Comment by Benjamin Eberlei [ 24/Mar/12 ] |
|
A related Github Pull-Request [GH-48] was |
[DBAL-156] Github-PR-44 by richardfullmer: [PostgresPlatform] Fixing change detection when a default is removed 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: | Improvement | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of {username}: Url: https://github.com/doctrine/dbal/pull/44 Message: Change detection when the default value is removed from a field is presently broken and produces invalid SQL. This patch checks to see if a new default value actually exists before adding the SET DEFAULT ''; Uses DROP DEFAULT when the new default value does not exist |
[DBAL-154] Github-PR-47 by gnomii: 2.0.x PgSql - Same problem with the master 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: | Improvement | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of {username}: Url: https://github.com/doctrine/dbal/pull/47 Message: Hi, Sorry, I was not able to merge the branchs with the master Best regards, |
[DBAL-369] [GH-219] Fix storage of binary data for array and object types Created: 19/Oct/12 Updated: 19/Oct/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of kdambekalns: Url: https://github.com/doctrine/dbal/pull/219 Message: serialize() returns binary data (NUL bytes) and not all platforms This change uses base64 encoding to work around that, and transparently Fixes |
[DBAL-348] [GH-202] Fixed DBAL-139 Oracle's sequences with NOCACHE Created: 22/Sep/12 Updated: 06/Jan/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | New Feature | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of AduroIdea: Url: https://github.com/doctrine/dbal/pull/202 Message: |
| Comments |
| Comment by Benjamin Eberlei [ 22/Sep/12 ] |
|
A related Github Pull-Request [GH-202] was closed |
| Comment by Benjamin Eberlei [ 22/Sep/12 ] |
|
A related Github Pull-Request [GH-202] was reopened |
| Comment by Benjamin Eberlei [ 22/Sep/12 ] |
|
A related Github Pull-Request [GH-202] was closed |
| Comment by Benjamin Eberlei [ 23/Sep/12 ] |
|
A related Github Pull-Request [GH-204] was opened |
[DBAL-333] [GH-193] Add DBAL\TypeAwareObject. Created: 29/Aug/12 Updated: 05/Sep/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | New Feature | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of Romain-Geissler: Url: https://github.com/doctrine/dbal/pull/193 Message: This PR adds a common interface for custom object values that requires some PHP <-> SQL conversions, which allows to specify what DBAL type must be used for conversion. |
| Comments |
| Comment by Benjamin Eberlei [ 30/Aug/12 ] |
|
A related Github Pull-Request [GH-193] was closed |
[DBAL-327] [GH-188] Akiban driver Created: 24/Aug/12 Updated: 29/Aug/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | New Feature | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of posulliv: Url: https://github.com/doctrine/dbal/pull/188 Message: An initial implementation of a driver for the [Akiban Server](http://www.akiban.com/akiban-server). You will notice in the diff there are some features Akiban does not yet support in its latest release but are planned for future releases. I wasn't sure if pull request was the best way to start a dialog to get this work accepted or whether the mailing list is more appropriate. Please let me know and I will do as suggested. I am an engineer at Akiban and am very willing to maintain/improve this driver. |
| Comments |
| Comment by Benjamin Eberlei [ 27/Aug/12 ] |
|
A related Github Pull-Request [GH-188] was closed |
| Comment by Padraig O'Sullivan [ 28/Aug/12 ] |
|
Yes, this ticket has been superseded by ticket 330. |
[DBAL-325] [GH-186] Added third an optional argument `types` to use prepared statement Created: 18/Aug/12 Updated: 29/Aug/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 2.4 |
| Security Level: | All |
| Type: | Improvement | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of timoshenko: Url: https://github.com/doctrine/dbal/pull/186 Message: |
[DBAL-320] allow SQL QueryBuilder to do INSERTS Created: 13/Aug/12 Updated: 13/Aug/12 |
|
| Status: | Reopened |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | 2.3 |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | New Feature | Priority: | Major |
| Reporter: | Tim Mundt | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
| Description |
|
With $db = \Doctrine\DBAL\DriverManager::getConnection($connectionParams, $config); this QueryBuilder I'm able to do SELECT, UPDATE and DELETE. However, INSERT is not possible. Are there any good reasons for this? Attached you find a patch that until now works fine for me. I don't know, however, if there are any side effects. |
| Comments |
| Comment by Marco Pivetta [ 13/Aug/12 ] |
|
Insert is not supported by DQL |
| Comment by Tim Mundt [ 13/Aug/12 ] |
|
Well, that was quick and not helpful. I have read about the QueryBuilder in the ORM package. For some reason with persistence (that other libraries don't have), insert cannot be supported. However, I'm talking about DBAL here. What good reason is there not to support INSERT?? |
| Comment by Tim Mundt [ 13/Aug/12 ] |
|
see previous comment, I'd appreciate some clarification |
| Comment by Marco Pivetta [ 13/Aug/12 ] |
|
Tim Mundt Ouch, no, it was my fault, sorry. |
| Comment by Marco Pivetta [ 13/Aug/12 ] |
|
This is actually valid (even the patch, though it needs to adds tests) |
| Comment by Tim Mundt [ 13/Aug/12 ] |
|
Glad to hear there seems to be no fundamental problem with this. Can I somehow help this patch go into the code? I'm not familiar with the tests here. If you give me some pointer, maybe I can come up with something useful. On the other hand, it could be a good idea for some more involved people to have a look at this before. |
| Comment by Marco Pivetta [ 13/Aug/12 ] |
|
You'd need to add tests in https://github.com/doctrine/dbal/blob/master/tests/Doctrine/Tests/DBAL/Query/QueryBuilderTest.php (to be included in your patch or in a github pull request) |
| Comment by Tim Mundt [ 13/Aug/12 ] |
|
Here's the PR: https://github.com/doctrine/dbal/pull/184 |
[DBAL-321] [GH-184] Added INSERT support to dbal QueryBuilder Created: 13/Aug/12 Updated: 14/Aug/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | New Feature | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of Tim-Erwin: Url: https://github.com/doctrine/dbal/pull/184 Message: See also http://www.doctrine-project.org/jira/browse/DBAL-320 |
[DBAL-225] Add events for onBeginTransaction, onCommit, onCommitFailure Created: 13/Feb/12 Updated: 20/Sep/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | 2.2 |
| Fix Version/s: | 2.4 |
| Security Level: | All |
| Type: | New Feature | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Allow to switch a CommitFailure into a successful event. This could be done by saving all insert/update/delete statements starting from begin transaction and then replaying them N-times until success is achieved. |
[DBAL-221] Schema toSQL() and toDropSQL() both need to delegete creation/drop of schema-level elements Created: 13/Feb/12 Updated: 20/Sep/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 2.4 |
| Security Level: | All |
| Type: | New Feature | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
The following schema-level changes have to be done before tables are created:
We should add the following APIs: array $sql AbstractPlatform::getCreateSchemaAdditionalStatements(Schema $schema);
$object = new SQLObject($sqlUpCommand, $sqlDropCommand);
$schema->addSQLObject($object);
|
[DBAL-217] Introduction Interface for Connection Created: 05/Feb/12 Updated: 20/Sep/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 2.4 |
| Security Level: | All |
| Type: | Task | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
[DBAL-218] Add Object for BulkInsert Abstraction Created: 05/Feb/12 Updated: 20/Sep/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 2.4 |
| Security Level: | All |
| Type: | Task | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
[DBAL-215] DoctrineBundle Configuration File Created: 03/Feb/12 Updated: 03/Feb/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Improvement | Priority: | Major |
| Reporter: | Aaron Scherer | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
In the DoctrineBundle, there is no support for "master" or "slave", yet the "MasterSlaveConnection" in the new DBAL branch wants both of them in the connection. |
[DBAL-182] Insert and Merge Query Objects Created: 18/Nov/11 Updated: 20/Sep/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 2.4 |
| Security Level: | All |
| Type: | New Feature | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
We are missing Insert and Merge Query Objects. See Drupal DBTNG: Merge: http://drupal.org/node/310085 |
| Comments |
| Comment by Benjamin Eberlei [ 18/Nov/11 ] |
|
From the first glance: Drupal API has some problems in that it assumes literal values are the default, which makes working with them simple if no expression is necessary. But inconsistent otherwise. Implementation Details:
$conn->createInsertQuery(); $conn->createMergeQuery();{conn} Sample API: $conn->createInsertQuery($tbl)->fields(array('foo', 'bar'))->values(array('?', '?'))->(array(1, 2))->execute();
$conn->createInsertQuery($tbl)->fields(array('foo', 'bar'))->params(array(1, 2))->execute(); // values(?, ?) is implicit.
$conn->createInsertQuery($tbl)->fields(array('foo', 'bar'))->params(array('NOW()', '1'))->execute(); // if no "params" set assume execute once.
$conn->createInsertQuery($tbl)->fields(array('foo', 'bar'))->value('foo', 'NOW())->params(array(1))->params(array(2))->execute();
$conn->createInsertQuery($tbl)->fields(array('foo', 'bar'))->select($queryBuilder)->execute();
Merge: I dont know yet: problem i see here is that people mistake values() for a "safe" method and pass values in there that should be quoted instead. |
[DBAL-305] [GH-171] provide transactional interface for EntityManager and Connection Created: 12/Jul/12 Updated: 29/Jul/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | New Feature | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of dfreudenberger: Url: https://github.com/doctrine/dbal/pull/171 Message: |
[DBAL-300] Updates for Fedora packaging Created: 07/Jul/12 Updated: 24/Nov/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | 2.3 |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Improvement | Priority: | Major |
| Reporter: | Shawn Iwinski | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Fedora, RHEL |
||
| Description |
|
I am packaging the DoctrineDBAL PEAR package for Fedora and RHEL (EPEL) and would like to have the following updates:
|
[DBAL-294] [GH-163] [WIP] Upsert support protoype. Created: 29/Jun/12 Updated: 04/Jul/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | New Feature | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of kimhemsoe: Url: https://github.com/doctrine/dbal/pull/163 Message: |
[DBAL-291] [GH-157] interface compatibility Created: 01/Jun/12 Updated: 04/Jul/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Improvement | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of Nazin: Url: https://github.com/doctrine/dbal/pull/157 Message: |
[DBAL-284] [GH-152] add ComparatorInterface to allow custom Comparator implementation Created: 21/May/12 Updated: 22/May/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Improvement | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of catacgc: Url: https://github.com/doctrine/dbal/pull/152 Message: |
[DBAL-273] Allow MasterSlave Connection to switch back to slave Created: 11/May/12 Updated: 11/May/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | 2.2 |
| Fix Version/s: | 2.2.3 |
| Security Level: | All |
| Type: | Improvement | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
[DBAL-249] Enable caching for fetch type FETCH_COLUMN Created: 05/Apr/12 Updated: 05/Apr/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | 2.2.1 |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Improvement | Priority: | Major |
| Reporter: | Aigars Gedroics | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
If results are requested using fetch method FETCH_COLUMN, and the cache is used, the exception is raised: Invalid fetch-style given for caching result
|
[DBAL-449] [GH-274] Support column charset/collation on capable platforms Created: 19/Feb/13 Updated: 19/Feb/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of adrienbrault: Url: https://github.com/doctrine/dbal/pull/274 Message: Basically the same feature wanted as in #245 |
[DBAL-415] [GH-248] Enable multiple postgresql datetime formats Created: 14/Jan/13 Updated: 14/Jan/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 1 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of cedriclombardot: Url: https://github.com/doctrine/dbal/pull/248 Message: Postgre use ISO 8601 date formats so some times can be Y-m-d H:i:s or sometime Y-m-d H:i:s.u |
[DBAL-390] Wrap SQL for Selects in an Object for Metadata? Created: 23/Nov/12 Updated: 23/Nov/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Improvement | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
[DBAL-100] Add Drizzle Support Created: 16/Mar/11 Updated: 22/Dec/11 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | New Feature | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 1 |
| Labels: | None | ||
| Description |
|
Drizzle is out, we should add support for the Dialect. http://docs.drizzle.org/mysql_differences.html |
| Comments |
| Comment by Andreas Streichardt [ 22/Dec/11 ] |
|
i have created some hackish fork and the whole testsuite is working already: https://github.com/m0ppers/dbal Still WIP but may be a start. I think the C extension is not really ready yet either. When i find time i will most likely have a look at it. |
| Comment by Benjamin Eberlei [ 22/Dec/11 ] |
|
Can you branch it into something, like git checkout -bDrizzle then push it to your repo and open a Pull Request? Thats way easier to review and discuss. |
[DBAL-242] Catch and re-throw exceptions with common messages + codes Created: 24/Mar/12 Updated: 20/Sep/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 2.4 |
| Security Level: | All |
| Type: | New Feature | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
[DBAL-40] Transparent table&column names escaping Created: 05/Aug/10 Updated: 02/Feb/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major |
| Reporter: | Jan Tichý | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 9 |
| Labels: | None | ||
| Issue Links: |
|
||||||||
| Description |
|
Hello, I would like to re-open the discussion about automatic transparent escaping of all table/column names sent from DBAL to database. It was already discussed in http://www.doctrine-project.org/jira/browse/DDC-88 without any satisfactory result. Why do I have to quote any reserved word used in table or column name? Why Doctrine doesn't do this automatically for all table and column Before you start to explain how complicated it is and what problems you will be faced with, try to look at excellent DIBI database layer - how it acts in this way - it's behaviour is very cool. Unfortunally at the moment the full documentation is in czech only, but here is a brief automatic google-translation to english - http://dibiphp.com/en/quick-start. My suggestion to Doctrine 2 ORM/DBAL solution is: 1. Developer should never care about any escaping or avoiding any reserved words - it is not his business, the DBAL shoult solve it transparently and safely. 2. So there should be no need and even no possibility to add any quotation chars in @column or @table annotations as well as in DQL queries. ORM layer has nothing to do with escaping, it is all a business of the DBAL layer. Current possibility for manual escaping the names in mentioned annotations is totally wrong and should be discontinued. 3. DBAL should escape ALL table and column names transparently and automatically. There should be ne option to enable or disable the escaping, there is no reason for disabling it. 4. The escaping should be performed just in the final translation of DBAL queries to native SQL query, not earlier. This is the right place to do that. So what do you think about that? |
| Comments |
| Comment by Roman S. Borschel [ 05/Aug/10 ] |
|
My point of view (and the reason for the current implementation) is as follows:
So, supporting selective quoting in the name of a (slightly) better interoperability with legacy schemas looked (and still looks) like the best solution for us. The support is limited, explicit, does not require much implementation or overhead and does not unnecessarily bloat the SQL. There is only one solution for reserved words: not using them. Quoting is a workaround, not a solution and especially not a good one. ps: I really wish quoting reserved words would not be available in SQL |
| Comment by Jan Tichý [ 05/Aug/10 ] |
|
Hi Roman, thank you very much for your response! I storngly disagree with most of your points There is no doubt that using reserved words is bad practice - FROM THE VIEW OF DATABASE SYSTEM. But we are discussing about ORM and DBAL. One of the biggest goals of ORM/DBAL is to provide transparent usage of the storage behind the scene. No matter if it is MySQL or PostgreSQL or even maybe something completely diferent. The ORM/DBAL layer should prevent me from any specifics of particular storage as much as possible. I don't want to remember (and I never should to) that I cannot create entity Order because "order" is reserved word in some weird technology far away from me as ORM programmer. It is strictly consistent with what you have written above in your PS - "It's not available in most programming languages and noone cares, people just don't use reserved words, because they simply can't" - just consider Doctrine 2 to be another programming language - and there is no real systematic reason in Doctrine 2 itself to prevent developers create entities named "Order". Here is an analogy - It is the same as if you would say that you cannot use associative arrays in PHP because C-language or Assembler behind PHP doesn't support associative arrays. Yes, they don't support them but it is the responsibility of PHP to provide them. In the same way I don't want to respect this weird limitations of particular RDBMS behind Doctrine 2. This is Doctrine's responsibility to transparently cover the limitation. Moreover, when list of registered keywords is different from one to the other RDBMS, so the naming of entities is strongly dependent on current database server. Moreover, when I realize that I have used a registered keyword as lately as an error returns from database engine, not earlier. I suppose here is probably no risk of SQL injection, but I feel the current Doctrine 2 acting to be "vulnerable" in very similar way, on principle. Simply - you are sending an unescaped piece of SQL query to the database without any warranty what it is. And sometimes it fails, sometimes not. From this view I don't consider overall escaping to be overkill at all, I consider it to be a necessity. I am strongly convinced that developer working upon DBAL or even ORM layer should never think about such naming limitations and he even shouldn't know anything about reserved words in his particular DBMS. Now to mentioned problems with case sensitivity. Resulting from the fact that Doctrine 2 entity names are case insensitive I belive that all table definitions and SQL queries comming from Doctrine 2 to database should act as case insensitive too. And that the only practicable way is to normalize (lowercase) all table and column names just on DBAL side before it is passed as SQL query to database. Jan |
| Comment by Benjamin Eberlei [ 05/Aug/10 ] |
|
There is actually a very good reason for not quoting. Oracle columns behave differently in their internal structure when escaped. for example: /** * @column(type="integer") */ private $foo; With quoting it would lead to a column "foo" being lower-cased IN the database and even returned so from resultsets. Without casing it would be a column "FOO". We would essentially need to implement lots of glue code just to get this annoying Oracle feature to work and i think Postgres has the same with lower-cased columns. |
| Comment by Roman S. Borschel [ 05/Aug/10 ] |
|
@"Hi Roman, thank you very much for your response! I storngly disagree with most of your points" I guess we can agree to disagree then @"But we are discussing about ORM and DBAL. One of the biggest goals of ORM/DBAL is to provide transparent usage of the storage behind the scene. No matter if it is MySQL or PostgreSQL or even maybe something completely diferent." Actually, no, "hiding" the storage completely from the developer is not the goal just as it is not the goal to "hide" SQL. There is an object model on one side and a relational database on the other side. The goal is to provide a mapping between them which is not the same as "hiding" one from the other. In order to create good applications that use ORM technology you need to know both very well, OOP and relational databases. The goal is not to make relational database knowledge "unnecessary". This only results in inefficient use of the databases. The goal is to give people who know both sides equally well a tool to map between the two. Not even "portability" between different relational database vendors is a main goal of an ORM technology, it is just obvious to provide assistance with that as part of the mapping. @"and there is no real systematic reason in Doctrine 2 itself to prevent developers create entities named "Order". Noone prevents you from naming domain classes anything you want. Class naming is different from table naming. That the table name defaults to the class name is just that, a default, that can and should be changed if necessary. @"Moreover, when list of registered keywords is different from one to the other RDBMS, so the naming of entities is strongly dependent on current database server." Correct, and if you want to create a portable application that works, and will be deployed on, a different set of vendors, you need to have some knowledge of these databases and consider their characteristics. An ORM/DBAL technology does not give you any guarantee for complete and transparent portability between vendors and especially not that it will perform equally well on all of them. The ORM/DBAL technology helps you for the most part in a lot of cases with portability issues but it is no free ticket. @"I suppose here is probably no risk of SQL injection, but I feel the current Doctrine 2 acting to be "vulnerable" in very similar way, on principle. Simply - you are sending an unescaped piece of SQL query to the database without any warranty what it is. And sometimes it fails, sometimes not. From this view I don't consider overall escaping to be overkill at all, I consider it to be a necessity." Do not confuse identifier quoting with quoting/escaping of special characters as it is used for security reasons on input. Identifier quoting is absolutely not a necessity, it is a workaround for using otherwise reserved words as schema element names. Speaking of goals, it is neither a "goal" of ORM/DBAL technology to completely remove the possibilities of SQL injections. You can't. It'll always be possible with wrong usage. @"I am strongly convinced that developer working upon DBAL or even ORM layer should never think about such naming limitations and he even shouldn't know anything about reserved words in his particular DBMS." And I am strongly convinced that a developer working with a DBAL/ORM should know the underlying databases pretty well. I think you're really not aware of all the consequences it has across different database vendors to quote every identifier. If not for developers using Doctrine, you cause at least any developer or application pain that does not access the database through Doctrine and is thus feels the full pain of case-sensitivity and mandatory quoting you enforced on the whole schema. Ubiquitious access to the data is actually a strong point of a relational database and it is far from uncommon that the same database is accessed by many parties. I think the approach taken by DIBI is a bad idea and even worse if there is no way to turn this behavior off. Do they have Oracle or DB2 users? I'm wondering what the sysadmins behind these databases might think if they see this quoting nightmare since to my knowledge this is considered bad practice among them as well. Yes, we're disagreeing on many points but if you really think identifier quoting is a good idea then you're ignoring a whole lot of prior experience (not only mine). |
| Comment by Lukas Kahwe [ 05/Aug/10 ] |
|
I was one of the lead developers of MDB2 and we just ran into tons of issues when we overly aggressively did identifier quoting by default. even the option caused lots of headaches. furthermore I agree that the ORM is not about turning an RDBMS into an Object Database, but instead to make a mapping possible. In this vain using reserved words or making all identifiers case sensitive will be a big pain for the people that do work one level lower aka the DBA's. heck even as a developer I frequently work on the DB's command line. Now as for helping people prevent issues with reserved words. Back then I added some reserved word checking into MDB2_Schema. Obviously its hard to really keep track of all of the different reserved words for all RDBMS. Maybe its possible to work with this guy for this: http://www.petefreitag.com/item/290.cfm This way it could be possible to validate if the names chosen in the models will not cause issues with a certain list of RDBMS. |
| Comment by Benjamin Eberlei [ 07/Aug/10 ] |
|
Reserved words checking sounds to be a fair compromise! |
| Comment by Jan Tichý [ 30/Aug/10 ] |
|
Hello, thank you all for your responses. This helped me understand much about Doctrine 2 basic objectives - especially that it is designed mainly to "make a mapping possible" only, not to be as much as possible transparent layer between database and application. And even if I don't like this conception (because I personally think ORM should provide all such features - like automatic reserved keywords escaping - to make the particular database as transparent as possible), at the same time I fully understand all metioned arguments for doing things in such way. Thank you again. |
| Comment by Damian Boune [ 17/Jan/11 ] |
|
I would like to state an agreement with the OP. I understand where there are difficulties in handling reserved words and backtick/quoting, and certainly one should always avoid the use of reserved words in their own schema designs. This is a given when one is able to exert control. At present I am working on a project in which I am dealing with an outside database where I have no control over the schema, nor am I able to push the remote into making the most sensible changes to their schema. I must live with what they provide. DBAL presents me with a set of invaluable tools that can not be used as-is, because it lacks the ability to handle quoting when generating schema sql. I'm sure there are some other places where I will find this lacking as well. This is disappointing. Regardless of what we as developers should do when designing our own schema, we still need to be able to work and play with others who may not follow the same common sense conventions. Edit: |
| Comment by Francesco Montefoschi [ 03/Feb/11 ] |
|
"its hard to really keep track of all of the different reserved words for all RDBMS" That's the main point for me. |
| Comment by Adrian Rudnik [ 26/Apr/11 ] |
|
@Damian thanks for the hint. I just ran into a similar situation. Not every project is a startup. I tried to use doctrine2 on a customers database for a small web ui. Well I told them to rename their `iso3166-1` table and `alpha-2` field, then we had a good laugh. We made the mapping possible but i'll remember the one thing i learned: doctrine did not help, guide, prevent or cared at all. It did not even hesitate to spew invalid sql snippets when asked to dump. Its okay for me, but i've expected something more resilient from a DBAL. |
| Comment by Robert (Jamie) Munro [ 02/Feb/13 ] |
|
What do you mean by "Quoting everything is like hitting all the SQL with a huge big hammer"? Is there a performance hit? I have always quoted all names when working with PostGres. Not quoting them has always felt like not quoting strings in PHP (e.g. $foo[bar] instead of $foo['bar'] because unless the string is keyword or defined as a constant somewhere, you don't need to (although you will get a "Use of undefined constant" warning). In the early days of PHP, not quoting array keys was common example practise. |
| Comment by Marco Pivetta [ 02/Feb/13 ] |
|
If you want quoting by default on everything we have a quoting strategy (in ORM) that you can use. I don't think quoting everything by default is a viable solution. Back in `Zend_Db` times this was eating up a lot of performance for no real reason. Users having a clean schema without horrors like columns called `order` or `group` should not be penalized because of users not using valid naming schemes. |
[DBAL-31] Move Schema related Creation code from AbstractPlatform to AbstractSchemaManager Created: 04/Jul/10 Updated: 24/Dec/10 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Move Schema related Creation code from AbstractPlatform to AbstractSchemaManager |
| Comments |
| Comment by Benjamin Eberlei [ 08/Aug/10 ] |
|
Scheduled for Beta4 |
| Comment by Roman S. Borschel [ 16/Aug/10 ] |
|
If this task is more complex and requires larger refactorings we can re-evaluate it in a post-2.0 release. |
[DBAL-463] [GH-285] Add IBM iSeries Driver Created: 12/Mar/13 Updated: 14/Mar/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | New Feature | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of spicajames: Url: https://github.com/doctrine/dbal/pull/285 Message: Added driver pdo_ibmi to support to db2 iSeries using pdo_odbc |
[DBAL-275] Automatically attempt to reconnect a dropped persistent MySQL-connection (MySQL server has gone away) Created: 14/May/12 Updated: 21/Nov/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | 2.1.6 |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Improvement | Priority: | Major |
| Reporter: | Dieter Peeters | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 4 |
| Labels: | None | ||
| Environment: |
doctrine-dbal/2.1.6, driver PDOMySql |
||
| Attachments: |
|
| Description |
|
For php-scripts that run for a long time (a.o. daemons) persistent connections will almost always be dropped by the MySQL-server after a set timeout (depending on wait_timeout). This will have Doctrine throw an exception and have the php-script terminate if not catched. It is not practical to catch the same Exception with a try-catch around every query. I have fixed this for DBAL 2.1.6 by adding a custom layer of Statement-, Connection- and Driver classes.
Why this functionality?
See files in attached archive to get an idea of the code. Enabling the layer is currently done like this (Symfony2 yml): Maybe I overlook something, but I only see pro's, no cons, to this improvement. I have created this issue to poll if you think this is a welcome feature and are interested to have me rework the code into DBAL itself? Reworking it into DBAL itself would certainly greatly reduce my code. If agreed I'll create a github pull request when finished with the code and take comments/improvements from there. (Also, I have glanced over http://www.doctrine-project.org/contribute.html but did not find any coding/testing-guidelines. Can you point me in the right direction?) Regards, Dieter |
| Comments |
| Comment by Nils Adermann [ 24/Aug/12 ] |
|
Sounds like a rather useful addition to me, would be cool to see this as a default feature. |
| Comment by Julien Pauli [ 13/Nov/12 ] |
|
We used this at work, it's simple, it could need more reflection |
| Comment by Benjamin Eberlei [ 13/Nov/12 ] |
|
The problem with a generic solution here are the risks involved, we need to answer questions: 1. did a transaction get aborted beccause of this I am not sure we can guarantee the 100% working. |
| Comment by Dieter Peeters [ 13/Nov/12 ] |
|
@Julien: @Benjamin: I'll try to answer your two questions: And as a last note, this code is just to have a workable solution. I tend to agree with anyone who thinks that the correct place to fix this problem is in the MySQL-client itself. Dieter |
| Comment by Benjamin Eberlei [ 13/Nov/12 ] |
|
My idea would be to throw an exception on reconnect like it is done atm, when transactionNestingLevel > 0, and otherwise proceed with doing the reconnect. I am not sure i am missing something here though. |
| Comment by Dieter Peeters [ 13/Nov/12 ] |
|
@Benjamin: I noticed after commenting that you're the assignee ... and corrected my comment a bit. Now, if you want I can extend the functionality to support transactions. But I prefer to do this directly into the DBAL, not as a layer on top. The resulting code should be a bit cleaner than this layer now. What do you think? *edit* The way you suggest is the way this layer is implemented Dieter |
| Comment by Dieter Peeters [ 13/Nov/12 ] |
|
@Benjamin |
| Comment by Dieter Peeters [ 13/Nov/12 ] |
|
@Benjamin: I couldn't help myself doing a quick verification. The answer to your question lies in the file Connection.php. The method DoP\DoPBundle\Doctrine\DBAL\Connection::validateReconnectAttempt also checks that the transactionNestingLevel < 1, so the method will always return false when in a transaction. I.o.w. when in a transaction no attempt to reconnect will be made and the exception is simply rethrown, as per the default Doctrine behaviour. |
| Comment by Peter Kruithof [ 21/Nov/12 ] |
|
I could really use this for kong running cronjobs and daemonized scripts. Is this being worked on right now? |
| Comment by Dieter Peeters [ 21/Nov/12 ] |
|
Peter, you can use the above code, but it only works for statements outside of transactions. Also, the calls for savepoints in transactions need correction. Will do that when I find the time. |
[DBAL-95] Interbase/Firebird support Created: 26/Feb/11 Updated: 12/Mar/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | New Feature | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 3 |
| Labels: | None | ||
| Description |
|
Implemented support for Interbase/Firebird dialects |
[DBAL-468] [GH-288] Fix fetchColumn not caching Created: 20/Mar/13 Updated: 20/Mar/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of Alan01252: Url: https://github.com/doctrine/dbal/pull/288 Message: Column cache wasn't working because the emptied flag is only set Created two test cases, one to test fetchColumn, and one to test |
[DBAL-470] [GH-291] Optimize abstract platform Created: 24/Mar/13 Updated: 24/Mar/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of deeky666: Url: https://github.com/doctrine/dbal/pull/291 Message: This PR optimizes the <code>AbstractPlatform</code> class in the following ways:
I hope this is a welcomed improvement. It reads much better now and feels somewhat cleaner to me. |
[DBAL-475] [GH-293] Add SAP SQL Anywhere database vendor Created: 28/Mar/13 Updated: 14/Apr/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | New Feature | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of deeky666: Url: https://github.com/doctrine/dbal/pull/293 Message: This PR adds the driver and DBAL for SAP SQL Anywhere databases. It distinguishes between versions 10 and below (base <code>SQLAnywherePlatform</code>), 11 (<code>SQLAnywhere11Platform</code>) and 12 (<code>SQLAnywherer12Platform</code>), similar to Microsoft SQL Server.
I hope this addition is appreciated and any feedback/help on the above issues would be welcomed. |
[DBAL-489] [GH-302] [DBAL-374] Fix asset identfier quotation Created: 08/Apr/13 Updated: 01/May/13 |
|
| Status: | In Progress |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Improvement | Priority: | Major |
| Reporter: | Doctrine Bot | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of deeky666: Url: https://github.com/doctrine/dbal/pull/302 Message: This PR introduces a real solution for the issues discussed in |
[DBAL-409] [GH-245] Added support for column collation Created: 08/Jan/13 Updated: 04/May/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | New Feature | Priority: | Major |
| Reporter: | Benjamin Eberlei | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of hason: Url: https://github.com/doctrine/dbal/pull/245 Message: |
[DBAL-512] Update schema not working on MsSql due to no support for alter identity Created: 06/May/13 Updated: 06/May/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | 2.2.2 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Flip | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Symfony 2.1, SQL Server 2008, driver: pdo_sqlsrv |
||
| Description |
|
When running: php app/console doctrine:schema:update --force [Doctrine\DBAL\DBALException] SQLSTATE[42000]: [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near the keyword 'IDENTITY'. According to this stackoverflow http://stackoverflow.com/a/1049305/1833322 MSSQL does not support this query. |
[DBAL-517] [GH-317] Conditionaly upgrade utf8 to utf8mb4 for MySQL 5.5.3 Created: 15/May/13 Updated: 15/May/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Major |
| Reporter: | Doctrine Bot | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of nicolas-grekas: Url: https://github.com/doctrine/dbal/pull/317 Message: See http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html As utf8mb4 is a superset of utf8, this should be transparent and backward compatible. |
[DBAL-519] MasterSlave connection does not keep Slave connections when there is a transaction Created: 15/May/13 Updated: 15/May/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Improvement | Priority: | Major |
| Reporter: | Ananda Agrawal | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
while doing a transaction (as a result of ORM persist), on future selects, even if keepSlave is set to true I assume we need to check keepSlave when forcing slaves to master |
[DBAL-324] SchemaManager should first look into comment instead of infer the type first. Created: 17/Aug/12 Updated: 14/May/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Major |
| Reporter: | Guilherme Blanco | Assignee: | Guilherme Blanco |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
When using schema tool, Doctrine tries to infer the Doctrine type via the mapped types in Platform. |
| Comments |
| Comment by Benjamin Eberlei [ 29/Aug/12 ] |
|
Why is this a bug? Can you say some more about why we need to do this and what error occurs? |
| Comment by Guilherme Blanco [ 29/Aug/12 ] |
|
This issue is strictly correlated to the commit I've done here: https://github.com/doctrine/dbal/commit/e25c774dde971dc4afd40648e9ccd0af53b34ce9 Mainly, we may have legacy database that we do know how Doctrine should operate. Under this circumstance, we may want to add a comment to the field defining the Doctrine DBAL type. That happens because MySQL Schema Manager (and others) first looks for the column type: But if we first try to look for the commented data type: |
| Comment by Steve Tauber [ 14/May/13 ] |
|
This also applies for a type of yaml. /** @Column(type="yaml") */ ./scripts/doctrine orm:schema-tool:update --dump-sql Very frustrating.... Might be related to http://www.doctrine-project.org/jira/browse/DBAL-42 |
[DBAL-520] [GH-319] Delete unnecessary "use PDO" statement Created: 16/May/13 Updated: 16/May/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Major |
| Reporter: | Doctrine Bot | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of alexpods: Url: https://github.com/doctrine/dbal/pull/319 Message: |
[DBAL-521] [GH-320] Fixed calculation of differences of columns Created: 17/May/13 Updated: 17/May/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Major |
| Reporter: | Doctrine Bot | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of hason: Url: https://github.com/doctrine/dbal/pull/320 Message: |
[DBAL-526] Doctrine\DBAL\Connection::executeQuery changes passed clause Created: 22/May/13 Updated: 22/May/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Major |
| Reporter: | Covie X | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
PHP 5.4.15-pl0-gentoo |
||
| Description |
|
>> var_dump(get_class($db)); string(24) "Doctrine\DBAL\Connection" >> var_dump($params); array(2) { [0] => int(18) [1] => int(0) }>> $stmt = $db->executeQuery('SELECT l0_.id AS id0 FROM link l0_ WHERE l0_.user_id = ? AND l0_.is_deleted = ?', array($params), array(\Doctrine\DBAL\Connection::PARAM_INT_ARRAY)); An exception occurred while executing 'SELECT l0_.id AS id0 FROM link l0_ WHERE l0_.user_id = ?, ? AND l0_.is_deleted = ?' with params [18, 0]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens >> $stmt = $db->executeQuery('SELECT l0_.id AS id0 FROM link l0_ WHERE l0_.user_id = ? AND l0_.is_deleted = ?', $params, array(\PDO::PARAM_INT, \PDO::PARAM_INT)); array(0) { |
[DBAL-527] [GH-323] Update MasterSlaveConnection.php Created: 22/May/13 Updated: 22/May/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Major |
| Reporter: | Doctrine Bot | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of ananda-agrawal: Url: https://github.com/doctrine/dbal/pull/323 Message: check $this->keepSlave before enforcing master as slave |
[DBAL-528] [GH-324] Update SQLServer2008Platform.php (support MS SQL Server type datetimeoffset(6)) Created: 23/May/13 Updated: 23/May/13 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Major |
| Reporter: | Doctrine Bot | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
This issue is created automatically through a Github pull request on behalf of valerio8787: Url: https://github.com/doctrine/dbal/pull/324 Message: Added support of maps a Doctrine datetimetz type to a MS SQL SERVER type datetimeoffset(6) |
[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-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-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-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-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-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-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-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-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-200] Connection::update() Created: 10/Jan/12 Updated: 11/Dec/12 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | 2.3.2 |
| Fix Version/s: | None |
| Type: | Documentation | Priority: | Trivial |
| Reporter: | Jonas Liljestrand | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | documentation | ||
| Description |
|
missing @param array $data in docblock |
| Comments |
| Comment by Padraig O'Sullivan [ 11/Dec/12 ] |
|
Resolved by pull request 236: |