PG backend TIMESTAMP patch

Matthew Vanecek mevanecek@yahoo.com
30 Dec 2002 10:59:11 -0600


--=-j7MXwAtOmsmS4CjH32+5
Content-Type: multipart/mixed; boundary="=-0lS1VC9ZDtdpFPEz7EAf"


--=-0lS1VC9ZDtdpFPEz7EAf
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

Can someone apply the attached patch, please?  It changes all the
DATETIME to TIMESTAMP in the Postgresql backend DDL.  DATETIME will no
longer be supported as of Postgresql 7.3, and is already mapped to
TIMESTAMP in 7.1/7.2.

Thanks,
--=20
Matthew Vanecek
perl -e 'print $i=3Dpack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'
***************************************************************************=
*****
For 93 million miles, there is nothing between the sun and my shadow except=
 me.
I'm always getting in the way of something...

--=-0lS1VC9ZDtdpFPEz7EAf
Content-Type: application/DEFANGED-12416; name="pg_diff.DEFANGED-12416"; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment; filename="pg_diff.DEFANGED-12416"

? make.out
Index: ChangeLog
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/cvs/cvsroot/gnucash/ChangeLog,v
retrieving revision 1.1322
diff -u -r1.1322 ChangeLog
--- ChangeLog	30 Dec 2002 01:20:34 -0000	1.1322
+++ ChangeLog	30 Dec 2002 16:50:14 -0000
@@ -1,3 +1,20 @@
+2002-12-30  Matthew Vanecek <mevanecek@yahoo.com>
+	* src/backend/postgres/PostgresBackend.c: Added some ENTER
+	and LEAVE statements to more of the functions.
+
+	* src/backend/postgres/upgrade.c: Changed all the DATETIME
+	SQL data types to TIMESTAMP.  DATETIME will not be in Postgresql
+	as of 7.3.
+=09
+	* src/backend/postgres/functions.sql: Changed all the DATETIME
+	types in the DDL to TIMESTAMP.
+
+	* src/backend/postgres/table-create.sql: Changed all the DATETIME
+	types in the DDL to TIMESTAMP.
+
+	* src/backend/postgres/table-audit.sql: Changed all the DATETIME
+	types in the DDL to TIMESTAMP.
+
 2002-12-30  Christian Stimming  <stimming@tuhh.de>
=20
 	* src/business/business-gnome/dialog-invoice.c
Index: src/backend/postgres/PostgresBackend.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/cvs/cvsroot/gnucash/src/backend/postgres/PostgresBackend.c,v
retrieving revision 1.39
diff -u -r1.39 PostgresBackend.c
--- src/backend/postgres/PostgresBackend.c	24 Nov 2002 01:16:28 -0000	1.39
+++ src/backend/postgres/PostgresBackend.c	30 Dec 2002 16:50:25 -0000
@@ -148,13 +148,15 @@
    GList *node;
    Account * acc =3D NULL;
=20
+   ENTER("guid =3D %s", acct_guid);
    for (node=3Dbe->blist; node; node=3Dnode->next)
    {
       GNCBook *book =3D node->data;
       acc =3D xaccAccountLookup (acct_guid, book);
-      if (acc) return acc;
+      if (acc) { LEAVE("acc =3D %p", acc); return acc; }
    }
=20
+   LEAVE("acc =3D (null)");
    return NULL;
 }
=20
@@ -164,13 +166,15 @@
    GList *node;
    Transaction * txn =3D NULL;
=20
+   ENTER("guid =3D %s", txn_guid);
    for (node=3Dbe->blist; node; node=3Dnode->next)
    {
       GNCBook *book =3D node->data;
       txn =3D xaccTransLookup (txn_guid, book);
-      if (txn) return txn;
+      if (txn) { LEAVE("txt =3D %p", txn); return txn; }
    }
=20
+   LEAVE("txn =3D (null");
    return NULL;
 }
=20
@@ -180,13 +184,15 @@
    GList *node;
    Split * split =3D NULL;
=20
+   ENTER("guid =3D %s", split_guid);
    for (node=3Dbe->blist; node; node=3Dnode->next)
    {
       GNCBook *book =3D node->data;
       split =3D xaccSplitLookup (split_guid, book);
-      if (split) return split;
+      if (split) { LEAVE("split =3D %p", split); return split; }
    }
