Commit graph

332 commits

Author SHA1 Message Date
eelke
aaa05f64ef PgTablespace now inherits from PgServerObject. 2018-12-25 17:38:13 +01:00
eelke
0b6c1a8544 Make PgAuthId inherit PgServerObject and related changes. 2018-12-25 16:41:44 +01:00
eelke
c2c01cf431 Generic GRANT/REVOKE generation from ACL's complete.
Moved the owned concept to PgServerObject as it is needed for the generic
acl functionality that is also in PgServerObject.
2018-12-25 14:25:15 +01:00
eelke
cc0b28e8e0 No need for PgSPtrContainer to store weak pointer to the catalog when its parent already has a reference to the catalog. 2018-12-24 11:33:24 +01:00
eelke
3f337b2cca Added typeName function to PgObject as it might be useful for building generic functions. 2018-12-24 11:31:56 +01:00
eelke
b210c570fc ArrayParser doesn't require the string to be null terminated anymore,
instead the length of the string can be passed in.

This is first step in process to allow Value to work without null terminator.
2018-12-24 08:10:09 +01:00
eelke
93c8b49f61 PgServerObject now contains a list of acl's for the object so all the different objects
can use this implementation.
2018-12-24 07:51:27 +01:00
eelke
efb3e71556 The getAsArray and getAsVector function now use StringToArrayElem template for conversion
to the array element type.

A five line construct had been copy pasted to achieve conversion by using the capabilities of the Value object
however this was not going to work for types that are not known to the database as adding support for these
to Value would be a bad idea. So StringToArrayElem was introduced with a default implementation that relies on
Value.
2018-12-24 07:46:13 +01:00
eelke
54d4dfface Improved code generation for functions and procedures.
alter statements for configuration settings
alter statement for owner
2018-12-24 07:41:23 +01:00
eelke
fc58acb252 Added convenience functions to PgLanguage for quickly testing for the standard languages. 2018-12-23 19:43:50 +01:00
eelke
471139ba4d Added getResultNoThrow as the AsyncDBCOnnection doesn't like exceptions. 2018-12-23 12:39:53 +01:00
eelke
43f8117bbd pg11: pg_proc, type of function is stored differently from pg11 forward
Followed the more structured approach of pg11 in combining the different types into a kind field
when reading from older versions we migrate the old fields to the new field. Change in 11
is because of PROCEDURE support. However full PROCEDURE support will be its own change and is
registered as issue #37
2018-12-23 08:48:45 +01:00
eelke
a88af1ac11 Improved connection error handling.
Just returning a boolean is too limiting. Using expection instead to easily pass on error message.
2018-12-23 08:43:43 +01:00
eelke
646b18ebeb Update tests for moved include files. 2018-12-23 08:42:32 +01:00
eelke
6a2c8ec5e0 Do not use flat_set anymore gives compilation issues.
Not worth the time solving the issue without having prove of a clear benefit of
using flat_set over unordered_set.
2018-12-23 08:41:33 +01:00
eelke
1854a4bdaa Improvements in generated SQL for CREATE FUNCTION 2018-12-22 13:52:19 +01:00
eelke
f692569d27 Added the list of installed language to the catalog. The ProcTableModel now returns the owner name and language name instead of the oids. 2018-12-17 21:51:14 +01:00
eelke
c0a11f9b3b Functions page now shows sql for selected function.
The actual SQL needs some further checking.
2018-12-16 20:40:04 +01:00
eelke
31a77a1742 Triggers and Columns page now automatically resize columns to fit contents. 2018-12-16 20:38:57 +01:00
eelke
880903db5f Several fixes of warnings/clang tidy 2018-12-16 15:38:32 +01:00
eelke
2f527a8380 Sort the list of columns for a table by attnum (creation order). 2018-12-16 12:49:44 +01:00
eelke
2aef965787 On the tables page the column tab is now selected by default. 2018-12-16 12:47:31 +01:00
eelke
e75b0f1a71 Added CollationModel + factory for editing and added to EditTableWidget 2018-12-16 11:35:39 +01:00
eelke
f0c1035378 Reorganize files in pglablib
The enitities and containers of the catalog now go into catalog subfolder
Models go into model
2018-12-16 11:31:33 +01:00
eelke
56cbeea183 Fix: SelectionEditorFactory::setEditorData incorrectly used default DisplayRole with index.data() while it should use the EditRole. 2018-12-16 09:39:43 +01:00
eelke
387c664284 EditColumnTableModel, return typename for displayrole for type column and oid for edit value. 2018-12-16 09:35:57 +01:00
eelke
44358d198a PgType now inherits from PgNamespaceObject and PgOwnedObject 2018-12-16 09:24:27 +01:00
eelke
742fd0a4d3 SelectionEditorFactory + ItemModel + ItemModelFactory combination is working
in new EditTableWidget

