1Padre::DB::SessionFile(U3s)er Contributed Perl DocumentatPiaodnre::DB::SessionFile(3)
2
3
4
6 Padre::DB::SessionFile - Padre::DB class for the session_file table
7
9 my @files = Padre::DB::SessionFile->select(
10 'where session = ?', $session_id,
11 );
12
14 This class allows storing in Padre's database the files referenced by a
15 given session (see "Padre::DB::Session").
16
18 base
19 # Returns 'Padre::DB'
20 my $namespace = Padre::DB::SessionFile->base;
21
22 Normally you will only need to work directly with a table class, and
23 only with one ORLite package.
24
25 However, if for some reason you need to work with multiple ORLite
26 packages at the same time without hardcoding the root namespace all the
27 time, you can determine the root namespace from an object or table
28 class with the "base" method.
29
30 table
31 # Returns 'session_file'
32 print Padre::DB::SessionFile->table;
33
34 While you should not need the name of table for any simple operations,
35 from time to time you may need it programatically. If you do need it,
36 you can use the "table" method to get the table name.
37
38 load
39 my $object = Padre::DB::SessionFile->load( $id );
40
41 If your table has single column primary key, a "load" method will be
42 generated in the class. If there is no primary key, the method is not
43 created.
44
45 The "load" method provides a shortcut mechanism for fetching a single
46 object based on the value of the primary key. However it should only be
47 used for cases where your code trusts the record to already exists.
48
49 It returns a "Padre::DB::SessionFile" object, or throws an exception if
50 the object does not exist.
51
52 select
53 # Get all objects in list context
54 my @list = Padre::DB::SessionFile->select;
55
56 # Get a subset of objects in scalar context
57 my $array_ref = Padre::DB::SessionFile->select(
58 'where id > ? order by id',
59 1000,
60 );
61
62 The "select" method executes a typical SQL "SELECT" query on the
63 session_file table.
64
65 It takes an optional argument of a SQL phrase to be added after the
66 "FROM session_file" section of the query, followed by variables to be
67 bound to the placeholders in the SQL phrase. Any SQL that is compatible
68 with SQLite can be used in the parameter.
69
70 Returns a list of Padre::DB::SessionFile objects when called in list
71 context, or a reference to an "ARRAY" of Padre::DB::SessionFile objects
72 when called in scalar context.
73
74 Throws an exception on error, typically directly from the DBI layer.
75
76 iterate
77 Padre::DB::SessionFile->iterate( sub {
78 print $_->id . "\n";
79 } );
80
81 The "iterate" method enables the processing of large tables one record
82 at a time without loading having to them all into memory in advance.
83
84 This plays well to the strength of SQLite, allowing it to do the work
85 of loading arbitrarily large stream of records from disk while
86 retaining the full power of Perl when processing the records.
87
88 The last argument to "iterate" must be a subroutine reference that will
89 be called for each element in the list, with the object provided in the
90 topic variable $_.
91
92 This makes the "iterate" code fragment above functionally equivalent to
93 the following, except with an O(1) memory cost instead of O(n).
94
95 foreach ( Padre::DB::SessionFile->select ) {
96 print $_->id . "\n";
97 }
98
99 You can filter the list via SQL in the same way you can with "select".
100
101 Padre::DB::SessionFile->iterate(
102 'order by ?', 'id',
103 sub {
104 print $_->id . "\n";
105 }
106 );
107
108 You can also use it in raw form from the root namespace for better
109 control. Using this form also allows for the use of arbitrarily
110 complex queries, including joins. Instead of being objects, rows are
111 provided as "ARRAY" references when used in this form.
112
113 Padre::DB->iterate(
114 'select name from session_file order by id',
115 sub {
116 print $_->[0] . "\n";
117 }
118 );
119
120 count
121 # How many objects are in the table
122 my $rows = Padre::DB::SessionFile->count;
123
124 # How many objects
125 my $small = Padre::DB::SessionFile->count(
126 'where id > ?',
127 1000,
128 );
129
130 The "count" method executes a "SELECT COUNT(*)" query on the
131 session_file table.
132
133 It takes an optional argument of a SQL phrase to be added after the
134 "FROM session_file" section of the query, followed by variables to be
135 bound to the placeholders in the SQL phrase. Any SQL that is compatible
136 with SQLite can be used in the parameter.
137
138 Returns the number of objects that match the condition.
139
140 Throws an exception on error, typically directly from the DBI layer.
141
142 new
143 TO BE COMPLETED
144
145 The "new" constructor is used to create a new abstract object that is
146 not (yet) written to the database.
147
148 Returns a new Padre::DB::SessionFile object.
149
150 create
151 my $object = Padre::DB::SessionFile->create(
152
153 id => 'value',
154
155 file => 'value',
156
157 position => 'value',
158
159 focus => 'value',
160
161 session => 'value',
162
163 );
164
165 The "create" constructor is a one-step combination of "new" and
166 "insert" that takes the column parameters, creates a new
167 Padre::DB::SessionFile object, inserts the appropriate row into the
168 session_file table, and then returns the object.
169
170 If the primary key column "id" is not provided to the constructor (or
171 it is false) the object returned will have "id" set to the new unique
172 identifier.
173
174 Returns a new session_file object, or throws an exception on error,
175 typically from the DBI layer.
176
177 insert
178 $object->insert;
179
180 The "insert" method commits a new object (created with the "new"
181 method) into the database.
182
183 If a the primary key column "id" is not provided to the constructor (or
184 it is false) the object returned will have "id" set to the new unique
185 identifier.
186
187 Returns the object itself as a convenience, or throws an exception on
188 error, typically from the DBI layer.
189
190 delete
191 # Delete a single instantiated object
192 $object->delete;
193
194 # Delete multiple rows from the session_file table
195 Padre::DB::SessionFile->delete('where id > ?', 1000);
196
197 The "delete" method can be used in a class form and an instance form.
198
199 When used on an existing Padre::DB::SessionFile instance, the "delete"
200 method removes that specific instance from the "session_file", leaving
201 the object intact for you to deal with post-delete actions as you wish.
202
203 When used as a class method, it takes a compulsory argument of a SQL
204 phrase to be added after the "DELETE FROM session_file" section of the
205 query, followed by variables to be bound to the placeholders in the SQL
206 phrase. Any SQL that is compatible with SQLite can be used in the
207 parameter.
208
209 Returns true on success or throws an exception on error, or if you
210 attempt to call delete without a SQL condition phrase.
211
212 truncate
213 # Delete all records in the session_file table
214 Padre::DB::SessionFile->truncate;
215
216 To prevent the common and extremely dangerous error case where deletion
217 is called accidentally without providing a condition, the use of the
218 "delete" method without a specific condition is forbidden.
219
220 Instead, the distinct method "truncate" is provided to delete all
221 records in a table with specific intent.
222
223 Returns true, or throws an exception on error.
224
226 id
227 if ( $object->id ) {
228 print "Object has been inserted\n";
229 } else {
230 print "Object has not been inserted\n";
231 }
232
233 Returns true, or throws an exception on error.
234
235 REMAINING ACCESSORS TO BE COMPLETED
236
238 The session_file table was originally created with the following SQL
239 command.
240
241 CREATE TABLE session_file (
242 id INTEGER NOT NULL PRIMARY KEY,
243 file VARCHAR(255) NOT NULL,
244 position INTEGER NOT NULL,
245 focus BOOLEAN NOT NULL,
246 session INTEGER NOT NULL,
247 FOREIGN KEY (session) REFERENCES session(id)
248 )
249
251 Padre::DB::SessionFile is part of the Padre::DB API.
252
253 See the documentation for Padre::DB for more information.
254
256 Adam Kennedy <adamk@cpan.org>
257
259 Copyright 2008-2011 The Padre development team as listed in Padre.pm.
260
261 This program is free software; you can redistribute it and/or modify it
262 under the same terms as Perl itself.
263
264 The full text of the license can be found in the LICENSE file included
265 with this module.
266
267
268
269perl v5.30.1 2020-01-30 Padre::DB::SessionFile(3)