David Steele
2074e6fbf9
Move log option update to after fork() in archive-push.
...
The log-level-console option should not be changed in the parent process. Even though it is harmless at the moment, that may not always be true.
Per review by Cynthia Shang.
2018-02-05 12:41:42 -05:00
David Steele
c3f47bf240
Move config parsing out of Perl tests.
...
cfgParseTest() is provided in the C library for parsing configs in unit tests.
2018-02-05 12:32:30 -05:00
David Steele
db21b7a360
Cleanup usage of internal options.
...
Apply internal to options that need to be read to determine locality but should not appear in the help.
2018-02-05 11:50:09 -05:00
David Steele
be90028100
Rename db-* options to pg-* and backup-* options to repo-* to improve consistency.
...
* repo-* options are now indexed although only one is allowed.
* List deprecated option names in documentation and command-line help.
2018-02-03 18:27:38 -05:00
David Steele
298b33988c
Fix non-compliant formatting for function declarations.
...
Per review by Cynthia Shang.
2018-01-31 18:22:25 -05:00
David Steele
b4d434b41c
Update stanza-create --force documentation to urge caution when using.
...
Suggested by Jason O'Donnell.
2018-01-31 17:34:27 -05:00
David Steele
a91a648019
Config parsing no longer implemented in Perl.
...
Options are passed to Perl as JSON from the C process.
2018-01-28 21:37:09 -05:00
David Steele
f0ef1dee05
Improve speed of C unit tests.
...
Preserve object files between tests and use a Makefile to avoid rebuilding object files.
2018-01-26 16:41:17 -05:00
David Steele
b58a45e067
Implement help command in C.
2018-01-23 13:34:24 -05:00
David Steele
3dd882a79e
Add internal flag to config definition.
2018-01-23 12:49:04 -05:00
David Steele
41bd5e8148
Improve KeyValue object.
...
Add kvGetList() to get a value as a list (of 1) even if it is a scalar.
2018-01-23 12:40:02 -05:00
David Steele
2afb73da1c
Improve String, StringList, and List objects.
...
* Add strCmp*() and strFirst*() to String.
* Add strLstSort() and strLstNewSplitSize() to StringList.
* Add strLstNewSplitZ() to StringList a update calls to strLstNewSplit() as needed.
* Add lstSort to List.
2018-01-23 12:17:30 -05:00
David Steele
2cc9b2287b
The archive-push command is now partially coded in C.
...
This allows the PostgreSQL archive_command to run significantly faster when processing status messages from the asynchronous archive process.
2018-01-17 15:52:00 -05:00
David Steele
7c73f4f6c9
Add command and exit modules.
2018-01-17 09:15:51 -05:00
David Steele
39cb971afb
Add log module.
2018-01-16 13:52:20 -05:00
David Steele
eb452c8add
Improvements to Storage object.
...
* storagePath() and storageList() commands
* Helper functions for local and spool storag
2018-01-16 13:38:37 -05:00
David Steele
8f81620b9f
Improve error module.
...
Add functions to convert error codes to C errors and handle system errors.
2018-01-16 13:29:27 -05:00
David Steele
bffc6c49b3
Add perl-bin option to specify the Perl binary location when /usr/bin/env perl won't work.
2018-01-16 13:23:08 -05:00
David Steele
d633417e5d
Add Wait object and time module.
2018-01-16 13:05:00 -05:00
David Steele
721d1127a0
Add RegExp object.
2018-01-16 12:57:23 -05:00
David Steele
05c731692b
Add varStrForce() to Variant object.
2018-01-16 12:54:06 -05:00
David Steele
83ddd75d82
Improvements to String object.
...
* Add strBeginsWith(), strEndsWith(), strEq(), and strBase().
* Enable compiler type checking for strNewFmt() and strCatFmt().
* Rename strNewSzN() to strNewN().
2018-01-16 12:47:08 -05:00
Cynthia Shang
0e9ba98a50
Add stanza-delete command to cleanup unused stanzas.
...
Contributed by Cynthia Shang.
2018-01-03 12:23:33 -05:00
David Steele
526acca5bd
Config parsing implemented in C.
2017-12-22 23:27:49 -05:00
David Steele
d8c575801d
Add Ini object.
2017-12-22 22:55:17 -05:00
David Steele
69488ca8ff
Add Storage object.
2017-12-22 22:36:01 -05:00
David Steele
b2a64b1f43
Add KeyValue object.
2017-12-22 22:05:37 -05:00
David Steele
2add6cef95
Add Variant and VariantList objects.
2017-12-22 21:50:27 -05:00
David Steele
c4b30af645
Add Buffer object.
2017-12-22 19:56:01 -05:00
David Steele
f89b027dec
Improve String and StringList modules.
2017-12-22 19:30:15 -05:00
David Steele
5667932063
Improve MemContext module.
...
Add temporary context blocks and refactor allocation arrays to include allocation size.
2017-12-22 18:54:39 -05:00
David Steele
5ea1263d8e
Run valgrind on all C unit tests.
...
Also refactor code to make valgrind happy.
2017-12-22 18:36:36 -05:00
David Steele
99a0721631
Allow any non-boolean, non-command-line option to be negated.
...
This allows specific options in pgbackrest.conf to be ignored (and set to default) which reduces the need to write new configuration files for specific needs.
Note that boolean, non-command-line options are already negatable.
2017-12-05 15:23:32 -05:00
David Steele
c5fc88d340
Fixed an issue that suppressed locality errors for backup and restore.
...
When a backup host is present, backups should only be allowed on the backup host and restores should only be allowed on the database host unless an alternate configuration is created that ignores the remote host.
Reported by Lardière Sébastien.
2017-12-05 14:59:09 -05:00
David Steele
8d4674031e
More config parsing in C in preparation for all config parsing in C.
2017-12-05 10:09:07 -05:00
David Steele
4f1725dc36
Replace cfgCommandTotal()/cfgOptionTotal() functions with constants.
...
The constants are applicable in more cases and allow the compiler to optimize certain loops more efficiently.
2017-12-05 09:45:51 -05:00
David Steele
915ae5662a
Implement version command in C.
2017-11-28 21:44:05 -05:00
David Steele
2ed426a70b
Remove deprecated archive-max-mb option.
2017-11-27 20:43:44 -05:00
David Steele
74d6398ad2
The pgbackrest executable is now a C binary instead of Perl.
...
This allows certain time-critical commands (like async archive-push) to run more quickly.
2017-11-26 18:43:51 -05:00
David Steele
4d8ad4ac18
Add List and StringList objects to simplify list handling.
2017-11-26 18:23:11 -05:00
David Steele
1b3e8e0a5b
Add String object to simplify string handling.
2017-11-26 17:49:10 -05:00
David Steele
c164fc5fb9
Add memGrowRaw() to memory context module.
2017-11-26 12:22:50 -05:00
David Steele
3b43047e0d
Disable -Wclobber compiler warning.
...
...because it is mostly useless but keep the rest of of -Wextra.
2017-11-19 16:44:33 -05:00
David Steele
dc1a5c18ac
Wrap try in a do...while loop to make sure that no random else is attached to the main if block.
2017-11-19 16:30:23 -05:00
David Steele
9395ad7043
Improve base64 implementation.
...
Different encoded strings could be generated based on compiler optimizations. Even though decoding was still successful the encoded strings did not match the standard.
2017-11-18 22:49:43 -05:00
David Steele
cf7da546a3
Simplify try..catch..finally names.
2017-11-13 21:22:13 -05:00
David Steele
bcdfc7d0b5
Enable additional warnings for C builds.
2017-11-06 22:55:34 -05:00
Cynthia Shang
b03c26968a
Repository encryption support.
...
Contributed by Cynthia Shang.
2017-11-06 12:51:12 -05:00
David Steele
8d6a08a32b
Library code for repository encryption support.
2017-11-03 13:57:58 -04:00
David Steele
ac542788da
Convert configuration definitions from auto-generated functions to auto-generated data structures.
2017-11-02 08:14:13 -04:00
David Steele
55f68ef013
Remove configurable option hints.
...
db-path was the only option with a hint so the feature seemed wasteful. All missing stanza options now output the same hint without needing configuration.
2017-10-30 10:58:04 -04:00
David Steele
1ef27ec8c2
Add list type for options.
...
The hash type was being used for lists with an additional flag (`value-hash`) to indicate that it was not really a hash.
2017-10-30 10:50:35 -04:00
David Steele
f4524aeaa9
Add base64 encode/decode.
2017-10-18 11:14:26 -04:00
David Steele
583a76f605
Add C memory contexts.
2017-10-16 11:25:49 -04:00
David Steele
9d78948a14
Improvements to page checksum module and tests:
...
* Page checksum module uses new C error handler.
* Convert page checksum tests into C unit tests.
2017-10-16 11:03:06 -04:00
David Steele
f1e739b4aa
Add C error handler.
...
Basic try ... catch ... finally pattern to simplify error handling in C.
2017-10-16 10:09:56 -04:00
David Steele
8efcc38304
Improvements in C codebase:
...
* Update C naming conventions.
* Use int datatype wherever possible.
* Better separation of C source from Perl interface.
2017-09-30 10:44:03 -04:00
David Steele
fcb7c6fd1d
PostgreSQL 10 support.
2017-09-01 12:29:34 -04:00
Cynthia Shang
36e576b483
Up to seven standbys can be configured for backup from standby.`
...
Contributed by Cynthia Shang.
2017-08-31 19:15:44 -04:00
David Steele
1e0ed07455
Configuration rules are now pulled from the C library when present.
2017-08-25 16:47:47 -04:00