aox:aox.git
13 years agoMerge branch 'master' of ssh://down/oryx/aox
Arnt Gulbrandsen [Mon, 2 Feb 2009 11:18:36 +0000 (12:18 +0100)]
Merge branch 'master' of ssh://down/oryx/aox

13 years agoupdate callers to avoid sys.h and rename String{,List} to EString{,List}
Arnt Gulbrandsen [Mon, 2 Feb 2009 11:17:39 +0000 (12:17 +0100)]
update callers to avoid sys.h and rename String{,List} to EString{,List}

13 years agoget rid of sys.h.
Arnt Gulbrandsen [Mon, 2 Feb 2009 11:16:34 +0000 (12:16 +0100)]
get rid of sys.h.

we haven't really used sys.h for a while now so when it made problems, I
decided to kill it and instead include system header files, or rewrite the
callers.

13 years agorename string.h as estring.h
Arnt Gulbrandsen [Mon, 2 Feb 2009 10:08:38 +0000 (11:08 +0100)]
rename string.h as estring.h

we've had conflicts with /usr/include/string.h more than once. enough now.

13 years agosieve notify appeared
Arnt Gulbrandsen [Sun, 1 Feb 2009 11:04:13 +0000 (12:04 +0100)]
sieve notify appeared

13 years agoMerge branch 'master' of ssh://down.oryx.com/oryx/aox
Arnt Gulbrandsen [Thu, 29 Jan 2009 11:04:26 +0000 (12:04 +0100)]
Merge branch 'master' of ssh://down.oryx.com/oryx/aox

13 years agonew option -v, to report who/why/when deleted the undeleted mail
Arnt Gulbrandsen [Thu, 29 Jan 2009 11:03:45 +0000 (12:03 +0100)]
new option -v, to report who/why/when deleted the undeleted mail

13 years agoFix typo.
Abhijit Menon-Sen [Thu, 29 Jan 2009 09:35:56 +0000 (15:05 +0530)]
Fix typo.

13 years agowhen a user is created, all its mailboxes have to belong to it
Arnt Gulbrandsen [Wed, 28 Jan 2009 11:07:38 +0000 (12:07 +0100)]
when a user is created, all its mailboxes have to belong to it

13 years agotry to cancel queries without dereferencing 0
Arnt Gulbrandsen [Tue, 27 Jan 2009 15:54:57 +0000 (16:54 +0100)]
try to cancel queries without dereferencing 0

untested

13 years agomake List::remove( Iterator & ) vastly faster
Arnt Gulbrandsen [Tue, 27 Jan 2009 15:54:29 +0000 (16:54 +0100)]
make List::remove( Iterator & ) vastly faster

13 years agoadapt the trigger that should prevent necessary mailboxes from being deleted
Arnt Gulbrandsen [Tue, 27 Jan 2009 14:12:19 +0000 (15:12 +0100)]
adapt the trigger that should prevent necessary mailboxes from being deleted

13 years agomake aox delete user silently delete empty mailboxes.
Arnt Gulbrandsen [Tue, 27 Jan 2009 14:02:48 +0000 (15:02 +0100)]
make aox delete user silently delete empty mailboxes.

make aox delete user -f silently delete mail in existing mailboxes.

untested. also presumes schema 82 or so, ie. where a trigger takes care of
updating mailboxes.nextmodseq.

13 years agothree suggested schema changes
Arnt Gulbrandsen [Tue, 27 Jan 2009 12:53:32 +0000 (13:53 +0100)]
three suggested schema changes

13 years agosyntax problem, pointed out by Simon
Arnt Gulbrandsen [Tue, 27 Jan 2009 11:14:16 +0000 (12:14 +0100)]
syntax problem, pointed out by Simon

this should be better

13 years agomore on refcounting
Arnt Gulbrandsen [Tue, 27 Jan 2009 11:12:40 +0000 (12:12 +0100)]
more on refcounting

13 years agothe correct keyword is "flag", of course
Arnt Gulbrandsen [Mon, 26 Jan 2009 15:24:10 +0000 (16:24 +0100)]
the correct keyword is "flag", of course

13 years agostop any running queries if the client goes away.
Arnt Gulbrandsen [Mon, 26 Jan 2009 15:17:37 +0000 (16:17 +0100)]
stop any running queries if the client goes away.

this means that connecting, injecting a message and going away without
waiting for an answer is very unlikely to work. the client has to wait for
an ack.

