aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xboot.php2
-rw-r--r--include/onepoll.php2
-rw-r--r--include/poller.php2
-rw-r--r--include/socgraph.php14
-rw-r--r--install/schema_mysql.sql4
-rw-r--r--install/schema_postgres.sql2
-rw-r--r--install/update.php13
7 files changed, 28 insertions, 11 deletions
diff --git a/boot.php b/boot.php
index ee6b7e99b..969a4f578 100755
--- a/boot.php
+++ b/boot.php
@@ -49,7 +49,7 @@ define ( 'RED_PLATFORM', 'redmatrix' );
define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R');
define ( 'ZOT_REVISION', 1 );
-define ( 'DB_UPDATE_VERSION', 1134 );
+define ( 'DB_UPDATE_VERSION', 1135 );
/**
* Constant with a HTML line break.
diff --git a/include/onepoll.php b/include/onepoll.php
index 095edd095..ee90fbdb1 100644
--- a/include/onepoll.php
+++ b/include/onepoll.php
@@ -145,7 +145,7 @@ function onepoll_run($argv, $argc){
if($contact['xchan_connurl']) {
$r = q("SELECT xlink_id from xlink
- where xlink_xchan = '%s' and xlink_updated > %s - INTERVAL %s limit 1",
+ where xlink_xchan = '%s' and xlink_updated > %s - INTERVAL %s and xlink_static = 0 limit 1",
intval($contact['xchan_hash']),
db_utcnow(), db_quoteinterval('1 DAY')
);
diff --git a/include/poller.php b/include/poller.php
index d78355db1..dc310fe16 100644
--- a/include/poller.php
+++ b/include/poller.php
@@ -160,7 +160,7 @@ function poller_run($argv, $argc){
// get rid of really old poco records
- q("delete from xlink where xlink_updated < %s - INTERVAL %s",
+ q("delete from xlink where xlink_updated < %s - INTERVAL %s and xlink_static = 0 ",
db_utcnow(), db_quoteinterval('14 DAY')
);
diff --git a/include/socgraph.php b/include/socgraph.php
index 8c2056c30..542ec7074 100644
--- a/include/socgraph.php
+++ b/include/socgraph.php
@@ -186,13 +186,13 @@ function poco_load($xchan = '',$url = null) {
$total ++;
- $r = q("select * from xlink where xlink_xchan = '%s' and xlink_link = '%s' limit 1",
+ $r = q("select * from xlink where xlink_xchan = '%s' and xlink_link = '%s' and xlink_static = 0 limit 1",
dbesc($xchan),
dbesc($hash)
);
if(! $r) {
- q("insert into xlink ( xlink_xchan, xlink_link, xlink_rating, xlink_rating_text, xlink_updated ) values ( '%s', '%s', %d, '%s', '%s' ) ",
+ q("insert into xlink ( xlink_xchan, xlink_link, xlink_rating, xlink_rating_text, xlink_updated, xlink_static ) values ( '%s', '%s', %d, '%s', '%s', 0 ) ",
dbesc($xchan),
dbesc($hash),
intval($rating),
@@ -211,7 +211,7 @@ function poco_load($xchan = '',$url = null) {
}
logger("poco_load: loaded $total entries",LOGGER_DEBUG);
- q("delete from xlink where xlink_xchan = '%s' and xlink_updated < %s - INTERVAL %s",
+ q("delete from xlink where xlink_xchan = '%s' and xlink_updated < %s - INTERVAL %s and xlink_static = 0",
dbesc($xchan),
db_utcnow(), db_quoteinterval('2 DAY')
);
@@ -222,7 +222,7 @@ function poco_load($xchan = '',$url = null) {
function count_common_friends($uid,$xchan) {
- $r = q("SELECT count(xlink_id) as total from xlink where xlink_xchan = '%s' and xlink_link in
+ $r = q("SELECT count(xlink_id) as total from xlink where xlink_xchan = '%s' and xlink_static = 0 and xlink_link in
(select abook_xchan from abook where abook_xchan != '%s' and abook_channel = %d and abook_flags = 0 )",
dbesc($xchan),
dbesc($xchan),
@@ -243,7 +243,7 @@ function common_friends($uid,$xchan,$start = 0,$limit=100000000,$shuffle = false
else
$sql_extra = " order by xchan_name asc ";
- $r = q("SELECT * from xchan left join xlink on xlink_link = xchan_hash where xlink_xchan = '%s' and xlink_link in
+ $r = q("SELECT * from xchan left join xlink on xlink_link = xchan_hash where xlink_xchan = '%s' and xlink_static = 0 and xlink_link in
(select abook_xchan from abook where abook_xchan != '%s' and abook_channel = %d and abook_flags = 0 ) $sql_extra limit %d offset %d",
dbesc($xchan),
dbesc($xchan),
@@ -340,6 +340,7 @@ function suggestion_query($uid, $myxchan, $start = 0, $limit = 80) {
and not xlink_link in ( select abook_xchan from abook where abook_channel = %d )
and not xlink_link in ( select xchan from xign where uid = %d )
and xlink_xchan != ''
+ and xlink_static = 0
and not ( xchan_flags & %d )>0
and not ( xchan_flags & %d )>0
group by xchan_hash order by total desc limit %d offset %d ",
@@ -360,6 +361,7 @@ function suggestion_query($uid, $myxchan, $start = 0, $limit = 80) {
where xlink_xchan = ''
and not xlink_link in ( select abook_xchan from abook where abook_channel = %d )
and not xlink_link in ( select xchan from xign where uid = %d )
+ and xlink_static = 0
and not ( xchan_flags & %d )>0
and not ( xchan_flags & %d )>0
group by xchan_hash order by total desc limit %d offset %d ",
@@ -405,7 +407,7 @@ function update_suggestions() {
// the targets may have changed their preferences and don't want to be suggested - and they
// may have simply gone away.
- $r = q("delete from xlink where xlink_xchan = '' and xlink_updated < %s - INTERVAL %s",
+ $r = q("delete from xlink where xlink_xchan = '' and xlink_updated < %s - INTERVAL %s and xlink_static = 0",
db_utcnow(), db_quoteinterval('7 DAY')
);
diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql
index 226ea2308..ba41073f8 100644
--- a/install/schema_mysql.sql
+++ b/install/schema_mysql.sql
@@ -1532,11 +1532,13 @@ CREATE TABLE IF NOT EXISTS `xlink` (
`xlink_rating` int(11) NOT NULL DEFAULT '0',
`xlink_rating_text` TEXT NOT NULL DEFAULT '',
`xlink_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `xlink_static` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`xlink_id`),
KEY `xlink_xchan` (`xlink_xchan`),
KEY `xlink_link` (`xlink_link`),
KEY `xlink_updated` (`xlink_updated`),
- KEY `xlink_rating` (`xlink_rating`)
+ KEY `xlink_rating` (`xlink_rating`),
+ KEY `xlink_static` (`xlink_static`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql
index 8539e672d..2fcc7f9ba 100644
--- a/install/schema_postgres.sql
+++ b/install/schema_postgres.sql
@@ -1145,12 +1145,14 @@ CREATE TABLE "xlink" (
"xlink_rating" bigint NOT NULL DEFAULT '0',
"xlink_rating_text" TEXT NOT NULL DEFAULT '',
"xlink_updated" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "xlink_static" numeric(1) NOT NULL DEFAULT '0',
PRIMARY KEY ("xlink_id")
);
create index "xlink_xchan" on xlink ("xlink_xchan");
create index "xlink_link" on xlink ("xlink_link");
create index "xlink_updated" on xlink ("xlink_updated");
create index "xlink_rating" on xlink ("xlink_rating");
+create index "xlink_static" on xlink ("xlink_static");
CREATE TABLE "xperm" (
"xp_id" serial NOT NULL,
"xp_client" varchar( 20 ) NOT NULL DEFAULT '',
diff --git a/install/update.php b/install/update.php
index 8cd25f1bf..346b2c25a 100644
--- a/install/update.php
+++ b/install/update.php
@@ -1,6 +1,6 @@
<?php
-define( 'UPDATE_VERSION' , 1134 );
+define( 'UPDATE_VERSION' , 1135 );
/**
*
@@ -1537,3 +1537,14 @@ function update_r1133() {
return UPDATE_FAILED;
}
+
+function update_r1134() {
+ if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
+ $r = q("ALTER TABLE xlink ADD xlink_static numeric(1) NOT NULL DEFAULT '0', create index xlink_static on xlink ( \"xlink_static\" ) ");
+ }
+ else
+ $r = q("ALTER TABLE xlink ADD xlink_static TINYINT( 1 ) NOT NULL DEFAULT '0', ADD INDEX ( xlink_static ) ");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+} \ No newline at end of file