|
|
1.1 root 1: .th COPY QUEL 1/19/79
2: .sh NAME
3: copy \- copy data into/from a relation from/into a \*(UU file.
4: .sh SYNOPSIS
5: .bd copy
6: relname
7: (domname = format {, domname = format })
8: .br
9: .ti +10
10: direction "filename"
11: .sh DESCRIPTION
12: .it Copy
13: moves data between \*(II relations and standard \*(UU files.
14: .it Relname
15: is the name of an existing relation.
16: In general
17: .it domname
18: identifies a domain in
19: .it relname.
20: .it Format
21: indicates the format the \*(UU file
22: should have for the corresponding domain.
23: .it Direction
24: is either
25: .bd into
26: or
27: .bd from.
28: .it Filename
29: is the full \*(UU pathname of the file.
30: .s3
31: On a copy
32: .bd from
33: a file to a relation,
34: the relation cannot have a secondary index,
35: it must be owned by you,
36: and it must be updatable (not a secondary index
37: or system relation).
38: .s3
39: .it Copy
40: cannot be used on a relation which is a view.
41: For a copy
42: .bd into
43: a \*(UU file,
44: you must either be the owner of the relation or
45: the relation must have retrieve permission for
46: all users,
47: or all permissions for all users.
48: .s3
49: The formats allowed by copy are:
50: .in +5
51: .s1
52: .ti-5
53: .bd "i1,i2,i4"
54: \- The data is
55: stored as an integer of length 1, 2, or 4 bytes in the \*(UU file.
56: .s1
57: .ti-5
58: .bd "f4,f8"
59: \- The data is stored as a floating point
60: number (either single or double precision) in the \*(UU file.
61: .s1
62: .ti-5
63: .bd "c1,c2,...,c255"
64: \- The data is stored as a fixed length string of
65: characters.
66: .s1
67: .ti -5
68: .bd "c0"
69: \- Variable length character string.
70: .s1
71: .ti -5
72: .bd "d0,d1,...,d255"
73: \- Dummy domain.
74: .in -5
75: .s3
76: Corresponding domains in the relation
77: and the \*(UU file do not have to be the
78: same type or length.
79: .it Copy
80: will convert as necessary.
81: When converting anything except character to
82: character,
83: .it copy
84: checks for overflow.
85: When converting from character to character,
86: .it copy
87: will blank pad or truncate on the right as necessary.
88: .s3
89: The domains should be ordered according to
90: the way they should appear in the \*(UU file.
91: Domains are matched according to name,
92: thus the order of the domains in the relation
93: and in the \*(UU file does not have to be the same.
94: .s3
95: .it Copy
96: also provides for variable length strings
97: and dummy domains.
98: The action taken depends on whether
99: it is a copy
100: .bd into
101: or a copy
102: .bd from.
103: Delimitors for variable length strings and
104: for dummy domains can be selected from the list of:
105: .in+4
106: .s3
107: .bd "nl"
108: \- new line character
109: .br
110: .bd "tab"
111: \- tab character
112: .br
113: .bd "sp"
114: \- space
115: .br
116: .bd nul
117: or
118: .bd null
119: \- null character
120: .br
121: .bd "comma"
122: \- comma
123: .br
124: .bd "colon"
125: \- colon
126: .br
127: .bd "dash"
128: \- dash
129: .br
130: .bd "lparen"
131: \- left parenthesis
132: .br
133: .bd "rparen"
134: \- right parenthesis
135: .br
136: .it "x"
137: \- any single character 'x'
138: .in -4
139: .s3
140: The special meaning of any delimitor can be
141: turned off by preceeding the delimitor with
142: a `\\'.
143: The type specifier can optionally be in quotes ("c0delim").
144: This is usefully if you wish to use a single character
145: delimitor which has special meaning to the \s-2QUEL\s0 parser.
146: .s3
147: When the
148: .it direction
149: is
150: from,
151: .it copy
152: appends data into the relation
153: .bd from
154: the \*(UU file.
155: Domains in the \*(II relation which are not
156: assigned values from the \*(UU file are assigned
157: the default value of zero for numeric
158: domains, and blank for character
159: domains.
160: When copying in this direction the following
161: special meanings apply:
162: .in +5
163: .s3
164: .ti -5
165: .bd c0\c
166: .it delim
167: \- The data in the \*(UU file is a variable
168: length character string terminated by the
169: delimitor
170: .it delim.
171: If
172: .it delim
173: is missing then the first
174: comma, tab, or newline encountered will
175: terminate the string.
176: The delimitor is not copied.
177: .s3
178: For example:
179: .in +5
180: pnum=c0
181: \- string ending in comma, tab, or nl.
182: .br
183: pnum=c0nl
184: \- string ending in nl.
185: .br
186: pnum=c0sp
187: \- string ending in space.
188: .br
189: pnum=c0z
190: \- string ending in the character `z'.
191: .br
192: pnum="c0%"
193: \- string ending in the character `%'.
194: .in -5
195: .s3
196: A delimitor can be escaped by preceeding it with a
197: `\\'.
198: For example,
199: using
200: .bd "name = c0\c"
201: \&, the string
202: ``Blow\\, Joe,''
203: will be accepted into the domain as
204: ``Blow, Joe''.
205: .s1
206: .ti -5
207: .bd d0\c
208: .it delim
209: \- The data in the \*(UU file
210: is a variable length character string
211: delimited by
212: .it delim\c
213: \&.
214: The string is read and discarded.
215: The delimitor rules are identical for
216: .bd c0
217: and
218: .bd d0.
219: The domain name is ignored.
220: .s1
221: .ti -5
222: .bd d1,d2,...,d255
223: \- The data in the \*(UU file is a
224: fixed length character string.
225: The string is read and discarded.
226: The domain name is ignored.
227: .s3
228: .in -5
229: When the direction is
230: .bd into,
231: .it copy
232: transfers data
233: .bd into
234: the \*(UU file
235: from the relation.
236: If the file already existed, it is truncated to zero
237: length before copying begins.
238: When copying in this direction,
239: the following special meanings apply:
240: .s3
241: .in +5
242: .ti -5
243: .bd c0
244: \- The domain value is converted to a
245: fixed length character string and writted
246: into the \*(UU file.
247: For character domains, the length will be the
248: same as the domain length.
249: For numeric domains, the standard \*(II
250: conversions will take place as specified
251: by the `\c
252: .bd \-i\c
253: \&', `\c
254: .bd \-f\c
255: \&',
256: and `\c
257: .bd \-c\c
258: \&'
259: flags (see ingres(unix)).
260: .s1
261: .ti -5
262: .bd c0\c
263: .it delim
264: \- The domain will be converted according to
265: the rules for
266: .bd c0
267: above.
268: The one character delimitor will be inserted
269: immediately after the domain.
270: .s1
271: .ti -5
272: .bd d1,d2,...,d255
273: \- The domain name is taken to be
274: the name of the delimitor.
275: It is written into the \*(UU file 1 time for
276: .bd d1,
277: 2 times for
278: .bd d2,
279: etc.
280: .s1
281: .ti -5
282: .bd d0
283: \- This format is ignored on a copy
284: .bd into.
285: .s1
286: .ti -5
287: .bd d0\c
288: .it delim
289: \- The
290: .it delim
291: is written into the file.
292: The domain name is ignored.
293: .s1
294: .in -5
295: .s3
296: If no domains appear in the copy command
297: (i.e. copy relname () into/from "filename")
298: then
299: .it copy
300: automatically does a ``bulk'' copy of
301: all domains, using the order and format
302: of the domains in the relation.
303: This is provided as a convenient shorthand
304: notation for copying and restoring entire relations.
305: .s3
306: To
307: .it copy
308: into a relation, you must be the owner
309: or all users must have all permissions set.
310: Correspondingly, to
311: .it copy
312: from a relation you must own the relation
313: or all users must have at least retrieve permission on the
314: relation.
315: Also, you may not
316: .it copy
317: a view.
318: .sh EXAMPLE
319: .nf
320: /\*(** Copy data into the emp relation \*(**/
321: copy emp (name=c10,sal=f4,bdate=i2,mgr=c10,xxx=d1)
322: from "/mnt/me/myfile"
323: .s1
324: /\*(** Copy employee names and their salaries into a file \*(**/
325: copy emp (name=c0,comma=d1,sal=c0,nl=d1)
326: into "/mnt/you/yourfile"
327: .s1
328: /\*(** Bulk copy employee relation into file \*(**/
329: copy emp ()
330: into "/mnt/ours/ourfile"
331: .s1
332: /\*(** Bulk copy employee relation from file \*(**/
333: copy emp ()
334: from "/mnt/thy/thyfile"
335: .fi
336: .sh "SEE ALSO"
337: append(quel), create(quel), quel(quel),
338: permit(quel), view(quel),
339: ingres(unix)
340: .sh BUGS
341: .it Copy
342: stops operation at the first error.
343: .s3
344: When specifying
345: .it filename\c
346: , the entire \*(UU directory
347: pathname must be provided, since \*(II operates out of
348: a different directory than the user's working directory at the
349: time \*(II is invoked.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.