13 years agoI forgot aoxexport
Arnt Gulbrandsen [Mon, 26 Jan 2009 15:00:33 +0000 (16:00 +0100)]
I forgot aoxexport

13 years agoEXPERIMENTAL: revise aox vacuum to conform to expectations
Arnt Gulbrandsen [Mon, 26 Jan 2009 11:57:42 +0000 (12:57 +0100)]
EXPERIMENTAL: revise aox vacuum to conform to expectations

this removes deleted_messages rows after undelete-time days, even if that
doesn't permit us to delete any messages rows

the SQL needs tweaking; it's okay in kalyani but who knows how well it'll
work on a really big database

I think this had better not go into 3.1.0... or?

13 years agoMerge branch 'master' of ssh://down.oryx.com/oryx/aox
Arnt Gulbrandsen [Mon, 26 Jan 2009 10:07:21 +0000 (11:07 +0100)]
Merge branch 'master' of ssh://down.oryx.com/oryx/aox

13 years agoaccept 'flagged seen' as well as 'flagged \\seen'
Arnt Gulbrandsen [Mon, 26 Jan 2009 10:06:20 +0000 (11:06 +0100)]
accept 'flagged seen' as well as 'flagged \\seen'

13 years agoAdd 'on delete cascade' to t_i.message.
Abhijit Menon-Sen [Sat, 24 Jan 2009 15:15:43 +0000 (20:45 +0530)]
Add 'on delete cascade' to t_i.message.

Otherwise vacuuming fails, as reported by Sam Homer.

13 years agoDon't recurse, infinitely or otherwise.
Abhijit Menon-Sen [Sat, 24 Jan 2009 07:30:02 +0000 (13:00 +0530)]
Don't recurse, infinitely or otherwise.

13 years agoMerge branch 'master' of ssh://down.oryx.com/oryx/aox
Arnt Gulbrandsen [Fri, 23 Jan 2009 13:26:48 +0000 (14:26 +0100)]
Merge branch 'master' of ssh://down.oryx.com/oryx/aox

13 years agocache "ON [UNSEEN ..." to make SM and other webmail clients faster.
Arnt Gulbrandsen [Fri, 23 Jan 2009 13:24:32 +0000 (14:24 +0100)]
cache "ON [UNSEEN ..." to make SM and other webmail clients faster.

not perfect: Injecting a message will increase the modseq and cause a
cache miss. but I think that's okay. we do so much database work when the
insert the message that selecting for unseen won't hurt very much more.

or will it? we could avoid it in a common case. if modseq has increased by
one and uidnext by one since we wrote into firstunseencache, then we still
have a cache hit... maybe do that later.

13 years agoImplement PgCancel support and fill in the Query::cancel() blank.
Abhijit Menon-Sen [Fri, 23 Jan 2009 11:56:42 +0000 (17:26 +0530)]
Implement PgCancel support and fill in the Query::cancel() blank.

Query::cancel() calls Database::cancel( this ) if it is Executing and
canBeSlow. (The state can't be checked later, because Query::cancel()
sets it to Failed at the start.) Database::cancel() indiscriminately
calls ->cancel(q) on every handle. I could have introduced a virtual
isExecuting(q), but since Postgres has to run the d->queries.find(q)
either way, this was simpler.) Postgres::cancel(), if it finds the
relevant query in its queue, creates a PgCanceller object to issue
the cancel request on a new connection.

PgCanceller inherits from Postgres (so as to share the constructor), and
overrides react(Connect) to issue the cancel request and tear down the
connection. In principle, we should issue the request and wait for the
server to close the connection, but it doesn't seem worth the bother.

Not yet fully tested.

13 years agoon reference counting
Arnt Gulbrandsen [Thu, 22 Jan 2009 15:38:41 +0000 (16:38 +0100)]
on reference counting

13 years agocode to cancel all queries belonging to a particular something
Arnt Gulbrandsen [Thu, 22 Jan 2009 12:59:32 +0000 (13:59 +0100)]
code to cancel all queries belonging to a particular something

a connection or command which discovers that it must bow out a little
earlier than planned can use this to get rid of its queries

untested and unused

13 years agonew function to check whether this Log is a child (or granchild) of that
Arnt Gulbrandsen [Thu, 22 Jan 2009 12:58:59 +0000 (13:58 +0100)]
new function to check whether this Log is a child (or granchild) of that

