HDTenEightyP/NetNews huggingface dataset:
From: cs_mj@gsbacd.uchicago.edu (Mark Jaeger)
Newsgroups: comp.databases.ingres
Subject: Re: Manually waking the archiver?
Date: 11 Sep 92 22:28:29 GMT

In article <reid.2@upei.ca>, reid@upei.ca (Mike Reid) writes:
> In article <1992Sep9.132229.292@cutler> michael@cutler.com 
> (Michael D. Shields) writes:
>>So how does one manually wake up the archiver to start
>>moving entries from the log file to the journal file?
>>...
> I recently started looking at this question, although for different 
> reasons.  I would like to backup the journal files before taking an off-line 
> checkpoint.  Would shutting down Ingres clean out the log file? Steve 
> Caswell's suggestion of modifying the checkpoint templates in the [ingres.
> files.checkpoint] directory does not seem to give one much control over what 
> is being done.

Shutting down INGRES (cleanly!) must surely clear out the log file.  
This must be the case because you are free to reconfigure the log file
(move, resize, change parameters) after such a shutdown, but only then.

By a clean shutdown, I mean a shutdown with "rcpconfig/shutdown"; and
not "rcpconfig/imm_shutdown" or machine crash or killing the RCP and ACP
processes.  Doing "rcpconfig/shutdown" can take an annoyingly long time,
as the RCP recovers any uncommitted transactions that dbms servers may
have left lying around, and the ACP moves any committed, journalled
transactions to the journal files.  An unclean shutdown just adds to the
length of time it takes INGRES to start up the next time, since it has
to do these same operations at startup time.  It's better to let it do
them at shutdown time, when the RCP and ACP (and dbms server) already
know lots about the log file, and don't have to read through it figuring
out what to do.

--Mark Jaeger				internet: cs_mj@gsbvax.uchicago.edu
Graduate School of Business		yellnet:  (312) 702-0328
University of Chicago			faxnet:   (312) 702-0233
Disclaimer: My opinions are my own and not those of my employer.
Ich bin ein Virus.  Mach' mit und kopiere mich in Deine .signature.
Newsgroups: comp.databases.ingres
From: CS_PAUL@GSBVAX.UCHICAGO.EDU (Paul Ford 312/702-0335)
Subject: RE: Table fields in FRS
Organization: National Radio Astronomy Observatory
Date: Fri, 11 Sep 1992 17:12:57 GMT

Ranadeva Peries writes:

> Can anybody tell me whether columns can be added to table
> fields (in INGRES FORMS) at Run time.

You can't do it using the sqlda or any other standard part of FRS.  You have to 
reverse engineer the form data structure used by FRS (look at the .MAR (VMS) or 
.C (Unix) files generated by the compform command).  I think there has been some 
recent discussion of this.  Its kind of messy and totally unsupported by Ingres.

Depending on what you really need to accomplish, the new-to-6.4 invisible
column capability might be helpful.  The use of invisible columns
is sonewhat constrained by the fact that you need enough real estate
to the right of the tablefield to allow all columns to be visible at once.

Another kludge we have used is a generic varchar column into which we format
and display different values depending on a user choice or program context. 
A boxed simplefield above the column (in place of vifred's standard
column heading) allows the column heading to change with the data.
 
Good luck getting done what you need to get done.

Paul Ford
GSB Computing Services
University of Chicago
312.702.0335
cs_paul@gsbvax.uchicago.edu

Newsgroups: comp.databases.ingres
From: cs_mj@gsbacd.uchicago.edu (Mark Jaeger)
Subject: Re: ``update overflows'' in CBTREES
Followup-To: steve@soi.com
Organization: 
Date: Fri, 4 Sep 1992 21:37:49 GMT

In article <1992Sep4.155131.25981@das.harvard.edu>, e-l@speed.harvard.edu 
(e-l account for Cheatham, steve@soi.com) writes:

> Can you tell me how INGRES handles ``update overflows'' in CBTREES?  By
> ``update overflows'' I mean overflows caused when a record with NULLs
> (or with short values in variable-length character fields) is updated so
> that it no longer fits in its current page.  A query that might cause
> this is
> 
>   update T
>     set comment = 'No comment available for the time being' where comment = ''

Disclaimer: I don't totally understand how INGRES does this, but I have
a vague idea.

An INGRES data page consists of two portions, the tid table and then the
data.  As you add rows to a page (say, in a heap table), the tid table
works its way down from the top of the page, and the data works its way
up from the bottom of the page.  You can see this empirically by dumping
the file for a table of known structure and data.

The tid table is a fixed-width table of pointers.  Each pointer is the
offset from the beginning (or end?) of the data page, to the beginning
of the row.  When you increase the size of a row by doing an update,
then the row may no longer fit where it was, and INGRES has to move it. 
Sometimes it can do this by moving it to a different place on the same
data page, but other times it has to do a page split.  

It allocates a new, empty data page, and then puts one or more of the
rows from the original page into the new page.  How it decides which
rows to move may depend on the table structure (index type) and the
fill factor.  

Once it has moved the rows around, the tid has changed for one or more
rows.  INGRES must now propagate the new tids up to the leaf pages (in a
btree) and possibly the index pages (in btree and isam).  For isam,
hash, and heap, it may have to change the page headers which contain
pointers to the next page in an overflow chain.  

You may find more interesting information about btree index splits in
Knuth, in the book about sorting and searching.  Look in the section
about btrees.  

Hope this helps.

--Mark Jaeger				internet: cs_mj@gsbvax.uchicago.edu
Graduate School of Business		yellnet:  (312) 702-0328
University of Chicago			faxnet:   (312) 702-0233
Disclaimer: My opinions are my own and not those of my employer.
Ich bin ein Virus.  Mach' mit und kopiere mich in Deine .signature.
From: alan@curta.cc.columbia.edu (Alan Crosswell)
Newsgroups: comp.databases.ingres
Subject: E_DM9004 (too many open files)
Date: 9 Sep 92 15:24:08 GMT
Organization: Columbia University

Here's an error that appears at seemingly random times.  Whenever I rerun
the program that causes this error, it works fine:

      ::[4026            , 00849660]: Wed Sep  9 11:20:04 1992  
E_DM9004_BAD_FILE_OPEN   Disk file open error on database:sid                       
table:Not a table pathname://ingres/dmp/default/sid filename:aaaaaaaa.cnf
open() failed with UNIX error 24 (Too many open files)

Now the program doesn't touch very many tables and it does a lot of
friendly things like commits, so I don't see how it can have too many
files open....

/a
From: alan@curta.cc.columbia.edu (Alan Crosswell)
Newsgroups: comp.databases.ingres
Subject: E_CLFE07 and E_SC022F and E_LQ002E (CONCLUSIONS)
Date: 8 Sep 92 13:37:39 GMT
Organization: Columbia University

Hello,

Thanks to all the responders.  The short answers are:

E_CLFE07 and E_SC022F are spurious noise caused, for example, by
front-ends exiting without doing an exec sql disconnect first (e.g.
because they were interrupted with a control-C).

E-LQ002E was the result of a bug in the program;  It didn't correctly
bounds check an array size and wrote data off the end of it, clobbering
the program.  It wasn't an Ingres error at all, just a side effect of
the ingres library data getting clobbered.

/a
Newsgroups: comp.databases.ingres
From: rana@cs.uwa.oz.au (Ranadeva Peries)
Subject: Table fields in FRS
Summary: Adding a column to a Table field
Keywords: INGRES FRS TABLE COLUMN
Organization: Dept. Computer Science, University of Western Australia.
Date: Thu, 10 Sep 1992 05:48:12 GMT

Hi folks,

 Can anybody tell me whether columns can be added to table
 fields (in INGRES FORMS) at Run time.

 I am trying to do the following with Dynamic FRS. All I am 
 getting on the display is the number of columns that were in
 the origianl form.

 I have a form which has been created via the forms editor.
 This form has a single table field which has 5 columns.

 I would like to add one or more columns to it at run time.

 What I am doing wrong ? What is missing ?

 Thanks in advance. Please reply to the following address.
