2011-03-28 29 views
5
bir çok garip bir SQL

bizim PostgreSQL SERVER, sürüm 8.4 bir Garip SQL yoktur. PG sunucusu tarafından kesilen bir sistem sql gibi görünüyor! Bu sql hakkında hiçbir fikrim yok mu? Bunu bilen var mı?PostgreSQL

--Strange sql

SELECT NULL AS TABLE_CAT, 
     n.nspname AS TABLE_SCHEM, 
     c.relname AS TABLE_NAME, 
     CASE n.nspname ~ '^pg_' OR n.nspname = 'information_schema' 
      WHEN true THEN 
      CASE 
       WHEN n.nspname = 'pg_catalog' OR n.nspname = 'information_schema' THEN 
       CASE c.relkind 
        WHEN 'r' THEN 'SYSTEM TABLE' 
        WHEN 'v' THEN 'SYSTEM VIEW' 
        WHEN 'i' THEN 'SYSTEM INDEX' 
        ELSE NULL 
       END 
       WHEN n.nspname = 'pg_toast' THEN 
       CASE c.relkind 
        WHEN 'r' THEN 'SYSTEM TOAST TABLE' 
        WHEN 'i' THEN 'SYSTEM TOAST INDEX' 
        ELSE NULL 
       END 
       ELSE 
       CASE c.relkind 
        WHEN 'r' THEN 'TEMPORARY TABLE' 
        WHEN 'i' THEN 'TEMPORARY INDEX' 
        ELSE NULL 
       END 
      END 
      WHEN false THEN 
       CASE c.relkind 
       WHEN 'r' THEN 'TABLE' 
       WHEN 'i' THEN 'INDEX' 
       WHEN 'S' THEN 'SEQUENCE' 
       WHEN 'v' THEN 'VIEW' 
       ELSE NULL 
       END 
      ELSE NULL 
      END AS TABLE_TYPE, 
      d.description AS REMARKS 
     FROM pg_catalog.pg_namespace n, 
      pg_catalog.pg_class c 
LEFT JOIN pg_catalog.pg_description d ON (c.oid = d.objoid 
             AND d.objsubid = 0) 
LEFT JOIN pg_catalog.pg_class dc ON (d.classoid = dc.oid 
           AND dc.relname='pg_class' 
+0

Gözlerim kullanmak söyleyebilir .. onun okunabilir böylece editörü uygun kodlama etiketleri ile biçimlendirmek edin. – stefan

+0

Bu şekilde biçimlendirilmemiş bir kod gönderin ve ben yardım etmeyeceğim. SO, sorununuzu okuyamazsa, SO yardımcı olmaz. –

+0

sorguda 'VAKA n.nspname ~ '^ pg_'' bahsediyoruz? –

cevap

7

Postgresql JDBC sürücüsü getTables() uygulamasının bir parçasıdır.

tarihinde codesearch buna yol açacaktır. Başvurunuz c3p0 gibi bazı bağlantı yöneticisi kullandığında

+0

teşekkürler, Bunun PostgreSQL SERVER'e herhangi bir etkisi var mı? – francs

+0

Tek "etki", bir tablo listesi almanızdır. Keyfini çıkarın! :-) – intgr

+0

Merhaba, intgr, bu veritabanını ürün veritabanında gördün mü? – francs

1

Bu sorun da occures. C3P0 sorgu bağlantısının bağlantı havuzundan elde edilmesinden önce yürütülecek tanımlayan seçeneği preferredTestQuery sahiptir.

bunu bazı garip sql sorgusu yapacağını bu seçeneği ayarlayın olmadıysa

, aksi takdirde bunun preferredTestQuery=SELECT 1

+0

Yine de bu deyimi çalıştıran JDBC sürücüsüdür, çünkü c3p0'nın 'getTables'ı kullanan oldukça aptal bir varsayılan yapılandırması vardır.() Bir bağlantıyı doğrulamak için. –

+0

Sanırım bu c3p0 problemi ve JDBC sürücüsü değil, getTables() 'olması gerektiği gibi çalışıyor. – Raman

+0

Bu, bunun neden olduğu birçok nedenden birinin cevabı olabilir – Raman