untested

13 years agoMerge branch 'master' of ssh://down/oryx/aox
Arnt Gulbrandsen [Thu, 22 Jan 2009 12:14:07 +0000 (13:14 +0100)]
Merge branch 'master' of ssh://down/oryx/aox

13 years agoprepare List for reference-counted GC.
Arnt Gulbrandsen [Thu, 22 Jan 2009 12:10:54 +0000 (13:10 +0100)]
prepare List for reference-counted GC.

as for PT, deleting or clearing the List object now unbreaks the circular
data structure in the Nodes. Iterators remain valid, but will become 0 as
soon as they move with ++ or --.

13 years agobetter implementation
Arnt Gulbrandsen [Thu, 22 Jan 2009 12:10:35 +0000 (13:10 +0100)]
better implementation

13 years agoprepare for reference-counted GC.
Arnt Gulbrandsen [Thu, 22 Jan 2009 12:03:05 +0000 (13:03 +0100)]
prepare for reference-counted GC.

the PT has a circular data structure, so it won't be cleaned up by a
refcounter unless someone helps. this change helps.

the pointers to Nodes are all in PT or PT::Iterator, so when the PT is
dropped (by ~PT or explicit clear()), then we can tear down all the Node
cycles. that may still leave Iterators pointing to Nodes, which is okay.
the Nodes still point to their data, so the Iterators remain valid.
however, when an iterator is ++'d or --'d, it will become null (and the
object it pointed to will be reclaimed).

13 years agodon't wipe out the AddressField's addresses() when the parser dies
Arnt Gulbrandsen [Thu, 22 Jan 2009 11:59:27 +0000 (12:59 +0100)]
don't wipe out the AddressField's addresses() when the parser dies

3.0.6 material

13 years agomore on webmail
Arnt Gulbrandsen [Thu, 22 Jan 2009 11:02:53 +0000 (12:02 +0100)]
more on webmail

13 years agoWe can cache search results.
Abhijit Menon-Sen [Thu, 22 Jan 2009 02:05:20 +0000 (07:35 +0530)]
We can cache search results.

13 years agohf.message is an integer.
Abhijit Menon-Sen [Wed, 21 Jan 2009 16:11:24 +0000 (21:41 +0530)]
hf.message is an integer.

13 years agouse madvise() to release RAM to the OS if possible
Arnt Gulbrandsen [Wed, 21 Jan 2009 15:44:03 +0000 (16:44 +0100)]
use madvise() to release RAM to the OS if possible

this should cut down the amount of actual RAM archiveopteryx uses

13 years agoturn =any($1) into =any($1::text[]) if text[] it is
Arnt Gulbrandsen [Wed, 21 Jan 2009 15:41:23 +0000 (16:41 +0100)]
turn =any($1) into =any($1::text[]) if text[] it is

injection failed on pg 8.1 if any outlook mail was involved

13 years agoabout ihave
Arnt Gulbrandsen [Wed, 21 Jan 2009 13:42:47 +0000 (14:42 +0100)]
about ihave

13 years agoadd support for sieve ihave
Arnt Gulbrandsen [Wed, 21 Jan 2009 12:17:17 +0000 (13:17 +0100)]
add support for sieve ihave

require "ihave";
if ihave "ereject" {
    ... code that uses ereject ...
}
else {
    .... code that doesn't use ereject ...
}

13 years agodo NOT rename variables after testing
Arnt Gulbrandsen [Mon, 19 Jan 2009 14:06:30 +0000 (15:06 +0100)]
do NOT rename variables after testing

13 years agocheck that each Session is connected to a live Connection.
Arnt Gulbrandsen [Mon, 19 Jan 2009 13:42:20 +0000 (14:42 +0100)]
check that each Session is connected to a live Connection.

this should "fix" the horrible memory leak. no idea how, but somehow some
connections managed to close themselves and leave a Session still attached
to its Mailbox.

this change checks that a Session is sane before notifying it of new mail,
so when that bug hits, its effects will be cancelled next time the mailbox
is changed.

13 years agoMerge branch 'master' of ssh://down/oryx/aox
Arnt Gulbrandsen [Thu, 15 Jan 2009 19:24:50 +0000 (20:24 +0100)]
Merge branch 'master' of ssh://down/oryx/aox

