{"action":"created","issue":{"url":"https://api.github.com/repos/Datical/liquibase/issues/27","repository_url":"https://api.github.com/repos/Datical/liquibase","labels_url":"https://api.github.com/repos/Datical/liquibase/issues/27/labels{/name}","comments_url":"https://api.github.com/repos/Datical/liquibase/issues/27/comments","events_url":"https://api.github.com/repos/Datical/liquibase/issues/27/events","html_url":"https://github.com/Datical/liquibase/pull/27","id":288609710,"number":27,"title":"Handle case for db2 when schemas have same name but different case","user":{"login":"riakivets","id":23322972,"avatar_url":"https://avatars1.githubusercontent.com/u/23322972?v=4","gravatar_id":"","url":"https://api.github.com/users/riakivets","html_url":"https://github.com/riakivets","followers_url":"https://api.github.com/users/riakivets/followers","following_url":"https://api.github.com/users/riakivets/following{/other_user}","gists_url":"https://api.github.com/users/riakivets/gists{/gist_id}","starred_url":"https://api.github.com/users/riakivets/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/riakivets/subscriptions","organizations_url":"https://api.github.com/users/riakivets/orgs","repos_url":"https://api.github.com/users/riakivets/repos","events_url":"https://api.github.com/users/riakivets/events{/privacy}","received_events_url":"https://api.github.com/users/riakivets/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":15,"created_at":"2018-01-15T14:21:03Z","updated_at":"2018-02-05T15:56:49Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/Datical/liquibase/pulls/27","html_url":"https://github.com/Datical/liquibase/pull/27","diff_url":"https://github.com/Datical/liquibase/pull/27.diff","patch_url":"https://github.com/Datical/liquibase/pull/27.patch"},"body":""},"comment":{"url":"https://api.github.com/repos/Datical/liquibase/issues/comments/363128018","html_url":"https://github.com/Datical/liquibase/pull/27#issuecomment-363128018","issue_url":"https://api.github.com/repos/Datical/liquibase/issues/27","id":363128018,"user":{"login":"nvoxland","id":438312,"avatar_url":"https://avatars1.githubusercontent.com/u/438312?v=4","gravatar_id":"","url":"https://api.github.com/users/nvoxland","html_url":"https://github.com/nvoxland","followers_url":"https://api.github.com/users/nvoxland/followers","following_url":"https://api.github.com/users/nvoxland/following{/other_user}","gists_url":"https://api.github.com/users/nvoxland/gists{/gist_id}","starred_url":"https://api.github.com/users/nvoxland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nvoxland/subscriptions","organizations_url":"https://api.github.com/users/nvoxland/orgs","repos_url":"https://api.github.com/users/nvoxland/repos","events_url":"https://api.github.com/users/nvoxland/events{/privacy}","received_events_url":"https://api.github.com/users/nvoxland/received_events","type":"User","site_admin":false},"created_at":"2018-02-05T15:56:49Z","updated_at":"2018-02-05T15:56:49Z","author_association":"NONE","body":"Yes, that is the problem: 95% of the time, people want to treat sql objects names case insensitively and so we want to be case insenstive. But 5% of the time, they do care and we can't break with that. \r\n\r\nThat is why we have the quoteObjectNames attribute to let you control quoting within a changeSet and enable it if you really want it. But it looks like this problem isn't within a changeset: it's in the queries liquibase is making to check the databasechangelog and databasechangelog lock tables. \r\n\r\nThe quotingStrategy ends up being controlled on the Database.quotingStrategy field, so we can set that to QUOTE_ALL_OBJECTS before making the liquibase calls and then back to what it was before, but we'd need a way to know when to enable that. I thought for a bit about checking the database for schemas with the same name but different cases and automatically setting it when there was a conflict, but we should try to avoid all database interactions if possible. Otherwise we break offline support or updateSql-style support.\r\n\r\nSo, I think at the Liquibase level, we have to rely on being told to quote them, like we do in changeSets. We can add a new quoteLiquibaseObjects command line argument that will need to be stored somewhere that the liquibase-change-generating classes like StandardChangeLogHistoryService can get to it and know to set quotingStrategy=QUOTE_ALL_OBJECTS before doing operations, and then set it back when it's done.\r\n\r\nI'm going to be traveling today, so can't do much to look at it until tonight. See if you can find a good way add and use that new quoteLiquibaseObjects parameter."}}
{"actor":{"display_login":"nvoxland"}}