MoinMoin - QueryPg macro

PURPOSE : To show the result of some queries on a postgresql db.

REQUISITES : Install the psycopg2 module. Your postgresql must be UTF-8

CONNECTION : Look inside the QueryPg file and change connvars to suit your needs

INPUTS : receives a valid query as a single argument.

OUTPUT : If the query returns one column with one row, just outputs the result, if it returns many columns or many rows, it prints a table. The headers of the tables will show spaces replacing underscores.


<<QueryDb(SELECT name FROM countries)>>

would fetch every name of the table country ;) and if there are results it will present the results in a table.:

There are <<QueryDb(SELECT count(*) from queries)>> query records

will inline the result on your html code

RECOMMENDATIONS :Create a reading user on your database, people looking with ?action=raw could deduce your database schema, if you are not concerned about security don't bother.Remember that anyone with write access to your wiki could do a nasty sql query to slow down you or D.O.S. attack your system.

IMPROVEMENTS : If you plan to use multiple wikis or multiple databases, you could create a separate file with dictionaries of identifiers and string connections, as a first input you would receive the key of the dictionary that will let you connect to the desired database, the second argument would be the query.