> On Dec. 12, 2017, 11:44 a.m., Jonathan Hurley wrote:
> > ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog300.java
> > Lines 175-192 (patched)
> > <https://reviews.apache.org/r/64544/diff/1/?file=1914302#file1914302line175>
> >
> >     Interesting .. is this idempotent? Typically nested-selects with 
> > inserts are not if they could violate PKs. Maybe you need to breakt this 
> > out into 2 queries and ensure you're only inserting when necessary?
> >     
> >     Then again, maybe I don't quite see what this query is doing and it's 
> > ok... Thought I'd flag it for discussion.

I assumed that this would fail if run multiple times. This is why there is a 
conditional right before it:
```
    // Migrate data from users table (if not yet upgraded)
    if (!usersTableUpgraded()) {
      dbAccessor.executeUpdate(
          "insert into " + USER_AUTHENTICATION_TABLE +
              "(" + USER_AUTHENTICATION_USER_AUTHENTICATION_ID_COLUMN + ", " + 
USER_AUTHENTICATION_USER_ID_COLUMN + ", " + 
USER_AUTHENTICATION_AUTHENTICATION_TYPE_COLUMN + ", " + 
USER_AUTHENTICATION_AUTHENTICATION_KEY_COLUMN + ", " + 
USER_AUTHENTICATION_CREATE_TIME_COLUMN + ", " + 
USER_AUTHENTICATION_UPDATE_TIME_COLUMN + ")" +
           ...
      );
    }
```

Breaking this apart into several queries and a set of insert statements might 
help; but I thought that it would be difficult since the updated UserEntity 
class would be out of sync with the original table. What do others do in this 
situation?  Maybe if I need to go this route, I would create a new `user` table 
rather than upgrade the `users` table?  In the end, I would drop the old `user` 
table, but the OldUserEntitiy class will need to live for many versions of 
Ambari.


> On Dec. 12, 2017, 11:44 a.m., Jonathan Hurley wrote:
> > ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql
> > Lines 291 (patched)
> > <https://reviews.apache.org/r/64544/diff/1/?file=1914303#file1914303line292>
> >
> >     You should create the FK declarations inside the table declarations.

I did this for a reason, but now I can't remember. I will test it and fix or 
post my reason.


- Robert


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/64544/#review193564
-----------------------------------------------------------


On Dec. 12, 2017, 9:35 a.m., Robert Levas wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/64544/
> -----------------------------------------------------------
> 
> (Updated Dec. 12, 2017, 9:35 a.m.)
> 
> 
> Review request for Ambari, Attila Magyar, Balázs Bence Sári, Eugene 
> Chekanskiy, Jonathan Hurley, Nate Cole, Robert Nettleton, and Sandor Molnar.
> 
> 
> Bugs: AMBARI-22577
>     https://issues.apache.org/jira/browse/AMBARI-22577
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> Migrate data from the users table (pre-Ambari 3.0.0) to the updated users 
> table and user_authentication tables.
> 
> 
> Diffs
> -----
> 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessor.java 
> 549c0fd7e8 
>   
> ambari-server/src/main/java/org/apache/ambari/server/orm/dao/UserAuthenticationDAO.java
>  513e78200d 
>   
> ambari-server/src/main/java/org/apache/ambari/server/orm/entities/UserAuthenticationEntity.java
>  27514f648c 
>   
> ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProvider.java
>  20a06ccd54 
>   
> ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog300.java
>  2de60957bc 
>   ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql e58a04e4b2 
>   ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql cc589e47f2 
>   ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql 7cd083db4c 
>   ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql ff232ebe3e 
>   ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql 
> d7c09f3381 
>   ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql b4929b308d 
>   
> ambari-server/src/test/java/org/apache/ambari/server/orm/DBAccessorImplTest.java
>  29f9d917e8 
>   ambari-server/src/test/java/org/apache/ambari/server/orm/db/DDLTests.java 
> 96cf64e53c 
>   
> ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderForDNWithSpaceTest.java
>  10076b0876 
>   
> ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderTest.java
>  43d4d6b0c0 
>   
> ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog300Test.java
>  747f99b618 
> 
> 
> Diff: https://reviews.apache.org/r/64544/diff/1/
> 
> 
> Testing
> -------
> 
> manually tested
> 
> # Local test results: 
> ```
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Total time: 27:21 min
> [INFO] Finished at: 2017-12-11T17:30:31-05:00
> [INFO] Final Memory: 100M/2019M
> [INFO] 
> ------------------------------------------------------------------------
> ```
> 
> # Jenkins test results: PENDING
> 
> 
> Thanks,
> 
> Robert Levas
> 
>

Reply via email to