13 years agoclose the POP connection if we see an error
Arnt Gulbrandsen [Thu, 15 Jan 2009 19:24:36 +0000 (20:24 +0100)]
close the POP connection if we see an error

13 years agothat log line wasn't all that useful, really
Arnt Gulbrandsen [Thu, 15 Jan 2009 19:16:59 +0000 (20:16 +0100)]
that log line wasn't all that useful, really

13 years agoimprove the logging when connections come and go
Arnt Gulbrandsen [Thu, 15 Jan 2009 19:15:40 +0000 (20:15 +0100)]
improve the logging when connections come and go

13 years agoback out the runCommands() change. it doesn't help.
Arnt Gulbrandsen [Thu, 15 Jan 2009 18:53:12 +0000 (19:53 +0100)]
back out the runCommands() change. it doesn't help.

time for another try.

13 years agoMerge branch 'master' of ssh://down/oryx/aox
Arnt Gulbrandsen [Thu, 15 Jan 2009 10:12:35 +0000 (11:12 +0100)]
Merge branch 'master' of ssh://down/oryx/aox

13 years agotry to get rid of POP servers once the work has been done
Arnt Gulbrandsen [Thu, 15 Jan 2009 09:20:08 +0000 (10:20 +0100)]
try to get rid of POP servers once the work has been done

13 years agoConfigurable Postgres timeout (undocumented; for debugging).
Abhijit Menon-Sen [Thu, 15 Jan 2009 05:27:58 +0000 (10:57 +0530)]
Configurable Postgres timeout (undocumented; for debugging).

Arnt: It turned out that I don't need this. Does it do what you want?

13 years agorename Thread to SubjectThread
Arnt Gulbrandsen [Wed, 14 Jan 2009 13:40:23 +0000 (14:40 +0100)]
rename Thread to SubjectThread

Threader will shortly update both references-based and subject-based
information, so its API needs to talk about subject and references, ie.
allThreads() becomes subjectThreads() and the rest of this change follows
naturally.

13 years agoTHREAD=ORDEREDSUBJECT support
Arnt Gulbrandsen [Wed, 14 Jan 2009 12:48:27 +0000 (13:48 +0100)]
THREAD=ORDEREDSUBJECT support

THREAD=REFS and =REFERENCES to come

13 years agoMerge branch 'master' of ssh://down/oryx/aox
Arnt Gulbrandsen [Wed, 14 Jan 2009 10:51:36 +0000 (11:51 +0100)]
Merge branch 'master' of ssh://down/oryx/aox

13 years agos/String::append( fn( ... ) )/appendNumber( ... )
Arnt Gulbrandsen [Wed, 14 Jan 2009 10:50:54 +0000 (11:50 +0100)]
s/String::append( fn( ... ) )/appendNumber( ... )

saves RAM, and some of these calls happen often

13 years agoUpdate rrdglue.
Abhijit Menon-Sen [Tue, 13 Jan 2009 15:20:16 +0000 (20:50 +0530)]
Update rrdglue.

13 years agothread-index done
Arnt Gulbrandsen [Tue, 13 Jan 2009 14:32:10 +0000 (15:32 +0100)]
thread-index done

13 years agoconvert thread-index to references.
Arnt Gulbrandsen [Tue, 13 Jan 2009 14:11:55 +0000 (15:11 +0100)]
convert thread-index to references.

this works fairly well, but doesn't work (ie. does nothing) in some cases
of incomplete threads. one hopes that such incomplete threads will not be
common.

this often sends a zero-row COPY to the database. I could write code to
not do that, but maybe it's better to write that code in Postgres, Query
or Transaction. Maybe a new function, bool Query::isNoop() const, and
Q::execute() and T::enqueue() both do if ( isNoop() ) return?

13 years agoMerge branch 'master' of ssh://down/oryx/aox
Arnt Gulbrandsen [Tue, 13 Jan 2009 10:58:31 +0000 (11:58 +0100)]
Merge branch 'master' of ssh://down/oryx/aox

13 years agoMerge branch 'master' of ssh://down.oryx.com/oryx/aox
Arnt Gulbrandsen [Tue, 13 Jan 2009 08:48:18 +0000 (09:48 +0100)]
Merge branch 'master' of ssh://down.oryx.com/oryx/aox

13 years agoavoid leaving zombies
Arnt Gulbrandsen [Tue, 13 Jan 2009 08:47:19 +0000 (09:47 +0100)]
avoid leaving zombies

