Maison base de données tutoriel mysql PostgreSQL 9.1.3 plpgsql debugger module

PostgreSQL 9.1.3 plpgsql debugger module

Jun 07, 2016 pm 05:17 PM
postgresql

今天一位网友在群里面问PostgreSQL 9.0如何debug 函数. 我记得在8.3的时候有一个插件叫edb-debugger是可以使用的. 手头上没有9.0

今天一位网友在群里面问PostgreSQL 9.0如何debug 函数. 我记得在8.3的时候有一个插件叫edb-debugger是可以使用的. 手头上没有9.0的数据库, 于是测试了一下在9.1上能不能用, 结果是编译不通过.

最后找到了解决办法, 记录如下.

在pgfoundry中有一个开源的edb-debugger插件可以用来调试PostgreSQL的PLPGSQL函数.

但是这个版本太老, 在PostgreSQL 9.1中无法编译通过, 报错如下.

make 

gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -fpic  -I. -I. -I../../src/include -D_GNU_SOURCE -I/usr/include/libxml2   -c -o pldbgapi.o pldbgapi.c

pldbgapi.c: In function ‘pldbg_attach_to_port’:

pldbgapi.c:346: warning: implicit declaration of function ‘MAKE_OFFSET’

pldbgapi.c: In function ‘pldbg_wait_for_target’:

pldbgapi.c:474: warning: implicit declaration of function ‘SHM_OFFSET_VALID’

pldbgapi.c:476: warning: implicit declaration of function ‘MAKE_PTR’

pldbgapi.c:476: warning: cast to pointer from integer of different size

gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -fpic  -L../../src/port  -Wl,-rpath,'/opt/pgsql/lib',--enable-new-dtags  -shared -o pldbgapi.so pldbgapi.o

gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -fpic  -I. -I. -I../../src/include -D_GNU_SOURCE -I/usr/include/libxml2   -c -o targetinfo.o targetinfo.c

targetinfo.c: In function ‘getTriggerFuncOid’:

targetinfo.c:268: error: ‘SnapshotNow’ undeclared (first use in this function)

targetinfo.c:268: error: (Each undeclared identifier is reported only once

targetinfo.c:268: error: for each function it appears in.)

targetinfo.c: In function ‘getProcOidBySig’:

targetinfo.c:508: error: too few arguments to function ‘FuncnameGetCandidates’

targetinfo.c: In function ‘getProcOidByName’:

targetinfo.c:555: error: too few arguments to function ‘FuncnameGetCandidates’

make: *** [targetinfo.o] Error 1

rm pldbgapi.o

不知道为什么不更新了, 作者是这两位.

在EDB发布的EDB-AS版本中是包含了debugger的.

只是直接把它的so文件拷贝到开源版本的PostgreSQL中无法使用.

例如我把EDB-AS 9.1.2.2版本的$libdir/plugins/plugin_debugger.so文件拷贝到开源的PostgreSQL $PGHOME/lib/plugins/目录下.

配置postgresql.conf

在启动数据库时报错如下 : 

这个NonSPLFunctionContext在PostgresPlus/9.1AS/include/server/utils/elog.h 文件里面定义的.

但是把它拷贝到开源的PostgreSQL的/opt/pgsql/include/server/utils/elog.h后依旧.


虽然pgfoundry里面提供下载的只有0.9.3版本, 庆幸的是cvs里面有最新的.

请见参考链接, 把这些文件下载过了后放到源码的contrib目录里面新建一个debugger目录.

编译过程 : 

make

make install

修改数据库配置文件 : 

重启数据库,

在需要调试的数据库里面使用超级用户安装函数和类.

CREATE TYPE

CREATE TYPE

CREATE TYPE

CREATE TYPE

CREATE TYPE

CREATE FUNCTION

CREATE FUNCTION

CREATE FUNCTION

CREATE FUNCTION

CREATE FUNCTION

CREATE FUNCTION

CREATE FUNCTION

CREATE FUNCTION

CREATE FUNCTION

CREATE FUNCTION

CREATE FUNCTION

CREATE FUNCTION

CREATE FUNCTION

CREATE FUNCTION

CREATE FUNCTION

CREATE FUNCTION

CREATE FUNCTION

CREATE FUNCTION

CREATE FUNCTION

CREATE FUNCTION

创建一个测试函数 : 

使用pgAdmin登陆到这个数据库, 右键点击函数的时候就有调试选项了.

PostgreSQL 9.1.3 plpgsql debugger module


一个调试页面截图 : 

PostgreSQL 9.1.3 plpgsql debugger module

linux

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

MySQL et PostgreSQL : comparaison des performances et conseils d'optimisation MySQL et PostgreSQL : comparaison des performances et conseils d'optimisation Jul 13, 2023 pm 03:33 PM

MySQL et PostgreSQL : comparaison des performances et conseils d'optimisation Lors du développement d'applications Web, la base de données est un composant indispensable. Lors du choix d'un système de gestion de base de données, MySQL et PostgreSQL sont deux choix courants. Ce sont tous deux des systèmes de gestion de bases de données relationnelles (SGBDR) open source, mais il existe certaines différences en termes de performances et d'optimisation. Cet article comparera les performances de MySQL et PostgreSQL et fournira quelques conseils d'optimisation. Comparaison des performances comparant deux gestions de bases de données

MySQL et PostgreSQL : meilleures pratiques en matière de développement Web MySQL et PostgreSQL : meilleures pratiques en matière de développement Web Jul 14, 2023 pm 02:34 PM