=20
+   LEAVE("split =3D (null)");
    return NULL;
 }
=20
@@ -196,11 +202,12 @@
    GList *node;
    GNCPrice * price =3D NULL;
=20
+   ENTER("guid =3D %s", price_guid);
    for (node=3Dbe->blist; node; node=3Dnode->next)
    {
       GNCBook *book =3D node->data;
       price =3D gnc_price_lookup (price_guid, book);
-      if (price) return price;
+      if (price) { LEAVE("price =3D %p", price); return price; }
    }
=20
    return NULL;
@@ -212,13 +219,15 @@
    GList *node;
    GNCIdType tip =3D GNC_ID_NONE;
=20
+   ENTER("guid =3D %s", guid);
    for (node=3Dbe->blist; node; node=3Dnode->next)
    {
       GNCBook *book =3D node->data;
       tip =3D xaccGUIDType (guid, book);
-      if (GNC_ID_NONE !=3D tip) return tip;
+      if (GNC_ID_NONE !=3D tip) { LEAVE("tip =3D %s", tip); return tip; }
    }
=20
+   LEAVE("tip =3D NULL");
    return GNC_ID_NONE;
 }
=20
@@ -2420,6 +2429,8 @@
    int i;
    Timespec ts;
=20
+   ENTER(" ");
+=20=20=20
    /* initialize global variable */
    nullguid =3D *(xaccGUIDNULL());
=20
@@ -2482,6 +2493,7 @@
    be->session =3D NULL;
    be->book =3D NULL;
    be->blist =3D NULL;
+   LEAVE(" ");
 }
=20
 /* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D */
@@ -2491,9 +2503,11 @@
 {
    PGBackend *be;
=20
+   ENTER(" ");
    be =3D g_new0 (PGBackend, 1);
    pgendInit (be);
=20
+   LEAVE(" ")
    return (Backend *) be;
 }
=20
Index: src/backend/postgres/functions.sql
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/cvs/cvsroot/gnucash/src/backend/postgres/functions.sql,v
retrieving revision 1.2
diff -u -r1.2 functions.sql
--- src/backend/postgres/functions.sql	7 Nov 2001 10:06:03 -0000	1.2
+++ src/backend/postgres/functions.sql	30 Dec 2002 16:50:25 -0000
@@ -12,7 +12,7 @@
=20
 -- utility functions to compute checkpoint balance subtotals
=20
-CREATE FUNCTION gncSubtotalBalance (CHAR(32), DATETIME, DATETIME)
+CREATE FUNCTION gncSubtotalBalance (CHAR(32), TIMESTAMP, TIMESTAMP)
     RETURNS INT8
     AS 'SELECT INT8(sum(gncEntry.amount))
         FROM gncEntry, gncTransaction
@@ -22,7 +22,7 @@
         gncTransaction.date_posted BETWEEN $2 AND $3'
     LANGUAGE 'sql';
=20
-CREATE FUNCTION gncSubtotalClearedBalance (CHAR(32), DATETIME, DATETIME)
+CREATE FUNCTION gncSubtotalClearedBalance (CHAR(32), TIMESTAMP, TIMESTAMP)
     RETURNS INT8
     AS 'SELECT INT8(sum(gncEntry.amount))
         FROM gncEntry, gncTransaction
@@ -33,7 +33,7 @@
         gncEntry.reconciled <> \\'n\\''
     LANGUAGE 'sql';
=20
-CREATE FUNCTION gncSubtotalReconedBalance (CHAR(32), DATETIME, DATETIME)
+CREATE FUNCTION gncSubtotalReconedBalance (CHAR(32), TIMESTAMP, TIMESTAMP)
     RETURNS INT8
     AS 'SELECT INT8(sum(gncEntry.amount))
         FROM gncEntry, gncTransaction
Index: src/backend/postgres/table-audit.sql
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/cvs/cvsroot/gnucash/src/backend/postgres/table-audit.sql,v
retrieving revision 1.7
diff -u -r1.7 table-audit.sql
--- src/backend/postgres/table-audit.sql	2 Jan 2002 06:35:25 -0000	1.7
+++ src/backend/postgres/table-audit.sql	30 Dec 2002 16:50:25 -0000
@@ -29,7 +29,7 @@
=20
 CREATE TABLE gncAuditTrail (
 	sessionGuid		CHAR(32)  NOT NULL,   -- who changed it
-	date_changed 		DATETIME,   -- when they changed it
+	date_changed 		TIMESTAMP,   -- when they changed it
         change			CHAR NOT NULL,
         objtype			CHAR NOT NULL
 );
