Thread: [ANNOUNCE] Gedafe (the Generic Database Front-End) 1.0.0

[ANNOUNCE] Gedafe (the Generic Database Front-End) 1.0.0

From
David Schweikert
Date:
Tobias Oetiker and David Schweikert are proud to announce:
               _        __            _   ___   ___   __ _  ___  __| | __ _ / _| ___      / | / _ \ / _ \ / _` |/ _ \/
_`|/ _` | |_ / _ \_____| || | | | | | |
 
| (_| |  __/ (_| | (_| |  _|  __/_____| || |_| | |_| |\__, |\___|\__,_|\__,_|_|  \___|     |_(_)___(_)___/ |___/
             #### Gedafe (the Generic Database Front-End) 1.0.0 ####
 


Introduction
------------
   Gedafe (Generic Database Front-End) is an application independent   end-user web front-end for databases.
Applicationindependant means,   that the front-end doesn't have any information about the   structure and contents of
thedatabase.
 
   The idea behind Gedafe is to put all the application logic   into the database, along with meta-information on how
topresent   the data. The front-end then gathers this information and uses it   to build the user interface. This
approachgreatly reduces   development time since you only have to develop the application at   the database level and
theweb front-end comes for free.
 
   And there is more:    * Gedafe uses a flexible templating system. It allows you     customize the look of the user
interfaceto a large degree.
 
   * Gedafe generated interfaces support "deep linking". This     means that you can bookmark every page as it is
presented.
   * At the moment Gedafe works only with PostgreSQL. But the     structure of the application does not depend on
PostgreSQL.
   * Gedafe is *NOT* yet another database-administration front-end     with table editing ability. It is a real user
interface.

Release Notes
-------------
   This is the first public version. The program has been used   internally in a production environment for several
months.

Availability
------------
   Gedafe is released under the GNU General Public License.   Read more about it and download at
   >> http://isg.ee.ethz.ch/tools/gedafe <<



Re: [ANNOUNCE] Gedafe (the Generic Database Front-End) 1.0.0

From
Manika Dey
Date:
Hi,
  I would like to know if Gedafe has the feature of graph  for example if i am having data can it plot the data  from
thepostgresql.
 
 Looking forward for quick reply. manika

-------------------------------------------------------------------

From:-                          | Ms. Manika Dey.                |Ph.No:--Engineer-SC (Comp. Tech.)      | IPR -- 02712
-69276 I.P.R                          |          EXT 336,315BHAT, GANDHINAGAR              | Residence -- 079 -7421117
Gujrat-- 382 428              | FAX --- 69017 ------------------------------------------------------------------ 
 



                                                     


On Wed, 24 Jan 2001, David Schweikert wrote:

> Tobias Oetiker and David Schweikert are proud to announce:
> 
>                 _        __            _   ___   ___  
>   __ _  ___  __| | __ _ / _| ___      / | / _ \ / _ \ 
>  / _` |/ _ \/ _` |/ _` | |_ / _ \_____| || | | | | | |
> | (_| |  __/ (_| | (_| |  _|  __/_____| || |_| | |_| |
>  \__, |\___|\__,_|\__,_|_|  \___|     |_(_)___(_)___/ 
>  |___/             
>           #### Gedafe (the Generic Database Front-End) 1.0.0 ####
> 
> 
> Introduction
> ------------
> 
>     Gedafe (Generic Database Front-End) is an application independent
>     end-user web front-end for databases. Application independant means,
>     that the front-end doesn't have any information about the
>     structure and contents of the database.
> 
>     The idea behind Gedafe is to put all the application logic
>     into the database, along with meta-information on how to present
>     the data. The front-end then gathers this information and uses it
>     to build the user interface. This approach greatly reduces
>     development time since you only have to develop the application at
>     the database level and the web front-end comes for free.
> 
>     And there is more:
>   
>     * Gedafe uses a flexible templating system. It allows you
>       customize the look of the user interface to a large degree.
> 
>     * Gedafe generated interfaces support "deep linking". This
>       means that you can bookmark every page as it is presented.
> 
>     * At the moment Gedafe works only with PostgreSQL. But the
>       structure of the application does not depend on PostgreSQL.
> 
>     * Gedafe is *NOT* yet another database-administration front-end
>       with table editing ability. It is a real user interface.
> 
> Release Notes
> -------------
> 
>     This is the first public version. The program has been used
>     internally in a production environment for several months.
> 
> Availability
> ------------
> 
>     Gedafe is released under the GNU General Public License.
>     Read more about it and download at
> 
>     >> http://isg.ee.ethz.ch/tools/gedafe <<
> 
> 



Re: [ANNOUNCE] Gedafe (the Generic Database Front-End) 1.0.0

From
David Schweikert
Date:
On Thu, Jan 25, 2001 at 11:21:53 -0500, Manika Dey wrote:
> Hi,
> 
>    I would like to know if Gedafe has the feature of graph
>    for example if i am having data can it plot the data
>    from the postgresql.

Hi Manika,

At the moment Gedafe is only a tool for making interfaces where you
view and edit tables. You can make very basic graphics by outputting
HTML into the list view (a view is used for displaying the table, so
that you can customize it). See the following screenshot:

http://isg.ee.ethz.ch/tools/gedafe/screenshots/isgptp3.png

This was done in the database, the graphs are fields of a view...

For the future, a better reporting system is planned (using
PearlReports, a reports-generating module written by Tobias Oetiker).
With that system you will be also probably able to generate more
complicated graphics.

Ciao,
David

PS: Your e-mail doesn't seem to work.

--     _ __| |___   David Schweikert <dws@ee.ethz.ch>/ _` / __|  IT Support Group, EE-Dept, ETH-Zurich
| (_| \__ \  Tel: +41(0)1-6327019  Room: ETL F24.1\__,_|___/  http://ee-staff.ethz.ch/~dws


libpq/c function question

From
"Joe Conway"
Date:
Hi,

Apologies if this hits the list twice, but my first email (from yesterday)
seems have to gone to /dev/null instead of the list :(
Also, please be gentle, this is my first foray into C programming :)

Here's what I did/am trying to do:

- First, I created a C function based on the version 1 calling convention
from the 7.1 docs
(http://www.postgresql.org/devel-corner/docs/programmer/xfunc-c.htm). It is
intended to accept two text parameters -- the first is a connection string
for PQconnectdb, and the second is a SQL statement. The code is attached in
jec-repl.c

- Second, I registered the function in PostgeSQL using jec-repl.sql
(attached).

- Third, I created a pgplsql function (sync_data_test) to invoke the C
function (sync_data_test.sql)

- The overall idea was to do a simple form of host-to-host replication using
a trigger based on a pgplsql function similar to sysnc_data_test. I wanted
to keep the C function very specific to the task of connecting to an
arbitrary host and executing a SQL statement (not returning tuples, of
course) and leave most of the replication logic to the pgplsql function.

The problem is that the C function fails to connect consistantly. I found
through trial and error that if I pad the connection string with several
spaces (the exact number seems to constant within one psql session, but
varies from session to session) it is able to connect and execute my insert
statement successfully. Below I'll include some sample output of a psql
session. I'm running RedHat Linux 6.2, and the 7.1 beta 3 tarball.

Any help or guidance is very much appreciated!

Joe Conway

p.s. Note - the function returns 2 on a failure to connect (PQstatus(conn)
== CONNECTION_BAD) and 0 on successful execution of the insert statement.

jec1=# select version();                               version
------------------------------------------------------------------------PostgreSQL 7.1devel on i686-pc-linux-gnu,
compiledby GCC egcs-2.91.66
 
(1 row)


jec1=# select sync_data_test('hostaddr=172.16.1.84 port=5432 dbname=jec2
user=postgres password=mypasswd','    insert into t1(f1) values(987)');sync_data_test
----------------             2
(1 row)

jec1=# select sync_data_test(' hostaddr=172.16.1.84 port=5432 dbname=jec2
user=postgres password=mypasswd','    insert into t1(f1) values(987)');sync_data_test
----------------             2
(1 row)

jec1=# select sync_data_test('  hostaddr=172.16.1.84 port=5432 dbname=jec2
user=postgres password=mypasswd','    insert into t1(f1) values(987)');sync_data_test
----------------             2
(1 row)

jec1=# select sync_data_test('    hostaddr=172.16.1.84 port=5432 dbname=jec2
user=postgres password=mypasswd','    insert into t1(f1) values(987)');sync_data_test
----------------             0
(1 row)

jec1=# select sync_data_test('    hostaddr=172.16.1.84 port=5432 dbname=jec2
user=postgres password=mypasswd','    insert into t1(f1) values(987)');sync_data_test
----------------             0
(1 row)

jec1=# select sync_data_test('hostaddr=172.16.1.84 port=5432 dbname=jec2
user=postgres password=mypasswd'::text,'    insert into t1(f1)
values(987)');sync_data_test
----------------             2
(1 row)


Re: libpq/c function question

From
Tom Lane
Date:
"Joe Conway" <joe.conway@mail.com> writes:
>     optstr = PG_GETARG_TEXT_P(0);
>     jpgsql = PG_GETARG_TEXT_P(1);

>     conn = PQconnectdb(VARDATA(optstr));

I think you've missed the fact that a TEXT value's VARDATA is not
null-terminated.  There are numerous examples of transforming a TEXT
into a C string in the backend, see for example text_cmp/varstr_cmp
in src/backend/utils/adt/varlena.c.
        regards, tom lane


Re: libpq/c function question

From
"Joe Conway"
Date:
> "Joe Conway" <joe.conway@mail.com> writes:
> > optstr = PG_GETARG_TEXT_P(0);
> > jpgsql = PG_GETARG_TEXT_P(1);
> 
> > conn = PQconnectdb(VARDATA(optstr));
> 
> I think you've missed the fact that a TEXT value's VARDATA is not
> null-terminated.  There are numerous examples of transforming a TEXT
> into a C string in the backend, see for example text_cmp/varstr_cmp
> in src/backend/utils/adt/varlena.c.
> 
> regards, tom lane

That did the trick!

Thank you!!

Joe