execsql2 1.130.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- execsql/__init__.py +3 -0
- execsql/__main__.py +5 -0
- execsql/execsql.py +16627 -0
- execsql2-1.130.1.data/data/execsql2_extras/READ_ME.rst +129 -0
- execsql2-1.130.1.data/data/execsql2_extras/config_settings.sqlite +0 -0
- execsql2-1.130.1.data/data/execsql2_extras/example_config_prompt.sql +159 -0
- execsql2-1.130.1.data/data/execsql2_extras/execsql.conf +289 -0
- execsql2-1.130.1.data/data/execsql2_extras/make_config_db.sql +250 -0
- execsql2-1.130.1.data/data/execsql2_extras/md_compare.sql +630 -0
- execsql2-1.130.1.data/data/execsql2_extras/md_glossary.sql +327 -0
- execsql2-1.130.1.data/data/execsql2_extras/md_upsert.sql +2981 -0
- execsql2-1.130.1.data/data/execsql2_extras/pg_compare.sql +629 -0
- execsql2-1.130.1.data/data/execsql2_extras/pg_glossary.sql +291 -0
- execsql2-1.130.1.data/data/execsql2_extras/pg_upsert.sql +2792 -0
- execsql2-1.130.1.data/data/execsql2_extras/script_template.sql +300 -0
- execsql2-1.130.1.data/data/execsql2_extras/ss_compare.sql +639 -0
- execsql2-1.130.1.data/data/execsql2_extras/ss_glossary.sql +405 -0
- execsql2-1.130.1.data/data/execsql2_extras/ss_upsert.sql +2917 -0
- execsql2-1.130.1.dist-info/METADATA +418 -0
- execsql2-1.130.1.dist-info/RECORD +24 -0
- execsql2-1.130.1.dist-info/WHEEL +4 -0
- execsql2-1.130.1.dist-info/entry_points.txt +2 -0
- execsql2-1.130.1.dist-info/licenses/LICENSE.txt +12 -0
- execsql2-1.130.1.dist-info/licenses/NOTICE +10 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
Templates for execsql.py
|
|
2
|
+
===================================================
|
|
3
|
+
|
|
4
|
+
Several types of templates are provided that may be useful in conjunction with execsql.py. These are:
|
|
5
|
+
|
|
6
|
+
*execsql.conf*
|
|
7
|
+
An annotated version of the configuration file that includes all configuration settings
|
|
8
|
+
and notes on their usage.
|
|
9
|
+
|
|
10
|
+
*script_template.sql*
|
|
11
|
+
A framework for SQL scripts that make use of several execsql features. It includes sections
|
|
12
|
+
for custom configuration settings, custom logfile creation, and reporting of unexpected
|
|
13
|
+
script exits (through user cancellation or errors).
|
|
14
|
+
|
|
15
|
+
*config_settings.sqlite* and *example_config_prompt.sql*
|
|
16
|
+
A SQLite database containing specifications for all settings configurable with the CONFIG
|
|
17
|
+
metacommand, in the form used by the PROMPT ENTRY_FORM metacommand, and a SQL script
|
|
18
|
+
illustrating how this database can be used to prompt the user for some or all of the
|
|
19
|
+
configuration settings. *execsql* version 1.63.0 or later is needed to use this script.
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
Functional Scripts for execsql.py
|
|
23
|
+
=================================================
|
|
24
|
+
|
|
25
|
+
These script files provide useful functionality that should be accessed by including these
|
|
26
|
+
scripts in other SQL scripts and then calling the sub-scripts that they contain.
|
|
27
|
+
|
|
28
|
+
Upsert Scripts
|
|
29
|
+
------------------------------------------------
|
|
30
|
+
|
|
31
|
+
These scripts perform automated upsert operations on any tables of
|
|
32
|
+
any database in a DBMS that supports the standard
|
|
33
|
+
*information_schema* views. Currently that includes:
|
|
34
|
+
|
|
35
|
+
* PostgreSQL: pg_upsert.sql;
|
|
36
|
+
|
|
37
|
+
* MySQL/MariaDB: md_upsert.sql; and
|
|
38
|
+
|
|
39
|
+
* SQL Server: ss_upsert.sql.
|
|
40
|
+
|
|
41
|
+
These scripts perform the upsert operation by using standard SQL
|
|
42
|
+
UPDATE and INSERT statements rather than DBMS-specific implementations
|
|
43
|
+
of the SQL MERGE statement.
|
|
44
|
+
|
|
45
|
+
Features of these upsert scripts include:
|
|
46
|
+
|
|
47
|
+
* They can be applied to any table in any database without modification.
|
|
48
|
+
|
|
49
|
+
* They can be applied to multiple tables simultaneously, and will
|
|
50
|
+
perform the upsert operations in top-down order to maintain
|
|
51
|
+
referential integrity among tables.
|
|
52
|
+
|
|
53
|
+
* Prior to performing the upsert operation, they check for null
|
|
54
|
+
values in the columns of each staging table that must be non-null in the
|
|
55
|
+
corresponding base table.
|
|
56
|
+
|
|
57
|
+
* Prior to performing the upsert operation, they check for duplicate
|
|
58
|
+
primary key values in the staging tables.
|
|
59
|
+
|
|
60
|
+
* Prior to performing the upsert operation, they check foreign keys
|
|
61
|
+
against both base tables and any other appropriate staging tables.
|
|
62
|
+
|
|
63
|
+
* They will not attempt to perform the upsert operation on any
|
|
64
|
+
table if there are any violations of the non-null
|
|
65
|
+
checks, primary key checks, or foreign key checks.
|
|
66
|
+
|
|
67
|
+
* They produce a table that either a) summarizes the number of
|
|
68
|
+
rows that violated each type of non-null and foreign-key check,
|
|
69
|
+
or b) summarizes the number of rows updated and the number of
|
|
70
|
+
rows inserted for each table.
|
|
71
|
+
|
|
72
|
+
* Optionally, they will display all the changes to be made in a
|
|
73
|
+
GUI interface, prompting the user to approve each update and
|
|
74
|
+
insert operation.
|
|
75
|
+
|
|
76
|
+
* Optionally, they will record all operations carried out in a
|
|
77
|
+
custom log file; this log may include the SQL statements executed
|
|
78
|
+
and the data values that were added or changed.
|
|
79
|
+
|
|
80
|
+
* If an execsql console is active, they will use the console's
|
|
81
|
+
status bar and progress bar to indicate the activity underway.
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
Complete documentation is available at
|
|
85
|
+
`Read The Docs (execsql-upsert) <https://execsql-upsert.readthedocs.io/en/latest/>`_.
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
Table Comparison Scripts
|
|
89
|
+
----------------------------------------------------------
|
|
90
|
+
|
|
91
|
+
These scripts generate SQL that can be used to identify differences
|
|
92
|
+
in the content of two tables with equivalent structure. These are
|
|
93
|
+
specifically intended to be base and staging tables. Running the
|
|
94
|
+
SQL provided by these scripts will provide different summaries of
|
|
95
|
+
the types of changes that would be made to the base tables by
|
|
96
|
+
upserting the staging tables.
|
|
97
|
+
|
|
98
|
+
These scripts work with
|
|
99
|
+
any tables of any database in a DBMS that supports the standard
|
|
100
|
+
*information_schema* views. Currently that includes:
|
|
101
|
+
|
|
102
|
+
* PostgreSQL: pg_compare.sql;
|
|
103
|
+
|
|
104
|
+
* MySQL/MariaDB: md_compare.sql; and
|
|
105
|
+
|
|
106
|
+
* SQL Server: ss_compare.sql.
|
|
107
|
+
|
|
108
|
+
Complete documentation is available at
|
|
109
|
+
`Read The Docs (execsql-compare) <https://execsql-compare.readthedocs.io/en/latest/>`_.
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
Glossary Creation Scripts
|
|
113
|
+
------------------------------------------------------------
|
|
114
|
+
|
|
115
|
+
These scripts create a glossary of column names or other terms
|
|
116
|
+
that can be exported to accompany a data summary. These scripts work with
|
|
117
|
+
any tables of any database in a DBMS that supports the standard
|
|
118
|
+
*information_schema* views. Currently that includes:
|
|
119
|
+
|
|
120
|
+
* PostgreSQL: pg_glossary.sql;
|
|
121
|
+
|
|
122
|
+
* MySQL/MariaDB: md_glossary.sql; and
|
|
123
|
+
|
|
124
|
+
* SQL Server: ss_glossary.sql.
|
|
125
|
+
|
|
126
|
+
Complete documentation is available at
|
|
127
|
+
`Read The Docs (execsql-glossary) <https://execsql-compare.readthedocs.io/en/latest/>`_.
|
|
128
|
+
|
|
129
|
+
|
|
Binary file
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
-- example_config_prompt.sql
|
|
2
|
+
--
|
|
3
|
+
-- PURPOSE
|
|
4
|
+
-- Illustrate the use of the 'config_settings.sqlite' database
|
|
5
|
+
-- to prompt for configuration settings.
|
|
6
|
+
--
|
|
7
|
+
-- NOTES
|
|
8
|
+
-- 1. The initial connection is assumed to have been made to some
|
|
9
|
+
-- database other than the configuration database.
|
|
10
|
+
-- 2. The 'prompt_config' script defined in this file will connect
|
|
11
|
+
-- to the configuration database using the alias "config_db"
|
|
12
|
+
-- if that alias exists, or it will connect to the (SQLite)
|
|
13
|
+
-- configuration database if the "config_db" substitution
|
|
14
|
+
-- variable contains a valid path and name to the configuration
|
|
15
|
+
-- database.
|
|
16
|
+
-- 3. This requires excecsql.py version 1.63.0 or greater.
|
|
17
|
+
-- 4. To replicate this example (or something like it) in production code:
|
|
18
|
+
-- a. Include the "prompt_config" script (defined below) in
|
|
19
|
+
-- your own script.
|
|
20
|
+
-- b. Either define the "sub_config" variable so that it contains
|
|
21
|
+
-- the path and filename of the configuration database,
|
|
22
|
+
-- or use the CONNECT metacommand to connect to that database
|
|
23
|
+
-- yourself with an alias of "config_db".
|
|
24
|
+
-- c. Possibly change the 'usage' argument for the 'prompt_config"
|
|
25
|
+
-- script to be "Import", "Export", or "AllButDAO" instead of "All."
|
|
26
|
+
--
|
|
27
|
+
-- AUTHOR
|
|
28
|
+
-- Dreas Nielsen (RDN)
|
|
29
|
+
--
|
|
30
|
+
-- HISTORY
|
|
31
|
+
-- Date Remarks
|
|
32
|
+
-- ---------- -----------------------------------------------------
|
|
33
|
+
-- 2020-02-15 Created. RDN.
|
|
34
|
+
-- 2020-02-16 Modified documentation. RDN.
|
|
35
|
+
-- 2020-02-16 Corrected assignments. RDN.
|
|
36
|
+
-- 2020-02-22 Added SCAN_LINES and GUI_LEVEL. RDN.
|
|
37
|
+
-- 2020-03-22 Added HDF5_TEXT_LEN and LOG_DATAVARS. RDN.
|
|
38
|
+
-- 2020-03-30 Added EXPORT_ROW_BUFFER. RDN.
|
|
39
|
+
-- 2020-07-30 Added DEDUP_COLUMN_HEADERS. RDN.
|
|
40
|
+
-- 2020-11-08 Added ONLY_STRINGS. RDN.
|
|
41
|
+
-- 2020-11-14 Added CONSOLE HEIGHT and CONSOLE WIDTH. These are
|
|
42
|
+
-- not subcommands of the CONFIG metacommand, but they
|
|
43
|
+
-- now affect future consoles, and so function similarly. RDN.
|
|
44
|
+
-- 2021-02-15 Added CREATE_COL_HEADERS and ZIP_BUFFER_MB. RDN.
|
|
45
|
+
-- 2021-09-19 Added TRIM_STRINGS and REPLACE_NEWLINES. RDN.
|
|
46
|
+
-- 2023-08-25 Changed names of a couple of sub vars. Added
|
|
47
|
+
-- DELETE_EMPTY_COLUMNS, FOLD_COLUMN_HEADERS, TRIM_COLUMN_HEADERS,
|
|
48
|
+
-- WRITE_PREFIX, and WRITE_SUFFIX. RDN.
|
|
49
|
+
-- ==================================================================
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
-- ##################################################################
|
|
53
|
+
-- Configuration
|
|
54
|
+
-- ==================================================================
|
|
55
|
+
|
|
56
|
+
-- Path and name of the configuration settings database.
|
|
57
|
+
-- !x! sub config_db ./config_settings.sqlite
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
-- ##################################################################
|
|
61
|
+
-- Usage illustration
|
|
62
|
+
-- ==================================================================
|
|
63
|
+
-- This makes use of the 'prompt_config' script, defined below.
|
|
64
|
+
|
|
65
|
+
-- Prompt the user
|
|
66
|
+
-- !x! execute script prompt_config with arguments (usage=All)
|
|
67
|
+
-- Display all configuration settings (including settings not set interactively).
|
|
68
|
+
-- !x! debug write config
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
-- ##################################################################
|
|
75
|
+
-- Scripts
|
|
76
|
+
-- ==================================================================
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
-- -----------------------------------------------------------------
|
|
80
|
+
-- prompt_config
|
|
81
|
+
--
|
|
82
|
+
-- Creates and displays prompts for configuration settings,
|
|
83
|
+
-- modifying the global settings per the user's input.
|
|
84
|
+
--
|
|
85
|
+
-- Argument
|
|
86
|
+
-- usage : Values of the 'usage' column in the 'configusage'
|
|
87
|
+
-- table of the configuration settings database.
|
|
88
|
+
-- This should be 'All', 'AllButDAO', 'Import', or 'Export'.
|
|
89
|
+
-- Other values may be used if they have been added
|
|
90
|
+
-- to the 'configusage' table
|
|
91
|
+
--
|
|
92
|
+
-- Effects
|
|
93
|
+
-- 1. Modifies global settings.
|
|
94
|
+
-- 2. Creates a temporary table with a UUID as a name in the configuration database.
|
|
95
|
+
--
|
|
96
|
+
-- Requirements
|
|
97
|
+
-- Either:
|
|
98
|
+
-- * An existing connection to the configuration database
|
|
99
|
+
-- with an alias of "config_db"; or
|
|
100
|
+
-- * A substitution variable named "config_db" that defines
|
|
101
|
+
-- the path and filename to the (SQLite) configuration
|
|
102
|
+
-- database.
|
|
103
|
+
-- -----------------------------------------------------------------
|
|
104
|
+
|
|
105
|
+
-- !x! begin script prompt_config with parameters (usage)
|
|
106
|
+
-- !x! sub entry_db !!$current_alias!!
|
|
107
|
+
-- !x! if(alias_defined(config_db))
|
|
108
|
+
-- !x! use config_db
|
|
109
|
+
-- !x! else
|
|
110
|
+
-- !x! if(sub_defined(config_db))
|
|
111
|
+
-- !x! connect to sqlite(file=!!config_db!!) as config_db
|
|
112
|
+
-- !x! use config_db
|
|
113
|
+
-- !x! else
|
|
114
|
+
-- !x! halt message "The configuration settings database is not open and its name is not specified."
|
|
115
|
+
-- !x! endif
|
|
116
|
+
-- !x! endif
|
|
117
|
+
-- The following SQL syntax is for SQLite. A UUID is used for the table name
|
|
118
|
+
-- for portability to a multi-user DBMS.
|
|
119
|
+
-- !x! sub ~spectbl !!$uuid!!
|
|
120
|
+
create temporary table "!!~spectbl!!" as
|
|
121
|
+
select cs.*
|
|
122
|
+
from configspecs cs inner join configusage cu
|
|
123
|
+
on cu.sub_var = cs.sub_var
|
|
124
|
+
where
|
|
125
|
+
usage = '!!#usage!!';
|
|
126
|
+
-- !x! prompt entry_form !!~spectbl!! message "You may change any of the configuration settings below."
|
|
127
|
+
-- !x! if(sub_defined(~boolean_int)) {config boolean_int !!~boolean_int!!}
|
|
128
|
+
-- !x! if(sub_defined(~boolean_words)) {config boolean_words !!~boolean_words!!}
|
|
129
|
+
-- !x! if(sub_defined(~clean_column_headers)) {config clean_column_headers !!~clean_column_headers!!}
|
|
130
|
+
-- !x! if(sub_defined(~create_column_headers)) {config create_column_headers !!~create_column_headers!!}
|
|
131
|
+
-- !x! if(sub_defined(~dedup_col_hdrs)) {config dedup_column_headers !!~dedup_col_hdrs!!}
|
|
132
|
+
-- !x! if(sub_defined(~delete_empty_columns)) {config delete_empty_columns !!~delete_empty_columns!!}
|
|
133
|
+
-- !x! if(sub_defined(~empty_strings)) {config empty_strings !!~empty_strings!!}
|
|
134
|
+
-- !x! if(sub_defined(~fold_col_hdrs)) {config fold_column_headers !!~fold_col_hdrs!!}
|
|
135
|
+
-- !x! if(sub_defined(~trim_col_hdrs)) {config trim_column_headers !!~trim_col_hdrs!!}
|
|
136
|
+
-- !x! if(sub_defined(~only_strings)) {config only_strings !!~only_strings!!}
|
|
137
|
+
-- !x! if(sub_defined(~empty_rows)) {config empty_rows !!~empty_rows!!}
|
|
138
|
+
-- !x! if(sub_defined(~trim_strings)) {config trim_strings !!~trim_strings!!}
|
|
139
|
+
-- !x! if(sub_defined(~replace_newlines)) {config replace_newlines !!~replace_newlines!!}
|
|
140
|
+
-- !x! if(sub_defined(~scan_lines)) {config scan_lines !!~scan_lines!!}
|
|
141
|
+
-- !x! if(sub_defined(~import_common)) {config import_common_columns_only !!~import_common!!}
|
|
142
|
+
-- !x! if(sub_defined(~console_height)) {console height !!~console_height!!}
|
|
143
|
+
-- !x! if(sub_defined(~console_width)) {console width !!~console_width!!}
|
|
144
|
+
-- !x! if(sub_defined(~console_wait_done)) {config console wait_when_done !!~console_wait_done!!}
|
|
145
|
+
-- !x! if(sub_defined(~console_wait_err)) {config console wait_when_error !!~console_wait_err!!}
|
|
146
|
+
-- !x! if(sub_defined(~log_write)) {config log_write_messages !!~log_write!!}
|
|
147
|
+
-- !x! if(sub_defined(~quote_all)) {config quote_all_text !!~quote_all!!}
|
|
148
|
+
-- !x! if(sub_defined(~export_row_buffer)) {config export_row_buffer !!~export_row_buffer!!}
|
|
149
|
+
-- !x! if(sub_defined(~hdf5_len)) {config hdf5_text_len !!~hdf5_len!!}
|
|
150
|
+
-- !x! if(sub_defined(~gui_level)) {config gui_level !!~gui_level!!}
|
|
151
|
+
-- !x! if(sub_defined(~write_prefix)) {config write_prefix !!~write_prefix!!}
|
|
152
|
+
-- !x! if(sub_defined(~write_suffix)) {config write_suffix !!~write_suffix!!}
|
|
153
|
+
-- !x! if(sub_defined(~write_warnings)) {config write_warnings !!~write_warnings!!}
|
|
154
|
+
-- !x! if(sub_defined(~log_datavars)) {config log_datavars !!~log_datavars!!}
|
|
155
|
+
-- !x! if(sub_defined(~dao_flush)) {config dao_flush_delay_secs !!~dao_flush!!}
|
|
156
|
+
-- !x! if(sub_defined(~zip_buffer_mb)) {config zip_buffer_mb !!~zip_buffer_mb!!}
|
|
157
|
+
-- !x! use !!entry_db!!
|
|
158
|
+
-- !x! end script prompt_config
|
|
159
|
+
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
# execsql.conf
|
|
2
|
+
#
|
|
3
|
+
# PURPOSE
|
|
4
|
+
# Configuration file for execsql.py
|
|
5
|
+
# See http://execsql.osdn.io/configuration.html
|
|
6
|
+
#
|
|
7
|
+
# AUTHORS
|
|
8
|
+
#
|
|
9
|
+
#
|
|
10
|
+
# HISTORY
|
|
11
|
+
# Date Revisions
|
|
12
|
+
# ----------- ----------------------------------------------------
|
|
13
|
+
#
|
|
14
|
+
#===================================================================
|
|
15
|
+
|
|
16
|
+
[connect]
|
|
17
|
+
# Connection information for the initial database connection.
|
|
18
|
+
|
|
19
|
+
# Database type. p: Postgres, l: SQLite, m: MySQL/MariaDB, f: Firebird, s: SQL Server,
|
|
20
|
+
# a: Access, o: Oracle, d: DSN
|
|
21
|
+
#db_type=
|
|
22
|
+
|
|
23
|
+
# Server name for client-server databases.
|
|
24
|
+
#server=
|
|
25
|
+
|
|
26
|
+
# Database name for client-server databases.
|
|
27
|
+
#db=
|
|
28
|
+
|
|
29
|
+
# Database name for file-based databases.
|
|
30
|
+
#db_file=
|
|
31
|
+
|
|
32
|
+
# Port number for server-based databases. Only needed if not the default.
|
|
33
|
+
#port=
|
|
34
|
+
|
|
35
|
+
# User name for client-server databases.
|
|
36
|
+
#username=
|
|
37
|
+
|
|
38
|
+
# User name for password-protected MS-Access databases if not "Admin".
|
|
39
|
+
#access_username=
|
|
40
|
+
|
|
41
|
+
# Whether or not a password is necessary, and a prompt should be issued.
|
|
42
|
+
# Values: Yes or No. Default: No.
|
|
43
|
+
#password_prompt=No
|
|
44
|
+
|
|
45
|
+
# Whether a new PostgreSQL or SQLite database should be created.
|
|
46
|
+
# Values: Yes or No. Default: Yes
|
|
47
|
+
#new_db=Yes
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
[encoding]
|
|
51
|
+
# Character encoding for text input and output.
|
|
52
|
+
|
|
53
|
+
#database=
|
|
54
|
+
#script=
|
|
55
|
+
#import=
|
|
56
|
+
#output=
|
|
57
|
+
|
|
58
|
+
# How to handle incompatible encodings. Values: ignore, replace, xmlcharrefreplace, or backslashreplace.
|
|
59
|
+
#error_response=
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
[input]
|
|
63
|
+
# Settings to control the handling of different conditions or data representations in input data.
|
|
64
|
+
|
|
65
|
+
# Whether or not to convert numeric values to double precision when using MS-Access.
|
|
66
|
+
# Values: Yes or No. Default: No.
|
|
67
|
+
#access_use_numeric=No
|
|
68
|
+
|
|
69
|
+
# Whether or not to treat integer values of 0 and 1 as Booleans.
|
|
70
|
+
# Values: Yes or No. Default: Yes.
|
|
71
|
+
#boolean_int=Yes
|
|
72
|
+
|
|
73
|
+
# Whether or not to recognize only full words as Boolean, not "Y", "N", "T", and "F".
|
|
74
|
+
# Values: Yes or No. Default: No.
|
|
75
|
+
#boolean_words=No
|
|
76
|
+
|
|
77
|
+
# Whether or not to replace non-alphanumeric characters in column names of imported data with an underscore.
|
|
78
|
+
# Values: Yes or No. Default: No.
|
|
79
|
+
#clean_column_headers=No
|
|
80
|
+
|
|
81
|
+
# Whether or not to create column headers when they are missing from an input file.
|
|
82
|
+
# Created column headers will take the form "Col" followed by the column number.
|
|
83
|
+
# Values: Yes or No. Default: No.
|
|
84
|
+
#create_column_headers=No
|
|
85
|
+
|
|
86
|
+
# Whether or not to modify duplicated column names of imported data by appending an underscore and
|
|
87
|
+
# the column number to make column names unique.
|
|
88
|
+
# Values: Yes or No. Default: No.
|
|
89
|
+
#dedup_column_headers=No
|
|
90
|
+
|
|
91
|
+
# Whether or not to completely delete columns if the headers are missing from an input file.
|
|
92
|
+
# Values: Yes or No. Default: No.
|
|
93
|
+
#delete_empy_columns=No
|
|
94
|
+
|
|
95
|
+
# Wehther or not to import completely empty rows.
|
|
96
|
+
# Values: Yes or No. Default: Yes.
|
|
97
|
+
#empty_rows=Yes
|
|
98
|
+
|
|
99
|
+
# Whether empty strings in input data are preserved or replaced by NULL.
|
|
100
|
+
# Values: Yes or No. Default: Yes.
|
|
101
|
+
#empty_strings=Yes
|
|
102
|
+
|
|
103
|
+
# Whether or not to fold column headers to lowercase or uppercase, or leave them unchanged during IMPORT.
|
|
104
|
+
# Values: No, Lower, or Upper. Default: No.
|
|
105
|
+
#fold_column_headers=No
|
|
106
|
+
|
|
107
|
+
# The size of the import buffer, in kb, to be used by the fast file reading feature of Postgres.
|
|
108
|
+
#import_buffer=
|
|
109
|
+
|
|
110
|
+
# Whether to ignore extra column in an imported CSV file that are not in the target table.
|
|
111
|
+
# Values: Yes or No. Default: No.
|
|
112
|
+
#import_only_common_columns=No
|
|
113
|
+
|
|
114
|
+
# The number of rows to buffer from a data source when importing data and when a DBMS-specific
|
|
115
|
+
# fast file reading method can't be used.
|
|
116
|
+
# Value: A positive non-zero integer. Default: 1000
|
|
117
|
+
#import_row_buffer=1000
|
|
118
|
+
|
|
119
|
+
# The maximum value that will be assigned an integer data type when creating new tables.
|
|
120
|
+
#max_int=2147483647
|
|
121
|
+
|
|
122
|
+
# Whether or not the IMPORT metacommand will treat all columns as text, rather than trying
|
|
123
|
+
# to evaluate the data type for each column.
|
|
124
|
+
# Values: Yes or No. Default: No.
|
|
125
|
+
#only_strings=No
|
|
126
|
+
|
|
127
|
+
# Whether newlines embedded in imported text should be replaced with a single space.
|
|
128
|
+
# Value: Yes or No. Default: No.
|
|
129
|
+
#replace_newlines=No
|
|
130
|
+
|
|
131
|
+
# The number of lines in an input data file to scan to identify delimiters and quote characters.
|
|
132
|
+
# Value: a positive non-zero integer. Default: 1000
|
|
133
|
+
#scan_lines=1000
|
|
134
|
+
|
|
135
|
+
# Whether leading and/or trailing spaces and underscores should be removed from column headers.
|
|
136
|
+
# Value: None, Both, Left, or Right. Default: None
|
|
137
|
+
#trim_column_headers=None
|
|
138
|
+
|
|
139
|
+
# Whether leading and trailing whitespace on imported text should be removed.
|
|
140
|
+
# Value: Yes or No. Default: No.
|
|
141
|
+
#trim_strings=No
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
[output]
|
|
145
|
+
# Settings to control the output of messages and data.
|
|
146
|
+
|
|
147
|
+
# Whether all output of the WRITE metacommands should also be sent to execsql's log file.
|
|
148
|
+
# Values: Yes or No. Default: No.
|
|
149
|
+
#log_write_messages=No
|
|
150
|
+
|
|
151
|
+
# Whether to create any non-existent directories referenced in WRITE or EXPORT metacommands.
|
|
152
|
+
# Values: Yes or No. Default: No.
|
|
153
|
+
#make_export_dirs=No
|
|
154
|
+
|
|
155
|
+
# Whether to quote all text values written to a delimited text file by the EXPORT metacommand.
|
|
156
|
+
# Values: Yes or No. Default: No.
|
|
157
|
+
#quote_all_text=No
|
|
158
|
+
|
|
159
|
+
# The number of rows to buffer from the database when exporting data. Larger values produce
|
|
160
|
+
# faster exports, up to a point, but require more memory.
|
|
161
|
+
# Value: A positive non-zero integer. Default: 1000
|
|
162
|
+
#export_row_buffer=1000
|
|
163
|
+
|
|
164
|
+
# The length to be assigned to 'text' data types when exporting to the HDF5 format.
|
|
165
|
+
# Value: a positive non-zero integer. Default: 1000
|
|
166
|
+
# hdf5_text_len=1000
|
|
167
|
+
|
|
168
|
+
# The URI of a CSS file to be used when exporting to HTML.
|
|
169
|
+
#css_file=
|
|
170
|
+
|
|
171
|
+
# CSS style commands to be embedded in HTML export.
|
|
172
|
+
#css_style=
|
|
173
|
+
|
|
174
|
+
# The duration, in seconds, for execsql to continue to try opening a file that is to be
|
|
175
|
+
# written to with the WRITE metacommand, if there is an access conflict.
|
|
176
|
+
# Value: A positive non-zero number. Default: 600.
|
|
177
|
+
#outfile_open_timeout=600
|
|
178
|
+
|
|
179
|
+
# The name of the template processor to be used when exporting data using a template.
|
|
180
|
+
# Values: jinja or airspeed.
|
|
181
|
+
#template_processor=
|
|
182
|
+
|
|
183
|
+
# The size of the internal buffer used when the EXPORT metacommand exports data to
|
|
184
|
+
# a zipfile, in Mb.
|
|
185
|
+
# Value: any positive non-zero integer that is at least as large as the longest
|
|
186
|
+
# data row to be exported. Default: 10.
|
|
187
|
+
#zip_buffer_mb=10
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
[interface]
|
|
191
|
+
# Settings to control appearance or operation of GUI dialogs.
|
|
192
|
+
|
|
193
|
+
# The approximate height, in lines, of a console window created with the CONSOLE ON metacommand.
|
|
194
|
+
# Value: A positive non-zero integer greater than 3. Default: 25
|
|
195
|
+
#console_height=25
|
|
196
|
+
|
|
197
|
+
# Whether a console window that has been opened should remain open at the end of the script.
|
|
198
|
+
# Value: Yes or No. Default: No.
|
|
199
|
+
#console_wait_when_done=No
|
|
200
|
+
|
|
201
|
+
# Whether a console window that has been opened should remain open when an error occurs.
|
|
202
|
+
# Value: Yes or No. Default: No.
|
|
203
|
+
#console_wait_when_error_halt=No
|
|
204
|
+
|
|
205
|
+
# The approximate width, in characters, of a console window created with the CONSOLE ON metacommand.
|
|
206
|
+
# Value: A positive non-zero integer. Default: 100
|
|
207
|
+
#console_width=100
|
|
208
|
+
|
|
209
|
+
# Whether to write warning messages to the console as well as to the log file.
|
|
210
|
+
# Value: Yes or No. Default: No.
|
|
211
|
+
#write_warnings=No
|
|
212
|
+
|
|
213
|
+
# Text that will be prefixed to any output from the WRITE metacommand, with a space separator.
|
|
214
|
+
#write_prefix=
|
|
215
|
+
|
|
216
|
+
# Text that will be appended to any output from the WRITE metacommand, with a space separator.
|
|
217
|
+
#write_suffix=
|
|
218
|
+
|
|
219
|
+
# Usage of GUI dialogs. Values: 0 - none, 1 - passwords and pause metacommands, 2 - also for the halt
|
|
220
|
+
# metacommand, 3 - open a console window immediately. Default: 0.
|
|
221
|
+
#gui_level=0
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
[email]
|
|
225
|
+
# Settings that provide additional information that is required by the EMAIL metacommand.
|
|
226
|
+
|
|
227
|
+
# SMTP host identification
|
|
228
|
+
#host=
|
|
229
|
+
#port=
|
|
230
|
+
#username=
|
|
231
|
+
#password=
|
|
232
|
+
#use_ssl=
|
|
233
|
+
#use_tls=
|
|
234
|
+
|
|
235
|
+
# Email may be sent as plain text or as HTML.
|
|
236
|
+
# Values: plain or html. Default: plain.
|
|
237
|
+
#email_format=plain
|
|
238
|
+
|
|
239
|
+
# HTML email may have a set of custom CSS styles applied.
|
|
240
|
+
#message_css=
|
|
241
|
+
|
|
242
|
+
# Instead of using a plaintext password in a configuration file, an obfuscated version
|
|
243
|
+
# ('encrypted' but not cryptographically-secure) can be used instead. This encrypted
|
|
244
|
+
# version must have been generated by execsql.
|
|
245
|
+
#enc_password=
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
[config]
|
|
249
|
+
# The path or filename of an additional non-standard configuration file to be read.
|
|
250
|
+
#config_file=
|
|
251
|
+
|
|
252
|
+
# The number of seconds between using DAO to create a query in MS-Access and using ODBC
|
|
253
|
+
# to access data. This must be greater than or equal to 5.0.
|
|
254
|
+
#dao_flush_delay_secs=5
|
|
255
|
+
|
|
256
|
+
# The full name or path to an additional configuration file to be read if execsql.py
|
|
257
|
+
# is running on Linux.
|
|
258
|
+
#linux_config_file=
|
|
259
|
+
|
|
260
|
+
# Whether or not to log all data variable assignments to the execsql.log file.
|
|
261
|
+
# Values: Yes or No. Default: Yes.
|
|
262
|
+
#log_datavars=Yes
|
|
263
|
+
|
|
264
|
+
# The full name or path to an additional configuration file to be read if execsql.py
|
|
265
|
+
# is running on Windows.
|
|
266
|
+
#win_config_file=
|
|
267
|
+
|
|
268
|
+
# Whether to place the execsql.log logfile in the user's home directory instead of the
|
|
269
|
+
# script directory. Values: Yes or No. Default: No.
|
|
270
|
+
#user_logfile=Yes
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
[variables]
|
|
274
|
+
# Substitution variables that will be defined when the script starts up. There are
|
|
275
|
+
# no pre-defined setting names (variable) for this section.
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
[include_required]
|
|
279
|
+
# Additional script files that will be read before the main script starts. There are no
|
|
280
|
+
# pre-defined settings for this section. Keys are integers defining the order in which
|
|
281
|
+
# scripts are read; values are the names of the scripts (including paths).
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
[include_optional]
|
|
285
|
+
# Additional script files that may be read before the main script starts. There are no
|
|
286
|
+
# pre-defined settings for this section. Keys are integers defining the order in which
|
|
287
|
+
# scripts are read; values are the names of the scripts (including paths).
|
|
288
|
+
|
|
289
|
+
|