sql >> データベース >  >> RDS >> Oracle

hsqldbOracleモードは更新のために選択しますNOWAIT

    sourceforgeでhsqldbソースコードを掘り下げた後、ついに私自身の質問に対する答えが見つかりました。

    HSQLDBのバージョン2.3.3はNOWAITをサポートしていません。

    私は彼らのディスカッションフォーラムでこの質問をし、問題を提起しましたが、問題を作成できるGitHubとは異なり、正式な問題/リクエストは開かれていません。

    HSQLDBを変更するための悪いハックとうまくやっています 自分でコーディングするorg.hsqldb.ParserDQL select-for-updateSQLのNOWAITを無視するクラス。

    誰かがより良い答えを持っているなら、私は彼らの答えを受け入れます。

    更新:(2015年8月24日)

    NOWAITが無視されるというHSQLDBフォーラムからの確認を受け取りました。その間、HSQLDBsourceforgeフォーラムから受け取ったNOWAITを無視するコードスニペットを投稿しています。これをコードベースに追加するよりも、HSQLDBの次のバージョンを待つことをお勧めします(ハックとして)。

     if (Tokens.T_NOWAIT.equals(token.tokenString)) {
            read();
     }
    

    上記のスニペットをParserDQL.javaのどこに追加するかに関する完全なコンテキストを表示するように更新されました

        /**
     * Retrieves a SELECT or other query expression Statement from this parse context.
     */
    StatementQuery compileCursorSpecification(RangeGroup[] rangeGroups,
            int props, boolean isRoutine) {
    
        OrderedHashSet  colNames        = null;
        QueryExpression queryExpression = XreadQueryExpression();
    
        if (token.tokenType == Tokens.FOR) {
            read();
    
            if (token.tokenType == Tokens.READ
                    || token.tokenType == Tokens.FETCH) {
                read();
                readThis(Tokens.ONLY);
    
                props = ResultProperties.addUpdatable(props, false);
            } else {
                readThis(Tokens.UPDATE);
    
                props = ResultProperties.addUpdatable(props, true);
    
                if (token.tokenType == Tokens.OF) {
                    readThis(Tokens.OF);
    
                    colNames = new OrderedHashSet();
    
                    readColumnNameList(colNames, null, false);
                }
                if (Tokens.T_NOWAIT.equalsIgnoreCase(token.tokenString)) {
                    readIfThis(Tokens.X_IDENTIFIER);
                }
            }
        }
    



    1. Rails:Herokuへのデプロイ、多くの問題

    2. クラウドテクノロジーに関する4つの一般的な神話

    3. 新しいコースを追加するのに役立つ手順でエラーが発生し続け、説明に要件を追加しました

    4. データベースのCREATEスクリプトをエクスポートします