summaryrefslogtreecommitdiffstats
path: root/relcatalogif/mddtype.pgc
diff options
context:
space:
mode:
Diffstat (limited to 'relcatalogif/mddtype.pgc')
-rw-r--r--relcatalogif/mddtype.pgc128
1 files changed, 128 insertions, 0 deletions
diff --git a/relcatalogif/mddtype.pgc b/relcatalogif/mddtype.pgc
new file mode 100644
index 0000000..052aba6
--- /dev/null
+++ b/relcatalogif/mddtype.pgc
@@ -0,0 +1,128 @@
+// This is -*- C++ -*-
+
+/*
+* This file is part of rasdaman community.
+*
+* Rasdaman community is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* Rasdaman community is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
+*
+* Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
+rasdaman GmbH.
+*
+* For more information please see <http://www.rasdaman.org>
+* or contact Peter Baumann via <baumann@rasdaman.com>.
+*/
+/*************************************************************
+ *
+ *
+ * PURPOSE:
+ * Code with embedded SQL for PostgreSQL DBMS
+ *
+ *
+ * COMMENTS:
+ * uses embedded SQL
+ *
+ ************************************************************/
+
+
+// general embedded SQL related definitions
+EXEC SQL include "../reladminif/sqlglobals.h";
+
+#include "mddtype.hh"
+#include "raslib/rmdebug.hh"
+#include "reladminif/sqlerror.hh"
+#include "reladminif/externs.h"
+
+
+void
+MDDType::deleteFromDb() throw (r_Error)
+{
+ RMDBGENTER(7, RMDebug::module_catalogif, "MDDType", "deleteFromDb() " << myOId << " " << getTypeName());
+ EXEC SQL BEGIN DECLARE SECTION;
+ long mddtypeid3;
+ EXEC SQL END DECLARE SECTION;
+
+ mddtypeid3 = myOId.getCounter();
+
+ EXEC SQL DELETE FROM RAS_MDDTYPES
+ WHERE RAS_MDDTYPES.MDDTypeOId = :mddtypeid3;
+ if (check("MDDType::deleteFromDb()\0"))
+ generateException();
+
+ DBObject::deleteFromDb();
+
+ RMDBGEXIT(7, RMDebug::module_catalogif, "MDDType", "deleteFromDb() " << myOId);
+}
+
+void
+MDDType::insertInDb() throw (r_Error)
+{
+ RMDBGENTER(7, RMDebug::module_catalogif, "MDDType", "insertInDb() " << myOId << " " << getTypeName());
+ EXEC SQL BEGIN DECLARE SECTION;
+ long mddtypeid;
+ char mddtypename[VARCHAR_MAXLEN];
+ EXEC SQL END DECLARE SECTION;
+
+ mddtypeid = 0;
+ (void) strncpy( mddtypename, (char*) getName(), (size_t) sizeof(mddtypename) );
+ mddtypeid = myOId.getCounter();
+ EXEC SQL INSERT INTO RAS_MDDTYPES ( MDDTypeOId, MDDTypeName)
+ VALUES ( :mddtypeid, :mddtypename);
+ if (check("MDDType::insertInDb()\0"))
+ generateException();
+
+ DBObject::insertInDb();
+
+ RMDBGEXIT(7, RMDebug::module_catalogif, "MDDType", "insertInDb() " << myOId);
+}
+
+void
+MDDType::readFromDb() throw (r_Error)
+{
+ RMDBGENTER(7, RMDebug::module_catalogif, "MDDType", "readFromDb() " << myOId);
+#ifdef RMANBENCHMARK
+ DBObject::readTimer.resume();
+#endif
+ EXEC SQL BEGIN DECLARE SECTION;
+ long mddtypeid1;
+ char mddtypename1[VARCHAR_MAXLEN];
+ EXEC SQL END DECLARE SECTION;
+
+ mddtypeid1 = myOId.getCounter();
+
+ EXEC SQL SELECT
+ MDDTypeName
+ INTO
+ :mddtypename1
+ FROM
+ RAS_MDDTYPES
+ WHERE
+ MDDTypeOId = :mddtypeid1;
+ if (check("MDDType::readFromDb()\0") != 0)
+ {
+ if (SQLCODE == SQLNODATAFOUND) // was: 100 -- PB 2005-feb-13
+ throw r_Error(r_Error::r_Error_ObjectUnknown);
+ else
+ generateException();
+ }
+
+ setName(mddtypename1);
+
+#ifdef RMANBENCHMARK
+ DBObject::readTimer.pause();
+#endif
+
+ DBObject::readFromDb();
+
+ RMDBGEXIT(7, RMDebug::module_catalogif, "MDDType", "readFromDb() " << myOId);
+}