user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
* [PATCH] search: use "z:" instead of "bytes:" prefix
@ 2021-03-05  3:10 Eric Wong
  0 siblings, 0 replies; only message in thread
From: Eric Wong @ 2021-03-05  3:10 UTC (permalink / raw)
  To: meta

So far, searching by size has never been publicly documented,
and IMHO, of questionable utility.  In any case, "z:" is what
mairix(1) uses, so it may be familiar to existing mairix users
(I've never used this prefix myself).

So far, this prefix is only used internally in tests and in
auto-translated queries from IMAP; thus this incompatible change
is unlikely to affect anyone.
---
 lib/PublicInbox/IMAPsearchqp.pm | 6 +++---
 lib/PublicInbox/LeiXSearch.pm   | 2 +-
 lib/PublicInbox/Search.pm       | 2 +-
 t/lei-externals.t               | 2 +-
 t/lei-import-imap.t             | 4 ++--
 t/lei-import-nntp.t             | 4 ++--
 xt/lei-sigpipe.t                | 2 +-
 7 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/lib/PublicInbox/IMAPsearchqp.pm b/lib/PublicInbox/IMAPsearchqp.pm
index 2fb92bb8..9f0c1205 100644
--- a/lib/PublicInbox/IMAPsearchqp.pm
+++ b/lib/PublicInbox/IMAPsearchqp.pm
@@ -165,7 +165,7 @@ sub msn_set {
 # things that should not match
 sub impossible {
 	my ($self) = @_;
-	push @{$self->{xap}}, 'bytes:..0';
+	push @{$self->{xap}}, 'z:..0';
 	my $sql = $self->{sql} or return 1;
 	$$sql .= ' AND num < 0';
 }
@@ -217,8 +217,8 @@ BEFORE_date : 'BEFORE' date { $q->BEFORE(\%item) }
 
 MSN_set : sequence_set { $q->msn_set($item{sequence_set}) }
 UID_set : "UID" sequence_set { $q->uid_set($item{sequence_set}) }
-LARGER_number : "LARGER" number { $q->xap_only("bytes:$item{number}..") }
-SMALLER_number : "SMALLER" number { $q->xap_only("bytes:..$item{number}") }
+LARGER_number : "LARGER" number { $q->xap_only("z:$item{number}..") }
+SMALLER_number : "SMALLER" number { $q->xap_only("z:..$item{number}") }
 
 DELETED : "DELETED" { $q->impossible }
 OLD : "OLD" { $q->impossible }
diff --git a/lib/PublicInbox/LeiXSearch.pm b/lib/PublicInbox/LeiXSearch.pm
index 059aa284..3270b420 100644
--- a/lib/PublicInbox/LeiXSearch.pm
+++ b/lib/PublicInbox/LeiXSearch.pm
@@ -92,7 +92,7 @@ sub recent {
 	my ($self, $qstr, $opt) = @_;
 	$opt //= {};
 	$opt->{relevance} //= -2;
-	$self->mset($qstr //= 'bytes:1..', $opt);
+	$self->mset($qstr //= 'z:1..', $opt);
 }
 
 sub over {}
diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm
index c5a1bd69..209969c5 100644
--- a/lib/PublicInbox/Search.pm
+++ b/lib/PublicInbox/Search.pm
@@ -481,7 +481,7 @@ sub qparse_new ($) {
 	$cb->($qp, $NVRP->new(DT, 'dt:'));
 
 	# for IMAP, undocumented for WWW and may be split off go away
-	$cb->($qp, $NVRP->new(BYTES, 'bytes:'));
+	$cb->($qp, $NVRP->new(BYTES, 'z:'));
 	$cb->($qp, $NVRP->new(TS, 'rt:'));
 	$cb->($qp, $NVRP->new(UID, 'uid:'));
 
diff --git a/t/lei-externals.t b/t/lei-externals.t
index b78b5580..29667640 100644
--- a/t/lei-externals.t
+++ b/t/lei-externals.t
@@ -40,7 +40,7 @@ SKIP: {
 		pipe(my ($r, $w)) or BAIL_OUT $!;
 		open my $err, '+>', undef or BAIL_OUT $!;
 		my $opt = { run_mode => 0, 1 => $w, 2 => $err };
-		my $cmd = [qw(lei q -qt), @$out, 'bytes:1..'];
+		my $cmd = [qw(lei q -qt), @$out, 'z:1..'];
 		my $tp = start_script($cmd, undef, $opt);
 		close $w;
 		sysread($r, my $buf, 1);
diff --git a/t/lei-import-imap.t b/t/lei-import-imap.t
index a6ba805f..15a355ab 100644
--- a/t/lei-import-imap.t
+++ b/t/lei-import-imap.t
@@ -13,11 +13,11 @@ my $td = start_script($cmd, $env, { 3 => $sock }) or BAIL_OUT("-imapd: $?");
 my $host_port = tcp_host_port($sock);
 undef $sock;
 test_lei({ tmpdir => $tmpdir }, sub {
-	lei_ok(qw(q bytes:1..));
+	lei_ok(qw(q z:1..));
 	my $out = json_utf8->decode($lei_out);
 	is_deeply($out, [ undef ], 'nothing imported, yet');
 	lei_ok('import', "imap://$host_port/t.v2.0");
-	lei_ok(qw(q bytes:1..));
+	lei_ok(qw(q z:1..));
 	$out = json_utf8->decode($lei_out);
 	ok(scalar(@$out) > 1, 'got imported messages');
 	is(pop @$out, undef, 'trailing JSON null element was null');
diff --git a/t/lei-import-nntp.t b/t/lei-import-nntp.t
index 3fb78fbc..1fc6dbad 100644
--- a/t/lei-import-nntp.t
+++ b/t/lei-import-nntp.t
@@ -13,12 +13,12 @@ my $td = start_script($cmd, $env, { 3 => $sock }) or BAIL_OUT("-nntpd $?");
 my $host_port = tcp_host_port($sock);
 undef $sock;
 test_lei({ tmpdir => $tmpdir }, sub {
-	lei_ok(qw(q bytes:1..));
+	lei_ok(qw(q z:1..));
 	my $out = json_utf8->decode($lei_out);
 	is_deeply($out, [ undef ], 'nothing imported, yet');
 	lei_ok('import', "nntp://$host_port/t.v2");
 	diag $lei_err;
-	lei_ok(qw(q bytes:1..));
+	lei_ok(qw(q z:1..));
 	diag $lei_err;
 	$out = json_utf8->decode($lei_out);
 	ok(scalar(@$out) > 1, 'got imported messages');
diff --git a/xt/lei-sigpipe.t b/xt/lei-sigpipe.t
index ba2d23c8..44020bad 100644
--- a/xt/lei-sigpipe.t
+++ b/xt/lei-sigpipe.t
@@ -15,7 +15,7 @@ my $do_test = sub {
 		pipe(my ($r, $w)) or BAIL_OUT $!;
 		open my $err, '+>', undef or BAIL_OUT $!;
 		my $opt = { run_mode => 0, 1 => $w, 2 => $err };
-		my $cmd = [qw(lei q -q -t), @$out, 'bytes:1..'];
+		my $cmd = [qw(lei q -q -t), @$out, 'z:1..'];
 		my $tp = start_script($cmd, $env, $opt);
 		close $w;
 		sysread($r, my $buf, 1);

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-03-05  3:10 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-05  3:10 [PATCH] search: use "z:" instead of "bytes:" prefix Eric Wong

user/dev discussion of public-inbox itself

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://public-inbox.org/meta
	git clone --mirror http://czquwvybam4bgbro.onion/meta
	git clone --mirror http://hjrcffqmbrq6wope.onion/meta
	git clone --mirror http://ou63pmih66umazou.onion/meta

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V1 meta meta/ https://public-inbox.org/meta \
		meta@public-inbox.org
	public-inbox-index meta

Example config snippet for mirrors.
Newsgroups are available over NNTP:
	nntp://news.public-inbox.org/inbox.comp.mail.public-inbox.meta
	nntp://7fh6tueqddpjyxjmgtdiueylzoqt6pt7hec3pukyptlmohoowvhde4yd.onion/inbox.comp.mail.public-inbox.meta
	nntp://ie5yzdi7fg72h7s4sdcztq5evakq23rdt33mfyfcddc5u3ndnw24ogqd.onion/inbox.comp.mail.public-inbox.meta
	nntp://4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/inbox.comp.mail.public-inbox.meta
	nntp://news.gmane.io/gmane.mail.public-inbox.general
 note: .onion URLs require Tor: https://www.torproject.org/

code repositories for project(s) associated with this inbox:

	https://80x24.org/public-inbox.git

AGPL code for this site: git clone https://public-inbox.org/public-inbox.git