3.0.6 stuff

13 years agorename convertThreadIndex() to the right name
Arnt Gulbrandsen [Mon, 12 Jan 2009 13:54:56 +0000 (14:54 +0100)]
rename convertThreadIndex() to the right name

this makes space for cTI

13 years agothose trips are over
Arnt Gulbrandsen [Mon, 12 Jan 2009 13:54:32 +0000 (14:54 +0100)]
those trips are over

13 years agojust a note
Arnt Gulbrandsen [Mon, 12 Jan 2009 13:53:51 +0000 (14:53 +0100)]
just a note

13 years agosome documentation for patriciatree.
Arnt Gulbrandsen [Thu, 8 Jan 2009 13:02:47 +0000 (14:02 +0100)]
some documentation for patriciatree.

the iterator still isn't documented.

13 years agoMerge commit 'origin/master'
Abhijit Menon-Sen [Thu, 8 Jan 2009 11:28:24 +0000 (16:58 +0530)]
Merge commit 'origin/master'

13 years agoFix a few comments.
Abhijit Menon-Sen [Thu, 8 Jan 2009 11:28:19 +0000 (16:58 +0530)]
Fix a few comments.

13 years agonew debug function to find out what points at a given location.
Arnt Gulbrandsen [Wed, 7 Jan 2009 20:59:14 +0000 (21:59 +0100)]
new debug function to find out what points at a given location.

In gdb
    call pointers( 0x12345678 )
to get some information about all heap-based pointers to that value.

13 years agokeep stderr open unless -f
Arnt Gulbrandsen [Wed, 7 Jan 2009 20:58:56 +0000 (21:58 +0100)]
keep stderr open unless -f

13 years agoget rid of the $#@!$#@$@# ARNT stuff. it didn't work and broke everything.
Arnt Gulbrandsen [Wed, 7 Jan 2009 10:44:59 +0000 (11:44 +0100)]
get rid of the $#@!$#@$@# ARNT stuff. it didn't work and broke everything.

13 years agoabandon RTTI, g++ didn't want to play
Arnt Gulbrandsen [Tue, 6 Jan 2009 15:46:54 +0000 (16:46 +0100)]
abandon RTTI, g++ didn't want to play

try a different approach: an optional back pointer, so I can follow
pointers back to a root when I interrupt GC and have compiled that in.
requires a lot of RAM. or does it?