@@ -78,7 +78,7 @@
 	memo			TEXT,
 	action			TEXT,
 	reconciled		CHAR DEFAULT 'n',
-	date_reconciled 	DATETIME,
+	date_reconciled 	TIMESTAMP,
 	amount			INT8 DEFAULT '0',
 	value			INT8 DEFAULT '0',
 	iguid			INT4 DEFAULT 0
@@ -90,7 +90,7 @@
 	priceGuid	CHAR(32) NOT NULL,  -- override, not a primary key anymore
 	commodity	TEXT NOT NULL CHECK (commodity <>''),
 	currency	TEXT NOT NULL CHECK (commodity <>''),
-	time		DATETIME,
+	time		TIMESTAMP,
 	source		TEXT,
 	type		TEXT,
 	valueNum	INT8 DEFAULT '0',
@@ -103,9 +103,9 @@
=20
 CREATE TABLE gncTransactionTrail (
 	transGuid	CHAR(32) NOT NULL,  -- override, not a primary key anymore
-	last_modified 	DATETIME DEFAULT 'NOW',
-	date_entered 	DATETIME,
-	date_posted 	DATETIME,
+	last_modified 	TIMESTAMP DEFAULT 'NOW',
+	date_entered 	TIMESTAMP,
+	date_posted 	TIMESTAMP,
 	num		TEXT,
 	description	TEXT,
         currency	TEXT NOT NULL CHECK (currency <> ''),
@@ -161,7 +161,7 @@
 	iguid		INT4,
 	ipath		INT4,
 	type		char(4),
-	data		DATETIME
+	data		TIMESTAMP
 ) INHERITS (gncAuditTrail);
=20
 CREATE TABLE gncKVPvalue_listTrail (
Index: src/backend/postgres/table-create.sql
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/cvs/cvsroot/gnucash/src/backend/postgres/table-create.sql,v
retrieving revision 1.7
diff -u -r1.7 table-create.sql
--- src/backend/postgres/table-create.sql	2 Jan 2002 06:35:26 -0000	1.7
+++ src/backend/postgres/table-create.sql	30 Dec 2002 16:50:25 -0000
@@ -27,7 +27,7 @@
 	minor	INT NOT NULL,
 	rev	INT DEFAULT '0',
 	name	TEXT UNIQUE NOT NULL CHECK (name <> ''),
-	date	DATETIME DEFAULT 'NOW'
+	date	TIMESTAMP DEFAULT 'NOW'
 );
=20
 -- Commodity structure