MySQL et PostgreSQL : meilleures pratiques en matière de développement Web Introduction : dans le monde moderne du développement Web, les bases de données sont un composant essentiel. Lors du choix d'une base de données, les choix courants sont MySQL et PostgreSQL. Cet article couvrira les meilleures pratiques d'utilisation de MySQL et PostgreSQL dans le développement Web et fournira quelques exemples de code. 1. Scénarios applicables MySQL convient à la plupart des applications Web, en particulier celles qui nécessitent des performances élevées, une évolutivité et une facilité d'utilisation.

Apprenez les fonctions de base de données en langage Go et implémentez les opérations d'ajout, de suppression, de modification et de requête des données PostgreSQL. Apprenez les fonctions de base de données en langage Go et implémentez les opérations d'ajout, de suppression, de modification et de requête des données PostgreSQL. Jul 31, 2023 pm 12:54 PM

Apprenez les fonctions de la base de données dans le langage Go et implémentez les opérations d'ajout, de suppression, de modification et d'interrogation des données PostgreSQL. Dans le développement de logiciels modernes, la base de données est un élément indispensable. En tant que langage de programmation puissant, le langage Go fournit une multitude de fonctions et de boîtes à outils d'exploitation de base de données, qui peuvent facilement mettre en œuvre des opérations d'ajout, de suppression, de modification et d'interrogation de la base de données. Cet article explique comment apprendre les fonctions de base de données en langage Go et utiliser la base de données PostgreSQL pour les opérations réelles. Étape 1 : Installez le pilote de base de données en langage Go pour chaque base de données

MySQL et PostgreSQL : stratégies de sécurité et de sauvegarde des données MySQL et PostgreSQL : stratégies de sécurité et de sauvegarde des données Jul 13, 2023 pm 03:31 PM

MySQL et PostgreSQL : sécurité des données et stratégies de sauvegarde Introduction : Dans la société moderne, les données sont devenues un élément indispensable de la vie professionnelle et personnelle. Pour les systèmes de gestion de bases de données, la sécurité des données et les stratégies de sauvegarde sont cruciales, à la fois pour protéger les données contre la perte ou l’endommagement et pour garantir la fiabilité et l’intégrité des données récupérées. Cet article se concentrera sur les stratégies de sécurité et de sauvegarde des données de deux systèmes de bases de données relationnelles grand public, MySQL et PostgreSQL. 1. Sécurité des données : (1) Droits des utilisateurs

Utiliser PostgreSQL dans Go : un guide complet Utiliser PostgreSQL dans Go : un guide complet Jun 18, 2023 am 09:28 AM

Le langage Go est un langage de programmation rapide et efficace adapté à la création de services Web et d'applications back-end. PostgreSQL est un système de gestion de base de données relationnelle open source qui promet d'offrir une fiabilité, une évolutivité et une sécurité des données supérieures. Dans cet article, nous allons approfondir l'utilisation de PostgreSQL avec Go et fournir des exemples de code et des conseils pratiques. Installation et configuration de PostgreSQL Tout d'abord, nous devons installer et configurer PostgreSQL. Peut être trouvé sur le site officiel

Comment utiliser la base de données PostgreSQL en programmation PHP ? Comment utiliser la base de données PostgreSQL en programmation PHP ? Jun 12, 2023 am 09:27 AM

Avec le développement de la technologie des bases de données, les systèmes de gestion de bases de données présentent également une variété de choix. Les développeurs peuvent choisir la base de données la plus adaptée en fonction de leurs besoins et préférences. En tant que système de base de données relationnelle open source avancé, PostgreSQL attire de plus en plus l'attention et l'utilisation des développeurs. Alors, comment utiliser la base de données PostgreSQL en programmation PHP ? 1. Installez et configurez la base de données PostgreSQL Avant d'utiliser PostgreSQL, vous devez l'installer et la configurer. d'abord

MySQL et PostgreSQL : Comment optimiser les performances des requêtes de base de données ? MySQL et PostgreSQL : Comment optimiser les performances des requêtes de base de données ? Jul 12, 2023 pm 03:15 PM

MySQL et PostgreSQL : Comment optimiser les performances des requêtes de base de données ? Présentation : les performances des requêtes de base de données sont une considération importante lors du développement d'applications. De bonnes performances de requête améliorent la réactivité des applications et l’expérience utilisateur. Cet article présentera quelques méthodes pour optimiser les performances des requêtes de base de données, en se concentrant sur deux bases de données couramment utilisées, MySQL et PostgreSQL. Optimisation des index de base de données : les index de base de données sont un facteur important dans l'amélioration des performances des requêtes. Les index peuvent accélérer la recherche de données et réduire le temps d'analyse des requêtes.

Planification et mise à l'échelle de la capacité de la base de données : MySQL vs PostgreSQL Planification et mise à l'échelle de la capacité de la base de données : MySQL vs PostgreSQL Jul 12, 2023 pm 01:43 PM

Planification et expansion de la capacité des bases de données : MySQL vs PostgreSQL Introduction : Avec le développement rapide d'Internet et l'avènement de l'ère du Big Data, la planification et l'expansion de la capacité des bases de données sont devenues de plus en plus importantes. MySQL et PostgreSQL sont deux systèmes de gestion de bases de données relationnelles (SGBDR) populaires. Ils ont des caractéristiques différentes et des scénarios applicables en termes de planification et d'expansion de la capacité des bases de données. Cet article comparera les deux bases de données et donnera quelques exemples de code pour démontrer leurs différences. 1. MySQL

See all articles