_________________________________________________________________________
 Ranadeva Peries (Rana)               |  Internet:  rana@cs.uwa.oz.au
 Department of Computer Science       |
 The University of Western Australia  |  
 Nedlands 6009,                       | Tel: +61-9-3802878 
 W. Australia.                        | FAX: +61-9-3801089
_________________________________________________________________________


    EXEC FRS FORMS;

    EXEC FRS MESSAGE 'Initialising form........';

    EXEC FRS FORMINIT markform;


    sqlda = (IISQLDA *) calloc(1, IISQDA_HEAD_SIZE +
                               (20 * IISQDA_VAR_SIZE));

    EXEC FRS DESCRIBE TABLE markform marktbl INTO :sqlda;

    i = sqlda->sqld++;
    sqlda->sqlvar[i].sqltype = IISQ_INT_TYPE;
    sqlda->sqlvar[i].sqllen  = sizeof(long);
    sqlda->sqlvar[i].sqldata = (char *) calloc(1, sizeof(long));
    sqlda->sqlvar[i].sqlind  = (short *)0;
    sqlda->sqlvar[i].sqlname.sqlnamel = 3;
    strcpy(sqlda->sqlvar[i].sqlname.sqlnamec, "num");
    
    EXEC FRS DISPLAY markform UPDATE;
    EXEC FRS INITIALIZE;

    EXEC FRS INITTABLE markform marktbl FILL;

    ???? What am I missing here ?
From: demarsee@wrdis01.af.mil (Darryl Marsee)
Newsgroups: comp.databases.ingres
Subject: Ingres 6.3 Bug in ABF Call Report?
Date: 4 Sep 92 16:11:29 GMT
Organization: 1926CCSG Robins AFB

The set-up:   Ingres 6.3 under OSx 5.0 on a Pyramid MIS 4/2

The problem:  I'm having a problem getting ABF Call Report to accept
              parameters whose value includes hyphens.

Here's the ABF code from the User Frame:

initialize ( item=char(15)
	   ) =
	   {
	   }
	     