(EditTableWidget is very much WIP)
2018-12-15 20:27:40 +01:00
eelke
e44f73166f SelectionEditorFactory for creating combobox selections for use in QTableView.
TypeSelectionItemModelFactory to use the TypeSelectionItemModel with above factory.
2018-12-15 15:28:33 +01:00
eelke
f8d61b61f4 Added capability to create editors from an editor factory to PgLabItemDelegate 2018-12-15 12:11:23 +01:00
eelke
62c6ad5bfb Improved support from removing rows in crud tabs.
It can handle now complex selections and reports back errors encountered
when removing the rows fails.
2018-12-15 11:24:58 +01:00
eelke
950fea873c Fix QtCreater error
(msvc accepts it but it is an error according to gcc and clang)
2018-12-15 11:19:32 +01:00
eelke
9e645db1a8 Fixed some small details the analyzer was complaining about. 2018-12-09 21:10:35 +01:00
eelke
e32c82ac6f Created Pgsql::Transaction class for handling of transactions. It auto rollsback if no commit has been done.
Also moved some code out of the connection files to their own files.
2018-12-09 20:24:11 +01:00
eelke
255b2ec970 CrudModel::removeRows now works for count > 1
This allows for efficient removal of blocks of rows. If you would remove
row by row the repeated beginRemoveRows and endRemoveRows calls will generate
additional overhead.
2018-12-08 13:55:43 +01:00
eelke
266e479344 fkey field is not set for primary keys.
Caused no problems because it just didn't reserve space. So the only side effect
was slightly reduced performance.
2018-12-08 08:47:02 +01:00
eelke
6c76c70a97 The create table statement now lists the inherited tables and inherited columns are commented out. 2018-12-03 21:03:49 +01:00
eelke
498233d58c WIP: SQL for creating table and related objects 2018-11-30 18:41:38 +01:00
eelke
57217974f4 New column page
Shows SQL for columns ALTER TABLE ... [ADD|DROP] COLUMN combines a selection
of multiple columns into a single alter table.
Show collation in list of columns.

(order of columns isn't what is should be but that should maybe be fixed
by a generic column selection and ordering mechanism that knows what the
default sort should be)
2018-11-29 20:21:36 +01:00
eelke
73c4cf4790 Rework of catalog objects. Several of them are now inheriting from common
base classes that implement common functionality.
2018-11-25 19:45:06 +01:00
eelke
840af1e0a9 WIP: Added page showing list of functions.
Only list is shown, still working on details.
2018-11-25 09:06:01 +01:00
eelke
7db859737a Use catalog instead of catalogue consistently 2018-11-25 09:05:01 +01:00
eelke
52011a9842 Updating of detail tabs besides list of tables works correctly again.
Had stopped working because the catalog now behaves a little different,
returning nullptr instead of an invalid element.
2018-11-18 20:24:27 +01:00
eelke
fcb191f2cc Overview of triggers extended with function name and arguments.
Did a lot of refactoring on the catalog to keep things clean.
2018-11-18 19:30:45 +01:00
eelke
35813ae926 Added pg_proc table to the catalog. Contains the definition of functions.
Also improved the loading code for some catalog tables.
2018-11-17 19:38:07 +01:00
eelke
d8fc14c823 Added mapping of char to db oids. 2018-11-17 19:37:02 +01:00
eelke
3b8d0e40c4 Commented out code removed 2018-11-17 19:36:32 +01:00
eelke
e23164c98c Pgsql::Col has now stream operator overload for boost::container::small_vector 2018-11-17 19:36:12 +01:00
eelke
f2639b9ea5 Link with new builds of botan
We now have seperate debug and release builds.
2018-11-17 19:33:47 +01:00
eelke
f40b9e4c84 Fix: the stream operator for values to optionals crashed 2018-11-17 19:32:55 +01:00