Author: dmacvicar Date: Thu Apr 26 18:32:41 2007 New Revision: 5455 URL: http://svn.opensuse.org/viewcvs/zypp?rev=5455&view=rev Log: r5158@piscola: dmacvicar | 2007-04-26 13:50:43 +0200 support for modalias caps r5159@piscola: dmacvicar | 2007-04-26 13:51:25 +0200 fix duplicate index r5160@piscola: dmacvicar | 2007-04-26 16:11:51 +0200 - support for HAL dependencies r5161@piscola: dmacvicar | 2007-04-26 17:19:02 +0200 - support storing hal dependencies, and unknown dependencies Modified: trunk/ (props changed) trunk/libzypp/zypp/capability/FileCap.h trunk/libzypp/zypp/capability/FilesystemCap.cc trunk/libzypp/zypp/capability/FilesystemCap.h trunk/libzypp/zypp/capability/HalCap.cc trunk/libzypp/zypp/capability/HalCap.h trunk/libzypp/zypp/capability/ModaliasCap.cc trunk/libzypp/zypp/capability/ModaliasCap.h trunk/libzypp/zypp/capability/NamedCap.h trunk/libzypp/zypp/capability/NullCap.cc trunk/libzypp/zypp/capability/NullCap.h trunk/libzypp/zypp/capability/SplitCap.cc trunk/libzypp/zypp/capability/SplitCap.h trunk/libzypp/zypp/capability/VersionedCap.h trunk/libzypp/zypp2/cache/CacheStore.cpp trunk/libzypp/zypp2/cache/CacheStore.h trunk/libzypp/zypp2/cache/schema/schema.sql Modified: trunk/libzypp/zypp/capability/FileCap.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/FileCap.h?rev=5455&r1=5454&r2=5455&view=diff ============================================================================== --- trunk/libzypp/zypp/capability/FileCap.h (original) +++ trunk/libzypp/zypp/capability/FileCap.h Thu Apr 26 18:32:41 2007 @@ -35,9 +35,9 @@ { public: typedef FileCap Self; - typedef FileCap_Ptr Ptr; - typedef FileCap_constPtr constPtr; - + typedef FileCap_Ptr Ptr; + typedef FileCap_constPtr constPtr; + /** Ctor */ FileCap( const Resolvable::Kind & refers_r, const std::string & fname_r ) : CapabilityImpl( refers_r ) Modified: trunk/libzypp/zypp/capability/FilesystemCap.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/FilesystemCap.cc?rev=5455&r1=5454&r2=5455&view=diff ============================================================================== --- trunk/libzypp/zypp/capability/FilesystemCap.cc (original) +++ trunk/libzypp/zypp/capability/FilesystemCap.cc Thu Apr 26 18:32:41 2007 @@ -26,6 +26,8 @@ namespace capability { ///////////////////////////////////////////////////////////////// + IMPL_PTR_TYPE(FilesystemCap) + /** Ctor */ FilesystemCap::FilesystemCap( const Resolvable::Kind & refers_r, const std::string & name_r ) @@ -36,7 +38,7 @@ const CapabilityImpl::Kind & FilesystemCap::kind() const { return CapTraits<Self>::kind; } - CapMatch FilesystemCap::matches( const constPtr & rhs ) const + CapMatch FilesystemCap::matches( const CapabilityImpl::constPtr & rhs ) const { if ( sameKindAndRefers( rhs ) ) { Modified: trunk/libzypp/zypp/capability/FilesystemCap.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/FilesystemCap.h?rev=5455&r1=5454&r2=5455&view=diff ============================================================================== --- trunk/libzypp/zypp/capability/FilesystemCap.h (original) +++ trunk/libzypp/zypp/capability/FilesystemCap.h Thu Apr 26 18:32:41 2007 @@ -21,6 +21,8 @@ namespace capability { ///////////////////////////////////////////////////////////////// + DEFINE_PTR_TYPE(FilesystemCap) + /////////////////////////////////////////////////////////////////// // // CLASS NAME : FilesystemCap @@ -42,7 +44,9 @@ { public: typedef FilesystemCap Self; - + typedef FilesystemCap_Ptr Ptr; + typedef FilesystemCap_constPtr constPtr; + public: /** Ctor */ FilesystemCap( const Resolvable::Kind & refers_r, const std::string & name_r ); @@ -52,7 +56,7 @@ virtual const Kind & kind() const; /** Query USED_FS_LIST. */ - virtual CapMatch matches( const constPtr & rhs ) const; + virtual CapMatch matches( const CapabilityImpl::constPtr & rhs ) const; /** <tt>filesystem(name)</tt> */ virtual std::string encode() const; Modified: trunk/libzypp/zypp/capability/HalCap.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/HalCap.cc?rev=5455&r1=5454&r2=5455&view=diff ============================================================================== --- trunk/libzypp/zypp/capability/HalCap.cc (original) +++ trunk/libzypp/zypp/capability/HalCap.cc Thu Apr 26 18:32:41 2007 @@ -21,10 +21,12 @@ namespace capability { ///////////////////////////////////////////////////////////////// + IMPL_PTR_TYPE(HalCap) + const CapabilityImpl::Kind & HalCap::kind() const { return CapTraits<Self>::kind; } - CapMatch HalCap::matches( const constPtr & rhs ) const + CapMatch HalCap::matches( const CapabilityImpl::constPtr & rhs ) const { if ( sameKindAndRefers( rhs ) ) { Modified: trunk/libzypp/zypp/capability/HalCap.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/HalCap.h?rev=5455&r1=5454&r2=5455&view=diff ============================================================================== --- trunk/libzypp/zypp/capability/HalCap.h (original) +++ trunk/libzypp/zypp/capability/HalCap.h Thu Apr 26 18:32:41 2007 @@ -21,6 +21,8 @@ namespace capability { ///////////////////////////////////////////////////////////////// + DEFINE_PTR_TYPE(HalCap) + /////////////////////////////////////////////////////////////////// // // CLASS NAME : HalCap @@ -42,6 +44,8 @@ { public: typedef HalCap Self; + typedef HalCap_Ptr Ptr; + typedef HalCap_constPtr constPtr; public: /** Ctor */ @@ -66,13 +70,23 @@ virtual const Kind & kind() const; /** Query target::Hal. */ - virtual CapMatch matches( const constPtr & rhs ) const; + virtual CapMatch matches( const CapabilityImpl::constPtr & rhs ) const; /** <tt>hal(name) [op value]</tt> */ virtual std::string encode() const; /** <tt>hal(name)</tt> */ virtual std::string index() const; + + public: + const std::string & name() const + { return _name; } + + Rel op() const + { return _op; } + + const std::string & value() const + { return _value; } private: /** Empty HalCap <tt>hal()</tt> */ Modified: trunk/libzypp/zypp/capability/ModaliasCap.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/ModaliasCap.cc?rev=5455&r1=5454&r2=5455&view=diff ============================================================================== --- trunk/libzypp/zypp/capability/ModaliasCap.cc (original) +++ trunk/libzypp/zypp/capability/ModaliasCap.cc Thu Apr 26 18:32:41 2007 @@ -24,6 +24,8 @@ namespace capability { ///////////////////////////////////////////////////////////////// + IMPL_PTR_TYPE(ModaliasCap) + /** If name_r contains 2 ':', the 1st part is a package name. */ inline void modsplit( std::string & name_r, std::string & pkgname_r ) { @@ -57,7 +59,7 @@ const CapabilityImpl::Kind & ModaliasCap::kind() const { return CapTraits<Self>::kind; } - CapMatch ModaliasCap::matches( const constPtr & rhs ) const + CapMatch ModaliasCap::matches( const CapabilityImpl::constPtr & rhs ) const { if ( sameKindAndRefers( rhs ) ) { Modified: trunk/libzypp/zypp/capability/ModaliasCap.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/ModaliasCap.h?rev=5455&r1=5454&r2=5455&view=diff ============================================================================== --- trunk/libzypp/zypp/capability/ModaliasCap.h (original) +++ trunk/libzypp/zypp/capability/ModaliasCap.h Thu Apr 26 18:32:41 2007 @@ -12,6 +12,7 @@ #ifndef ZYPP_CAPABILITY_MODALIASCAP_H #define ZYPP_CAPABILITY_MODALIASCAP_H +#include "zypp/base/Deprecated.h" #include "zypp/capability/CapabilityImpl.h" /////////////////////////////////////////////////////////////////// @@ -21,6 +22,8 @@ namespace capability { ///////////////////////////////////////////////////////////////// + DEFINE_PTR_TYPE(ModaliasCap) + /////////////////////////////////////////////////////////////////// // // CLASS NAME : ModaliasCap @@ -42,7 +45,9 @@ { public: typedef ModaliasCap Self; - + typedef ModaliasCap_Ptr Ptr; + typedef ModaliasCap_constPtr constPtr; + public: /** Ctor */ ModaliasCap( const Resolvable::Kind & refers_r, const std::string & name_r ); @@ -58,7 +63,7 @@ virtual const Kind & kind() const; /** Query target::Modalias. */ - virtual CapMatch matches( const constPtr & rhs ) const; + virtual CapMatch matches( const CapabilityImpl::constPtr & rhs ) const; /** <tt>modalias(name) [op value]</tt> */ virtual std::string encode() const; @@ -70,9 +75,18 @@ const std::string & pkgname() const { return _pkgname; } - const std::string & querystring() const + ZYPP_DEPRECATED const std::string & querystring() const { return _name; } + const std::string & name() const + { return _name; } + + Rel op() const + { return _op; } + + const std::string & value() const + { return _value; } + private: /** Empty ModaliasCap <tt>modalias()</tt> */ bool isEvalCmd() const; Modified: trunk/libzypp/zypp/capability/NamedCap.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/NamedCap.h?rev=5455&r1=5454&r2=5455&view=diff ============================================================================== --- trunk/libzypp/zypp/capability/NamedCap.h (original) +++ trunk/libzypp/zypp/capability/NamedCap.h Thu Apr 26 18:32:41 2007 @@ -34,9 +34,9 @@ { public: typedef NamedCap Self; - typedef NamedCap_Ptr Ptr; - typedef NamedCap_constPtr constPtr; - + typedef NamedCap_Ptr Ptr; + typedef NamedCap_constPtr constPtr; + /** Ctor */ NamedCap( const Resolvable::Kind & refers_r, const std::string & name_r ) : CapabilityImpl( refers_r ) Modified: trunk/libzypp/zypp/capability/NullCap.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/NullCap.cc?rev=5455&r1=5454&r2=5455&view=diff ============================================================================== --- trunk/libzypp/zypp/capability/NullCap.cc (original) +++ trunk/libzypp/zypp/capability/NullCap.cc Thu Apr 26 18:32:41 2007 @@ -41,7 +41,7 @@ bool NullCap::relevant() const { return false; } - CapMatch NullCap::matches( const constPtr & rhs ) const + CapMatch NullCap::matches( const CapabilityImpl::constPtr & rhs ) const { return CapMatch::irrelevant; } std::string NullCap::encode() const Modified: trunk/libzypp/zypp/capability/NullCap.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/NullCap.h?rev=5455&r1=5454&r2=5455&view=diff ============================================================================== --- trunk/libzypp/zypp/capability/NullCap.h (original) +++ trunk/libzypp/zypp/capability/NullCap.h Thu Apr 26 18:32:41 2007 @@ -52,7 +52,7 @@ virtual bool relevant() const; /** Iirrelevant. */ - virtual CapMatch matches( const constPtr & rhs ) const; + virtual CapMatch matches( const CapabilityImpl::constPtr & rhs ) const; /** Empty string. */ virtual std::string encode() const; Modified: trunk/libzypp/zypp/capability/SplitCap.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/SplitCap.cc?rev=5455&r1=5454&r2=5455&view=diff ============================================================================== --- trunk/libzypp/zypp/capability/SplitCap.cc (original) +++ trunk/libzypp/zypp/capability/SplitCap.cc Thu Apr 26 18:32:41 2007 @@ -20,10 +20,12 @@ namespace capability { ///////////////////////////////////////////////////////////////// + IMPL_PTR_TYPE(SplitCap) + const CapabilityImpl::Kind & SplitCap::kind() const { return CapTraits<Self>::kind; } - CapMatch SplitCap::matches( const constPtr & rhs ) const + CapMatch SplitCap::matches( const CapabilityImpl::constPtr & rhs ) const { return CapMatch::irrelevant; } Modified: trunk/libzypp/zypp/capability/SplitCap.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/SplitCap.h?rev=5455&r1=5454&r2=5455&view=diff ============================================================================== --- trunk/libzypp/zypp/capability/SplitCap.h (original) +++ trunk/libzypp/zypp/capability/SplitCap.h Thu Apr 26 18:32:41 2007 @@ -21,6 +21,8 @@ namespace capability { ///////////////////////////////////////////////////////////////// + DEFINE_PTR_TYPE(SplitCap) + /////////////////////////////////////////////////////////////////// // // CLASS NAME : SplitCap @@ -42,7 +44,9 @@ { public: typedef SplitCap Self; - + typedef SplitCap_Ptr Ptr; + typedef SplitCap_constPtr constPtr; + /** Ctor */ SplitCap( const Resolvable::Kind & refers_r, const std::string & name_r, @@ -59,7 +63,7 @@ { return false; } /** */ - virtual CapMatch matches( const constPtr & rhs ) const; + virtual CapMatch matches( const CapabilityImpl::constPtr & rhs ) const; /** <tt>name:/path</tt> */ virtual std::string encode() const; Modified: trunk/libzypp/zypp/capability/VersionedCap.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/VersionedCap.h?rev=5455&r1=5454&r2=5455&view=diff ============================================================================== --- trunk/libzypp/zypp/capability/VersionedCap.h (original) +++ trunk/libzypp/zypp/capability/VersionedCap.h Thu Apr 26 18:32:41 2007 @@ -35,9 +35,7 @@ { public: typedef VersionedCap Self; - typedef VersionedCap_Ptr Ptr; - typedef VersionedCap_constPtr constPtr; - + /** Ctor */ VersionedCap( const Resolvable::Kind & refers_r, const std::string & name_r, Modified: trunk/libzypp/zypp2/cache/CacheStore.cpp URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp2/cache/CacheStore.cpp?rev=5455&r1=5454&r2=5455&view=diff ============================================================================== --- trunk/libzypp/zypp2/cache/CacheStore.cpp (original) +++ trunk/libzypp/zypp2/cache/CacheStore.cpp Thu Apr 26 18:32:41 2007 @@ -62,6 +62,9 @@ sqlite3_command_ptr append_file_dependency_cmd; sqlite3_command_ptr append_named_dependency_cmd; + sqlite3_command_ptr append_modalias_dependency_cmd; + sqlite3_command_ptr append_hal_dependency_cmd; + sqlite3_command_ptr append_other_dependency_cmd; sqlite3_command_ptr append_resolvable_cmd; @@ -114,6 +117,12 @@ _pimpl->append_file_dependency_cmd.reset( new sqlite3_command( _pimpl->con, "insert into file_capabilities ( resolvable_id, dependency_type, refers_kind, file_id ) values ( :resolvable_id, :dependency_type, :refers_kind, :file_id );" )); _pimpl->append_named_dependency_cmd.reset( new sqlite3_command( _pimpl->con, "insert into named_capabilities ( resolvable_id, dependency_type, refers_kind, name_id, version, release, epoch, relation ) values ( :resolvable_id, :dependency_type, :refers_kind, :name_id, :version, :release, :epoch, :relation );" )); + _pimpl->append_modalias_dependency_cmd.reset( new sqlite3_command( _pimpl->con, "insert into modalias_capabilities ( resolvable_id, dependency_type, refers_kind, name, value, relation ) values ( :resolvable_id, :dependency_type, :refers_kind, :name, :value, :relation );" )); + + _pimpl->append_hal_dependency_cmd.reset( new sqlite3_command( _pimpl->con, "insert into hal_capabilities ( resolvable_id, dependency_type, refers_kind, name, value, relation ) values ( :resolvable_id, :dependency_type, :refers_kind, :name, :value, :relation );" )); + + _pimpl->append_other_dependency_cmd.reset( new sqlite3_command( _pimpl->con, "insert into other_capabilities ( resolvable_id, dependency_type, refers_kind, value ) values ( :resolvable_id, :dependency_type, :refers_kind, :value );" )); + _pimpl->append_resolvable_cmd.reset( new sqlite3_command( _pimpl->con, "insert into resolvables ( name, version, release, epoch, arch, kind, catalog_id ) values ( :name, :version, :release, :epoch, :arch, :kind, :catalog_id );" )); // disable autocommit @@ -181,27 +190,32 @@ void CacheStore::appendDependency( const data::RecordId &resolvable_id, zypp::Dep deptype, capability::CapabilityImpl::Ptr cap ) { - //DBG << cap << endl; - if ( cap->refers() != ResTraits<Package>::kind ) + if ( cap == 0 ) { DBG << "invalid capability" << endl; return; } - if ( cap == 0 ) + if ( capability::isKind<NamedCap>(cap) ) { - DBG << "invalid capability" << endl; - return; + appendNamedDependency( resolvable_id, deptype, capability::asKind<NamedCap>(cap) ); } - - if ( capability::isKind<FileCap>(cap) ) + else if ( capability::isKind<FileCap>(cap) ) { appendFileDependency( resolvable_id, deptype, capability::asKind<FileCap>(cap) ); return; } - else if ( capability::isKind<NamedCap>(cap) ) + else if ( capability::isKind<ModaliasCap>(cap) ) { - appendNamedDependency( resolvable_id, deptype, capability::asKind<NamedCap>(cap) ); + appendModaliasDependency( resolvable_id, deptype, capability::asKind<ModaliasCap>(cap) ); + } + else if ( capability::isKind<HalCap>(cap) ) + { + appendHalDependency( resolvable_id, deptype, capability::asKind<HalCap>(cap) ); + } + else + { + appendUnknownDependency( resolvable_id, deptype, cap ); } } @@ -255,10 +269,51 @@ //delete cmd; } -void CacheStore::appendFileDependency( const data::RecordId &resolvable_id, zypp::Dep deptype, capability::FileCap::Ptr cap ) +void CacheStore::appendModaliasDependency( const data::RecordId &resolvable_id, + zypp::Dep deptype, + capability::ModaliasCap::Ptr cap ) +{ + if ( !cap ) + ZYPP_THROW(Exception("Null modalias capability")); + + _pimpl->append_modalias_dependency_cmd->bind( ":resolvable_id", resolvable_id ); + _pimpl->append_modalias_dependency_cmd->bind( ":dependency_type", zypp_deptype2db_deptype(deptype) ); + _pimpl->append_modalias_dependency_cmd->bind( ":refers_kind", zypp_kind2db_kind(cap->refers()) ); + + //_pimpl->append_modalias_dependency_cmd->bind( ":capability_id", capability_id); + _pimpl->append_modalias_dependency_cmd->bind( ":name", cap->name()); + _pimpl->append_modalias_dependency_cmd->bind( ":value", cap->value()); + _pimpl->append_modalias_dependency_cmd->bind( ":relation", zypp_rel2db_rel( cap->op() ) ); + + _pimpl->append_modalias_dependency_cmd->executenonquery(); + //delete cmd; +} + +void CacheStore::appendHalDependency( const data::RecordId &resolvable_id, + zypp::Dep deptype, + capability::HalCap::Ptr cap ) +{ + if ( !cap ) + ZYPP_THROW(Exception("Null HAL capability")); + + _pimpl->append_hal_dependency_cmd->bind( ":resolvable_id", resolvable_id ); + _pimpl->append_hal_dependency_cmd->bind( ":dependency_type", zypp_deptype2db_deptype(deptype) ); + _pimpl->append_hal_dependency_cmd->bind( ":refers_kind", zypp_kind2db_kind(cap->refers()) ); + + //_pimpl->append_hal_dependency_cmd->bind( ":capability_id", capability_id); + _pimpl->append_hal_dependency_cmd->bind( ":name", cap->name()); + _pimpl->append_hal_dependency_cmd->bind( ":value", cap->value()); + _pimpl->append_hal_dependency_cmd->bind( ":relation", zypp_rel2db_rel( cap->op() ) ); + + _pimpl->append_hal_dependency_cmd->executenonquery(); + //delete cmd; +} + +void CacheStore::appendFileDependency( const data::RecordId &resolvable_id, zypp::Dep deptype, + capability::FileCap::Ptr cap ) { if ( !cap ) - ZYPP_THROW(Exception("bad file cap")); + ZYPP_THROW(Exception("Null file capability")); //data::RecordId capability_id = appendDependencyEntry( resolvable_id, deptype, cap->refers() ); data::RecordId file_id = lookupOrAppendFile(cap->filename()); @@ -274,6 +329,23 @@ //delete cmd; } +void CacheStore::appendUnknownDependency( const data::RecordId &resolvable_id, + zypp::Dep deptype, + capability::CapabilityImpl::Ptr cap ) +{ + if ( !cap ) + ZYPP_THROW(Exception("Null unknown capability")); + + _pimpl->append_other_dependency_cmd->bind( ":resolvable_id", resolvable_id ); + _pimpl->append_other_dependency_cmd->bind( ":dependency_type", zypp_deptype2db_deptype(deptype) ); + _pimpl->append_other_dependency_cmd->bind( ":refers_kind", zypp_kind2db_kind(cap->refers()) ); + _pimpl->append_other_dependency_cmd->bind( ":value", cap->encode()); + + _pimpl->append_hal_dependency_cmd->executenonquery(); + //delete cmd; +} + + // data::RecordId CacheStore::appendDependencyEntry( const data::RecordId &resolvable_id, zypp::Dep deptype, const Resolvable::Kind &refers ) // { // //DBG << "rid: " << resolvable_id << " deptype: " << deptype << " " << "refers: " << refers << endl; Modified: trunk/libzypp/zypp2/cache/CacheStore.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp2/cache/CacheStore.h?rev=5455&r1=5454&r2=5455&view=diff ============================================================================== --- trunk/libzypp/zypp2/cache/CacheStore.h (original) +++ trunk/libzypp/zypp2/cache/CacheStore.h Thu Apr 26 18:32:41 2007 @@ -173,6 +173,63 @@ capability::FileCap::Ptr); /** + * Adds a Modalias dependency to the store. + * + * A \ref ModaliasCap::Ptr \a cap to be specified. Among + * which type of dependency \ref zypp::Dep it is as + * the \a deptype argument. + * + * \a resolvable_id is the resolvable Id in the CacheStore + * that will own the capability + * + * You can create the modalias capability using either + * \ref capability::parse or \ref capability::buildModalias + * + * FIXME should it \throw if the resolvable does not exist? + */ + void appendModaliasDependency( const data::RecordId &resolvable_id, + zypp::Dep deptype, + capability::ModaliasCap::Ptr cap); + + /** + * Adds a Hal dependency to the store. + * + * A \ref HalCap::Ptr \a cap to be specified. Among + * which type of dependency \ref zypp::Dep it is as + * the \a deptype argument. + * + * \a resolvable_id is the resolvable Id in the CacheStore + * that will own the capability + * + * You can create the modalias capability using either + * \ref capability::parse or \ref capability::buildHal + * + * FIXME should it \throw if the resolvable does not exist? + */ + void appendHalDependency( const data::RecordId &resolvable_id, + zypp::Dep deptype, + capability::HalCap::Ptr cap ); + + /** + * Adds a unknown dependency to the store. + * + * A \ref Capability::Ptr \a cap to be specified. Among + * which type of dependency \ref zypp::Dep it is as + * the \a deptype argument. + * + * \a resolvable_id is the resolvable Id in the CacheStore + * that will own the capability + * + * You can create the capability using either + * \ref capability::parse + * + * FIXME should it \throw if the resolvable does not exist? + */ + void appendUnknownDependency( const data::RecordId &resolvable_id, + zypp::Dep deptype, + capability::CapabilityImpl::Ptr cap ); + + /** * Returns the record id of a catalog (Source) \a path * * \note If the catalog entry does not exist, it will Modified: trunk/libzypp/zypp2/cache/schema/schema.sql URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp2/cache/schema/schema.sql?rev=5455&r1=5454&r2=5455&view=diff ============================================================================== --- trunk/libzypp/zypp2/cache/schema/schema.sql (original) +++ trunk/libzypp/zypp2/cache/schema/schema.sql Thu Apr 26 18:32:41 2007 @@ -4,42 +4,6 @@ -- cat schema.sql | grep "^CREATE" | awk '{print "DROP " $2 " IF EXISTS " $3 ";"}' | sort -r ------------------------------------------------ -DROP VIEW IF EXISTS scripts; -DROP VIEW IF EXISTS products; -DROP VIEW IF EXISTS patterns; -DROP VIEW IF EXISTS patches; -DROP VIEW IF EXISTS packages; -DROP VIEW IF EXISTS messages; -DROP TRIGGER IF EXISTS remove_resolvables; -DROP TRIGGER IF EXISTS remove_patch_packages_baseversions; -DROP TABLE IF EXISTS named_capabilities; -DROP TABLE IF EXISTS translated_texts; -DROP TABLE IF EXISTS script_details; -DROP TABLE IF EXISTS resolvable_texts; -DROP TABLE IF EXISTS resolvables_catalogs; -DROP TABLE IF EXISTS resolvables; -DROP TABLE IF EXISTS product_details; -DROP TABLE IF EXISTS pattern_details; -DROP TABLE IF EXISTS patch_packages_baseversions; -DROP TABLE IF EXISTS patch_packages; -DROP TABLE IF EXISTS patch_details; -DROP TABLE IF EXISTS package_details; -DROP TABLE IF EXISTS names; -DROP TABLE IF EXISTS message_details; -DROP TABLE IF EXISTS locks; -DROP TABLE IF EXISTS files; -DROP TABLE IF EXISTS file_names; -DROP TABLE IF EXISTS file_capabilities; -DROP TABLE IF EXISTS split_capabilities; -DROP TABLE IF EXISTS dir_names; -DROP TABLE IF EXISTS delta_packages; -DROP TABLE IF EXISTS db_info; -DROP TABLE IF EXISTS catalogs; -DROP TABLE IF EXISTS capabilities; -DROP INDEX IF EXISTS package_details_resolvable_id; -DROP INDEX IF EXISTS capability_resolvable; -DROP INDEX IF EXISTS named_capabilities_capability_id; - ------------------------------------------------ -- version metadata, probably not needed, there -- is pragma user_version @@ -322,6 +286,26 @@ ); CREATE INDEX named_capabilities_name ON named_capabilities(name_id); +CREATE TABLE modalias_capabilities ( + id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL + , resolvable_id INTEGER REFERENCES resolvables(id) + , dependency_type INTEGER + , refers_kind INTEGER + , name TEXT + , value TEXT + , relation INTEGER +); + +CREATE TABLE hal_capabilities ( + id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL + , resolvable_id INTEGER REFERENCES resolvables(id) + , dependency_type INTEGER + , refers_kind INTEGER + , name TEXT + , value TEXT + , relation INTEGER +); + CREATE TABLE file_capabilities ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , resolvable_id INTEGER REFERENCES resolvables(id) @@ -330,6 +314,14 @@ , file_id INTEGER REFERENCES files(id) ); +CREATE TABLE other_capabilities ( + id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL + , resolvable_id INTEGER REFERENCES resolvables(id) + , dependency_type INTEGER + , refers_kind INTEGER + , value TEXT +); + CREATE TABLE split_capabilities ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , resolvable_id INTEGER REFERENCES resolvables(id) -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org