Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

hsqldb Oracle मोड अपडेट के लिए चुनें NOWAIT

सोर्सफोर्ज पर hsqldb सोर्स कोड खोदने के बाद आखिरकार मुझे अपने ही सवाल का जवाब मिल गया।

HSQLDB का संस्करण 2.3.3 NOWAIT का समर्थन नहीं करता है।

मैंने यह प्रश्न उनके चर्चा मंच में पूछा है और इस मुद्दे को उठाया है, हालांकि यह गिटहब की तरह नहीं है जहां आप एक मुद्दा बना सकते हैं इसलिए कोई औपचारिक मुद्दा/अनुरोध नहीं खोला गया।

मुझे अब HSQLDB को संशोधित करने के लिए एक खराब हैक का साथ मिल रहा है कोड स्वयं org.hsqldb.ParserDQL केवल अद्यतन के लिए चयनित SQL में NOWAIT को अनदेखा करने के लिए वर्ग।

अगर किसी के पास बेहतर जवाब है तो मैं उनका जवाब स्वीकार करूंगा।

अद्यतन:(अगस्त-24-2015)

HSQLDB फोरम से पुष्टि प्राप्त हुई कि NOWAIT को नजरअंदाज कर दिया जाएगा। इस बीच मैं एचएसक्यूएलडीबी सोर्सफोर्ज फोरम से प्राप्त 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle में अस्थायी डेटा के लिए प्रदर्शन विचार

  2. जावा में रिजल्टसेट ऑब्जेक्ट्स में कैसे शामिल हों?

  3. कैसे SQLAlchemy में एक विभाजित Oracle तालिका बनाने के लिए?

  4. Oracle AQ डेक्यू ऑर्डर

  5. Oracle APEX - एक बटन का उपयोग करके CSV में एक क्वेरी निर्यात करें