##// END OF EJS Templates
rust: rustlazyancestors.__contains__...
rust: rustlazyancestors.__contains__ This changeset provides a Rust implementation of the iteration performed by lazyancestor.__contains__ It has the advantage over the Python iteration to use the 'seen' set encapsuled into the dedicated iterator (self._containsiter), rather than storing emitted items in another set (self._containsseen), and hence should reduce the memory footprint. Also, there's no need to convert intermediate emitted revisions back into Python integers. At this point, it would be tempting to implement the whole lazyancestor object in Rust, but that would lead to more C wrapping code (two objects) for little expected benefits.

File last commit:

r37204:03ff17a4 default
r40336:72b94f94 default
Show More
schema.sql
33 lines | 1.1 KiB | text/x-sql | TransactSqlLexer
CREATE TABLE `bookmarkstonode` (
`node` varbinary(64) NOT NULL,
`bookmark` varbinary(512) NOT NULL,
`reponame` varbinary(255) NOT NULL,
PRIMARY KEY (`reponame`,`bookmark`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `bundles` (
`bundle` varbinary(512) NOT NULL,
`reponame` varbinary(255) NOT NULL,
PRIMARY KEY (`bundle`,`reponame`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `nodestobundle` (
`node` varbinary(64) NOT NULL,
`bundle` varbinary(512) NOT NULL,
`reponame` varbinary(255) NOT NULL,
PRIMARY KEY (`node`,`reponame`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `nodesmetadata` (
`node` varbinary(64) NOT NULL,
`message` mediumblob NOT NULL,
`p1` varbinary(64) NOT NULL,
`p2` varbinary(64) DEFAULT NULL,
`author` varbinary(255) NOT NULL,
`committer` varbinary(255) DEFAULT NULL,
`author_date` bigint(20) NOT NULL,
`committer_date` bigint(20) DEFAULT NULL,
`reponame` varbinary(255) NOT NULL,
`optional_json_metadata` mediumblob,
PRIMARY KEY (`reponame`,`node`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;