summaryrefslogtreecommitdiffstats
path: root/relcatalogif/mdddimensiontype.pgc
diff options
context:
space:
mode:
Diffstat (limited to 'relcatalogif/mdddimensiontype.pgc')
-rw-r--r--relcatalogif/mdddimensiontype.pgc148
1 files changed, 148 insertions, 0 deletions
diff --git a/relcatalogif/mdddimensiontype.pgc b/relcatalogif/mdddimensiontype.pgc
new file mode 100644
index 0000000..c8b631c
--- /dev/null
+++ b/relcatalogif/mdddimensiontype.pgc
@@ -0,0 +1,148 @@
+#include "mymalloc/mymalloc.h"
+// 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:
+ * none
+ *
+ ***********************************************************************/
+
+// general embedded SQL related definitions
+EXEC SQL include "../reladminif/sqlglobals.h";
+
+#include "mdddimensiontype.hh"
+#include "raslib/rmdebug.hh"
+#include "reladminif/objectbroker.hh"
+#include "reladminif/sqlerror.hh"
+
+void
+MDDDimensionType::insertInDb() throw (r_Error)
+{
+ RMDBGENTER(5, RMDebug::module_catalogif, "MDDDimensionType", "insertInDb() " << myOId << " " << getTypeName());
+ EXEC SQL BEGIN DECLARE SECTION;
+ long mddtypeid;
+ short dimension;
+ double mddbasetypeid;
+ char mddtypename[STRING_MAXLEN];
+ EXEC SQL END DECLARE SECTION;
+
+ dimension = myDimension;
+ mddtypeid = myOId.getCounter();
+ (void) strncpy( mddtypename, (char*) getName(), (size_t) sizeof(mddtypename) );
+ DBObject* obj = (DBObject*)getBaseType();
+ mddbasetypeid = obj->getOId();
+ RMDBGMIDDLE(5, RMDebug::module_catalogif, "MDDDimensionType", " typeid " << mddtypeid << " name " << mddtypename << " basetypeoid " << mddbasetypeid << "dimension " << dimension)
+
+ EXEC SQL INSERT INTO RAS_MDDDIMTYPES (
+ MDDDimTypeOId,
+ MDDTypeName,
+ BaseTypeId,
+ Dimension
+ )
+ VALUES (
+ :mddtypeid,
+ :mddtypename,
+ :mddbasetypeid,
+ :dimension
+ );
+ if (check("MDDDimensionType::insertInDb()\0"))
+ generateException();
+ DBObject::insertInDb();
+ RMDBGEXIT(5, RMDebug::module_catalogif, "MDDDimensionType", "insertInDb() " << myOId);
+}
+
+void
+MDDDimensionType::readFromDb() throw (r_Error)
+{
+ RMDBGENTER(5, RMDebug::module_catalogif, "MDDDimensionType", "readFromDb() " << myOId);
+#ifdef RMANBENCHMARK
+ DBObject::readTimer.resume();
+#endif
+ EXEC SQL BEGIN DECLARE SECTION;
+ long mddtypeid1;
+ char mddtypename1[STRING_MAXLEN];
+ double mddbasetypeid1;
+ short dimension1;
+ EXEC SQL END DECLARE SECTION;
+
+ mddtypeid1 = myOId.getCounter();
+ mddbasetypeid1 = 0;
+ dimension1 = 0;
+
+ EXEC SQL SELECT
+ Dimension,
+ BaseTypeId,
+ MDDTypeName
+ INTO
+ :dimension1,
+ :mddbasetypeid1,
+ :mddtypename1
+ FROM
+ RAS_MDDDIMTYPES
+ WHERE
+ MDDDimTypeOId = :mddtypeid1;
+ if (check("MDDDimensionType::MDDDimensionType() SELECT FROM RAS_MDDDIMTYPES\0") != 0)
+ if (SQLCODE == 100)
+ throw r_Error(r_Error::r_Error_ObjectUnknown);
+ else
+ generateException();
+
+ myDimension = dimension1;
+ setName(mddtypename1);
+ myBaseType = (BaseType*)ObjectBroker::getObjectByOId(OId(mddbasetypeid1));
+#ifdef RMANBENCHMARK
+ DBObject::readTimer.pause();
+#endif
+ RMDBGMIDDLE(6, RMDebug::module_catalogif, "MDDDimensionType", "myBaseType at " << myBaseType);
+ DBObject::readFromDb();
+ RMDBGEXIT(5, RMDebug::module_catalogif, "MDDDimensionType", "readFromDb() " << myOId);
+}
+
+void
+MDDDimensionType::deleteFromDb() throw (r_Error)
+{
+ RMDBGENTER(5, RMDebug::module_catalogif, "MDDDimensionType", "deleteFromDb() " << myOId << " " << getTypeName());
+ EXEC SQL BEGIN DECLARE SECTION;
+ long mddtypeid3;
+ EXEC SQL END DECLARE SECTION;
+
+ mddtypeid3 = myOId.getCounter();
+
+ EXEC SQL DELETE FROM
+ RAS_MDDDIMTYPES
+ WHERE
+ MDDDimTypeOId = :mddtypeid3;
+ if (check("MDDDimensionType::deleteFromDb()\0"))
+ generateException();
+ DBObject::deleteFromDb();
+ RMDBGEXIT(5, RMDebug::module_catalogif, "MDDDimensionType", "deleteFromDb() " << myOId);
+}
+