annotate main/database/src/pq_conninfo.cc @ 12720:52ca082757c2 octave-forge tip

Update copyright notices.
author i7tiol
date Sat, 27 Feb 2016 11:21:29 +0000
parents 1af86934c14e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11659
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
1 /*
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
2
12720
52ca082757c2 Update copyright notices.
i7tiol
parents: 12718
diff changeset
3 Copyright (C) 2013-2016 Olaf Till <i7tiol@t-online.de>
11659
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
4
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
5 This program is free software; you can redistribute it and/or modify
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
6 it under the terms of the GNU General Public License as published by
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
7 the Free Software Foundation; either version 3 of the License, or
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
8 (at your option) any later version.
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
9
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
10 This program is distributed in the hope that it will be useful,
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
13 GNU General Public License for more details.
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
14
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
15 You should have received a copy of the GNU General Public License
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
16 along with this program; If not, see <http://www.gnu.org/licenses/>.
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
17
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
18 */
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
19
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
20 #include <octave/oct.h>
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
21
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
22 #include "pq_connection.h"
12718
1af86934c14e Make compatible with Octaves new exception-based error handling.
i7tiol
parents: 12613
diff changeset
23 #include "error-helpers.h"
11659
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
24
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
25 // PKG_ADD: autoload ("pq_conninfo", "pq_interface.oct");
12613
9cb56e0cd09b Remove autoloaded functions at package unload.
i7tiol
parents: 12612
diff changeset
26 // PKG_DEL: autoload ("pq_conninfo", "pq_interface.oct", "remove");
11659
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
27
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
28 DEFUN_DLD (pq_conninfo, args, ,
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
29 "-*- texinfo -*-\n\
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
30 @deftypefn {Loadable Function} {@var{val} =} pq_conninfo (@var{connection}, @var{label})\n\
12611
4f35a79fa79a Correct minor documentation typo in pq_conninfo.
i7tiol
parents: 11667
diff changeset
31 Retrieves connection information for postgresql connection @var{connection}, specified by the string @var{label}, and returns the value of this information in @var{val}. The type of @var{val} depends on the requested information. Currently, the only recognized @var{label} is @code{'integer_datetimes'}; @var{val} is @code{true} if 8-byte date and time values are stored as integer in the server, and @code{false} if they are stored as @code{double} (which is deprecated).\n\
11659
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
32 @end deftypefn")
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
33 {
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
34 std::string fname ("pq_conninfo");
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
35
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
36 octave_value retval;
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
37
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
38 if (args.length () != 2 ||
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
39 args(0).type_id () != octave_pq_connection::static_type_id ())
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
40 {
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
41 print_usage ();
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
42
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
43 return retval;
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
44 }
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
45
12718
1af86934c14e Make compatible with Octaves new exception-based error handling.
i7tiol
parents: 12613
diff changeset
46 std::string label;
1af86934c14e Make compatible with Octaves new exception-based error handling.
i7tiol
parents: 12613
diff changeset
47 CHECK_ERROR (label = args(1).string_value (), retval,
1af86934c14e Make compatible with Octaves new exception-based error handling.
i7tiol
parents: 12613
diff changeset
48 "%s: second argument can not be converted to a string",
1af86934c14e Make compatible with Octaves new exception-based error handling.
i7tiol
parents: 12613
diff changeset
49 fname.c_str ());
11659
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
50
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
51 if (label.compare ("integer_datetimes"))
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
52 {
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
53 error ("%s: unrecognized label %s", fname.c_str (), label.c_str ());
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
54
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
55 return retval;
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
56 }
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
57
12612
2257648e8ce1 avoid using const_cast, new release 2.3.2
i7tiol
parents: 12611
diff changeset
58 const octave_base_value& rep = (args(0).get_rep ());
11659
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
59
12612
2257648e8ce1 avoid using const_cast, new release 2.3.2
i7tiol
parents: 12611
diff changeset
60 const octave_pq_connection &oct_pq_conn =
2257648e8ce1 avoid using const_cast, new release 2.3.2
i7tiol
parents: 12611
diff changeset
61 dynamic_cast<const octave_pq_connection&> (rep);
11659
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
62
12612
2257648e8ce1 avoid using const_cast, new release 2.3.2
i7tiol
parents: 12611
diff changeset
63 PGconn *conn = oct_pq_conn.get_rep ()->octave_pq_get_conn ();
11659
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
64
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
65 if (! conn)
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
66 {
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
67 error ("%s: connection not open", fname.c_str ());
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
68
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
69 return retval;
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
70 }
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
71
12612
2257648e8ce1 avoid using const_cast, new release 2.3.2
i7tiol
parents: 12611
diff changeset
72 return octave_value (oct_pq_conn.get_rep ()->get_integer_datetimes ());
11659
7575dc1c0b06 Obtain connection information 'integer_datetimes'.
i7tiol
parents:
diff changeset
73 }