summaryrefslogtreecommitdiff
path: root/mysqlc/source/mysqlc_databasemetadata.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'mysqlc/source/mysqlc_databasemetadata.hxx')
-rw-r--r--mysqlc/source/mysqlc_databasemetadata.hxx238
1 files changed, 238 insertions, 0 deletions
diff --git a/mysqlc/source/mysqlc_databasemetadata.hxx b/mysqlc/source/mysqlc_databasemetadata.hxx
new file mode 100644
index 000000000000..03c6468b59a4
--- /dev/null
+++ b/mysqlc/source/mysqlc_databasemetadata.hxx
@@ -0,0 +1,238 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2008 by Sun Microsystems, Inc.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org 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 Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+************************************************************************/
+
+#ifndef CONNECTIVITY_SDATABASEMETADATA_HXX
+#define CONNECTIVITY_SDATABASEMETADATA_HXX
+
+#include "mysqlc_connection.hxx"
+
+#include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
+#include <cppuhelper/implbase1.hxx>
+
+#include <cppconn/metadata.h>
+
+namespace connectivity
+{
+ namespace mysqlc
+ {
+ typedef ::com::sun::star::sdbc::SQLException my_SQLException;
+ typedef ::com::sun::star::uno::RuntimeException my_RuntimeException;
+ typedef ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > my_XResultSetRef;
+ using ::com::sun::star::uno::Any;
+ using ::rtl::OUString;
+
+ //**************************************************************
+ //************ Class: ODatabaseMetaData
+ //**************************************************************
+
+ typedef ::cppu::WeakImplHelper1< ::com::sun::star::sdbc::XDatabaseMetaData> ODatabaseMetaData_BASE;
+
+ class ODatabaseMetaData : public ODatabaseMetaData_BASE
+ {
+ OConnection& m_rConnection;
+ sal_Bool m_bUseCatalog;
+ protected:
+ sql::DatabaseMetaData * meta;
+ OUString identifier_quote_string;
+ bool identifier_quote_string_set;
+
+ private:
+ OUString impl_getStringMetaData( const sal_Char* _methodName, const std::string& (sql::DatabaseMetaData::*_Method)() );
+ OUString impl_getStringMetaData( const sal_Char* _methodName, std::string (sql::DatabaseMetaData::*_Method)() );
+ OUString impl_getStringMetaData( const sal_Char* _methodName, const sql::SQLString& (sql::DatabaseMetaData::*_Method)() );
+ OUString impl_getStringMetaData( const sal_Char* _methodName, sql::SQLString (sql::DatabaseMetaData::*_Method)() );
+ sal_Int32 impl_getInt32MetaData( const sal_Char* _methodName, unsigned int (sql::DatabaseMetaData::*_Method)() );
+ sal_Bool impl_getBoolMetaData( const sal_Char* _methodName, bool (sql::DatabaseMetaData::*_Method)() );
+ sal_Bool impl_getBoolMetaData( const sal_Char* _methodName, bool (sql::DatabaseMetaData::*_Method)(int), sal_Int32 _arg );
+ sal_Bool impl_getRSTypeMetaData( const sal_Char* _methodName, bool (sql::DatabaseMetaData::*_Method)(int), sal_Int32 _resultSetType );
+
+ public:
+ inline const OConnection& getOwnConnection() const { return m_rConnection; }
+
+ ODatabaseMetaData(OConnection& _rCon);
+ virtual ~ODatabaseMetaData();
+
+ // as I mentioned before this interface is really BIG
+ // XDatabaseMetaData
+ sal_Bool SAL_CALL allProceduresAreCallable() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL allTablesAreSelectable() throw(my_SQLException, my_RuntimeException);
+ OUString SAL_CALL getURL() throw(my_SQLException, my_RuntimeException);
+ OUString SAL_CALL getUserName() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL isReadOnly() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL nullsAreSortedHigh() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL nullsAreSortedLow() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL nullsAreSortedAtStart() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL nullsAreSortedAtEnd() throw(my_SQLException, my_RuntimeException);
+ OUString SAL_CALL getDatabaseProductName() throw(my_SQLException, my_RuntimeException);
+ OUString SAL_CALL getDatabaseProductVersion() throw(my_SQLException, my_RuntimeException);
+ OUString SAL_CALL getDriverName() throw(my_SQLException, my_RuntimeException);
+ OUString SAL_CALL getDriverVersion() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getDriverMajorVersion() throw(my_RuntimeException);
+ sal_Int32 SAL_CALL getDriverMinorVersion() throw(my_RuntimeException);
+ sal_Bool SAL_CALL usesLocalFiles() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL usesLocalFilePerTable() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsMixedCaseIdentifiers() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL storesUpperCaseIdentifiers() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL storesLowerCaseIdentifiers() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL storesMixedCaseIdentifiers() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsMixedCaseQuotedIdentifiers() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL storesUpperCaseQuotedIdentifiers() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL storesLowerCaseQuotedIdentifiers() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL storesMixedCaseQuotedIdentifiers() throw(my_SQLException, my_RuntimeException);
+ OUString SAL_CALL getIdentifierQuoteString() throw(my_SQLException, my_RuntimeException);
+ OUString SAL_CALL getSQLKeywords() throw(my_SQLException, my_RuntimeException);
+ OUString SAL_CALL getNumericFunctions() throw(my_SQLException, my_RuntimeException);
+ OUString SAL_CALL getStringFunctions() throw(my_SQLException, my_RuntimeException);
+ OUString SAL_CALL getSystemFunctions() throw(my_SQLException, my_RuntimeException);
+ OUString SAL_CALL getTimeDateFunctions() throw(my_SQLException, my_RuntimeException);
+ OUString SAL_CALL getSearchStringEscape() throw(my_SQLException, my_RuntimeException);
+ OUString SAL_CALL getExtraNameCharacters() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsAlterTableWithAddColumn() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsAlterTableWithDropColumn() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsColumnAliasing() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL nullPlusNonNullIsNull() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsTypeConversion() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsConvert(sal_Int32 fromType, sal_Int32 toType)
+ throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsTableCorrelationNames() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsDifferentTableCorrelationNames() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsExpressionsInOrderBy() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsOrderByUnrelated() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsGroupBy() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsGroupByUnrelated() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsGroupByBeyondSelect() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsLikeEscapeClause() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsMultipleResultSets() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsMultipleTransactions() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsNonNullableColumns() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsMinimumSQLGrammar() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsCoreSQLGrammar() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsExtendedSQLGrammar() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsANSI92EntryLevelSQL() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsANSI92IntermediateSQL() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsANSI92FullSQL() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsIntegrityEnhancementFacility()throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsOuterJoins() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsFullOuterJoins() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsLimitedOuterJoins() throw(my_SQLException, my_RuntimeException);
+ OUString SAL_CALL getSchemaTerm() throw(my_SQLException, my_RuntimeException);
+ OUString SAL_CALL getProcedureTerm() throw(my_SQLException, my_RuntimeException);
+ OUString SAL_CALL getCatalogTerm() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL isCatalogAtStart() throw(my_SQLException, my_RuntimeException);
+ OUString SAL_CALL getCatalogSeparator() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsSchemasInDataManipulation() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsSchemasInProcedureCalls() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsSchemasInTableDefinitions() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsSchemasInIndexDefinitions() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsSchemasInPrivilegeDefinitions() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsCatalogsInDataManipulation() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsCatalogsInProcedureCalls() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsCatalogsInTableDefinitions() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsCatalogsInIndexDefinitions() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsCatalogsInPrivilegeDefinitions() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsPositionedDelete() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsPositionedUpdate() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsSelectForUpdate() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsStoredProcedures() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsSubqueriesInComparisons() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsSubqueriesInExists() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsSubqueriesInIns() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsSubqueriesInQuantifieds() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsCorrelatedSubqueries() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsUnion() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsUnionAll() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsOpenCursorsAcrossCommit() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsOpenCursorsAcrossRollback() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsOpenStatementsAcrossCommit() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsOpenStatementsAcrossRollback() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxBinaryLiteralLength() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxCharLiteralLength() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxColumnNameLength() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxColumnsInGroupBy() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxColumnsInIndex() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxColumnsInOrderBy() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxColumnsInSelect() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxColumnsInTable() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxConnections() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxCursorNameLength() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxIndexLength() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxSchemaNameLength() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxProcedureNameLength() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxCatalogNameLength() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxRowSize() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL doesMaxRowSizeIncludeBlobs() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxStatementLength() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxStatements() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxTableNameLength() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxTablesInSelect() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getMaxUserNameLength() throw(my_SQLException, my_RuntimeException);
+ sal_Int32 SAL_CALL getDefaultTransactionIsolation() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsTransactions() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsTransactionIsolationLevel(sal_Int32 level)
+ throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsDataDefinitionAndDataManipulationTransactions()
+ throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsDataManipulationTransactionsOnly()throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL dataDefinitionCausesTransactionCommit() throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL dataDefinitionIgnoredInTransactions() throw(my_SQLException, my_RuntimeException);
+ my_XResultSetRef SAL_CALL getProcedures(const Any& catalog, const OUString& schemaPattern, const OUString& procedureNamePattern) throw(my_SQLException, my_RuntimeException);
+ my_XResultSetRef SAL_CALL getProcedureColumns(const Any& catalog, const OUString& schemaPattern, const OUString& procedureNamePattern, const OUString& columnNamePattern) throw(my_SQLException, my_RuntimeException);
+ my_XResultSetRef SAL_CALL getTables(const Any& catalog, const OUString& schemaPattern, const OUString& tableNamePattern, const ::com::sun::star::uno::Sequence< OUString >& types) throw(my_SQLException, my_RuntimeException);
+ my_XResultSetRef SAL_CALL getSchemas() throw(my_SQLException, my_RuntimeException);
+ my_XResultSetRef SAL_CALL getCatalogs() throw(my_SQLException, my_RuntimeException);
+ my_XResultSetRef SAL_CALL getTableTypes() throw(my_SQLException, my_RuntimeException);
+ my_XResultSetRef SAL_CALL getColumns(const Any& catalog, const OUString& schemaPattern, const OUString& tableNamePattern, const OUString& columnNamePattern) throw(my_SQLException, my_RuntimeException);
+ my_XResultSetRef SAL_CALL getColumnPrivileges(const Any& catalog, const OUString& schema, const OUString& table, const OUString& columnNamePattern) throw(my_SQLException, my_RuntimeException);
+ my_XResultSetRef SAL_CALL getTablePrivileges(const Any& catalog, const OUString& schemaPattern, const OUString& tableNamePattern) throw(my_SQLException, my_RuntimeException);
+ my_XResultSetRef SAL_CALL getBestRowIdentifier(const Any& catalog, const OUString& schema, const OUString& table, sal_Int32 scope, sal_Bool nullable) throw(my_SQLException, my_RuntimeException);
+ my_XResultSetRef SAL_CALL getVersionColumns(const Any& catalog, const OUString& schema, const OUString& table) throw(my_SQLException, my_RuntimeException);
+ my_XResultSetRef SAL_CALL getPrimaryKeys(const Any& catalog, const OUString& schema, const OUString& table) throw(my_SQLException, my_RuntimeException);
+ my_XResultSetRef SAL_CALL getImportedKeys(const Any& catalog, const OUString& schema, const OUString& table) throw(my_SQLException, my_RuntimeException);
+ my_XResultSetRef SAL_CALL getExportedKeys(const Any& catalog, const OUString& schema, const OUString& table) throw(my_SQLException, my_RuntimeException);
+ my_XResultSetRef SAL_CALL getCrossReference(const Any& primaryCatalog, const OUString& primarySchema, const OUString& primaryTable, const Any& foreignCatalog, const OUString& foreignSchema, const OUString& foreignTable) throw(my_SQLException, my_RuntimeException);
+ my_XResultSetRef SAL_CALL getTypeInfo() throw(my_SQLException, my_RuntimeException);
+ my_XResultSetRef SAL_CALL getIndexInfo(const Any& catalog, const OUString& schema, const OUString& table, sal_Bool unique, sal_Bool approximate) throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsResultSetType(sal_Int32 setType) throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsResultSetConcurrency(sal_Int32 setType, sal_Int32 concurrency) throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL ownUpdatesAreVisible(sal_Int32 setType) throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL ownDeletesAreVisible(sal_Int32 setType) throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL ownInsertsAreVisible(sal_Int32 setType) throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL othersUpdatesAreVisible(sal_Int32 setType)throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL othersDeletesAreVisible(sal_Int32 setType)throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL othersInsertsAreVisible(sal_Int32 setType)throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL updatesAreDetected(sal_Int32 setType) throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL deletesAreDetected(sal_Int32 setType) throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL insertsAreDetected(sal_Int32 setType) throw(my_SQLException, my_RuntimeException);
+ sal_Bool SAL_CALL supportsBatchUpdates() throw(my_SQLException, my_RuntimeException);
+ my_XResultSetRef SAL_CALL getUDTs(const Any& catalog, const OUString& schemaPattern, const OUString& typeNamePattern, const ::com::sun::star::uno::Sequence< sal_Int32 >& types) throw(my_SQLException, my_RuntimeException);
+ ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > SAL_CALL getConnection() throw(my_SQLException, my_RuntimeException);
+ };
+ }
+}
+
+#endif // CONNECTIVITY_SDATABASEMETADATA_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */