Peter Szucs created YARN-11810:
----------------------------------

             Summary: Fix SQL script in SQLServer/FederationStateStoreTables.sql
                 Key: YARN-11810
                 URL: https://issues.apache.org/jira/browse/YARN-11810
             Project: Hadoop YARN
          Issue Type: Bug
          Components: federation
    Affects Versions: 3.4.1
            Reporter: Peter Szucs
            Assignee: Peter Szucs


The SQLServer/FederationStateStoreTables.sql script contains duplicated create 
statements and SQL syntax errors which makes 
_TestFederationSQLServerScriptAccuracy#checkSqlServerScriptAccuracy_ unit test 
fail.

 

I see 2 issues which cause this test failure:
 # *Duplicated create statements*
 ** the test creates a SQLServerFederationStateStore class, which extracts and 
stores the "CREATE TABLE" statements from FederationStateStoreTables.sql with 
the [extractCreateTableSQL 
method|https://github.com/apache/hadoop/blob/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/federation/store/impl/SQLServerFederationStateStore.java#L43].
 ** then iterates through the collected statements and executes them as a 
prepared statement 
[here|https://github.com/apache/hadoop/blob/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/federation/store/sql/TestFederationSQLServerScriptAccuracy.java#L53]
 ** the create statements for _masterKeys_ and _delegationTokens_ tables are 
duplicated in the script, so these will be collected and attempted to be 
executed twice, which results in the following error during the test runs:

{code:java}
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.991 s 
<<< FAILURE! - in 
org.apache.hadoop.yarn.server.federation.store.sql.TestFederationSQLServerScriptAccuracy
[ERROR] 
checkSqlServerScriptAccuracy(org.apache.hadoop.yarn.server.federation.store.sql.TestFederationSQLServerScriptAccuracy)
  Time elapsed: 0.91 s  <<< ERROR!
java.sql.SQLSyntaxErrorException: 
object name already exists: MASTERKEYS in statement [CREATE TABLE masterKeys(
            keyId BIGINT NOT NULL,
            masterKey VARCHAR(1024) NOT NULL,
            CONSTRAINT pk_keyId PRIMARY KEY
            (
                keyId
            )
        )]
    at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
    at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
    at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown Source)
    at org.hsqldb.jdbc.JDBCPreparedStatement.execute(Unknown Source)
    at 
com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44){code}
**
 # *Syntax errors in the SQL script*
 ** the create statements for _sequenceTable_ and versions are missing a comma 
before the constraints are defined here:

{code:java}
CREATE TABLE [dbo].[sequenceTable](
    sequenceName VARCHAR(255) NOT NULL,
    nextVal bigint NOT NULL
    CONSTRAINT [pk_sequenceName] PRIMARY KEY
    (
        [sequenceName]
    )
){code}
and here:

{code:java}
CREATE TABLE [dbo].[versions](
    fedVersion VARBINARY(1024) NOT NULL,
    versionComment VARCHAR(255) NOT NULL
    CONSTRAINT [pk_fedVersion] PRIMARY KEY
    (
        [fedVersion]
    )
){code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-dev-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-dev-h...@hadoop.apache.org

Reply via email to