@@ -72,9 +72,9 @@
=20
 CREATE TABLE gncTransaction (
 	transGuid	CHAR(32) PRIMARY KEY,
-	last_modified 	DATETIME DEFAULT 'NOW',
-	date_entered 	DATETIME,
-	date_posted 	DATETIME,
+	last_modified 	TIMESTAMP DEFAULT 'NOW',
+	date_entered 	TIMESTAMP,
+	date_posted 	TIMESTAMP,
 	num		TEXT,
 	description	TEXT,
         currency	TEXT NOT NULL CHECK (currency <> ''),
@@ -94,7 +94,7 @@
 	memo			TEXT,
 	action			TEXT,
 	reconciled		CHAR DEFAULT 'n',
-	date_reconciled 	DATETIME,
+	date_reconciled 	TIMESTAMP,
 	amount			INT8 DEFAULT '0',
 	value			INT8 DEFAULT '0',
 	iguid			INT4 DEFAULT 0
@@ -114,8 +114,8 @@
=20
 CREATE TABLE gncCheckpoint (
 	accountGuid		CHAR(32) NOT NULL,
-	date_start	 	DATETIME NOT NULL,
- 	date_end	 	DATETIME NOT NULL,
+	date_start	 	TIMESTAMP NOT NULL,
+ 	date_end	 	TIMESTAMP NOT NULL,
 	commodity		TEXT NOT NULL CHECK (commodity <>''),
 	type			TEXT DEFAULT 'simple',
 	balance			INT8 DEFAULT '0',
@@ -131,7 +131,7 @@
 	priceGuid	CHAR(32) PRIMARY KEY,
 	commodity	TEXT NOT NULL CHECK (commodity <>''),
 	currency	TEXT NOT NULL CHECK (commodity <>''),
-	time		DATETIME,
+	time		TIMESTAMP,
 	source		TEXT,
 	type		TEXT,
 	valueNum	INT8 DEFAULT '0',
@@ -157,8 +157,8 @@
 	hostname		TEXT,
 	login_name		TEXT,
 	gecos			TEXT,
-	time_on			DATETIME NOT NULL,
-	time_off		DATETIME NOT NULL DEFAULT 'INFINITY'
+	time_on			TIMESTAMP NOT NULL,
+	time_off		TIMESTAMP NOT NULL DEFAULT 'INFINITY'
 );
=20
=20
@@ -230,7 +230,7 @@
 -- CREATE INDEX gncKVPvalue_guid_iguid_idx ON gncKVPvalue_guid (iguid);
=20
 CREATE TABLE gncKVPvalue_timespec (
-	data		DATETIME
+	data		TIMESTAMP
 --        PRIMARY KEY (iguid, ipath)
 ) INHERITS (gncKVPvalue);
=20
Index: src/backend/postgres/upgrade.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/cvs/cvsroot/gnucash/src/backend/postgres/upgrade.c,v
retrieving revision 1.10
diff -u -r1.10 upgrade.c
--- src/backend/postgres/upgrade.c	3 Jan 2002 10:04:01 -0000	1.10
+++ src/backend/postgres/upgrade.c	30 Dec 2002 16:50:25 -0000
@@ -71,7 +71,7 @@
        "  minor    INT NOT NULL,\n"
        "  rev      INT DEFAULT '0',\n"
        "  name     TEXT UNIQUE NOT NULL CHECK (name <> ''),\n"
-       "  date     DATETIME DEFAULT 'NOW' \n"
+       "  date     TIMESTAMP DEFAULT 'NOW' \n"
        ");\n"
        "INSERT INTO gncVersion (major,minor,rev,name) VALUES \n"
        " (1,0,0,'Version Table');";
@@ -227,12 +227,12 @@
    FINISH_QUERY(be->connection);
=20
    p =3D "DROP FUNCTION "
-       "gncSubtotalReconedBalance (CHAR(32), DATETIME, DATETIME);";
+       "gncSubtotalReconedBalance (CHAR(32), TIMESTAMP, TIMESTAMP);";
    SEND_QUERY (be,p, );
    FINISH_QUERY(be->connection);
=20
    p =3D "CREATE FUNCTION "
-       "gncSubtotalReconedBalance (CHAR(32), DATETIME, DATETIME)"
+       "gncSubtotalReconedBalance (CHAR(32), TIMESTAMP, TIMESTAMP)"
          "RETURNS INT8 "
          "AS 'SELECT INT8(sum(gncEntry.amount)) "
            "FROM gncEntry, gncTransaction "
@@ -266,7 +266,7 @@
   FINISH_QUERY(be->connection);
=20
   p =3D "CREATE TABLE gncKVPvalue_timespec ( "
-      "  data		DATETIME "
+      "  data		TIMESTAMP "
       ") INHERITS (gncKVPvalue);";
   SEND_QUERY (be,p, );
   FINISH_QUERY(be->connection);
@@ -275,7 +275,7 @@
       "  iguid		INT4, "
       "  ipath		INT4, "
       "  type		char(4), "
-      "  data		DATETIME "
+      "  data		TIMESTAMP "
       ") INHERITS (gncAuditTrail);";
   SEND_QUERY (be,p, );
   FINISH_QUERY(be->connection);

--=-0lS1VC9ZDtdpFPEz7EAf--
--=-j7MXwAtOmsmS4CjH32+5
Content-Type: application/DEFANGED-12417; name="signature_asc.DEFANGED-12417"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQA+EHtfi/CNzDSN0RIRAhZrAJ4laSVcS5eTSN9Rui2S5LT9csugGgCglxJb
PRFeX8xeMxPHrCIcB8grdrg=
=q9H+
-----END PGP SIGNATURE-----

--=-j7MXwAtOmsmS4CjH32+5--