13 years agobasesubject blobchars cannot contain [
Arnt Gulbrandsen [Tue, 6 Jan 2009 14:51:30 +0000 (15:51 +0100)]
basesubject blobchars cannot contain [

this broke threading of doubly-forwarded messages
  [fwd: re: [fwd: re: stuff]]

13 years agoanother try at rtti
Arnt Gulbrandsen [Mon, 5 Jan 2009 17:59:16 +0000 (18:59 +0100)]
another try at rtti

13 years agotry to help memory problems by providing a type's name
Arnt Gulbrandsen [Mon, 5 Jan 2009 17:02:26 +0000 (18:02 +0100)]
try to help memory problems by providing a type's name

13 years agoMerge branch 'master' of ssh://down/oryx/aox
Arnt Gulbrandsen [Thu, 18 Dec 2008 20:25:02 +0000 (21:25 +0100)]
Merge branch 'master' of ssh://down/oryx/aox

13 years agoarnt's trip now
Arnt Gulbrandsen [Thu, 18 Dec 2008 20:24:41 +0000 (21:24 +0100)]
arnt's trip now

13 years agoTypo.
Abhijit Menon-Sen [Thu, 18 Dec 2008 07:04:00 +0000 (12:34 +0530)]
Typo.

13 years agodon't log an error if listening on ipv6/any also listens on ipv4/any
Arnt Gulbrandsen [Wed, 17 Dec 2008 09:27:17 +0000 (10:27 +0100)]
don't log an error if listening on ipv6/any also listens on ipv4/any

13 years agoSchedule update.
Abhijit Menon-Sen [Sat, 13 Dec 2008 09:40:07 +0000 (15:10 +0530)]
Schedule update.

13 years agoMerge branch 'master' of ssh://down.oryx.com/oryx/aox
Arnt Gulbrandsen [Wed, 10 Dec 2008 15:35:37 +0000 (16:35 +0100)]
Merge branch 'master' of ssh://down.oryx.com/oryx/aox

13 years agotreat unreported expunges correctly.
Arnt Gulbrandsen [Wed, 10 Dec 2008 15:33:53 +0000 (16:33 +0100)]
treat unreported expunges correctly.

1. if we have some and are copying to a new session, then they can be
treated as already reported in that other session.

2. if we're writing the session to cache, then tell the cache that the
messages are already done.

13 years agounbreak the GC timing code for the nth time (not serious this time though).
Arnt Gulbrandsen [Wed, 10 Dec 2008 15:32:26 +0000 (16:32 +0100)]
unbreak the GC timing code for the nth time (not serious this time though).

this code has needed fixing too many times. it needs to die.

13 years agoocd is long gone.
Abhijit Menon-Sen [Wed, 10 Dec 2008 13:07:15 +0000 (18:37 +0530)]
ocd is long gone.

13 years agoFiddle.
Abhijit Menon-Sen [Wed, 10 Dec 2008 12:37:46 +0000 (18:07 +0530)]
Fiddle.

14 years agoudoc fix.
Abhijit Menon-Sen [Mon, 8 Dec 2008 15:34:00 +0000 (21:04 +0530)]
udoc fix.

14 years agoSchema #79: Add thread_indexes to help unfuck Outlook threading.
Abhijit Menon-Sen [Mon, 8 Dec 2008 15:30:18 +0000 (21:00 +0530)]
Schema #79: Add thread_indexes to help unfuck Outlook threading.

14 years agogive messages authored by Outlook sensible References fields
Arnt Gulbrandsen [Mon, 8 Dec 2008 12:28:09 +0000 (13:28 +0100)]
give messages authored by Outlook sensible References fields

14 years agoMerge branch 'master' of ssh://down/oryx/aox
Arnt Gulbrandsen [Mon, 8 Dec 2008 11:35:05 +0000 (12:35 +0100)]
Merge branch 'master' of ssh://down/oryx/aox

14 years agothe funeral
Arnt Gulbrandsen [Fri, 5 Dec 2008 13:30:00 +0000 (14:30 +0100)]
the funeral

14 years agoMerge branch 'master' of ssh://down/oryx/aox
Arnt Gulbrandsen [Fri, 5 Dec 2008 11:58:00 +0000 (12:58 +0100)]
Merge branch 'master' of ssh://down/oryx/aox

14 years agoavoid creating an ImapExpungeResponse if we already have one for that UID.
Arnt Gulbrandsen [Fri, 5 Dec 2008 11:28:18 +0000 (12:28 +0100)]
avoid creating an ImapExpungeResponse if we already have one for that UID.

helps avoid spurious "no MSN for UID" log errors, which occur when two
expunges occur and the first one cannot be reported to an IMAP client
before the second happens.

14 years agoMerge branch 'master' of ssh://down/oryx/aox
Arnt Gulbrandsen [Thu, 4 Dec 2008 16:04:04 +0000 (17:04 +0100)]
Merge branch 'master' of ssh://down/oryx/aox

14 years agotypo
Arnt Gulbrandsen [Thu, 4 Dec 2008 15:58:46 +0000 (16:58 +0100)]
typo

14 years agohttp://
Arnt Gulbrandsen [Thu, 4 Dec 2008 15:58:16 +0000 (16:58 +0100)]
http://

14 years agomention where to find more configuration stuff
Arnt Gulbrandsen [Thu, 4 Dec 2008 15:40:49 +0000 (16:40 +0100)]
mention where to find more configuration stuff

twice, slightly differently, just in case one way fails for some reader.

14 years agofetch a batch every six seconds
Arnt Gulbrandsen [Wed, 3 Dec 2008 12:29:08 +0000 (13:29 +0100)]
fetch a batch every six seconds

15 seconds can mean a LOT of messages on a big server

14 years agobodyparts_hash_key is gone (or ought to be)
Arnt Gulbrandsen [Wed, 3 Dec 2008 12:25:42 +0000 (13:25 +0100)]
bodyparts_hash_key is gone (or ought to be)

14 years agothe pg server sends a constant 0 as column number.
Arnt Gulbrandsen [Tue, 2 Dec 2008 16:03:15 +0000 (17:03 +0100)]
the pg server sends a constant 0 as column number.

so we count the columns ourselves.

14 years agountypofy
Arnt Gulbrandsen [Tue, 2 Dec 2008 16:03:09 +0000 (17:03 +0100)]
untypofy