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

initdb:pg_authid प्रारंभ कर रहा है ... FATAL:अनुक्रमणिका अभिव्यक्तियों की गलत संख्या

जीसीसी 4.9.3 के साथ पोस्टग्रेस्क्ल 8.1.4 को संकलित करने के बाद मैं उसी समस्या में भाग गया।

समस्या यह प्रतीत होती है कि जिस तरह से पोस्टग्रेज चर लंबाई सरणियों का प्रतिनिधित्व करने के लिए उपयोग करता है:

typedef struct
{
    int32       size;           /* these fields must match ArrayType! */
    int         ndim;
    int         flags;
    Oid         elemtype;
    int         dim1;
    int         lbound1;
    int2        values[1];      /* VARIABLE LENGTH ARRAY */
} int2vector;                   /* VARIABLE LENGTH STRUCT */

कुछ मामलों में, 'मान' तक पहुंचने वाले लूप के लिए, जीसीसी मानता है कि वे अधिक से अधिक एक पुनरावृत्ति करेंगे। नीचे की तरह लूप्स (पोस्टग्रेज के सोर्स कोड से निकाले गए):

ii->ii_NumIndexAttrs = numKeys;
for (i = 0; i < numKeys; i++)
    ii->ii_KeyAttrNumbers[i] = indexStruct->indkey.values[i];

अंत में कुछ इस तरह कम किया जा सकता है:

ii->ii_NumIndexAttrs = numKeys;
if (numKeys)
    ii->ii_KeyAttrNumbers[0] = indexStruct->indkey.values[0];

जैसा कि इसके लिए जेनरेट किए गए असेंबलर को देखकर निकाला गया है:

.L161:
    testl   %r12d, %r12d
    movl    %r12d, 4(%rbx)
    jle .L162
    movzwl  40(%r13), %eax
    movw    %ax, 8(%rbx)
.L162:

-fno-aggressive-loop-optimizations का उपयोग करके उस ऑप्टिमाइज़ेशन को अक्षम करके पोस्टग्रेज़ को फिर से संकलित करने के बाद समस्या दूर हो गई।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जेसन या जेसनबी या टेक्स्ट चुनने के लिए कौन सा डेटा प्रकार

  2. सक्रिय क्वेरी अंतर्निहित कर्सर को कैसे देखें

  3. ActiveModel ID श्रेणी को 8 बाइट तक बढ़ाएँ

  4. मेरा पसंदीदा पोस्टग्रेएसक्यूएल एक्सटेंशन - भाग एक

  5. पोस्टग्रेज़ डीबी डिज़ाइन टेबल को सामान्य करें या ऐरे कॉलम का उपयोग करें