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

सभी उपयोगकर्ता-परिभाषित (विस्तार से संबंधित नहीं) कार्यों को कैसे खोजें?

जैसा कि @Craig ने टिप्पणी की है, निर्भरताएं pg_catalog.pg_depend

क्वेरी कुछ इस तरह दिख सकती है (11 पोस्ट करें या बाद में):

SELECT p.proname AS function_name
     , pg_get_function_identity_arguments(p.oid) AS parameter_list
     , pg_get_functiondef(p.oid) AS function_def  -- CREATE FUNCTION statement
FROM   pg_proc p
LEFT   JOIN pg_depend d ON d.objid = p.oid 
                       AND d.deptype = 'e'        -- would depend on extension
WHERE  p.pronamespace = 'public'::regnamespace    -- your schema(s) of interest
AND    d.objid IS NULL                            -- no such dependency
AND    p.prokind = 'f';                           -- only plain functions

यह परिणाम से एक विस्तार के आधार पर सभी कार्यों को बाहर करता है। मैनुअल निर्भरता प्रकार के बारे में deptype = 'e' :

और p.prokind = 'f' परिणाम को सादे कार्यों तक सीमित करता है। मैनुअल:

Postgres 11 में यह नया है। 10 या पुराने पोस्ट के लिए इसके बजाय उपयोग करें:

SELECT ...
...
AND    NOT proisagg     -- no aggregate functions
AND    NOT proiswindow  -- no window functions

कोई प्रक्रियाएं नहीं थी , फिर भी।

pg_get_function_identity_arguments() ढूंढें और pg_get_functiondef() यहां मैनुअल में . संबंधित:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:pg_dump में सुधार, pg_restore प्रदर्शन

  2. Docker में PostgreSQL - होस्ट से कंटेनर तक पहुंच की अनुमति देने के लिए pg_hba.conf

  3. डेटाबेस माइग्रेट करने वाली रेल + पोस्टजीआईएस त्रुटियाँ

  4. PostGIS में K-निकटतम पड़ोसी क्वेरी

  5. PostgreSQL JDBC ड्राइवर Heroku DB कनेक्शन के लिए काम नहीं कर रहा है