'Form A' =
	   {
	     item := prompt 'Please enter which item you want a Form A for: ' with style=popup;
	     item := uppercase(item);
	     item := concat('I_Tem=''"',item);
	     item := concat(item,'''"');
	     call report (report='fmA',
			  silent='',
		  	  pagelength=48,
			  noformfeed='',
			  file='/tmp/fmA.output',
			  forcerep='',
			  param=item);
	   }

If you type in the string ABCDE at the prompt, the variable item ends up
with the value I_Tem='"ABCDE"' which sets the value of the variable I_Tem
within report fmA correctly.  However, if you type in ABC-DE (which is 
what I need), it bombs with the following error:

E_RW1001 Bad parameters specified at or near '-DE)'
    Correct usage of REPORT command is:
             REPORT dbname [[-m..] table | [-r] report | -i..]
               [-f..] [-qn] [-ln] [-wn] [-vn] [-t|+t] [-b|+b] [-5] [-h] [-s]
               [-cn] [-uuser] [({param=val})]
 Processing stops.

I've tried adding up to four backslashes before the dash ... no luck.

Does anyone have any idea what I need to do to get Call Report to accept
the dashed value?

Many Thanks & Regards for your help,
                          ____                  
Darryl E. Marsee         |    \   1926 CCSG/SCCI 205 Perry Street
Control Data Systems     |  *  \  Robins Air Force Base, GA 31098
demarsee@wrdis01.af.mil  |_____/  demarsee@logdis1.wr.aflc.af.mil
From: wong@sybase.com (J. Wong)
Newsgroups: comp.databases.ingres
Subject: Re: Blobs in Ingres 6.5
Date: 10 Sep 92 20:27:18 GMT
Organization: Sybase, Inc.

In article <1992Sep8.153747.12814@fig.citib.com> ghica@fig.citib.com (Renato [Titanium Cranium] Ghica) writes:
>
>so does anyone know why the 2000 byte limitation exists, anyway?
>Is it that anything with more than 2000 bytes/row is considered to be
>"bad" database design?

In the current implementation tuples (rows) cannot span a physical disk page,
which is 2048 bytes.  2048 - some header stuff = 2000 bytes left for a tuple
on a page.
From: cs_mj@gsbacd.uchicago.edu (Mark Jaeger)
Newsgroups: comp.databases.ingres
Subject: Re: E_DM9004 (too many open files)
Date: 10 Sep 92 06:44:03 GMT

In article <1992Sep9.152408.29947@news.columbia.edu>,
alan@curta.cc.columbia.edu (Alan Crosswell) writes:
> Here's an error that appears at seemingly random times.  Whenever I rerun
> the program that causes this error, it works fine:
>
>       ::[4026            , 00849660]: Wed Sep  9 11:20:04 1992
> E_DM9004_BAD_FILE_OPEN   Disk file open error on database:sid
> table:Not a table pathname://ingres/dmp/default/sid filename:aaaaaaaa.cnf
> open() failed with UNIX error 24 (Too many open files)
>
> Now the program doesn't touch very many tables and it does a lot of
> friendly things like commits, so I don't see how it can have too many
> files open....

It looks like the server is running out of slots for opening tables.

Once again, I don't know much about Unix (yet), but it may be an OS
configuration limit.  In VMS, when you create a process, you get an
array of size CHANNELCNT (sysgen parameter), where each entry is for an
open channel (file).  This is true of the server in particular.  We had
to increase our CHANNELCNT to something like 550 for a server that's
shared by about 40 simultaneous users, using several hundred tables.  

Is there something like this in Unix?  Is it possible that other folks
are using the server on the same or other databases at the same time you
are getting these errors?  Also, don't forget that the server has to
open and query a bunch of tables in the iidbdb just to get you connected
in the first place.

Hope this helps.

--Mark Jaeger				internet: cs_mj@gsbvax.uchicago.edu
Graduate School of Business		yellnet:  (312) 702-0328
University of Chicago			faxnet:   (312) 702-0233
Disclaimer: My opinions are my own and not those of my employer.
Ich bin ein Virus.  Mach' mit und kopiere mich in Deine .signature.
Newsgroups: comp.databases.ingres
From: cs_mj@gsbacd.uchicago.edu (Mark Jaeger)
Subject: Re: Browser
Organization: 
Date: Fri, 4 Sep 1992 21:47:12 GMT

In article <1992Sep4.161611.6559@tcsi.com>, sriram@tcs.com (Sriram Srinivasah) 
writes:
> I was wondering how isql buffers the data, while browsing. A simple program 
> that I wrote, to fetch every row in the database seems to take much more 
> time than isql takes to come back and display the first 10 or so rows. The 
> question is, does isql read all the data into memory, and then manage the 
> list, or is it much cleverer than that? Also, if it doesn't read everything 
> into memory,  how does it manage to do a previous page operation so fast?

Wild guess: the speed has to do with whether you use a cursor or a
select loop, and, if the former, the setting of prefetch rows.  

I'm pretty sure that ISQL fetches the data into some sort of FRS
structure, and FRS manages the data in the front end, giving you quick
response on previous page.  However, I don't think it necessarily
fetches _all_ the data into memory at once.  In QBF, at least, you
sometimes see that "fetching more data" message when scrolling down
through a massive table.  But all the data is eventually fetched into
memory (if you have enough) because you can always scroll back to the
top.  The OS takes care of the paging activity for INGRES.

--Mark Jaeger				internet: cs_mj@gsbvax.uchicago.edu
Graduate School of Business		yellnet:  (312) 702-0328
University of Chicago			faxnet:   (312) 702-0233
Disclaimer: My opinions are my own and not those of my employer.
Ich bin ein Virus.  Mach' mit und kopiere mich in Deine .signature.
From: alan@curta.cc.columbia.edu (Alan Crosswell)
Newsgroups: comp.databases.ingres
Subject: QBF won't let me append thru a view?
Date: 8 Sep 92 16:26:42 GMT
Organization: Columbia University

Am I on drugs?  I just made a single-table view and QBF won't let me
append through it?  Is this right?  Is there a way to trick it to let me?
/a
From: c23rrj@kocrsv01.delcoelect.com (Rajnish Joshi)
Newsgroups: comp.databases.ingres
Subject: Comparison of Ingres5.0 Vs the latest
Date: 14 Sep 92 17:08:41 GMT
Organization: Delco Electronics Corp.
Originator: c23rrj@kocrsw04


Hi,

Presently we use Ingres5.0 in our department. However, we plan to upgrade it.
So could some please tell me the following:

1. Which is the latest version of Ingres.
2. How does this latest version compare with the 5.0. How has Ingres been 
   enhanced in this new version ?

Thanks a lot
Raj

-- 
**************************************************************************
  Rajnish Joshi              Phone: (317) 451-0643   GM Line: 8-322-0643
  Software Technology         UUCP: deaes!c23rrj
  Delco Electronics Corp.    Internet: c23rrj@kocrsv01.delcoelect.com
Newsgroups: comp.databases.ingres
From: dave@csis.dit.csiro.au (David Campbell)
Subject: Ingres C-call interface
Organization: CSIRO Division of Information Technology
Date: Thu, 10 Sep 1992 03:19:47 GMT

Does anybody know of a C-call interface into Ingres?

I am quite aware of the esqlc preprocessor for C but it seems to be
impossible in esqlc to write a C function which does something like
"create a new cursor".  It seems that all cursors have to be declared,
and that makes them statically declared.

I've looked into Oracle and as well as presenting an embedded SQL
preprocessor interface (Pro*C), it presents a C-call interface
where dynamic creation of cursors is possible.

I know that esql must translate into a bunch of C calls but they appear
to be undocumented.

Does Ingres support such a C-call interface?  I can't seem to find any
documentation of one.

Thanks,
Dave Campbell
dave@csis.dit.csiro.au
-- 
  +--------------------------------------------------+-----------------------+
  | Dave Campbell                                    |            UNIX & C++ |
  | Phone: + 61 6 275 0944      Fax: + 61 6 257 1052 |   _--_|\       PLEASE |
  | CSIRO Division of Information Technology         |  /      \             |
Newsgroups: comp.databases.ingres
From: pnarayan@cs.tamu.edu (P S Narayan)
Subject: Postgress
Organization: Computer Science Department, Texas A&M University
Distribution: usa
Date: Tue, 8 Sep 1992 18:13:48 GMT

Thanks
Narayan
pnarayan@cs.tamu.edu




Newsgroups: comp.databases.ingres
From: rudomet@skat.usc.edu (Steve Rudometkin)
Newsgroups: comp.databases.ingres
Subject: need recovery help
Date: 5 Sep 1992 00:01:26 -0700
Organization: University of Southern California, Los Angeles, CA
Distribution: na
NNTP-Posting-Host: skat.usc.edu

I have the following problem and need some help:

I made a test database, checkpointed it, and then deleted the data directory
Then rollforwarddb, received an error message about no config file.

I recreated the data directory and copied the .cnf file from dmp directory. 
The database was restored quickly.

I then added some data, then removed the data directory again, rollforward.
I assumed that the process with journal would be the same as without, but:
More error messages:
	Error occurred during phase three of the archiver.
	Archiver is Terminating.
	Error removing the database:  0x0002000C from the logging system.
	The Archiver got an error trying to an LGremove call.
	The Archiver got an error trying to close the log file.
	The Archiver was told to shutdown.
	RCP EVENT MASK <RECOVER,PURGEDB,ONLINE,ECPDONE>
iiarchive does not start up an archive process.

I killed the rollforward after it stopped the archiver, ~ :20 min.

Then tried to destroydb, but there is an IX  lock on Journal X on database
belonging to process <none>, but can't fing process <none> (from IPM).  The
database is marked inconsistent.

I want to shutdown/startup but think that it will hang when it gets to the
inconsistent database.  Right now we have 20% usage in the log, and have a 
bit to decide what to do.

Thanks,

-Steve
-- 
Steve Rudometkin                       o          ,__o        o   /\/\
University Computing Services         <\        _-\_<,     []<\  /~~\ \/\
University of Southern California  ___/__,     (*)/'(*)      /> /    \ \ \
Los Angeles CA 90089-0251        (213)740-2870  rudomet@skat.usc.edu
Newsgroups: comp.databases.ingres
From: sethg@dcatlas.dot.gov (Seth Grimes)
Subject: Re: Ingres applications and desktop devices
Organization: U.S Dept. of Transportation
Date: Fri, 4 Sep 1992 12:58:59 GMT


You could also consider a forms generator like JYACC's JAM or C-Scape
from Liant Software.  These are portable between different platforms;
you just have to buy the libraries on the target platform and link
your application there.  C-Scape (and maybe JAM too) generate ANSI C
code.  On the other hand, you would be much better off with a product
that does both X and character-cell -- these just do the latter -- so
if Uniface really does then you shouldn't bother with these.

Seth Grimes, dcatlas!sethg@uunet.uu.net
Automated Sciences Group (U.S. Dept. of Transportation)
Newsgroups: comp.databases.ingres
From: reid@upei.ca (Mike Reid)
Subject: Re: Manually waking the archiver?
Organization: University of Prince Edward Island
Date: Fri, 11 Sep 1992 13:22:58 GMT

In article <1992Sep9.132229.292@cutler> michael@cutler.com (Michael D. Shields) writes:

>So how does one manually wake up the archiver to start
>moving entries from the log file to the journal file?

>One of our nodes has a 1 GB (yes, gigabyte) log file.  We are running
>6.3/03 (vax.vms/01), and under this version, the smallest increment
>that will wake up the archiver is five percent of the log file.
>Occasionally we need to view recent transactions using AUDITDB, but we
>have to wait until an archiver wake-up.  As this node is a research and
>development machine, the time it takes reach the five percent varies
>greatly.

>Isn't there a TRACE POINT that will force a wake-up?  I am aware that
>6.4/01 will allow smaller increments, but even at one percent, we
>could be waiting a while.

>FWIW, we're running VMS 5.4-2.

I recently started looking at this question, although for different 
reasons.  I would like to backup the journal files before taking an off-line 
checkpoint.  Would shutting down Ingres clean out the log file? Steve 
Caswell's suggestion of modifying the checkpoint templates in the [ingres.
files.checkpoint] directory does not seem to give one much control over what 
is being done.

Mike Reid <REID@UPEI.CA>
From: gnb@duke.bby.com.au (Gregory N. Bond)
Newsgroups: comp.databases.ingres
Subject: Undocumented termcap fix in 6.4/02
Date: 6 Sep 92 23:58:08 GMT
Organization: Burdett, Buckeridge & Young, Melbourne, Australia

I've just upgraded to 6.4/02 su42/00 and found a pleasant surprise
that wasn't documented in the release notes (that I noticed).  Doing a
diff on the old and new termcap files uncovered this entry:

	xr|wxterms|INGRES xterm termcap, (no function keys, auto size on startup):\
        	:li#24:co#80:\
	        :wx:tc=wviewbase:

And lo and behold, adding :wx: to a termcap entry means that the
Ingres termcap system will ask the terminal driver for the size of the
screen, just as it used to in V5.0!  Well done Ingres!

Now if we could just get ABF Table fields to use the variable
sizes....

Greg.
--
Gregory Bond <gnb@bby.com.au> Burdett Buckeridge & Young Ltd Melbourne Australia
``USL has never sold long distance.  You're going after the wrong men in black 
  hats.  (Or, in the case of Plan 9, black space suits)'' - Tom Limoncelli
Newsgroups: comp.databases.ingres