From e930b20f7c142fc8c87bec8678129134e47645e6 Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Mon, 8 Oct 2018 17:43:44 +1100 Subject: [PATCH 001/127] Update version number to 3.10.100, which we're using for 3.11.0-alpha1 --- .github/ISSUE_TEMPLATE.md | 3 +- .github/ISSUE_TEMPLATE/Bug_report.md | 95 +++++++++++------------ .github/ISSUE_TEMPLATE/Feature_request.md | 46 +++++------ CMakeLists.txt | 2 +- src/app.plist | 6 +- src/version.h | 2 +- 6 files changed, 76 insertions(+), 78 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index bf7c1413a..1f6e024b1 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -31,9 +31,8 @@ below with an "x", then click the "Submit new issue" button at the bottom #### I'm using DB4S version: +- [ ] 3.11.0-alpha* - [ ] 3.10.1 -- [ ] 3.10.0 -- [ ] 3.9.1 - [ ] Other: ___ #### I have also: diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md index 372c33e1c..847a92b2f 100644 --- a/.github/ISSUE_TEMPLATE/Bug_report.md +++ b/.github/ISSUE_TEMPLATE/Bug_report.md @@ -1,48 +1,47 @@ ---- -name: Bug Report -about: Create a report to help us improve - ---- - - - -Details for the issue --------------------- - -#### What did you do? - - -#### What did you expect to see? - - -#### What did you see instead? - - -Useful extra information -------------------------- - -The info below often helps, please fill it out if you're able to. :) - -#### What operating system are you using? - -- [ ] Windows: ( _version:_ ___ ) -- [ ] Linux: ( _distro:_ ___ ) -- [ ] Mac OS: ( _version:_ ___ ) -- [ ] Other: ___ - -#### What is your DB4S version? - -- [ ] 3.10.1 -- [ ] 3.10.0 -- [ ] 3.9.1 -- [ ] Other: ___ - -#### Did you also - -- [ ] Try out the latest nightly version: https://github.com/sqlitebrowser/sqlitebrowser#nightly-builds -- [ ] Search for an existing similar issue: https://github.com/sqlitebrowser/sqlitebrowser/issues?utf8=%E2%9C%93&q=is%3Aissue%20 +--- +name: Bug Report +about: Create a report to help us improve + +--- + + + +Details for the issue +-------------------- + +#### What did you do? + + +#### What did you expect to see? + + +#### What did you see instead? + + +Useful extra information +------------------------- + +The info below often helps, please fill it out if you're able to. :) + +#### What operating system are you using? + +- [ ] Windows: ( _version:_ ___ ) +- [ ] Linux: ( _distro:_ ___ ) +- [ ] Mac OS: ( _version:_ ___ ) +- [ ] Other: ___ + +#### What is your DB4S version? + +- [ ] 3.11.0-alpha* +- [ ] 3.10.1 +- [ ] Other: ___ + +#### Did you also + +- [ ] Try out the latest nightly version: https://github.com/sqlitebrowser/sqlitebrowser#nightly-builds +- [ ] Search for an existing similar issue: https://github.com/sqlitebrowser/sqlitebrowser/issues?utf8=%E2%9C%93&q=is%3Aissue%20 diff --git a/.github/ISSUE_TEMPLATE/Feature_request.md b/.github/ISSUE_TEMPLATE/Feature_request.md index 770e6cf39..edea571c6 100644 --- a/.github/ISSUE_TEMPLATE/Feature_request.md +++ b/.github/ISSUE_TEMPLATE/Feature_request.md @@ -1,23 +1,23 @@ ---- -name: Feature Request -about: Suggest an idea or request a new feature - ---- - - - -Describe the new feature --------------------------- - - -Additional info ---------------- -Please answer these questions before submitting your feature request. - -#### Is your feature request related to an issue? Please include the issue number. - - -#### Does this feature exist in another product or project? Please provide a link. - - -#### Do you have a screenshot? Please add screenshots to help explain your idea. +--- +name: Feature Request +about: Suggest an idea or request a new feature + +--- + + + +Describe the new feature +-------------------------- + + +Additional info +--------------- +Please answer these questions before submitting your feature request. + +#### Is your feature request related to an issue? Please include the issue number. + + +#### Does this feature exist in another product or project? Please provide a link. + + +#### Do you have a screenshot? Please add screenshots to help explain your idea. diff --git a/CMakeLists.txt b/CMakeLists.txt index e2dff88ae..275173ce8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -512,7 +512,7 @@ set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md") set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") set(CPACK_PACKAGE_VERSION_MAJOR "3") set(CPACK_PACKAGE_VERSION_MINOR "10") -set(CPACK_PACKAGE_VERSION_PATCH "99") +set(CPACK_PACKAGE_VERSION_PATCH "100") set(CPACK_PACKAGE_INSTALL_DIRECTORY "DB Browser for SQLite") if(WIN32 AND NOT UNIX) # There is a bug in NSIS that does not handle full unix paths properly. Make diff --git a/src/app.plist b/src/app.plist index 262093a41..2ad5cd6ea 100644 --- a/src/app.plist +++ b/src/app.plist @@ -55,7 +55,7 @@ CFBundleExecutable @EXECUTABLE@ CFBundleGetInfoString - 3.10.99 + 3.10.100 CFBundleIconFile @ICON@ CFBundleIdentifier @@ -67,11 +67,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 3.10.99 + 3.10.100 CFBundleSignature SqLB CFBundleVersion - 3.10.99 + 3.10.100 NSPrincipalClass NSApplication NSHighResolutionCapable diff --git a/src/version.h b/src/version.h index 9e110e06f..a255e47f8 100644 --- a/src/version.h +++ b/src/version.h @@ -2,7 +2,7 @@ #define GEN_VERSION_H #define MAJOR_VERSION 3 #define MINOR_VERSION 10 -#define PATCH_VERSION 99 +#define PATCH_VERSION 100 #define str(s) #s #define xstr(s) str(s) From 66ffa5f87c9de863f20dcff3f5c7c47e07bffc96 Mon Sep 17 00:00:00 2001 From: Manuel Date: Tue, 9 Oct 2018 22:37:27 +0200 Subject: [PATCH 002/127] Problems with WITHOUT ROWID tables with PK of string type (#1559) * Problems with WITHOUT ROWID tables with PK of string type This fixes two related problems: - When the PK is updated the hidden column 0 must be updated too, otherwise any further editing of the same row before a table refresh is broken. - When a new record is inserted and the PK has string type we cannot simply make a pseudo auto-increment and insert that value as rowid because that added key would be impossible to update because our UPDATE clause will try to update a column with a string and it contains an integer. In this case it's better to let the user enter the PK value, so the new Add Record dialog is directly invoked. See issue #1332 and (tangentially) #1049. The first should be fixed now. The later not, but at least there is now a workaround: removing the AUTOINCREMENT option and use the WITHOUT ROWID one. * Problems with WITHOUT ROWID tables with PK of string type (alternative 2) Update after review: - cached_row is not modified after unlock(); - Alternative solution to initial key value insertion: When a new record is inserted and the PK has string type we still make a pseudo auto-increment and insert that value as a string literal. In this way we can later update that row. When we inserted it as integer an actual integer will be inserted by SQLite, and our UPDATE clause, which always uses string in the WHERE condition, won't match the row (SQLite does not convert to integer when the column is of type string in this context). See issue #1332. --- src/MainWindow.cpp | 1 + src/sqlitedb.cpp | 5 +++-- src/sqlitetablemodel.cpp | 9 ++++++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 92e5d6c88..f6cd0cea2 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -775,6 +775,7 @@ void MainWindow::closeEvent( QCloseEvent* event ) void MainWindow::addRecord() { int row = m_browseTableModel->rowCount(); + if(m_browseTableModel->insertRow(row)) { selectTableLine(row); diff --git a/src/sqlitedb.cpp b/src/sqlitedb.cpp index 5538c8962..bbffd1542 100644 --- a/src/sqlitedb.cpp +++ b/src/sqlitedb.cpp @@ -1099,12 +1099,13 @@ QString DBBrowserDB::emptyInsertStmt(const QString& schemaName, const sqlb::Tabl if(!pk_value.isNull()) { - vals << pk_value; + vals << (f.isText()? "'" + pk_value + "'" : pk_value); } else { if(f.notnull()) { QString maxval = this->max(sqlb::ObjectIdentifier(schemaName, t.name()), f); - vals << QString::number(maxval.toLongLong() + 1); + QString newval = QString::number(maxval.toLongLong() + 1); + vals << (f.isText()? "'" + newval + "'" : newval); } else { vals << "NULL"; } diff --git a/src/sqlitetablemodel.cpp b/src/sqlitetablemodel.cpp index 103aa0dbf..36fb0d434 100644 --- a/src/sqlitetablemodel.cpp +++ b/src/sqlitetablemodel.cpp @@ -392,7 +392,14 @@ bool SqliteTableModel::setTypedData(const QModelIndex& index, bool isBlob, const if(m_db.updateRecord(m_sTable, m_headers.at(index.column()), cached_row.at(0), newValue, isBlob, m_pseudoPk)) { cached_row.replace(index.column(), newValue); - lock.unlock(); + if(m_headers.at(index.column()) == m_sRowidColumn) { + cached_row.replace(0, newValue); + const QModelIndex& rowidIndex = index.sibling(index.row(), 0); + lock.unlock(); + emit dataChanged(rowidIndex, rowidIndex); + } else { + lock.unlock(); + } emit dataChanged(index, index); return true; } else { From de9874d324b3ae6b02f68a74558dc824836e3df6 Mon Sep 17 00:00:00 2001 From: Manuel Date: Wed, 10 Oct 2018 21:26:59 +0200 Subject: [PATCH 003/127] Leaving the loading of extensions enabled might be a security risk (#1558) * Leaving the loading of extensions enabled might be a security risk Using sqlite3_enable_load_extension not only allows loading extensions through the C-API but also through the SQL functioon load_extension(). That might be a security risk if the user is unaware that executing an SQL file can lead to native code execution and not only to database file modification. See issue #1551 * Preference for allowing loading extensions from SQL code New setting that authorizes the execution of load_extension() from SQL code. Default value, false, following the design decision of SQLite, that disables this function unless by default. Added notice about the option in the calltips of the two function variants. --- src/PreferencesDialog.cpp | 2 ++ src/PreferencesDialog.ui | 10 ++++++++++ src/Settings.cpp | 4 ++++ src/SqlUiLexer.cpp | 4 ++-- src/sqlitedb.cpp | 20 +++++++++++++------- 5 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/PreferencesDialog.cpp b/src/PreferencesDialog.cpp index 2ac3ad496..bcbd32238 100644 --- a/src/PreferencesDialog.cpp +++ b/src/PreferencesDialog.cpp @@ -181,6 +181,7 @@ void PreferencesDialog::loadSettings() ui->listExtensions->addItems(Settings::getValue("extensions", "list").toStringList()); ui->checkRegexDisabled->setChecked(Settings::getValue("extensions", "disableregex").toBool()); + ui->checkAllowLoadExtension->setChecked(Settings::getValue("extensions", "enable_load_extension").toBool()); fillLanguageBox(); ui->toolbarStyleComboBox->setCurrentIndex(Settings::getValue("General", "toolbarStyle").toInt()); } @@ -240,6 +241,7 @@ void PreferencesDialog::saveSettings() extList.append(item->text()); Settings::setValue("extensions", "list", extList); Settings::setValue("extensions", "disableregex", ui->checkRegexDisabled->isChecked()); + Settings::setValue("extensions", "enable_load_extension", ui->checkAllowLoadExtension->isChecked()); // Save remote settings Settings::setValue("remote", "active", ui->checkUseRemotes->isChecked()); diff --git a/src/PreferencesDialog.ui b/src/PreferencesDialog.ui index b5f6d1f0d..f603f70b9 100644 --- a/src/PreferencesDialog.ui +++ b/src/PreferencesDialog.ui @@ -1268,6 +1268,16 @@ Can be set to 0 for disabling completion. + + + + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> + + + Allow loading extensions from SQL code + + + diff --git a/src/Settings.cpp b/src/Settings.cpp index a0f77f546..6b1ecf98f 100644 --- a/src/Settings.cpp +++ b/src/Settings.cpp @@ -326,6 +326,10 @@ QVariant Settings::getDefaultValue(const QString& group, const QString& name) if(group == "extension" && name == "disableregex") return false; + // extensions/enable_load_extension? + if(group == "extension" && name == "enable_load_extension") + return false; + // PlotDock/lineType or pointShape? if(group == "PlotDock") { diff --git a/src/SqlUiLexer.cpp b/src/SqlUiLexer.cpp index b10d75eb3..e050eb714 100644 --- a/src/SqlUiLexer.cpp +++ b/src/SqlUiLexer.cpp @@ -76,8 +76,8 @@ void SqlUiLexer::setupAutoCompletion() << "length" + tr("(X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character.") << "like" + tr("(X,Y) The like() function is used to implement the \"Y LIKE X\" expression.") << "like" + tr("(X,Y,Z) The like() function is used to implement the \"Y LIKE X ESCAPE Z\" expression.") - << "load_extension" + tr("(X) The load_extension(X) function loads SQLite extensions out of the shared library file named X.") - << "load_extension" + tr("(X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y.") + << "load_extension" + tr("(X) The load_extension(X) function loads SQLite extensions out of the shared library file named X.\nUse of this function must be authorized from Preferences.") + << "load_extension" + tr("(X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y.\nUse of this function must be authorized from Preferences.") << "lower" + tr("(X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case.") << "ltrim" + tr("(X) ltrim(X) removes spaces from the left side of X.") << "ltrim" + tr("(X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X.") diff --git a/src/sqlitedb.cpp b/src/sqlitedb.cpp index bbffd1542..49fe84b6f 100644 --- a/src/sqlitedb.cpp +++ b/src/sqlitedb.cpp @@ -147,9 +147,6 @@ bool DBBrowserDB::open(const QString& db, bool readOnly) bool foreignkeys = Settings::getValue("db", "foreignkeys").toBool(); setPragma("foreign_keys", foreignkeys ? "1" : "0"); - // Enable extension loading - sqlite3_enable_load_extension(_db, 1); - // Register REGEXP function if(Settings::getValue("extensions", "disableregex").toBool() == false) sqlite3_create_function(_db, "REGEXP", 2, SQLITE_UTF8, nullptr, regexp, nullptr, nullptr); @@ -523,9 +520,6 @@ bool DBBrowserDB::create ( const QString & db) bool foreignkeys = Settings::getValue("db", "foreignkeys").toBool(); setPragma("foreign_keys", foreignkeys ? "1" : "0"); - // Enable extension loading - sqlite3_enable_load_extension(_db, 1); - // Register REGEXP function if(Settings::getValue("extensions", "disableregex").toBool() == false) sqlite3_create_function(_db, "REGEXP", 2, SQLITE_UTF8, nullptr, regexp, nullptr, nullptr); @@ -1792,9 +1786,19 @@ bool DBBrowserDB::loadExtension(const QString& filePath) return false; } + // Enable extension loading + sqlite3_enable_load_extension(_db, 1); + // Try to load extension char* error; - if(sqlite3_load_extension(_db, filePath.toUtf8(), nullptr, &error) == SQLITE_OK) + int result = sqlite3_load_extension(_db, filePath.toUtf8(), nullptr, &error); + + // Disable extension loading if so configured + // (we don't want to leave the possibility of calling load_extension() from SQL without user informed permission) + if (!Settings::getValue("extensions", "enable_load_extension").toBool()) + sqlite3_enable_load_extension(_db, 0); + + if (result == SQLITE_OK) { return true; } else { @@ -1810,6 +1814,8 @@ void DBBrowserDB::loadExtensionsFromSettings() if(!_db) return; + sqlite3_enable_load_extension(_db, Settings::getValue("extensions", "enable_load_extension").toBool()); + QStringList list = Settings::getValue("extensions", "list").toStringList(); for(const QString& ext : list) { From c98edbd0c4ac83b253769ba66e90f75a6a6f54f6 Mon Sep 17 00:00:00 2001 From: FriedrichFroebel Date: Sun, 14 Oct 2018 20:17:31 +0200 Subject: [PATCH 004/127] update German translation --- src/translations/sqlb_de.ts | 1206 ++++++++++++++++++----------------- 1 file changed, 627 insertions(+), 579 deletions(-) diff --git a/src/translations/sqlb_de.ts b/src/translations/sqlb_de.ts index b32ebff42..0d375c9f1 100644 --- a/src/translations/sqlb_de.ts +++ b/src/translations/sqlb_de.ts @@ -1,6 +1,6 @@ - + AboutDialog @@ -16,11 +16,11 @@ <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - + <html><head/><body><p>DB-Browser für SQLite ist ein grafisches, freies Open-Source-Tool zum Erstellen, Entwerfen und Bearbeiten von SQLite-Datenbankdateien.</p><p>Es steht unter zwei Lizenzen zur Verfügung: der Mozilla Public License Version 2 und der GNU General Public License Version 3 oder aktueller. Sie können das Programm unter den Bedingungen dieser Lizenzen verändern und weiterverteilen.</p><p>Siehe <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> und <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> für Details.</p><p>Für mehr Informationen über dieses Programm besuchen Sie bitte unsere Website: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">Diese Software verwendet das GPL/LGPL QT Toolkit von </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Siehe </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> für Lizenzbedingungen und -informationen.</span></p><p><span style=" font-size:small;">Sie verwendet ebenso das Silk-Iconset von Mark James, welches unter einer Creative Commons Attribution 2.5 und 3.0 Lizenz verfügbar ist.<br/>Siehe </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> für Details.</span></p></body></html> <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> for details.</p><p>For more information on this program please visit our website at: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - <html><head/><body><p>DB-Browser für SQLite ist ein grafisches, freies Open Source Tool zum Erstellen, Bearbeiten und Ändern von SQLite-Datenbankdateien.</p><p>Es steht unter zwei Lizenzen, der Mozilla Public License Version 2 und der GNU General Public License Version 3 oder aktueller. Sie können das Programm unter den Bedingungen dieser Lizenzen ändern und weitergeben.</p><p>Siehe <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> und <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> für Details.</p><p>Für mehr Informationen über dieses Programm besuchen Sie unsere Website unter: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">Diese Anwendung verwendet das GPL/LGPL Qt Toolkit von </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Siehe </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> für Lizenzinformationenund weitere Informationen.</span></p><p><span style=" font-size:small;">Sie verwendet außerdem das Silk Iconset von Mark James, das unter einer Creative Commons Attribution 2.5 und 3.0 Lizenz steht.<br/>Siehe </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> für Details.</span></p></body></html> + <html><head/><body><p>DB-Browser für SQLite ist ein grafisches, freies Open Source Tool zum Erstellen, Bearbeiten und Ändern von SQLite-Datenbankdateien.</p><p>Es steht unter zwei Lizenzen, der Mozilla Public License Version 2 und der GNU General Public License Version 3 oder aktueller. Sie können das Programm unter den Bedingungen dieser Lizenzen ändern und weitergeben.</p><p>Siehe <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> und <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> für Details.</p><p>Für mehr Informationen über dieses Programm besuchen Sie unsere Website unter: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">Diese Anwendung verwendet das GPL/LGPL Qt Toolkit von </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Siehe </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> für Lizenzinformationenund weitere Informationen.</span></p><p><span style=" font-size:small;">Sie verwendet außerdem das Silk Iconset von Mark James, das unter einer Creative Commons Attribution 2.5 und 3.0 Lizenz steht.<br/>Siehe </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> für Details.</span></p></body></html> Qt Version @@ -37,7 +37,7 @@ (based on SQLite %1) - + (basierend auf SQLite %1) @@ -65,89 +65,92 @@ Add New Record - + Neue Zeile hinzufügen Enter values for the new record considering constraints. Fields in bold are mandatory. - + Geben Sie Werte für die neue Zeile unter Beachtung der Constraints ein. Fette Felder sind Pflichtfelder. In the Value column you can specify the value for the field identified in the Name column. The Type column indicates the type of the field. Default values are displayed in the same style as NULL values. - + In der Wertspalte können Sie den Wert für das durch die Namensspalte identifizierte Feld angeben. Die Typspalte zeigt den Feldtyp an. Standardwerte werden im Stil von NULL-Werten angezeigt. Name - Name + Name Type - Typ + Typ Value - + Wert Values to insert. Pre-filled default values are inserted automatically unless they are changed. - + Einzufügende Werte. Vorausgefüllte Standardwerte werden automatisch eingefügt, insofern sie nicht geändert wurden. When you edit the values in the upper frame, the SQL query for inserting this new record is shown here. You can edit manually the query before saving. - + Wenn Sie die Werte im oberen Teil ändern, wird hier das SQL-Query für das Einfügen der neuen Zeile angezeigt. Sie können das Query vor dem Speichern manuell bearbeiten. <html><head/><body><p><span style=" font-weight:600;">Save</span> will submit the shown SQL statement to the database for inserting the new record.</p><p><span style=" font-weight:600;">Restore Defaults</span> will restore the initial values in the <span style=" font-weight:600;">Value</span> column.</p><p><span style=" font-weight:600;">Cancel</span> will close this dialog without executing the query.</p></body></html> - + <html><head/><body><p><span style=" font-weight:600;">Speichern</span> wird das dargestellte SQL-Statement zum Einfügen des neuen Eintrags an die Datenbank übermitteln.</p><p><span style=" font-weight:600;">Voreinstellungen</span> wird die ursprünglichen Werte der <span style=" font-weight:600;">Wert</span>-Spalte wiederherstellen.</p><p><span style=" font-weight:600;">Abbrechen</span> schließt diesen Dialog, ohne die Query auszuführen.</p></body></html> Auto-increment - + Auto-Inkrement + Unique constraint - + Unique-Constraint Check constraint: %1 - + Prüfungsconstraint: %1 Foreign key: %1 - + Fremdschlüssel: %1 Default value: %1 - + Standardwert: %1 Error adding record. Message from database engine: %1 - + Fehler beim Hinzufügen der Zeile. Mitteilung der Datenbank-Engine: + +%1 Are you sure you want to restore all the entered values to their defaults? - + Sind Sie sicher, dass Sie alle eingegebenen Werte auf deren Standardwerte zurücksetzen möchten? @@ -191,7 +194,7 @@ -R, --read-only Open database in read-only mode - + -R, --read-only: Datenbank im rein lesenden Modus öffnen @@ -206,11 +209,11 @@ This is DB Browser for SQLite version %1. - Dies ist DB Browser für SQLite Version %1%2. {1.?} + Dies ist DB-Browser für SQLite Version %1. This is DB Browser for SQLite version %1%2. - Dies ist DB Browser für SQLite Version %1%2. + Dies ist DB Browser für SQLite Version %1%2. @@ -267,7 +270,7 @@ Page &size - &Seitengröße + &Seitengröße @@ -338,7 +341,7 @@ Falls weitere Einstellungen für diese Datenbank-Datei vorgenommen worden sind, Java epoch (milliseconds) to date - + Java-Epoche (Millisekunden) zu Datum @@ -348,12 +351,12 @@ Falls weitere Einstellungen für diese Datenbank-Datei vorgenommen worden sind, Unix epoch to local time - + Unix-Epoche zu lokaler Zeit Date as dd/mm/yyyy - + Datum als dd/mm/yyyy @@ -432,38 +435,38 @@ Falls weitere Einstellungen für diese Datenbank-Datei vorgenommen worden sind, Error in statement #%1: %2. Aborting execution. - Fehler im Statement #%1: %2. + Fehler im Statement #%1: %2. Ausführung wird abgebrochen. renameColumn: cannot find table %1. - Spalte umbenennen: Tabelle %1 nicht gefunden. + Spalte umbenennen: Tabelle %1 nicht gefunden. This database has already been attached. Its schema name is '%1'. - + Diese Datenbank wurde bereits angehängt. Ihr Schemaname ist '%1'. Do you really want to close this temporary database? All data will be lost. - + Möchten Sie diese temporäre Datenbank wirklich schließen? Alle Daten gehen damit verloren. The database is currently busy: - + Die Datenbank ist zur Zeit beschäfigt: Do you want to abort that other operation? - + Möchten Sie die andere Operation abbrechen? No database file opened - + Keine Datenbankdatei geöffnet @@ -482,7 +485,7 @@ Ausführung wird abgebrochen %3. Cannot delete this object - + Dieses Objekt kann nicht gelöscht werden @@ -492,7 +495,7 @@ Ausführung wird abgebrochen %3. A table with the name '%1' already exists in schema '%2'. - + Es existiert eine Tabelle mit dem Namen '%1' im Schema '%2'. @@ -550,12 +553,12 @@ Ausführung wird abgebrochen %3. could not get list of databases: %1 - + konnte keine Datenbankliste abrufen: %1 Error loading extension: %1 - Fehler beim Laden der Erweiterung: %1 + Fehler beim Laden der Erweiterung: %1 @@ -564,7 +567,7 @@ Ausführung wird abgebrochen %3. unknown object type %1 - unbekannter Objekttyp %1 + unbekannter Objekttyp %1 @@ -573,7 +576,7 @@ Ausführung wird abgebrochen %3. could not get types - Typen konnten nicht bezogen werden + Typen konnten nicht bezogen werden @@ -620,17 +623,17 @@ Ausführung wird abgebrochen %3. Browsables (%1) - Durchsuchbar (%1) + Durchsuchbar (%1) Database - + Datenbank Browsables - + Durchsuchbar @@ -640,7 +643,7 @@ Ausführung wird abgebrochen %3. Temporary - + Temporär @@ -678,7 +681,7 @@ Ausführung wird abgebrochen %3. This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. - + Dies ist die Liste der unterstützten Modi des Zelleneditors. Wählen Sie einen Modus für die Anzeige oder Bearbeitung der Daten der aktuellen Zelle aus. @@ -688,109 +691,109 @@ Ausführung wird abgebrochen %3. JSON - + JSON XML - + XML Automatically adjust the editor mode to the loaded data type - + Den Editormodus automatisch dem geladenen Datentyp anpassen This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. - + Dieser Button aktiviert oder deaktiviert den automatischen Wechsel des Editormodus. Wenn eine neue Zelle ausgewählt wird oder neue Daten importiert werden und der automatische Wechsel aktiviert ist, passt sich der Modus dem erkannten Datentyp an. Sie können den Editormodus danach manuell ändern. Falls Sie dies bei der Bewegung durch die Zellen im manuell eingestellten Modus behalten möchten, deaktivieren Sie den Button. Auto-switch - + Auto-Wechsel Auto-format: pretty print on loading, compact on saving. - + Auto-Format: Druckoptimierung (Pretty Print) beim Laden, kompakt beim Speichern. When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. - + Falls aktiviert, formatiert die Auto-Format-Funktion die Daten beim Laden, bricht den Text in Zeilen und rückt ihn ein für maximale Lesbarkeit. Beim Speichern der Daten verdichtet die Auto-Format-Funktion die Daten durch das Entfernen der Zeilenumbrüche und unnötigen Leerzeichen. Autoformat - + Auto-Format Import from file - + Aus Datei importieren Opens a file dialog used to import any kind of data to this database cell. - + Öffnet einen Dateidialog, um jegliche Art von Daten in diese Datenbankzelle zu importieren. Export to file - + In Datei exportieren Opens a file dialog used to export the contents of this database cell to a file. - + Öffnet einen Dateidialog, um den Inhalt dieser Datenbankzelle in eine Datei zu exportieren. Print... - + Drucken... Open preview dialog for printing displayed image - + Vorschaudialog zum Drucken des angezeigten Bildes öffnen Ctrl+P - Strg+P + Strg+P Open preview dialog for printing displayed text - + Vorschaudialog zum Drucken des angezeigten Textes öffnen Copy Hex and ASCII - + Hex und ASCII kopieren Copy selected hexadecimal and ASCII columns to the clipboard - + Ausgewählte hexadezimale und ASCII-Spalten in die Zwischenablage kopieren Ctrl+Shift+C - + Strg+Umschalt+C Import text - Text importieren + Text importieren Opens a file dialog used to import text to this database cell. - Öffnet einen Dateiauswahldialog, um Text in diese Datenbank-Zelle zu importieren. + Öffnet einen Dateiauswahldialog, um Text in diese Datenbank-Zelle zu importieren. @@ -799,11 +802,11 @@ Ausführung wird abgebrochen %3. Export text - Text exportieren + Text exportieren Opens a file dialog used to export the contents of this database cell to a text file. - Öffnet einen Dateiauswahldialog, um den Inhalt dieser Datenbank-Zelle in eine Textdatei zu exportieren. + Öffnet einen Dateiauswahldialog, um den Inhalt dieser Datenbank-Zelle in eine Textdatei zu exportieren. @@ -825,17 +828,19 @@ Ausführung wird abgebrochen %3. This editor mode lets you edit JSON or XML data with syntax highlighting, automatic formatting and validation before saving. Errors are indicated with a red squiggle underline. - + Dieser Editormodus erlaubt Ihnen das Bearbeiten von JSON- oder XML-Daten mit Syntaxhervorhebung, automatischer Formatierung und Validierung vor dem Speichern. + +Fehler werden durch eine rote Wellenlinie gekennzeichnet. Apply data to cell [Ctrl+Return] - + Daten auf Zelle anwenden [Strg+Return] This button saves the changes performed in the cell editor to the database cell. - + Dieser Button speichert die im Zelleneditor für die Datenbankzelle durchgeführten Änderungen. @@ -886,11 +891,11 @@ Errors are indicated with a red squiggle underline. Choose a file - Datei auswählen + Datei auswählen Text files(*.txt);;Image files(%1);;All files(*) - Text-Dateien(*.txt);;Bild-Dateien(%1);;Alle Dateien(*) + Text-Dateien(*.txt);;Bild-Dateien(%1);;Alle Dateien(*) @@ -899,15 +904,15 @@ Errors are indicated with a red squiggle underline. Text files(*.txt);;All files(*) - Text-Dateien(*.txt);;Alle Dateien(*) + Text-Dateien(*.txt);;Alle Dateien(*) Image data can't be viewed with the text editor - Bilddaten können nicht mit dem Texteditor angezeigt werden + Bilddaten können nicht mit dem Texteditor angezeigt werden Binary data can't be viewed with the text editor - Binärdaten können nicht mit dem Texteditor angezeigt werden + Binärdaten können nicht mit dem Texteditor angezeigt werden @@ -934,25 +939,25 @@ Errors are indicated with a red squiggle underline. Image data can't be viewed in this mode. - + In diesem Modus können keine Bilddaten angezeigt werden. Try switching to Image or Binary mode. - + Versuchen Sie, in den Bild- oder Binär-Modus zu wechseln. Binary data can't be viewed in this mode. - + Binärdaten können in diesem Modus nicht angezeigt werden. Try switching to Binary mode. - + Versuchen Sie, in den Binär-Modus zu wechseln. @@ -960,14 +965,14 @@ Errors are indicated with a red squiggle underline. Text files (*.txt) - + Textdateien (*.txt) JSON files (*.json) - + JSON-Dateien (*.json) @@ -975,57 +980,57 @@ Errors are indicated with a red squiggle underline. XML files (*.xml) - + XML-Dateien (*.xml) Image files (%1) - + Bilddateien (%1) Binary files (*.bin) - + Binärdateien (*.bin) All files (*) - + Alle Dateien (*) Choose a file to import - Datei für Import auswählen + Datei für Import auswählen %1 Image - + %1 Bild SVG files (*.svg) - + SVG-Dateien (*.svg) Hex dump files (*.txt) - + Hex-Dump-Dateien (*.txt) Invalid data for this mode - + Ungültige Daten für diesen Modus The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? - + Die Zelle enthält ungültige %1-Daten. Grund: %2. Möchten Sie diese wirklich auf die Zelle anwenden? @@ -1040,7 +1045,7 @@ Errors are indicated with a red squiggle underline. Type of data currently in cell: Valid JSON - + Aktueller Datentyp in dieser Zelle: Gültiges JSON Type of data currently in cell: Image @@ -1069,7 +1074,7 @@ Errors are indicated with a red squiggle underline. EditIndexDialog Create New Index - Neuen Index erstellen + Neuen Index erstellen @@ -1079,15 +1084,15 @@ Errors are indicated with a red squiggle underline. &Columns character after ampersand changed - &Spalten + &Spalten Column - Spalte + Spalte Use in Index - Im Index verwenden + Im Index verwenden @@ -1178,7 +1183,7 @@ Errors are indicated with a red squiggle underline. Database schema - + Datenbankschema @@ -1192,11 +1197,11 @@ Errors are indicated with a red squiggle underline. Set this to create a temporary table that is deleted when closing the database. - Dies erzeugt eine temporäre Tabelle, welche beim Schließen der Datenbank gelöscht wird. + Dies erzeugt eine temporäre Tabelle, welche beim Schließen der Datenbank gelöscht wird. Temporary table - Temporäre Tabelle + Temporäre Tabelle @@ -1236,7 +1241,7 @@ Errors are indicated with a red squiggle underline. NN - + NN @@ -1305,7 +1310,7 @@ Errors are indicated with a red squiggle underline. <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result it in problems.</p></body></html> - <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warnung: </span>Die Definition dieser Tabelle enthält Elemente, die unser Parser nicht vollständig versteht. Ändern und Speichern dieser Tabelle könnte zu Problemen führen.</p></body></html> + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warnung: </span>Die Definition dieser Tabelle enthält Elemente, die unser Parser nicht vollständig versteht. Ändern und Speichern dieser Tabelle könnte zu Problemen führen.</p></body></html> @@ -1321,7 +1326,7 @@ Errors are indicated with a red squiggle underline. This column is referenced in a foreign key in table %1, column %2 and thus its name cannot be changed. - Diese Spalte wird über einen Fremdschlüssel in Tabelle %1, Spalte %2 referenziert, sodass deren Name nicht geändert werden kann. + Diese Spalte wird über einen Fremdschlüssel in Tabelle %1, Spalte %2 referenziert, sodass deren Name nicht geändert werden kann. @@ -1381,12 +1386,13 @@ Alle aktuell in diesem Feld gespeicherten Daten gehen verloren. Changing the table schema failed. Error message: %1 - + Die Änderung des Tabellenschemas ist fehlgeschlagen. Fehlermeldung: +%1 Setting the temporary flag for the table failed. Error message: %1 - Setzen des Temporär-Flags dieser Tabelle fehlgeschlagen. Fehlermeldung: %1 + Setzen des Temporär-Flags dieser Tabelle fehlgeschlagen. Fehlermeldung: %1 @@ -1402,15 +1408,15 @@ Alle aktuell in diesem Feld gespeicherten Daten gehen verloren. &Table(s) - &Tabelle(n) + &Tabelle(n) &Column names in first line - &Spaltennamen in erster Zeile + &Spaltennamen in erster Zeile Field &separator - Feld-&Separator + Feld-&Separator @@ -1514,12 +1520,12 @@ Alle aktuell in diesem Feld gespeicherten Daten gehen verloren. exporting CSV - + exportiere CSV exporting JSON - + exportiere JSON @@ -1610,12 +1616,12 @@ Alle aktuell in diesem Feld gespeicherten Daten gehen verloren. Please select at least 1 table. - Bitte mindestens eine Tabelle auswählen. + Bitte mindestens eine Tabelle auswählen. Please select at least one table. - + Bitte wählen Sie mindestens eine Tabelle aus. @@ -1644,23 +1650,23 @@ Alle aktuell in diesem Feld gespeicherten Daten gehen verloren. Ctrl+H - + Strg+H Ctrl+P - Strg+P + Strg+P Find and Replace... - + Suchen und ersetzen... Print... - + Drucken... @@ -1668,48 +1674,48 @@ Alle aktuell in diesem Feld gespeicherten Daten gehen verloren. The content of clipboard is bigger than the range selected. Do you want to insert it anyway? - Der Inhalt der Zwischenablage ist größer als der ausgewählte Bereich. + Der Inhalt der Zwischenablage ist größer als der ausgewählte Bereich. Möchten Sie ihn dennoch einfügen? Use as Exact Filter - + Als exakten Filter verwenden Containing - + Enthält Not equal to - + Ungleich zu Greater than - + Größer als Less than - + Kleiner als Greater or equal - + Größer oder gleich Less or equal - + Kleiner oder gleich Between this and... - + Zwischen diesem und... @@ -1724,12 +1730,12 @@ Möchten Sie ihn dennoch einfügen? Copy with Headers - + Mit Headern kopieren Copy as SQL - + Als SQL kopieren @@ -1739,27 +1745,27 @@ Möchten Sie ihn dennoch einfügen? Print... - + Drucken... Use in Filter Expression - + In Filterausdruck verwenden Alt+Del - + Alt+Entf Ctrl+Shift+C - + Strg+Umschalt+C Ctrl+Alt+C - + Strg+Alt+C @@ -1772,7 +1778,7 @@ Do you want to insert it anyway? FileDialog SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - SQLite Datenbankdateien (*.db *.sqlite *.sqlite3 *.db3);;Alle Dateien (*) + SQLite Datenbankdateien (*.db *.sqlite *.sqlite3 *.db3);;Alle Dateien (*) @@ -1780,43 +1786,43 @@ Do you want to insert it anyway? File Extension Manager - + Dateierweiterungs-Manager &Up - + H&och &Down - + &Runter &Add - + &Hinzufügen &Remove - + &Entfernen Description - + Beschreibung Extensions - + Erweiterungen *.extension - + *.erweiterung @@ -1839,72 +1845,82 @@ The following operators are also supported: = Equal to: exact match <> Unequal: exact inverse match x~y Range: values between x and y - + Diese Eingabefelder erlauben Ihnen das Anwenden von schnellen Filtern in der aktuell ausgewählten Tabelle. +Standardmäßig werden Zeilen, die den Eingabetext beinhalten, herausgefiltert. +Zudem werden die folgenden Operatoren unterstützt: +% Wildcard +> Größer als +< Kleiner als +>= Größer oder gleich +<= Kleiner oder gleich += Gleich: exakte Übereinstimmung +<> Ungleich:exakte inverse Übereinstimmung +x~y Bereich: Werte zwischen x und y Set Filter Expression - + Filterausdruck setzen What's This? - Funktionen erläutern + Was ist das? Is NULL - + Ist NULL Is not NULL - + Ist nicht NULL Is empty - + Ist leer Is not empty - + Ist nicht leer Equal to... - + Gleich zu... Not equal to... - + Ungleich zu... Greater than... - + Größer als... Less than... - + Kleiner als... Greater or equal... - + Größer oder gleich... Less or equal... - + Kleiner oder gleich... In range... - + Im Bereich... @@ -1919,123 +1935,123 @@ x~y Range: values between x and y Find and Replace - + Suchen und Ersetzen Fi&nd text: - + Text fi&nden: Re&place with: - + Er&setzen mit: Match &exact case - + &Exakte Schreibung Match &only whole words - + Nur &ganze Wörter When enabled, the search continues from the other end when it reaches one end of the page - + Falls aktiviert, fährt die Suche am anderen Ende fort, wenn sie das Ende der Seite erreicht hat &Wrap around - + &Umbrechen When set, the search goes backwards from cursor position, otherwise it goes forward - + Falls gesetzt, erfolgt die Suche rückwärts von der Cursorposition, andernfalls erfolgt sie vorwärts Search &backwards - + Rück&wärts suchen <html><head/><body><p>When checked, the pattern to find is interpreted as a UNIX regular expression. See <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>.</p></body></html> - + <html><head/><body><p>Falls aktiviert, wird das Suchmuster als regulärer Ausdruck (UNIX-Stil) interpretiert. Siehe <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks (englisch)</a>.</p></body></html> Use regular e&xpressions - + Reguläre A&usdrücke verwenden Find the next occurrence from the cursor position and in the direction set by "Search backwards" - + Das nächste Auftreten ausgehend von der Cursorpositoin und in der durch "Rückwärts suchen" gesetzten Richtung finden &Find Next - + Nächste &finden &Replace - + &Ersetzen Highlight all the occurrences of the text in the page - + Alle Auftreten des Textes auf der Seite hervorheben F&ind All - + Alle f&inden Replace all the occurrences of the text in the page - + Alle Auftreten des Textes auf der Seite ersetzen Replace &All - + &Alle ersetzen The searched text was not found - + Der gesuchte Text wurde nicht gefunden The searched text was not found. - + Der gesuchte Text wurde nicht gefunden. The searched text was found one time. - + Der gesuchte Text wurde einmal gefunden. The searched text was found %1 times. - + Der gesuchte Text wurde %1-mal gefunden. The searched text was replaced one time. - + Der gesuchte Text wurde einmal ersetzt. The searched text was replaced %1 times. - + Der gesuchte Text wurde %1-mal ersetzt. @@ -2052,7 +2068,7 @@ x~y Range: values between x and y (foreign key clauses(ON UPDATE, ON DELETE etc.) - (Fremdschlüssel-Klauseln(ON UPDATE, ON DELETE etc.)) + (Fremdschlüssel-Klauseln(ON UPDATE, ON DELETE etc.)) @@ -2064,12 +2080,12 @@ x~y Range: values between x and y &Table name - &Tabellenname + &Tabellenname Table na&me - + Tabellenna&me @@ -2157,37 +2173,37 @@ x~y Range: values between x and y Advanced - Erweitert + Erweitert When importing an empty value from the CSV file into an existing table with a default value for this column, that default value is inserted. Activate this option to insert an empty value instead. - + Beim Import eines leeren Wertes aus einer CSV-Datei in eine existierende Tabelle mit einem Standardwert für diese Spalte wird dieser Standardwert eingefügt. Aktivieren Sie diese Option, um stattdessen einen leeren Wert einzufügen. Ignore default &values - + Standard&werte ignorieren Activate this option to stop the import when trying to import an empty value into a NOT NULL column without a default value. - + Aktivieren Sie diese Option, um den Import zu stoppen, falls ein leerer Wert in eine NOT-NULL-Spalte ohne Standardwert importiert werden soll. Fail on missing values - + Fehler bei fehlenden Werten Disable data type detection - + Datentyp-Erkennung deaktivieren Disable the automatic data type detection when creating a new table. - + Die automatische Datentyperkennung bei der Erstellung einer neuen Tabelle deaktivieren. @@ -2207,34 +2223,34 @@ x~y Range: values between x and y Inserting data... - Füge Daten ein... + Füge Daten ein... Cancel - Abbrechen + Abbrechen There is already a table of that name and an import into an existing table is only possible if the number of columns match. - Es gibt bereits eine Tabelle mit diesem Namen. Ein Import in eine existierende Tabelle ist nur bei übereinstimmender Spaltenanzahl möglich. + Es gibt bereits eine Tabelle mit diesem Namen. Ein Import in eine existierende Tabelle ist nur bei übereinstimmender Spaltenanzahl möglich. There is already a table of that name. Do you want to import the data into it? - Es gibt bereits eine Tabelle mit diesem Namen. Sollen die Daten in diese importiert werden? + Es gibt bereits eine Tabelle mit diesem Namen. Sollen die Daten in diese importiert werden? Import completed - Import vollständig + Import vollständig There is already a table named '%1' and an import into an existing table is only possible if the number of columns match. - + Es gibt bereits eine Tabelle namens '%1' und ein Import in eine existierende Tabelle ist nur bei übereinstimmender Spaltenanzahl möglich. There is already a table named '%1'. Do you want to import the data into it? - + Es gibt bereits eine Tabelle namens '%1'. Möchten Sie die Daten in diese importieren? @@ -2249,16 +2265,16 @@ x~y Range: values between x and y importing CSV - + importierte CSV Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. - + Import der Datei '%1' benötigte %2ms. Davon wurden %3ms in der Zeilenfunktion verbracht. Missing field for record %1 - Fehlendes Feld für Record %1 + Fehlendes Feld für Record %1 @@ -2287,7 +2303,7 @@ x~y Range: values between x and y Table: - Tabelle: + Tabelle: @@ -2301,7 +2317,7 @@ x~y Range: values between x and y Refresh the data in the selected table. - Aktualisiert die angezeigten Tabellendaten. + Aktualisiert die angezeigten Tabellendaten. @@ -2330,7 +2346,7 @@ x~y Range: values between x and y SQLCipher &FAQ... - SQLCipher &FAQ... + SQLCipher &FAQ... @@ -2339,7 +2355,7 @@ x~y Range: values between x and y Table(s) to JSON... - Tabelle(n) zu JSON... + Tabelle(n) zu JSON... @@ -2348,7 +2364,7 @@ x~y Range: values between x and y Save to Remote - Entfernt speichern + Entfernt speichern @@ -2367,7 +2383,7 @@ x~y Range: values between x and y This button creates a new, empty record in the database - Dieser Button erzeugt eine neue, leere Zeile in der Tabelle + Dieser Button erzeugt eine neue, leere Zeile in der Tabelle @@ -2382,7 +2398,7 @@ x~y Range: values between x and y This button deletes the record currently selected in the database - Dieser Button löscht die aktuell in der Tabellenansicht ausgewählte Zeile + Dieser Button löscht die aktuell in der Tabellenansicht ausgewählte Zeile @@ -2392,7 +2408,7 @@ x~y Range: values between x and y This is the database view. You can double-click any record to edit its contents in the cell editor window. - Dies ist die Tabellenansicht. Mit einem Doppelklick auf eine Zeile können Sie ihren Inhalt in einem Editorfenster bearbeiten. + Dies ist die Tabellenansicht. Mit einem Doppelklick auf eine Zeile können Sie ihren Inhalt in einem Editorfenster bearbeiten. @@ -2411,7 +2427,7 @@ x~y Range: values between x and y Scroll 100 records upwards - 100 Zeilen nach oben scrollen + 100 Zeilen nach oben scrollen @@ -2423,7 +2439,8 @@ x~y Range: values between x and y This is the structure of the opened database. You can drag SQL statements from an object row and drop them into other applications or into another instance of 'DB Browser for SQLite'. - + Dies ist die Struktur der geöffneten Datenbank. +Sie können SQL-Statements aus einer Objektzeile fassen und in anderen Anwendungen oder einer anderen 'DB-Browser für SQLite'-Instanz ablegen. @@ -2433,7 +2450,7 @@ You can drag SQL statements from an object row and drop them into other applicat Refresh the data in the selected table [F5, Ctrl+R] - + Die Daten in der ausgewählten Tabelle aktualisieren [F5, Strg+R] @@ -2443,42 +2460,42 @@ You can drag SQL statements from an object row and drop them into other applicat This button clears all the filters set in the header input fields for the currently browsed table. - + Dieser Button löscht alle gesetzten Filter in den Header-Eingabefeldern der aktuell angezeigten Tabelle. Save the table as currently displayed - + Tabelle wie aktuell angezeigt speichern <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> - + <html><head/><body><p>Dieses Popup-Menü bietet die folgenden Optionen zur Anwendung auf die aktuell ausgewählte und gefilterte Tabelle:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">CSV exportieren: diese Option exportiert die Daten der ausgewählten Tabelle wie aktuell angezeigt (gefiltert, Anzeigeformat und Spaltenreihenfolge) in eine CSV-Datei.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Als Ansicht speichern: diese Option speichert die aktuelle Einstellung der ausgewählten Tabelle (Filter, Anzeigeformat und Spaltenreihenfolge) als eine SQL-View, die Sie später durchsuchen oder in SQL-Statements verwenden können.</li></ul></body></html> ... - ... + ... Print currrently browsed table data [Ctrl+P] - + Aktuell angezeigte Tabellendaten drucken [Strg+P] Print currrently browsed table data. Print selection if more than one cell is selected. - + Die aktuell angezeigten Tabellendaten drucken. Druckauswahl, falls mehr als eine Zelle ausgewählt ist. <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> - + <html><head/><body><p>Dieser Button erstellt eine neue Zeile in der Datenbank. Halten sie die Maustaste gedrückt, um ein Popup-Menü mit verschiedenen Optionen zu öffnen:</p><ul><li><span style=" font-weight:600;">Neuer Eintrag</span>: eine neue Zeile mit Standardwerten in die Datenbank einfügen.</li><li><span style=" font-weight:600;">Werte einfügen...</span>: einen Dialog zur Eingabe von Werten öffnen, bevor diese in die Datenbank eingefügt werden. Dies erlaubt die Eingabe von Werten, die den Constraints Genüge tun. Dieser Dialog wird auch geöffnet, falls die <span style=" font-weight:600;">Neuer Eintrag</span>-Option aufgrund dieser Constraints fehlschlägt.</li></ul></body></html> This button deletes the record or records currently selected in the table - + Dieser Button löscht die Zeile oder Zeilen, die aktuell in der Tabelle ausgewählt sind @@ -2489,7 +2506,13 @@ You can drag SQL statements from an object row and drop them into other applicat - Ctrl+" for duplicating the current record. - Ctrl+' for copying the value from the cell above. - Standard selection and copy/paste operations. - + Dies ist die Datenbanktabellen-Ansicht. Sie können die folgenden Aktionen durchführen: + - Mit Schreiben beginnen, um die Werte inline zu bearbeiten. + - Doppelt auf einen Eintrag klicken, um dessen Inhalte im Zelleneditor-Fenster zu bearbeiten. + - Alt+Entf zum Löschen des Zellinhaltes zu NULL. + - Strg+" zur Duplizierung des aktuellen Eintrags. + - Ctrl+' zum Kopieren des Wertes der darüberliegenden Zelle. + - Standardmäßige Auswahl- und Kopieren/Einfügen-Operationen. @@ -2509,359 +2532,359 @@ You can drag SQL statements from an object row and drop them into other applicat Compact &Database... - + &Datenbank komprimieren... Execute all/selected SQL [F5, Ctrl+Return, Ctrl+R] - + Komplettes/ausgewähltes SQL ausführen [F5, Strg+Enter, Strg+R] This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. - + Dieser Button führt das aktuell ausgewählte SQL-Statement aus. Falls kein Text ausgewählt ist, werden alle SQL-Statements ausgeführt. This button opens a file containing SQL statements and loads it in a new editor tab - + Dieser Button öffnet eine Datei mit SQL-Statements und lädt diese in einen neuen Editortab &Load Extension... - + Erweiterung &laden... &Wiki - + &Wiki Bug &Report... - + Fehle&rmeldung... Feature Re&quest... - + Funktions&anfrage... Web&site - + Web&seite &Donate on Patreon... - + Über &Patreon spenden... Sa&ve Project... - + Projekt &speichern... This button lets you save all the settings associated to the open DB to a DB4S project file - + Dieser Button erlaubt Ihnen das Speichern aller mit der geöffneten DB verbundenen Einstellungen in einer DB4S-Projektdatei Open &Project... - + &Projekt öffnen... This button lets you open a DB4S project file - + Dieser Button erlaubt Ihnen das Öffnen einer DB4S-Projektdatei &Attach Database... - + Datenbank &anhängen... Add another database file to the current database connection - + Eine andere Datenbankdatei zur aktuellen Datenbankverbindung hinzufügen This button lets you add another database file to the current database connection - + Dieser Button erlaubt Ihnen das Hinzufügen einer anderen Datenbankdatei zur aktuellen Datenbankverbindung &Set Encryption... - + Verschlüsselung &setzen... SQLCipher &FAQ - + SQLCiper &FAQ Table(&s) to JSON... - + Tabelle(&n) zu JSON... Open Data&base Read Only... - + Daten&bank im Lesemodus öffnen... Save results - + Ergebnisse speichern Save the results view - + Ergebnisansicht speichern This button lets you save the results of the last executed query - + Dieser Button erlaubt Ihnen das Speichern der Ergebnisse der zuletzt ausgeführten Query Find text in SQL editor - + Text im SQL-Editor finden Find text in SQL editor [Ctrl+F] - + Text im SQL-Editor finden [Strg+F] This button opens the search bar of the editor - + Dieser Button öffnet die Suchleiste des Editors Ctrl+F - + Strg+F Find or replace text in SQL editor - + Text im SQL-Editor suchen oder ersetzen Find or replace text in SQL editor [Ctrl+H] - + Text im SQL-Editor suchen oder ersetzen [Strg+H] This button opens the find/replace dialog for the current editor tab - + Dieser Button öffnet den Suchen-/Ersetzen-Dialog für den aktuellen Editortab Export to &CSV - Nach &CSV exportieren + Nach &CSV exportieren Save as &view - Ansicht &speichern + Als &View speichern Save as view - Ansicht speichern + Als View speichern Hide column(s) - + Spalte(n) verbergen Hide selected column(s) - + Ausgewählte Spalte(n) verbergen Show all columns - + Alle Spalten anzeigen Show all columns that were hidden - + Alle versteckten Spalten anzeigen Shows or hides the Project toolbar. - + Zeigt oder versteckt die Projekt-Werkzeugleiste. Extra DB Toolbar - + Extra-DB-Werkzeugleiste Export the filtered data to CSV - + Die gefilterten Daten als CSV exportieren This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. - + Dieser Button exportiert die Daten der ausgewählten Tabelle wie aktuell angezeigt (gefiltert, Anzeigeformate und Spaltenreihenfolge) als CSV-Datei. Save the current filter, sort column and display formats as a view - + Den aktuellen Filter, die Spaltenreihenfolge und Anzeigeformate als View speichern This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. - + Dieser Button speichert die aktuellen Einstellungen der ausgewählten Tabelle (Filter, Anzeigeformate und Spaltenreihenfolge) als SQL-View, welche Sie später durchsuchen oder in SQL-Statements verwenden können. Insert Values... - + Werte einfügen... Open a dialog for inserting values in a new record - + Einen Dialog zum Einfügen von Werten in eine neue Zeile öffnen Insert new record using default values in browsed table - + Eine neue Zeile mit den Standardwerten in den ausgewählte Tabelle einfügen New In-&Memory Database - + Neue In-&Memory-Datenbank Drag && Drop Qualified Names - + Drag && Drop qualifizierter Namen Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor - + Qualifizierte Namen (z.B. "Tabelle."Feld") verwenden, wenn die Objekte gefasst und im Editor abgelegt werden Drag && Drop Enquoted Names - + Drag && Drop zitierter Namen Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor - + Geschützte Identifier (z.B. "Tabelle1") verwenden, wenn die Objekte gefasst und im Editor abgelegt werden &Integrity Check - + &Integritätsprüfung Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. - + Führt das integrity_check-Pragma auf der geöffneten Datenbank aus und gibt die Ergebnisse im SQL-Tab zurück. Dieses Pragma führt eine Integritätsprüfung der gesamten Datenbank durch. &Foreign-Key Check - + &Fremdschlüssel-Prüfung Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab - + Führt das foreign_key_check-Pragma auf der geöffneten Datenbank aus und gibt die Ergebnisse im SQL-Tab zurück &Quick Integrity Check - + &Schnelle Integritätsprüfung Run a quick integrity check over the open DB - + Führt eine schnelle Integritätsprüfung der geöffneten DB aus Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. - + Führt das quick_check-Pragma auf der geöffneten Datenbank aus und gibt die Ergebnisse im SQL-Tab zurück. Dieser Befehl führt einen Großteil der Prüfung des integrity_check-Pragmas aus, ist aber deutlich schneller. &Optimize - + &Optimieren Attempt to optimize the database - + Versuchen, die Datenbank zu optimieren Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. - + Führt das optimize-Pragma auf der geöffneten Datenbank aus. Dieses Pragma führt möglicherweise Optimierungen durch, die die Performanz zukünftiger Queries verbessern. Print - + Drucken Print text from current SQL editor tab [Ctrl+P] - + Den Text aus dem aktuellen SQL-Editortab drucken [Strg+P] Open a dialog for printing the text in the current SQL editor tab - + Einen Dialog zum Drucken des Textes im aktuellen SQL-Editortab öffnen Print the structure of the opened database [Ctrl+P] - + Die Struktur der geöffneten Datenbank drucken [Strg+P] Open a dialog for printing the structure of the opened database - + Einen Dialog zum Drucken der Struktur der geöffneten Datenbank öffnen <html><head/><body><p>Clicking this button navigates 100 records upwards in the table view above.</p></body></html> - <html><head/><body><p>Ein Klick auf diesen Button navigiert 100 Einträge höher in der oben angezeigten Tabelle.</p></body></html> + <html><head/><body><p>Ein Klick auf diesen Button navigiert 100 Einträge höher in der oben angezeigten Tabelle.</p></body></html> <html><head/><body><p>Scroll 100 records downwards</p></body></html> - <html><head/><body><p>100 Zeilen nach unten scrollen</p></body></html> + <html><head/><body><p>100 Zeilen nach unten scrollen</p></body></html> <html><head/><body><p>Clicking this button navigates 100 records downwards in the table view above.</p></body></html> - <html><head/><body><p>Ein Klick auf diesen Button navigiert 100 Einträge nach unten in der oben angezeigten Tabelle.</p></body></html> + <html><head/><body><p>Ein Klick auf diesen Button navigiert 100 Einträge nach unten in der oben angezeigten Tabelle.</p></body></html> @@ -2914,127 +2937,127 @@ You can drag SQL statements from an object row and drop them into other applicat <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">Auto Vacuum</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline, color:#0000ff;">Automatisches Vakuum</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline, color:#0000ff;">Automatisches Vakuum</span></a></p></body></html> None - Nichts + Nichts Full - Vollständig + Vollständig Incremental - Inkrementell + Inkrementell <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatic Index</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatischer Index</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatischer Index</span></a></p></body></html> <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Checkpoint Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Vollständiger FSYNC Speicherpunkt</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Vollständiger FSYNC Speicherpunkt</span></a></p></body></html> <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">Foreign Keys</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_key"><span style=" text-decoration: underline; color:#0000ff;">Fremdschlüssel</span></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_key"><span style=" text-decoration: underline; color:#0000ff;">Fremdschlüssel</span></p></body></html> <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Vollständiger FSYNC</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Vollständiger FSYNC</span></a></p></body></html> <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignore Check Constraints</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Beschränkungsprüfung ignorieren</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Beschränkungsprüfung ignorieren</span></a></p></body></html> <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journal Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journal Modus</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journal Modus</span></a></p></body></html> Delete - Löschen + Löschen Truncate - Kürzen + Kürzen Persist - Behalten + Behalten Memory - Speicher + Speicher WAL - WAL + WAL Off - Aus + Aus <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journal Size Limit</span></a></p></body></html> - <html><head/><body><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journal Größenbegrenzung</span></a></p></body><html> + <html><head/><body><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journal Größenbegrenzung</span></a></p></body><html> <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Locking Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Sperrmodus</span></a><p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Sperrmodus</span></a><p></body></html> Normal - Normal + Normal Exclusive - Exklusiv + Exklusiv <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">Max Page Count</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text decoration: underline; color:#0000ff;">Maximale Seitenanzahl</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text decoration: underline; color:#0000ff;">Maximale Seitenanzahl</span></a></p></body></html> <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Page Size</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Seitengröße</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Seitengröße</span></a></p></body></html> <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Recursive Triggers</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Rekursive Trigger</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Rekursive Trigger</span></a></p></body></html> <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Secure Delete</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Sicheres Löschen</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Sicheres Löschen</span></a></p></body></html> <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronous</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronisierung</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronisierung</span></a></p></body></html> <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Temp Store</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Zwischenspeicherung</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Zwischenspeicherung</span></a></p></body></html> Default - Voreinstellung + Voreinstellung File - Datei + Datei <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">User Version</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">Schemaversion</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">Schemaversion</span></a></p></body></html> <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">WAL Auto Checkpoint</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">Automatischer WAL Speicherpunkt</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">Automatischer WAL Speicherpunkt</span></a></p></body></html> &Open Database Read Only... - Datenbank schreibgeschützt &öffnen... + Datenbank schreibgeschützt &öffnen... @@ -3072,7 +3095,7 @@ You can drag SQL statements from an object row and drop them into other applicat Remote - Entfernt + Entfernt @@ -3097,12 +3120,12 @@ You can drag SQL statements from an object row and drop them into other applicat This button clears the contents of the SQL logs - + Dieser Button löscht den Inhalt der SQL-Logs This panel lets you examine a log of all SQL commands issued by the application or by yourself - + Dieses Panel erlaubt Ihnen das Betrachten eines Logs aller SQL-Kommandos, die von der Anwendung oder von Ihnen selbst ausgegangen sind @@ -3115,7 +3138,9 @@ You can drag SQL statements from an object row and drop them into other applicat You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. - + Dies ist die Struktur der geöffneten Datenbank. +Sie können mehrere Objektnamen aus der Namensspalte nehmen und in den SQL-Editor ziehen und Sie können die Eigenschaften der abgelegten Namen über das Kontextmenü anpassen. Dies kann Sie bei der Erstellung von SQL-Statements unterstützen. +Sie können SQL-Statements aus der Schemaspalte nehmen und in den SQL-Editor oder in anderen Anwendungen ablegen. @@ -3124,7 +3149,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Execute SQL [F5, Ctrl+Return, Ctrl+R] - SQL ausführen [F5, Ctrl+Return, Ctrl+R] + SQL ausführen [F5, Ctrl+Return, Ctrl+R] @@ -3134,7 +3159,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed This button executes the SQL statement present in the current editor line - + Dieser Button führt das SQL-Statement in der aktuellen Editorzeile aus @@ -3143,19 +3168,19 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Sa&ve Project - &Projekt speichern + &Projekt speichern Open &Project - &Projekt öffnen + &Projekt öffnen &Attach Database - Datenbank &anhängen + Datenbank &anhängen &Set Encryption - Verschlüsselung &setzen + Verschlüsselung &setzen @@ -3166,7 +3191,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed This button saves the content of the current SQL editor tab to a file - + Dieser Button speichert den Inhalt des aktuellen SQL-Editortabs in einer Datei @@ -3262,115 +3287,115 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Columns - Spalten + Spalten X - X + X Y - Y + Y _ - _ + _ Line type: - Zeilentyp: + Zeilentyp: Line - Zeile + Zeile StepLeft - Nach links + Nach links StepRight - Nach rechts + Nach rechts StepCenter - Zur Mitte + Zur Mitte Impulse - Impuls + Impuls Point shape: - Punktform: + Punktform: Cross - Kreuz + Kreuz Plus - Plus + Plus Circle - Kreis + Kreis Disc - Scheibe + Scheibe Square - Quadrat + Quadrat Diamond - Diamant + Diamant Star - Stern + Stern Triangle - Dreieck + Dreieck TriangleInverted - Invertiertes Dreieck + Invertiertes Dreieck CrossSquare - Quadrat mit Kreuz + Quadrat mit Kreuz PlusSquare - Quadrat mit Plus + Quadrat mit Plus CrossCircle - Kreis mit Kreuz + Kreis mit Kreuz PlusCircle - Kreis mit Plus + Kreis mit Plus Peace - Peace + Peace Save current plot... - Aktuelles Diagramm speichern... + Aktuelles Diagramm speichern... Load all data. This has only an effect if not all data has been fetched from the table yet due to the partial fetch mechanism. - Alle Daten laden. Dies bringt nur etwas, wenn aufgrund des partiellen Abrufmechanismus noch nicht alle Daten der Tabelle abgerufen wurden. + Alle Daten laden. Dies bringt nur etwas, wenn aufgrund des partiellen Abrufmechanismus noch nicht alle Daten der Tabelle abgerufen wurden. DB Schema - DB Schema + DB Schema @@ -3429,7 +3454,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed This button closes the connection to the currently open database file - + Dieser Button schließt die Verbindung zu der aktuell geöffneten Datenbankdatei @@ -3620,7 +3645,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed &About... - &Über... + &Über... @@ -3656,12 +3681,12 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - + <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. - + Warnung: dieses Pragma ist nicht lesbar und dieser Wert wurde abgeleitet. Das Schreiben des Pragmas überschreibt möglicherweise ein geändertes LIKE, welches von einer SQLite-Erweiterung zur Verfügung gestellt wird. @@ -3671,7 +3696,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed &Tools - + &Werkzeuge @@ -3680,7 +3705,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Edit Database Cell - Datenbankzelle bearbeiten + Datenbankzelle bearbeiten @@ -3701,19 +3726,19 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Project Toolbar - + Projekt-Werkzeugleiste Extra DB toolbar - + Extra-DB-Werkzeugleiste Close the current database file - + Die aktuelle Datenbankdatei schließen @@ -3727,7 +3752,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Compact &Database - &Datenbank komprimieren + &Datenbank komprimieren @@ -3777,12 +3802,12 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed &About - + &Über This button opens a new tab for the SQL editor - + Dieser Button öffnet einen neuen Tab im SQL-Editor @@ -3791,23 +3816,23 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Execute SQL [F5, Ctrl+Return] - SQL ausführen [F5, Strg+Return] + SQL ausführen [F5, Strg+Return] &Load extension - Erweiterung &laden + Erweiterung &laden &Wiki... - &Wiki... + &Wiki... Bug &report... - Fehler &melden... + Fehler &melden... Web&site... - Web&site... + Web&site... Save Project @@ -3836,7 +3861,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> - <html><head/><body><p>Aktuelles Diagramm speichern...</p><p>Dateiformat durch Endung auswählen (png, jpg, pdf, bmp)</p></body></html> + <html><head/><body><p>Aktuelles Diagramm speichern...</p><p>Dateiformat durch Endung auswählen (png, jpg, pdf, bmp)</p></body></html> @@ -3856,7 +3881,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Execute current line [Ctrl+E] - Aktuelle Zeile ausführen [Strg+E] + Aktuelle Zeile ausführen [Strg+E] @@ -3945,7 +3970,7 @@ Reason: %1 Error adding record: - Fehler beim Hinzufügen der Zeile: + Fehler beim Hinzufügen der Zeile: @@ -3974,22 +3999,22 @@ Reason: %1 Are you sure you want to delete the %1 '%2'? All data associated with the %1 will be lost. - Sollen %1 '%2' wirklich gelöscht werden? + Sollen %1 '%2' wirklich gelöscht werden? Alle mit %1 verbundenen Daten gehen verloren. Error: could not delete the %1. Message from database engine: %2 - Fehler: %1 konnte nicht gelöscht werden. Meldung der Datenbank: + Fehler: %1 konnte nicht gelöscht werden. Meldung der Datenbank: %2 There is no database opened. - Keine Datenbank geöffnet. + Keine Datenbank geöffnet. %1 rows returned in %2ms from: %3 - %1 Reihen innerhalb von %2ms zurückgegeben von: %3 + %1 Reihen innerhalb von %2ms zurückgegeben von: %3 @@ -3998,7 +4023,7 @@ Alle mit %1 verbundenen Daten gehen verloren. Query executed successfully: %1 (took %2ms%3) - Query erfolgreich ausgeführt: %1 (innerhalb von %2ms%3) + Query erfolgreich ausgeführt: %1 (innerhalb von %2ms%3) @@ -4016,7 +4041,7 @@ Alle mit %1 verbundenen Daten gehen verloren. Please enter the URL of the database file to save. - Bitte die URL der zu speichernden Datenbankdatei eingeben. + Bitte die URL der zu speichernden Datenbankdatei eingeben. @@ -4037,12 +4062,12 @@ Alle mit %1 verbundenen Daten gehen verloren. Error checking foreign keys after table modification. The changes will be reverted. - + Fehler beim Prüfen von Fremdschlüsseln nach der Änderung an der Tabelle. Die Änderungen werden rückgängig gemacht. This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. - + Diese Tabelle hat die Fremdschlüsselprüfung nicht bestanden.<br/>Sie sollten 'Werkzeuge | Fremdschlüssel-Prüfng' ausführen und die gemeldeten Probleme beheben. @@ -4066,7 +4091,7 @@ Lassen Sie das Feld leer, um die Datenbankodierung zu verwenden. Error executing query: %1 - Fehler beim Ausführen der Anfrage: %1 + Fehler beim Ausführen der Anfrage: %1 Query executed successfully: %1 (took %2ms) @@ -4074,7 +4099,7 @@ Lassen Sie das Feld leer, um die Datenbankodierung zu verwenden. Choose a text file - Textdatei auswählen + Textdatei auswählen @@ -4083,7 +4108,7 @@ Lassen Sie das Feld leer, um die Datenbankodierung zu verwenden. Import completed - Import vollständig + Import vollständig @@ -4181,116 +4206,125 @@ Sind Sie sicher? In-Memory database - + In-Memory-Datenbank determining row count... - + bestimmte Zeilenanzahl... %1 - %2 of >= %3 - + %1 - %2 von >= %3 Are you sure you want to delete the table '%1'? All data associated with the table will be lost. - + Möchten Sie die Tabelle '%1' wirklich löschen? +Alle mit dieser Tabelle verbundenen Daten gehen verloren. Are you sure you want to delete the view '%1'? - + Möchten Sie die Ansicht '%1' wirklich löschen? Are you sure you want to delete the trigger '%1'? - + Möchten Sie den Trigger '%1' wirklich löschen? Are you sure you want to delete the index '%1'? - + Möchten Sie den Index '%1' wirklich löschen? Error: could not delete the table. - + Fehler: Tabelle konnte nicht gelöscht werden. Error: could not delete the view. - + Fehler: Ansicht konnte nicht gelöscht werden. Error: could not delete the trigger. - + Fehler: Trigger konnte nicht gelöscht werden. Error: could not delete the index. - + Fehler: Index konnte nicht gelöscht werden. Message from database engine: %1 - + Nachricht von Datenbank-Engine: +%1 Editing the table requires to save all pending changes now. Are you sure you want to save the database? - + Das Bearbeiten der Tabelle setzt das Speichern aller ausstehenden Änderungen voraus. +Möchten Sie die Datenbank wirklich speichern? -- EXECUTING SELECTION IN '%1' -- - + -- FÜHRE AUSWAHL IN '%1' AUS +-- -- EXECUTING LINE IN '%1' -- - + -- FÜHRE ZEILE IN '%1' AUS +-- -- EXECUTING ALL IN '%1' -- - + -- FÜHRE ALLES IN '%1' AUS +-- Setting PRAGMA values or vacuuming will commit your current transaction. Are you sure? - + Das Setzen von PRAGMA-Werten oder des Vakuumings wird Ihre aktuelle Transaktion committen. +Sind Sie sich sicher? executing query - + führe Query aus %1 rows returned in %2ms - + %1 Zeilen in %2ms zurückgegeben query executed successfully. Took %1ms%2 - + Query erfolgreich ausgeführt. Benötigte %1ms%2 -- At line %1: %4 -- Result: %3 - + -- In Zeile %1: +%4 +-- Ergebnis: %3 @@ -4300,7 +4334,7 @@ Are you sure? Import completed. Some foreign key constraints are violated. Please fix them before saving. - + Import vollständig. Ein paar Fremdschlüssel wurden verletzt. Bitten beheben Sie diese vor dem Speichern. @@ -4376,22 +4410,22 @@ Are you sure? Choose a project file to open - + Wählen Sie die zu öffnende Projektdatei This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - + Diese Projektdatei verwendet ein altes Dateiformat, da es mit DB-Browser für SQLite Version 3.10 oder niedriger erstellt wurde. Das Laden dieses Dateiformats wird noch vollständig unterstützt, wird empfehlen Ihnen allerdings, alle Ihre Projektdateien in das neue Dateiformat zu überführen, da die Unterstützung für ältere Formate in Zukunft möglicherweise entfernt wird. Sie können Ihre Dateien einfach durch Öffnen und Neuspeichern umwandeln. Duplicate records - + Doppelte Einträge Ctrl+" - + Strg+" @@ -4401,66 +4435,66 @@ Are you sure? Collation needed! Proceed? - Kollation notwendig! Fortführen? + Kollation notwendig! Fortführen? A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! - Eine Tabelle in dieser Datenbank benötigt eine spezielle Kollationsfunktion '%1', welche diese Anwendung ohne weiterem Wissen nicht zur Verfügung stellen kann. + Eine Tabelle in dieser Datenbank benötigt eine spezielle Kollationsfunktion '%1', welche diese Anwendung ohne weiterem Wissen nicht zur Verfügung stellen kann. Wenn Sie fortfahren, sollten Sie im Hinterkopf behalten, dass mit Ihrer Datenbank unerwartete Dinge geschehen können. Erstellen Sie ein Backup! creating collation - + erstelle Kollation Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. - + Vergeben Sie einen Namen für den SQL-Tab. Verwenden Sie das '&&'-Zeichen, um das folgende Zeichen als Tastaturkürzel zu verwenden. Please specify the view name - Namen für Ansicht angeben + Geben Sie bitte einen Namen für Ansicht an There is already an object with that name. Please choose a different name. - Es gibt bereits ein Objekt mit diesem Namen. Bitte einen anderen auswählen. + Es gibt bereits ein Objekt mit diesem Namen. Bitte wählen Sie einen anderen aus. View successfully created. - Ansicht erfolgreich erstellt. + Ansicht erfolgreich erstellt. Error creating view: %1 - Fehler beim Erstellen der Ansicht: %1 + Fehler beim Erstellen der Ansicht: %1 There is no filter set for this table. View will not be created. - + Es gibt kein Filterset für diese Tabelle. Die Ansicht wird nicht erstellt. Delete Records - + Einträge löschen This action will open a new SQL tab for running: - + Diese Aktion öffnet einen neuen SQL-Tab zur Ausführung: Press Help for opening the corresponding SQLite reference page. - + Drücken Sie auf 'Hilfe', um die entsprechende SQLite-Referenzseite zu öffnen. A new sqlitebrowser version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. @@ -4468,15 +4502,15 @@ Erstellen Sie ein Backup! Choose a axis color - Achsenfarbe auswählen + Achsenfarbe auswählen PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Alle Dateien(*) + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Alle Dateien(*) Choose a file to open - Datei zum Öffnen auswählen + Datei zum Öffnen auswählen SQLiteBrowser project(*.sqbpro) @@ -4484,7 +4518,7 @@ Erstellen Sie ein Backup! Invalid file format. - Ungültiges Dateiformat. + Ungültiges Dateiformat. @@ -4492,12 +4526,12 @@ Erstellen Sie ein Backup! Set to NULL - Auf NULL setzen + Auf NULL setzen Alt+Del - + Alt+Entf @@ -4510,7 +4544,7 @@ Erstellen Sie ein Backup! <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> - + <html><head/><body><p>Dieses Pane zeigt die Liste der Spalten der aktuell ausgewählten Tabelle oder des soeben ausgeführtne Queries. Sie können die für die X- und Y-Achse gewünschten Spalten für das Plot-Pane unten auswählen. Die Tabelle zeigt den erkannten Axentyp, der den entstehenden Plot beeinflusst. Für die Y-Achse sind nur numerische Spalten zulässig, während Sie für die X-Achse aus folgenden Optionen auswählen können:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Datum/Zeit</span>: Strings im Format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Datum</span>: Strings im Format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Zeit</span>: Strings im Format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Beschriftung</span>: andere Stringformate. Die Auswahl dieser Spalte als X-Achse erzeugt einen Barplot mit den Spaltenwerten als Beschriftungen der Bars.</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numerisch</span>: Integer- oder Real-Werte</li></ul><p>Ein Doppelklick auf die Y-Zellen ermöglicht Ihnen das Ändern der für den Graph verwendeten Farbe.</p></body></html> @@ -4529,12 +4563,12 @@ Erstellen Sie ein Backup! _ - _ + _ Axis Type - + Achsentyp @@ -4545,7 +4579,13 @@ Click on points to select them in the plot and in the table. Ctrl+Click for sele Use mouse-wheel for zooming and mouse drag for changing the axis range. Select the axes or axes labels to drag and zoom only in that orientation. - + Hier wird ein Plot angezeigt, wenn Sie oben die x- und y-Werte auswählen. + +Klicken Sie auf Punkte, um diese im Plot und in der Tabelle auszuwählen. Strg+Klick zur Auswahl eines Punktebereichs. + +Verwenden Sie das Mausrad zum Zoomen und Ziehen Sie mit der Maus, um den Achsenbereich zu ändern. + +Wählen Sie die Achsen oder Achsenbeschriftungen aus, um nur in diese Richtung zu zoomen oder zu verschieben. @@ -4672,11 +4712,11 @@ Select the axes or axes labels to drag and zoom only in that orientation. Load all data and redraw plot - + Alle Daten laden und Plot neu zeichnen Load all data. This has only an effect if not all data has been fetched from the table yet due to the partial fetch mechanism. - Alle Daten laden. Dies bringt nur etwas, wenn aufgrund des partiellen Abrufmechanismus noch nicht alle Daten der Tabelle abgerufen wurden. + Alle Daten laden. Dies bringt nur etwas, wenn aufgrund des partiellen Abrufmechanismus noch nicht alle Daten der Tabelle abgerufen wurden. @@ -4687,69 +4727,70 @@ Select the axes or axes labels to drag and zoom only in that orientation. Choose a axis color - Achsenfarbe auswählen + Achsenfarbe auswählen Copy - Kopieren + Kopieren Print... - + Drucken... Show legend - + Legende anzeigen Stacked bars - + Gestapelte Bars Date/Time - + Datum/Zeit Date - + Datum Time - + Zeit Numeric - + Numerisch Label - + Beschriftung Invalid - + Ungültig Load all data and redraw plot. Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. - + Alle Daten laden und Plot neu zeichnen. +Warnung: es wurden aufgrund der partiellen Abrufmechanismus noch nicht alle Daten aus der Tabelle abgerufen. Choose an axis color - + Eine Achsenfarbe wählen @@ -4764,15 +4805,15 @@ Warning: not all data has been fetched from the table yet due to the partial fet There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. - + Dieser Plot enthält Kurven und der ausgewählte Linienstil kann nur auf nach X sortierte Graphen angewendet werden. Sortieren Sie entweder die Tabelle oder Query nach X oder entfernen Sie die Kurven oder wählen Sie eine der Stile, die von Kurven unterstützt werden: Keiner oder Linie. Fetching all data... - Alle Daten werden abgerufen... + Alle Daten werden abgerufen... Cancel - Abbrechen + Abbrechen @@ -4882,7 +4923,7 @@ Warning: not all data has been fetched from the table yet due to the partial fet SQL to execute after opening database - Nach dem Öffnen einer Datenbank auszuführendes SQL + Nach dem Öffnen einer Datenbank auszuführendes SQL @@ -4911,7 +4952,7 @@ Warning: not all data has been fetched from the table yet due to the partial fet Font si&ze: - Schrift&größe: + Schrift&größe: @@ -4925,15 +4966,15 @@ Warning: not all data has been fetched from the table yet due to the partial fet NULL fields - NULL-Felder + NULL-Felder &Text - &Text + &Text Field colors - Feldfarben + Feldfarben @@ -4947,7 +4988,7 @@ Warning: not all data has been fetched from the table yet due to the partial fet Text - Text + Text @@ -5021,7 +5062,7 @@ Warning: not all data has been fetched from the table yet due to the partial fet function - Funktion + Funktion @@ -5050,7 +5091,7 @@ Warning: not all data has been fetched from the table yet due to the partial fet currentline - Aktuelle Zeile + Aktuelle Zeile @@ -5064,7 +5105,7 @@ Warning: not all data has been fetched from the table yet due to the partial fet SQL &log font size - SQL-&Log Schriftgröße + SQL-&Log Schriftgröße @@ -5083,7 +5124,7 @@ Warning: not all data has been fetched from the table yet due to the partial fet Enabling error indicators highlights the SQL code lines that caused errors during the last execution - Durch Aktivieren der Fehleranzeige werden SQL-Codezeilen hervorgehoben, die während der letzten Ausführung Fehler verursacht haben + Durch Aktivieren der Fehleranzeige werden SQL-Codezeilen hervorgehoben, die während der letzten Ausführung Fehler verursacht haben @@ -5103,164 +5144,165 @@ Warning: not all data has been fetched from the table yet due to the partial fet Toolbar style - + Werkzeugleisten-Stil Only display the icon - + Nur das Symbol anzeigen Only display the text - + Nur den Text anzeigen The text appears beside the icon - + Der Text erscheint neben dem Symbol The text appears under the icon - + Der Text erscheint unter dem Symbol Follow the style - + Dem Stil folgen DB file extensions - + DB-Datei-Erweiterungen Manage - + Verwalten When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. - + Falls aktiviert, werden die Zeilenumbrüche in der Schemaspalte des DB-Strukturtabs, Docks und der gedruckten Ausgabe entfernt. Font si&ze - + Schrift&größe This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. - + Dies ist die maximale Anzahl an Zeilen in einer Tabelle, die zur Wertvervollständigung basierend auf aktuellen Werten in dieser Spalte erlaubt ist. +Kann auf 0 gesetzt werden, um die Vervollständigung zu deaktivieren. Row count threshold for completion - + Zeilenanzahl-Grenzwert für Vervollständigung Field display - + Feldanzeige Displayed &text - + Angezeigter &Text Text color - + Textfarbe Background color - + Hintergrundfarbe Preview only (N/A) - + Nur Vorschau (N/A) Foreground - + Vordergrund SQL &results font size - + Schriftgröße SQL-&Ergebnisse &Wrap lines - + Zeilen &umbrechen Never - + Nie At word boundaries - + An Wortgrenzen At character boundaries - + An Zeichengrenzen At whitespace boundaries - + An Leerzeichengrenzen &Quotes for identifiers - + &Anführungszeichen für Identifiers Choose the quoting mechanism used by the application for identifiers in SQL code. - + Wählen Sie den Zitiermechanismus aus, der von der Anwendung für Identifier im SQL-Code verwendet wird. "Double quotes" - Standard SQL (recommended) - + "Doppelt Anführungszeichen" - Standard-SQL (empfohlen) `Grave accents` - Traditional MySQL quotes - + `Akzente` - Traditionelle MySQL-Anführungszeichen [Square brackets] - Traditional MS SQL Server quotes - + [Eckige Klammern] - Traditionelle MS-SQL-Server-Anführungszeichen Keywords in &UPPER CASE - + Schlüsselwörter in &GROSSSCHREIBUNG When set, the SQL keywords are completed in UPPER CASE letters. - + Falls gesetzt, werden die SQL-Schlüsselwörter in GROßSCHREIBUNG vervollständigt. When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background - + Falls gesetzt, werden die SQL-Codezeilen, die während der letzten Ausführung Fehler verursacht haben, hervorgehoben und das Ergebnisfenster zeigt den Fehler im Hintergrund na @@ -5411,7 +5453,8 @@ Can be set to 0 for disabling completion. Are you sure you want to clear all the saved settings? All your preferences will be lost and default values will be used. - + Möchten Sie wirklich alle gespeicherten Einstellungen löschen? +Alle Ihre Einstellungen gehen dadurch verloren und die Standardwerte werden verwendet. @@ -5460,7 +5503,7 @@ All your preferences will be lost and default values will be used. Importing CSV file... - + Importiere CSV-Datei... @@ -5543,7 +5586,7 @@ Ausführung wird abgebrochen. Decoding CSV file... - CSV-Datei dekodieren... + CSV-Datei dekodieren... didn't receive any output from pragma %1 @@ -5563,29 +5606,29 @@ Ausführung wird abgebrochen. Collation needed! Proceed? - Kollation notwendig! Fortführen? + Kollation notwendig! Fortführen? A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! - Eine Tabelle in dieser Datenbank benötigt eine spezielle Kollationsfunktion '%1', welche diese Anwendung ohne weiterem Wissen nicht zur Verfügung stellen kann. + Eine Tabelle in dieser Datenbank benötigt eine spezielle Kollationsfunktion '%1', welche diese Anwendung ohne weiterem Wissen nicht zur Verfügung stellen kann. Wenn Sie fortfahren, sollten Sie im Hinterkopf behalten, dass mit Ihrer Datenbank unerwartete Dinge geschehen können. Erstellen Sie ein Backup! SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - SQLite Datenbankdateien (*.db *.sqlite *.sqlite3 *.db3);;Alle Dateien (*) + SQLite Datenbankdateien (*.db *.sqlite *.sqlite3 *.db3);;Alle Dateien (*) All files (*) - + Alle Dateien (*) SQLite database files (*.db *.sqlite *.sqlite3 *.db3) - + SQLite Datenbankdateien (*.db *.sqlite *.sqlite3 *.db3) @@ -5623,31 +5666,31 @@ Erstellen Sie ein Backup! Uploading remote database to %1 - Entfernte Datenbank wird hochgeladen zu -%1. {1?} + Entfernte Datenbank wird hochgeladen zu +%1 Downloading remote database from %1 - Entfernte Datenbank wird heruntergeladen von -%1. {1?} + Entfernte Datenbank wird heruntergeladen von +%1 The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. - + Die entfernte Datenbank wurde seit dem letzten Checkout verändert. Möchten Sie die lokale Datenbank mit der neuesten Version aktualisieren? Beachten Sie, dass dies alle Ihre lokalen Änderungen verwirft! Falls Sie Ihre lokalen Änderungen nicht verlieren möchten, klicken Sie auf Nein, um die lokale Version zu öffnen. Uploading remote database to %1. - Entfernte Datenbank wird hochgeladen zu + Entfernte Datenbank wird hochgeladen zu %1. Downloading remote database from %1. - Entfernte Datenbank wird heruntergeladen von + Entfernte Datenbank wird heruntergeladen von %1. @@ -5685,11 +5728,11 @@ Erstellen Sie ein Backup! B&rowse - &Durchsuchen + &Durchsuchen Local - Lokal + Lokal @@ -5699,7 +5742,7 @@ Erstellen Sie ein Backup! Connect to the remote server using the currently selected identity. The correct server is taken from the identity as well. - + Verbindung zum entfernten Server unter Verwendung der aktuell ausgewählten Identität. Der richtige Server wird ebenso von der Identität genommen. @@ -5709,12 +5752,12 @@ Erstellen Sie ein Backup! Push currently opened database to server - + Aktuell geöffnete Datenbank an den Server schicken <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB4S. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to create a DB4S certificate (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB4S Preferences. Click the button to add a new certificate to DB4S and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - + <html><head/><body><p>In diesem Pane könnten entfernte Datenbanken von der dbhub.io-Webseite zu DB4S hinzugefügt werden. Zunächst benötigen Sie eine Identität:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Melden Sie sich auf der dbhub.io-Webseite an (unter Verwendung Ihrer GitHub-Daten oder wie gewünscht)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Klicken Sie auf den Button, um ein DB4S-Zertifikat zu erstellen (das ist Ihre Identität). Dies erzeugt Ihnen eine Zertifikatsdatei (speichern Sie dies auf ihrer lokalen Festplatte).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Öffnen Sie den Remote-Tab in den DB4S-Einstellungen. Klicken Sie auf den Button, um ein neues Zertifikat zu DB4S hinzuzufügen und wählen Sie die soeben heruntergeladene Zertifikatsdatei aus.</li></ol><p>Jetzt zeigt das Remote-Panel Ihre Identität und Sie können entfernte Datenbanken hinzufügen.</p></body></html> @@ -5726,7 +5769,7 @@ Erstellen Sie ein Backup! Version - Version + Version @@ -5754,17 +5797,17 @@ Erstellen Sie ein Backup! Push database - + Datenbank pushen Database na&me to push to - + Zu pushender Datenbankna&me Commit message - + Commit-Nachricht @@ -5773,47 +5816,51 @@ Erstellen Sie ein Backup! p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> Database licence - + Datenbanklizenz Public - + Öffentlich Branch - + Branch Force push - + Push erzwingen Database will be public. Everyone has read access to it. - + Datenbank wird öffentlich sein. Jeder hat Lesezugriff darauf. Database will be private. Only you have access to it. - + Datenbank wird privat sein. Nur Sie haben Zugriff darauf. Use with care. This can cause remote commits to be deleted. - + Verwenden Sie dies mit Vorsicht. Dadurch können entfernte Commits gelöscht werden. Unspecified - + Nicht festgelegt @@ -5826,83 +5873,83 @@ p, li { white-space: pre-wrap; } Find previous match [Shift+F3] - + Vorherige Übereinstimmung finden [Umschalt+F3] Find previous match with mapping - + Vorherige Übereinstimmung mit Mapping finden Shift+F3 - Shift+F3 + Umschalt+F3 The found pattern must be a whole word - + Das Pattern muss ein ganzes Wort sein Whole Words - + Ganze Wörter Text pattern to find considering the checks in this frame - + Zu findendes Textpattern unter Einbeziehung der Prüfungen in diesem Fenster Find in editor - + Im Editor finden The found pattern must match in letter case - + Das Fundpattern muss in Groß-/Kleinschreibung übereinstimmen Case Sensitive - + Schreibungsabhängig Find next match [Enter, F3] - + Nächste Übereinstimmung finden [Enter, F3] Find next match with wrapping - + Nächste Übereinstimmung mit Umbruch finden F3 - F3 + F3 Interpret search pattern as a regular expression - + Suchpattern als regulären Ausdruck interpretieren <html><head/><body><p>When checked, the pattern to find is interpreted as a UNIX regular expression. See <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>.</p></body></html> - + <html><head/><body><p>Falls aktiviert, wird das Suchmuster als regulärer Ausdruck (UNIX-Stil) interpretiert. Siehe <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks (englisch)</a>.</p></body></html> Regular Expression - + Regulärer Ausdruck Close Find Bar - + Suchbar schließen @@ -5917,31 +5964,31 @@ p, li { white-space: pre-wrap; } Export to &CSV - Nach &CSV exportieren + Nach &CSV exportieren Save as &view - Ansicht &speichern + Ansicht &speichern Save as view - Ansicht speichern + Ansicht speichern Please specify the view name - Namen für Ansicht angeben + Namen für Ansicht angeben There is already an object with that name. Please choose a different name. - Es gibt bereits ein Objekt mit diesem Namen. Bitte einen anderen auswählen. + Es gibt bereits ein Objekt mit diesem Namen. Bitte einen anderen auswählen. View successfully created. - Ansicht erfolgreich erstellt. + Ansicht erfolgreich erstellt. Error creating view: %1 - Fehler beim Erstellen der Ansicht: %1 + Fehler beim Erstellen der Ansicht: %1 @@ -6193,73 +6240,73 @@ p, li { white-space: pre-wrap; } () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. - + () Die Anzahl der Zeilen in der aktuellen Partition. Zeilen werden beginnend bei 1 in der durch den ORDER-BY-Befehl in der Fensterdefinition nummeriert, ansonsten in willkürlicher Reihenfolge. () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. - + () Die row_number() des ersten Peer in jeder Gruppe - der Rang der aktuellen Zeile mit Lücken. Falls es keinen ORDER-BY-Befehl gibt, dann werden alle Zeilen als Peers angesehen und diese Funktion gibt immer 1 zurück. () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. - + () Die Nummer der Peer-Gruppe der aktuellen Zeile in der Partition - der Rang der aktuellen Reihe ohne Lücken. Partitionen werden mit 1 startend nummeriert in der Reihenfolge, wie sie durch den ORDER-BY-Befehl in der Fensterdefinition festgelegt ist. Falls es keinen ORDER-BY-Befehl gibt, werden alle Zeilen als Peers angesehen und diese Funktion gibt immer 1 zurück. () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. - + () Ungeachtet des Namens gibt diese Funktion immer einen Wert zwischen 0.0 und 1.0 identisch zu (Rang - 1)/(Partitionszeilen - 1) zurück, wobei Rang der Wert der eingebauten Fensterfunktion rank() und Partitionszeilen die Gesamtanzahl der Zeilen in der Partition ist. Falls die Partition nur eine Zeile enthält, gibt diese Funktion 0.0 zurück. () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. - + () Die kumulative Verteilung. Berechnet als Zeilenanzahl/Partitionszeilen, wobei Zeilenanzahl der durch row_number() zurückgegebene Wert für den letzten Peer in der Gruppe ist und Partitionszeilen die Anzahl der Zeilen in der Partition. (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. - + (N) Das Argument N wird als Integer behandelt. Diese Funktion teilt die Partition in N Gruppen so gleichmäßig wie möglich auf und weist jeder Gruppe einen Integer zwischen 1 und N zu, in der Reihenfolge, die durch den ORDER-BY-Befehl definiert ist, ansonsten in beliebiger Reihenfolge. Falls notwendig tauchen größere Gruppen als erstes auf. Diese Funktion gibt einen Integerwert zurück, der der Gruppe zugewiesen ist, zu der die aktuelle Zeile gehört. (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. - + (expr) Gibt das Ergebnis der Evaluation des Ausdrucks expr gegen die vorherige Zeile in der Partition zurück. Falls es keine vorhergehende Zeile gibt (weil die aktuelle Zeile die erste ist), wird NULL zurückgegeben. (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. - + (expr,offset) Falls das Offset-Argument angegeben ist, dann muss dieses ein nicht-negativer Integerwert sein. In diesem Fall ist der Rückgabewert das Ergebnis der Evaluation von expr gegen die Zeile, die innerhalb der Partition offset Zeilen weiter oben liegt. Falls offset 0 ist, wird expr gegen die aktuelle Zeile evaluiert. Falls vor der aktuellen Zeile nicht genügend Zeilen vorhanden sind, wird NULL zurückgegeben. (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. - + (expr,offset,default) Falls auch default angegeben ist, dann wird dieser Wert anstatt NULL zurückgegeben, falls die durch offset angegebene Zeile nicht existiert. (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. - + (expr) Gibt das Ergebnis der Evaluation des Ausdrucks expr gegen die nächste Zeile in der Partition zurück. Falls es keine nächste Zeile gibt (weil die aktuelle Zeile die letzte ist), wird NULL zurückgegeben. (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. - + (expr,offset) Falls das Offset-Argument angegeben ist, dann muss dieses ein nicht-negativer Integerwert sein. In diesem Fall ist der Rückgabewert das Ergebnis der Evaluation von expr gegen die Zeile, die innerhalb der Partition offset Zeilen weiter unten liegt. Falls offset 0 ist, wird expr gegen die aktuelle Zeile evaluiert. Falls nach der aktuellen Zeile nicht genügend Zeilen vorhanden sind, wird NULL zurückgegeben. (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. - + (expr) Diese eingebaute Fensterfunktion berechnet das Windowframe für jede Zeile auf die gleiche Art wie ein aggregierte Fensterfunktion. Sie gibt den Wert von expr evaluiert gegen die erste Zeile des Windowframes für jede Zeile zurück. (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. - + (expr) Diese eingebaute Fensterfunktion berechnet das Windowframe für jede Zeile auf die gleiche Art wie ein aggregierte Fensterfunktion. Sie gibt den Wert von expr evaluiert gegen die letzte Zeile des Windowframes für jede Zeile zurück. (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. - + (expr,N) Diese eingebaute Fensterfunktion berechnet das Windowframe für jede Zeile auf die gleiche Art wie ein aggregierte Fensterfunktion. Sie gibt den Wert von expr evaluiert gegen die N-te Zeile des Windowframes für zurück. Die Zeilen werden beginnend bei 1 in der durch den ORDER-BY-Befehl definierten Reihenfolge nummeriert, falls dieser vorhanden ist, ansonsten in beliebiger Reihenfolge. Falls es keine N-te Zeile in der Partition gibt, dann wird NULL zurückgegeben. @@ -6267,24 +6314,25 @@ p, li { white-space: pre-wrap; } References %1(%2) Hold Ctrl+Shift and click to jump there - Referenzen %1(%2) + Referenzen %1(%2) Strg+Shift halten und klicken, um hierher zu springen reading rows - + lese Zeilen loading... - + lade... References %1(%2) Hold %3Shift and click to jump there - + Referenzen %1(%2) +Halten Sie %3Umschalt und klicken Sie, um hierher zu springen @@ -6296,17 +6344,17 @@ Hold %3Shift and click to jump there retrieving list of columns - + ermittle Liste der Spalten Fetching data... - + Rufe Daten ab... Cancel - Abbrechen + Abbrechen @@ -6319,20 +6367,20 @@ Hold %3Shift and click to jump there Warning: Compacting the database will commit all of your changes. - + Warnung: Das Verdichten der Datenbank wird alle Ihre Änderungen übermitteln. Please select the databases to co&mpact: - + Bitte wählen Sie die zu ver&dichtenden Datenbanken aus: Warning: Compacting the database will commit all changes you made. - Warnung: Das Komprimieren der Datenbank wird alle getätigten Änderungen übernehmen. + Warnung: Das Komprimieren der Datenbank wird alle getätigten Änderungen übernehmen. Please select the objects to compact: - Bitte zu komprimierende Objekte auswählen: + Bitte zu komprimierende Objekte auswählen: From 75fbb652c371c04a234bd3f3b27403918d0a21b3 Mon Sep 17 00:00:00 2001 From: lulol Date: Tue, 16 Oct 2018 03:48:04 +0200 Subject: [PATCH 005/127] Updated Spanish translation (#1574) Updated Spanish translation for v3.11.0-alpha1 branch and some consistency changes. --- src/translations/sqlb_es_ES.ts | 295 ++++++++++++++++++--------------- 1 file changed, 158 insertions(+), 137 deletions(-) diff --git a/src/translations/sqlb_es_ES.ts b/src/translations/sqlb_es_ES.ts index 01ba1eeb7..1aa323c70 100644 --- a/src/translations/sqlb_es_ES.ts +++ b/src/translations/sqlb_es_ES.ts @@ -32,7 +32,7 @@ (based on SQLite %1) - + (basado en SQLite %1) @@ -60,89 +60,96 @@ Add New Record - + Añadir nuevo registro Enter values for the new record considering constraints. Fields in bold are mandatory. - + Introduzca valores para el nuevo registro teniendo en cuenta las restricciones. Los campos en negrita son obligatorios. In the Value column you can specify the value for the field identified in the Name column. The Type column indicates the type of the field. Default values are displayed in the same style as NULL values. - + En la columna Valor puede especificar el valor del campo identificado en la columna Nombre. La columna Tipo indica el tipo de campo. Los valores por defecto se muestran en la misma tipografía que los valores NULL. Name - Nombre + Nombre Type - Tipo + Tipo Value - + Valor Values to insert. Pre-filled default values are inserted automatically unless they are changed. - + Valores a insertar. Los valores mostrados por defecto son insertados automáticamente a menos que se cambien. When you edit the values in the upper frame, the SQL query for inserting this new record is shown here. You can edit manually the query before saving. - + Cuando se editan los valores en el cuadro superior, aquí se muestra la consulta SQL para insertar este nuevo registro. Puede editarla antes de guardar. <html><head/><body><p><span style=" font-weight:600;">Save</span> will submit the shown SQL statement to the database for inserting the new record.</p><p><span style=" font-weight:600;">Restore Defaults</span> will restore the initial values in the <span style=" font-weight:600;">Value</span> column.</p><p><span style=" font-weight:600;">Cancel</span> will close this dialog without executing the query.</p></body></html> - + <html><head/><body><p><span style=" font-weight:600;">Guardar</span> enviará a la base de datos la sentencia SQL mostrada para insertar el nuevo registro.</p><p><span style=" font-weight:600;">Restituir valores por Defecto</span> restituirá los valores iniciales en la columna <span style=" font-weight:600;">Valor</span></p><p><span style=" font-weight:600;">Cancelar</span> cierra este diálogo sin ejecutar la consulta.</p></body></html> Auto-increment - + Auto-incremento + Unique constraint - + Restricción UNIQUE + Check constraint: %1 - + Restricción CHECK: %1 + Foreign key: %1 - + Clave foránea: %1 + Default value: %1 - + Valor por defecto: %1 + Error adding record. Message from database engine: %1 - + Error añadiendo registro. Mensaje de la base de datos: + +%1 Are you sure you want to restore all the entered values to their defaults? - + ¿Está seguro de que quiere restaurar todos los valores introducidos a sus valores por defecto? @@ -341,7 +348,7 @@ Si se modificaron cualquiera de los otros ajustes para este archivo de base de d Java epoch (milliseconds) to date - Fecha Java (milisegundos) a fecha + Tiempo Java (milisegundos) a fecha @@ -351,7 +358,7 @@ Si se modificaron cualquiera de los otros ajustes para este archivo de base de d Unix epoch to local time - + Tiempo Unix a hora local @@ -376,7 +383,7 @@ Si se modificaron cualquiera de los otros ajustes para este archivo de base de d Unix epoch to date - Fecha Unix a fecha + Tiempo Unix a fecha @@ -439,7 +446,7 @@ Si se modificaron cualquiera de los otros ajustes para este archivo de base de d Error in statement #%1: %2. Aborting execution. - Error en la consulta #%1: %2. + Error en la sentencia #%1: %2. Abortando ejecución. @@ -454,7 +461,7 @@ Abortando ejecución. Do you really want to close this temporary database? All data will be lost. - + ¿Está seguro de que quiere cerrar esta base de datos temporal? Todos los datos se perderán. @@ -477,7 +484,7 @@ Abortando ejecución. Error in statement #%1: %2. Aborting execution%3. - Error en la consulta #%1: %2. + Error en la sentencia #%1: %2. Abortando ejecución%3. @@ -533,7 +540,7 @@ Abortando ejecución%3. Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: - La restitución de algunos de los objetos asociados con esta tabla falló. Lo más probable es que esto suceda porque han cambiado los nombres de algunas columnas. Esta es la consulta SQL que puede que quiera corregir y ejecutar manualmente: + La restitución de algunos de los objetos asociados con esta tabla ha fallado. Lo más probable es que esto suceda porque los nombres de algunas columnas han cambiado. Esta es la sentencia SQL que puede que quiera corregir y ejecutar manualmente: @@ -562,7 +569,7 @@ Abortando ejecución%3. Error loading extension: %1 - Error cargando la extensión: %1 + Error cargando la extensión: %1 @@ -695,28 +702,28 @@ Abortando ejecución%3. JSON - + JSON XML - + XML Automatically adjust the editor mode to the loaded data type - + Ajustar automáticamente el modo de edición al tipo de datos cargados This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. - + Esta casilla activa o desactiva el cambio automático del modo de edición. Cuando se selecciona una nueva celda o se importan nuevos datos y la selección automática está activada, el modo de edición se ajusta al tipo de datos detectados. El modo de edición para la celda se puede cambiar manualmente. Si prefiere mantener el modo de edición seleccionado manualmente mientras se mueve por las celdas, desmarque la casilla. Auto-switch - + Auto-selección @@ -758,38 +765,38 @@ Abortando ejecución%3. Print... - + Imprimir... Open preview dialog for printing displayed image - + Abre un diálogo de previsualización para imprimir la imagen mostrada Ctrl+P - Ctrl+P + Ctrl+P Open preview dialog for printing displayed text - + Abre un diálogo de previsualización para imprimir el texto mostrado Copy Hex and ASCII - + Copiar hex. y ASCII Copy selected hexadecimal and ASCII columns to the clipboard - + Copia las columnas seleccionadas en hexadecimal y ASCII al portapapeles Ctrl+Shift+C - Ctrl+May+C + Ctrl+May+C Import text @@ -949,14 +956,14 @@ Los errores se indican con un subrayado ondulado rojo. Text files (*.txt) - + Archivos de texto (*.txt) JSON files (*.json) - + Archivos JSON (*.json) @@ -964,26 +971,26 @@ Los errores se indican con un subrayado ondulado rojo. XML files (*.xml) - + Archivos XML (*.xml) Image files (%1) - + Archivos de imagen (%1) Binary files (*.bin) - + Archivos binarios (*.bin) All files (*) - Todos los archivos (*) + Todos los archivos (*) @@ -993,18 +1000,18 @@ Los errores se indican con un subrayado ondulado rojo. %1 Image - + %1 Imagen SVG files (*.svg) - + Archivos SVG (*.svg) Hex dump files (*.txt) - + Archivos de volcado hex. (*.txt) Text files (*.txt);;Image files (%1);;JSON files (*.json);;XML files (*.xml);;Binary files (*.bin);;All files (*) @@ -1267,7 +1274,7 @@ Los errores se indican con un subrayado ondulado rojo. NN - + NN @@ -1618,7 +1625,7 @@ Todos los datos actualmente almacenados en este campo se perderán. Multiple rows (VALUES) per INSERT statement - Múltiples líneas (VALUES) en cada comando INSERT + Múltiples líneas (VALUES) en cada sentencia INSERT @@ -1685,13 +1692,13 @@ Todos los datos actualmente almacenados en este campo se perderán. Ctrl+H - + Ctrl+H Ctrl+P - Ctrl+P + Ctrl+P @@ -1701,7 +1708,7 @@ Todos los datos actualmente almacenados en este campo se perderán. Print... - + Imprimir... @@ -1780,7 +1787,7 @@ Do you want to insert it anyway? Print... - + Imprimir... @@ -1790,7 +1797,7 @@ Do you want to insert it anyway? Alt+Del - + Alt+Supr @@ -1800,7 +1807,7 @@ Do you want to insert it anyway? Ctrl+Alt+C - + Ctrl+Alt+C Use as Filter @@ -2101,7 +2108,7 @@ x~y Rango: valores entre x e y (foreign key clauses(ON UPDATE, ON DELETE etc.) - claúsulas para foreign key (ON UPDATE, ON DELETE etc.) + claúsulas de clave foránea (ON UPDATE, ON DELETE etc.) @@ -2361,7 +2368,7 @@ x~y Rango: valores entre x e y <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> - + <html><head/><body><p>Este botón crea un nuevo registro en la base de datos. Mantenga pulsado el botón del ratón para abrir un menú emergente con varias opciones:</p><ul><li><span style=" font-weight:600;">Nuevo Registro</span>: inserta en la base de datos un nuevo registro con valores por defecto.</li><li><span style=" font-weight:600;">Introduce Valores...</span>: abre un diálogo para introducir valores antes de insertarlos en la base de datos. Esto permite introducir valores que cumplan con las restricciones. Este diálogo también se abre si la opción de <span style=" font-weight:600;">Nuevo Registro</span> falla debido a esas restricciones.</li></ul></body></html> @@ -2377,7 +2384,13 @@ x~y Rango: valores entre x e y - Ctrl+" for duplicating the current record. - Ctrl+' for copying the value from the cell above. - Standard selection and copy/paste operations. - + Este es el visor de la tabla de la base de datos. Puede realizar lo siguiente: + - Escribir y editar valores. + - Doble-clic en cualquier registro para editar su contenido en la ventana del editor de celdas. + - Alt+Supr para borrar el contenido de la celda a NULL. + - Ctrl+" para duplicar el registro actual. + - Ctrl+' para copiar el valor de la celda de arriba. + - Las operaciones de copiar y pegar usuales. @@ -2496,12 +2509,12 @@ También puede arrastrar varias sentencias SQL desde la columna «Esquema» y so Compact &Database... - + Compactar Base de &Datos... &About - + &Acerca de @@ -2526,7 +2539,7 @@ También puede arrastrar varias sentencias SQL desde la columna «Esquema» y so &Load Extension... - + &Cargar extensión... @@ -2536,32 +2549,32 @@ También puede arrastrar varias sentencias SQL desde la columna «Esquema» y so &Wiki - + &Wiki Bug &Report... - + &Informar de fallos... Feature Re&quest... - + Solicitud de &mejoras... Web&site - + &Sitio web &Donate on Patreon... - + &Donar en Patreon... Sa&ve Project... - + &Guardar proyecto... @@ -2571,7 +2584,7 @@ También puede arrastrar varias sentencias SQL desde la columna «Esquema» y so Open &Project... - + Abrir &proyecto... @@ -2581,7 +2594,7 @@ También puede arrastrar varias sentencias SQL desde la columna «Esquema» y so &Attach Database... - + Ane&xar base de datos... @@ -2597,7 +2610,7 @@ También puede arrastrar varias sentencias SQL desde la columna «Esquema» y so &Set Encryption... - + &Establecer cifrado... @@ -2607,127 +2620,127 @@ También puede arrastrar varias sentencias SQL desde la columna «Esquema» y so SQLCipher &FAQ - + SQLCipher &FAQ Insert Values... - + Introducir valores... Open a dialog for inserting values in a new record - + Abre un diálogo para introducir valores en un nuevo registro Insert new record using default values in browsed table - + Inserta un nuevo registro usando valores por defecto en la tabla visualizada New In-&Memory Database - + Nueva base de datos en &memoria Drag && Drop Qualified Names - + Arrastrar y soltar nombres calificados Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor - + Usa nombres calificados (p.ej. "Tabla"."Campo") al arrastrar los objetos y soltarlos en el editor Drag && Drop Enquoted Names - + Arrastrar y Soltar Nombres Entrecomillados Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor - + Usa identificadores escapados (p.ej. "Tabla1") al arrastrar los objetos y soltarlos en el editor &Integrity Check - + Comprobar &integridad Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. - + Ejecuta el pragma integrity_check en la base de datos abierta y devuelve los resultados en la pestaña Ejecutar SQL. Este pragma realiza una comprobación de integridad de toda la base de datos. &Foreign-Key Check - + Comprobar clave &foránea Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab - + Ejecuta el pragma foreign_key_check con la base de datos abierta y devuelve los resultados en la pestaña Ejecutar SQL. &Quick Integrity Check - + Comprobar integridad &rápido Run a quick integrity check over the open DB - + Ejecuta una comprobación de integridad rápida en la base de datos abierta Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. - + Ejecuta el pragma quick_check en la base de datos abierta y devuelve los resultados en la pestaña Executar SQL. Este comando hace la mayoría de comprobaciones de PRAGMA integrity_check pero se ejecuta mucho más rápido. &Optimize - + &Optimizar Attempt to optimize the database - + Intenta optimizar la base de datos Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. - + Ejecuta el pragma optimize en la base de datos abierta. Este pragma realiza optimizaciones que pueden mejorar el rendimiento de consultas futuras. Print - + Imprimir Print text from current SQL editor tab [Ctrl+P] - + Imprime el texto de la pestaña actual del editor SQL [Ctrl+P] Open a dialog for printing the text in the current SQL editor tab - + Abre un diálogo para imprimir el texto de la pestaña actual del editor SQL Print the structure of the opened database [Ctrl+P] - + Imprime la estructura de la base de datos abierta [Ctrl+P] Open a dialog for printing the structure of the opened database - + Abre un diálogo para imprimir la estructura de la base de datos abierta SQLCipher &FAQ... @@ -2838,12 +2851,12 @@ Usted puede arrastrar sentencias SQL desde una fila de objeto y soltarlas en otr Print currrently browsed table data [Ctrl+P] - + Imprime los datos de la tabla mostrada actualmente [Ctrl+P] Print currrently browsed table data. Print selection if more than one cell is selected. - + Imprime los datos de la tabla mostrada actualmente. Imprime la selección si se ha seleccionado más de una celda. @@ -3121,7 +3134,7 @@ Usted puede arrastrar sentencias SQL desde una fila de objeto y soltarlas en otr Ctrl+F - + Ctrl+F @@ -3235,7 +3248,7 @@ Usted puede arrastrar sentencias SQL desde una fila de objeto y soltarlas en otr &Tools - + &Herramientas @@ -3258,7 +3271,10 @@ Usted puede arrastrar sentencias SQL desde una fila de objeto y soltarlas en otr You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. - + Esta es la estructura de la base de datos abierta. +Puede arrastrar múltiples objetos de la columna Nombre, soltarlos en el editor SQL y ajustar sus propiedades usando el menú contextual. Esto le ayudará a componer sentencias SQL. +Puede arrastrar sentencias SQL desde la columna Esquema y soltarlas en el editor SQL o en otras aplicaciones. + @@ -3778,12 +3794,12 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - + <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Like sensible a mayúsculas</a></p></body></html> Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. - + Aviso: este pragma no es legible y este valor se ha supuesto. Escribir el pragma puede sobreescribir un LIKE redefinido que proporcione una extensión de SQLite. @@ -4239,7 +4255,7 @@ Si responde no se intentarán importar los datos del archivo SQL en la base de d Ctrl+" - + Ctrl+" @@ -4278,7 +4294,7 @@ Razón: %1 In-Memory database - + Base de datos en memoria @@ -4343,7 +4359,8 @@ Se perderán todos los datos asociados con la tabla. Editing the table requires to save all pending changes now. Are you sure you want to save the database? - + Para editar la tabla es necesario guardar antes todos los cambios pendientes. +¿Está seguro de que quiere guardar la base de datos? @@ -4398,7 +4415,9 @@ Are you sure? -- At line %1: %4 -- Result: %3 - + -- En la línea %1: +%4 +-- Resultado: %3 @@ -4408,7 +4427,7 @@ Are you sure? Import completed. Some foreign key constraints are violated. Please fix them before saving. - + Importación completada. Algunas restricciones de las claves foráneas se han infringido. Por favor arréglelas antes de guardar. @@ -4509,12 +4528,12 @@ Are you sure? This action will open a new SQL tab for running: - + Esta acción abrirá una nueva pestaña SQL para ejecutar: Press Help for opening the corresponding SQLite reference page. - + Pulse Ayuda para abrir la página correspondiente de la referencia de SQLite. Row # @@ -4559,12 +4578,12 @@ Are you sure? Error checking foreign keys after table modification. The changes will be reverted. - + Error comprobando las claves foráneas tras la modificación de la tabla. Los cambios se desharán. This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. - + Esta tabla no ha pasado la comprobación de claves foráneas.<br/>Debería ejecutar 'Herramientas | Comprobar Claves foráneas' y arreglar los problemas mostrados. @@ -4592,12 +4611,12 @@ Deje este campo vacío para usar la codificación de la base de datos. Set to NULL - Poner a NULL + Poner a NULL Alt+Del - + Alt+Supr @@ -4804,7 +4823,7 @@ Seleccione los ejes o sus etiquetas para arrastrar y aumentar/disminuir solo en Print... - + Imprimir... @@ -5127,7 +5146,7 @@ Aviso: aún no se han cargado todos los datos desde la tabla debido al mecanismo When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. - + Cuando está activado, se omiten los saltos de línea en la columna Esquema, tanto en la pestaña Estructura en pantalla, como al imprimir. @@ -5139,12 +5158,13 @@ Aviso: aún no se han cargado todos los datos desde la tabla debido al mecanismo This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. - + Este el el número máximo de filas en una tabla para activar el autocompletado basado en los valores actuales en la columna. +Se puede poner a 0 para desactivar el autocompletado. Row count threshold for completion - + Umbral del conteo de filas para autocompletar @@ -5933,12 +5953,12 @@ p, li { white-space: pre-wrap; } Results of the last executed statements - Resultados de los últimos comandos ejecutados + Resultados de las últimas sentencias ejecutadas This field shows the results and status codes of the last executed statements. - Este campo muestra los resultados y códigos de estado de los últimos comandos ejecutados. + Este campo muestra los resultados y códigos de estado de las últimas sentencias ejecutadas. Export to &CSV @@ -6079,7 +6099,7 @@ p, li { white-space: pre-wrap; } (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. - (X) La función quote(X) devuelve el texto de un literal SQL, que es el valor de su argumento, apropiado para la inclusión en una consulta SQL. + (X) La función quote(X) devuelve el texto de un literal SQL, que es el valor de su argumento, apropiado para la inclusión en una sentencia SQL. @@ -6134,7 +6154,7 @@ p, li { white-space: pre-wrap; } () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. - () La función total_changes() devuelve el número de cambios en las líneas causadas por consultas INSERT, UPDATE o DELETE desde que la conexión con la base de datos actual se abrió. + () La función total_changes() devuelve el número de cambios en las líneas causadas por sentencias INSERT, UPDATE o DELETE desde que la conexión con la base de datos actual se abrió. @@ -6202,89 +6222,89 @@ p, li { white-space: pre-wrap; } (X) The max() aggregate function returns the maximum value of all values in the group. - (X) La función max() devuelve el máximo valor de entre todos los valores en el grupo. + (X) La función agregada max() devuelve el máximo valor de entre todos los valores en el grupo. (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. - (X) La función min() devuelve el mínimo valor no NULO de entre todos los valores en el grupo. + (X) La función agregada min() devuelve el mínimo valor no NULO de entre todos los valores en el grupo. (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. - (X) Las funciones sum() y total() devuelven la suma de todos los valores no NULOS en el grupo. + (X) Las funciones agregadas sum() y total() devuelven la suma de todos los valores no NULOS en el grupo. () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. - + () El número de fila dentro de la partición actual. Las filas se numeran empezando por 1 en el orden definido por la cláusula ORDER BY en la ventana de definición, o sino en un orden arbitrario. () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. - + () El row_number() del primer par (igual) en cada grupo - el rango de la fila actual con huecos. Si no hay una cláusula ORDER BY, entonces todas las filas son consideradas pares y esta función siempre devuelve 1. () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. - + () El número del grupo de pares de la fila actual dentro de su partición - el rango de la fila actual sin huecos. Las particiones se numeran empezando por 1 en el orden definido por la cláusula ORDER BY en la ventana de definición. Si no hay una cláusula ORDER BY, entonces todas las filas son consideradas pares y esta función siempre devuelve 1. () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. - + () A pesar del nombre, esta función siempre devuelve un valor entre 0.0 y 1.0 igual a (rank - 1)/(partition-rows - 1), donde rank es el valor devuelto por la función de ventana incorporada rank() y partition-rows es el número total de filas en la partición. Si la partición contiene sólo una fila, esta función devuelve 0.0. () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. - + () La distribución acumulada. Calculada como row-number/partition-rows, donde row-number es el valor devuelto por row_number() para el último par (igual) en el grupo y partition-rows el número de filas en la partición. (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. - + (N) El argumento N es tratado como un entero. Esta función divide la partición en N grupos tan equitativamente como sea posible y asigna un entero entre 1 y N a cada grupo, en el orden definido por la cláusula ORDER BY, o sino en un orden arbitrario. Si es necesario, los grupos mayores aparecen primero. Esta función devuelve un valor entero asignado al grupo del que la fila actual es parte. (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. - + (expr) Devuelve el resultado de evaluar la expresión expr con la fila anterior en la partición. Si no hay fila anterior (porque la fila actual es la primera) devuelve NULL. (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. - + (expr,offset) Si se proporciona un offset, éste debe ser un entero no negativo. En este caso el valor devuelto es el resultado de evaluar expr con la fila offset veces anterior a la fila actual dentro de la partición. Si offset es 0, entonces expr se evalua con la fila actual. Si no hay fila offset veces anterior devuelve NULL. (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. - + (expr,offset,default) Si también se proporciona un default, entonces éste es devuelto en lugar de NULL si no existe la fila identificada por offet. (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. - + (expr) Devuelve el resultado de evaluar la expresión expr con la siguiente fila en la partición. Si no hay fila siguiente (porque la fila actual es la última) devuelve NULL. (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. - + (expr,offset) Si se proporciona un offset, éste debe ser un entero no negativo. En este caso el valor devuelto es el resultado de evaluar expr con la fila offset veces posterior a la fila actual dentro de la partición. Si offset es 0, entonces expr se evalua con la fila actual. Si no hay fila offset veces siguiente devuelve NULL. (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. - + (expr) Esta función de ventana incorporada calcula el marco de la ventana para cada fila de la misma forma que una función agregada de ventana. Devuelve el valor de expr evaluada con la primera fila en el marco de la ventana para cada fila. (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. - + (expr) Esta función de ventana incorporada calcula el marco de la ventana para cada fila de la misma forma que una función agregada de ventana. Devuelve el valor de expr evaluada con la última fila en el marco de la ventana para cada fila. (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. - + (expr,N) Esta función de ventana incorporada calcula el marco de la ventana para cada fila de la misma forma que una función agregada de ventana. Devuelve el valor de expr evaluada con la fila N del marco de la ventana. Las columnas se numeran dentro del marco de la ventana empezando por 1 en el orden definico por la cláusula ORDER BY, o sino en orden arbitrario. Si no hay fila N-ava en la partición, entonces devuelve NULL. @@ -6309,7 +6329,8 @@ Mantenga pulsado Ctrl+May y haga clic para ir ahí References %1(%2) Hold %3Shift and click to jump there - + Referencia %1(%2) +Mantenga pulsado %3May y haga clic para ir ahí From d6c08d46f2c89bd05827a66b5954bfad4f05a432 Mon Sep 17 00:00:00 2001 From: mgrojo Date: Wed, 17 Oct 2018 00:03:27 +0200 Subject: [PATCH 006/127] Update of translation files for PR #1558 There are two new strings in Preferences (an option and its tooltip) and two functions call-tips that are updated with this appendix: "Use of this function must be authorized from Preferences." Line number changes have been discarded after lupdate so the amount of changes for merging of translation pull requests are minimised. --- src/translations/sqlb_ar_SA.ts | 18 +++++++++++++++--- src/translations/sqlb_cs.ts | 22 +++++++++++++++++----- src/translations/sqlb_de.ts | 30 +++++++++++++++++++++++++----- src/translations/sqlb_en_GB.ts | 22 +++++++++++++++++----- src/translations/sqlb_es_ES.ts | 18 ++++++++++++++---- src/translations/sqlb_fr.ts | 30 +++++++++++++++++++++++++----- src/translations/sqlb_ko_KR.ts | 30 +++++++++++++++++++++++++----- src/translations/sqlb_pl.ts | 18 +++++++++++++++--- src/translations/sqlb_pt_BR.ts | 26 ++++++++++++++++++-------- src/translations/sqlb_ru.ts | 30 +++++++++++++++++++++++++----- src/translations/sqlb_tr.ts | 30 +++++++++++++++++++++++++----- src/translations/sqlb_uk_UA.ts | 30 +++++++++++++++++++++++++----- src/translations/sqlb_zh.ts | 18 +++++++++++++++--- src/translations/sqlb_zh_TW.ts | 18 +++++++++++++++--- 14 files changed, 276 insertions(+), 64 deletions(-) diff --git a/src/translations/sqlb_ar_SA.ts b/src/translations/sqlb_ar_SA.ts index c75664cce..8302fa90f 100644 --- a/src/translations/sqlb_ar_SA.ts +++ b/src/translations/sqlb_ar_SA.ts @@ -5062,7 +5062,17 @@ Can be set to 0 for disabling completion. عطّل ملحقة العبارات النّمطيّة - + + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> + + + + + Allow loading extensions from SQL code + + + + Remote @@ -5637,12 +5647,14 @@ p, li { white-space: pre-wrap; } - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. +Use of this function must be authorized from Preferences. - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. +Use of this function must be authorized from Preferences. diff --git a/src/translations/sqlb_cs.ts b/src/translations/sqlb_cs.ts index 661f0e9bc..d85702c38 100644 --- a/src/translations/sqlb_cs.ts +++ b/src/translations/sqlb_cs.ts @@ -4969,7 +4969,17 @@ Can be set to 0 for disabling completion. Zakázat rozšíření pro regulární výrazy - + + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> + + + + + Allow loading extensions from SQL code + + + + Remote Vzdálený @@ -5552,13 +5562,15 @@ p, li { white-space: pre-wrap; } - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. - + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. +Use of this function must be authorized from Preferences. + - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. - + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. +Use of this function must be authorized from Preferences. + diff --git a/src/translations/sqlb_de.ts b/src/translations/sqlb_de.ts index 0d375c9f1..27b9fe39a 100644 --- a/src/translations/sqlb_de.ts +++ b/src/translations/sqlb_de.ts @@ -5335,7 +5335,17 @@ Kann auf 0 gesetzt werden, um die Vervollständigung zu deaktivieren.Erweiterung für reguläre Ausdrücke deaktivieren - + + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> + + + + + Allow loading extensions from SQL code + + + + Remote Entfernt @@ -6054,14 +6064,24 @@ p, li { white-space: pre-wrap; } (X,Y,Z) Die like()-Funktion wird als Implementierung des "Y LIKE X ESCAPE Z"-Ausdrucks verwendet. - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. - (X) Die load_extension(X)-Funktion lädt SQLite-Erweiterungen aus der geteilten Bibliotheksdatei mit dem Namen X. + (X) Die load_extension(X)-Funktion lädt SQLite-Erweiterungen aus der geteilten Bibliotheksdatei mit dem Namen X. - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. - (X,Y) Die load_extension(X)-Funktion lädt SQLite-Erweiterungen aus der geteilten Bibliotheksdatei mit dem Namen X unter Verwendung des Eintrittspunktes Y. + (X,Y) Die load_extension(X)-Funktion lädt SQLite-Erweiterungen aus der geteilten Bibliotheksdatei mit dem Namen X unter Verwendung des Eintrittspunktes Y. + + + + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. +Use of this function must be authorized from Preferences. + + + + + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. +Use of this function must be authorized from Preferences. + diff --git a/src/translations/sqlb_en_GB.ts b/src/translations/sqlb_en_GB.ts index 8f2c0d3f7..6ca64bc37 100644 --- a/src/translations/sqlb_en_GB.ts +++ b/src/translations/sqlb_en_GB.ts @@ -4456,7 +4456,17 @@ Can be set to 0 for disabling completion. - + + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> + + + + + Allow loading extensions from SQL code + + + + Remote @@ -4978,13 +4988,15 @@ p, li { white-space: pre-wrap; } - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. - + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. +Use of this function must be authorized from Preferences. + - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. - + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. +Use of this function must be authorized from Preferences. + diff --git a/src/translations/sqlb_es_ES.ts b/src/translations/sqlb_es_ES.ts index 1aa323c70..af65f39a1 100644 --- a/src/translations/sqlb_es_ES.ts +++ b/src/translations/sqlb_es_ES.ts @@ -6052,14 +6052,24 @@ p, li { white-space: pre-wrap; } (X,Y,Z) La función like() se usa para implementar la expresión "Y LIKE X ESCAPE Z". - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. - (X) La función load_extension(X) carga extensiones SQLite del archivo de la biblioteca compartida llamada X. + (X) La función load_extension(X) carga extensiones SQLite del archivo de la biblioteca compartida llamada X. - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. - (X) La función load_extension(X) carga extensiones SQLite del archivo de la biblioteca compartida llamada X usando el punto de entrada Y. + (X) La función load_extension(X) carga extensiones SQLite del archivo de la biblioteca compartida llamada X usando el punto de entrada Y. + + + + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. +Use of this function must be authorized from Preferences. + + + + + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. +Use of this function must be authorized from Preferences. + diff --git a/src/translations/sqlb_fr.ts b/src/translations/sqlb_fr.ts index 2fe4675ae..252dc71d6 100644 --- a/src/translations/sqlb_fr.ts +++ b/src/translations/sqlb_fr.ts @@ -5372,7 +5372,17 @@ Can be set to 0 for disabling completion. Désactiver l'extention "Expression Régulière" - + + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> + + + + + Allow loading extensions from SQL code + + + + Remote Serveur distant @@ -6094,14 +6104,24 @@ p, li { white-space: pre-wrap; } (X, Y, Z) La fonction like() est utilisée pour mettre en œuvre de l’expression « Y LIKE X ESCAPE Z ». - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. - (X) La fonction load_extension(X) charge les extensions SQLite situées en dehors du fichier de bibliothèque partagée nommée X. + (X) La fonction load_extension(X) charge les extensions SQLite situées en dehors du fichier de bibliothèque partagée nommée X. - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. - (X, Y) La fonction load_extension(X) charge les extensions SQLite situées en dehors du fichier de bibliothèque partagée nommée X en utilisant le point d'entrée Y. + (X, Y) La fonction load_extension(X) charge les extensions SQLite situées en dehors du fichier de bibliothèque partagée nommée X en utilisant le point d'entrée Y. + + + + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. +Use of this function must be authorized from Preferences. + + + + + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. +Use of this function must be authorized from Preferences. + diff --git a/src/translations/sqlb_ko_KR.ts b/src/translations/sqlb_ko_KR.ts index 05ed605ae..eb768f639 100644 --- a/src/translations/sqlb_ko_KR.ts +++ b/src/translations/sqlb_ko_KR.ts @@ -5198,7 +5198,17 @@ Can be set to 0 for disabling completion. - + + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> + + + + + Allow loading extensions from SQL code + + + + Remote 원격 @@ -5867,14 +5877,24 @@ p, li { white-space: pre-wrap; } (X,Y,Z) like() 함수는 "Y LIKE X ESCAPE Z" 표현식을 구현하기위해 사용합니다. - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. - (X) load_extention(X) 함수는 SQLite 확장기능을 사용하기 위하여 X라 이름지어진 공유라이브러리 파일을 외부에서 불러올 때 사용합니다. + (X) load_extention(X) 함수는 SQLite 확장기능을 사용하기 위하여 X라 이름지어진 공유라이브러리 파일을 외부에서 불러올 때 사용합니다. - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. - (X, Y) load_extention(X) 함수는 SQLite 확장기능을 사용하기 위하여 X라 이름지어진 공유라이브러리 파일을 엔트리 포인트 Y를 사용하여 외부에서 불러올 때 사용합니다. + (X, Y) load_extention(X) 함수는 SQLite 확장기능을 사용하기 위하여 X라 이름지어진 공유라이브러리 파일을 엔트리 포인트 Y를 사용하여 외부에서 불러올 때 사용합니다. + + + + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. +Use of this function must be authorized from Preferences. + + + + + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. +Use of this function must be authorized from Preferences. + diff --git a/src/translations/sqlb_pl.ts b/src/translations/sqlb_pl.ts index 43e738980..78ac4d5c6 100644 --- a/src/translations/sqlb_pl.ts +++ b/src/translations/sqlb_pl.ts @@ -4582,7 +4582,17 @@ Can be set to 0 for disabling completion. Wyłącz rozszerzenie wyrażeń regularnych - + + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> + + + + + Allow loading extensions from SQL code + + + + Remote Zdalne działania @@ -5106,12 +5116,14 @@ p, li { white-space: pre-wrap; } - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. +Use of this function must be authorized from Preferences. - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. +Use of this function must be authorized from Preferences. diff --git a/src/translations/sqlb_pt_BR.ts b/src/translations/sqlb_pt_BR.ts index df07e4f7c..ddb67f470 100644 --- a/src/translations/sqlb_pt_BR.ts +++ b/src/translations/sqlb_pt_BR.ts @@ -4438,6 +4438,14 @@ All your preferences will be lost and default values will be used. When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. + + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> + + + + Allow loading extensions from SQL code + + QObject @@ -4841,14 +4849,6 @@ p, li { white-space: pre-wrap; } (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. - - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. - - - - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. - - (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. @@ -5041,6 +5041,16 @@ p, li { white-space: pre-wrap; } (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. + + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. +Use of this function must be authorized from Preferences. + + + + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. +Use of this function must be authorized from Preferences. + + SqliteTableModel diff --git a/src/translations/sqlb_ru.ts b/src/translations/sqlb_ru.ts index fa7f5a106..d0324dded 100644 --- a/src/translations/sqlb_ru.ts +++ b/src/translations/sqlb_ru.ts @@ -5068,7 +5068,17 @@ Can be set to 0 for disabling completion. Отключить расширение Регулярных Выражений - + + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> + + + + + Allow loading extensions from SQL code + + + + Remote Удаленный сервер @@ -5641,14 +5651,24 @@ p, li { white-space: pre-wrap; } (X,Y,Z) Функция like() эквивалент выражения "Y LIKE X ESCAPE Z". - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. - (X) Функция load_extension(X) загружает расширение SQLite из файла библиотеки динамической компоновки X. + (X) Функция load_extension(X) загружает расширение SQLite из файла библиотеки динамической компоновки X. - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. - (X,Y) Функция load_extension(X,Y) загружает расширение SQLite из файла библиотеки динамической компоновки X, используя точку входа Y. + (X,Y) Функция load_extension(X,Y) загружает расширение SQLite из файла библиотеки динамической компоновки X, используя точку входа Y. + + + + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. +Use of this function must be authorized from Preferences. + + + + + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. +Use of this function must be authorized from Preferences. + diff --git a/src/translations/sqlb_tr.ts b/src/translations/sqlb_tr.ts index 8495f05f2..7048d1665 100644 --- a/src/translations/sqlb_tr.ts +++ b/src/translations/sqlb_tr.ts @@ -5058,7 +5058,17 @@ Can be set to 0 for disabling completion. - + + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> + + + + + Allow loading extensions from SQL code + + + + Remote @@ -5699,14 +5709,24 @@ p, li { white-space: pre-wrap; } (X,Y,Z) like() fonksiyonu "Y LIKE X ESCAPE Z" ifadesini uygulamak için kullanılır. - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. - (X) load_extension(X) fonksiyonu SQLite eklentilerini paylaşılan kitaplık dışına X ismiyle yükler. + (X) load_extension(X) fonksiyonu SQLite eklentilerini paylaşılan kitaplık dışına X ismiyle yükler. - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. - (X,Y) load_extension(X) fonksiyonu Y başlangıç noktasını kullanarak SQLite eklentilerini paylaşılan kitaplık dışına X ismiyle yükler. + (X,Y) load_extension(X) fonksiyonu Y başlangıç noktasını kullanarak SQLite eklentilerini paylaşılan kitaplık dışına X ismiyle yükler. + + + + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. +Use of this function must be authorized from Preferences. + + + + + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. +Use of this function must be authorized from Preferences. + diff --git a/src/translations/sqlb_uk_UA.ts b/src/translations/sqlb_uk_UA.ts index eb2cd4cef..34174575b 100644 --- a/src/translations/sqlb_uk_UA.ts +++ b/src/translations/sqlb_uk_UA.ts @@ -5308,7 +5308,17 @@ Can be set to 0 for disabling completion. <html><head/><body><p>Оглядач для SQLite дає змогу використовувати оператор REGEXP 'з коробки'. Але попри<br/>це, можливі кілька різних варіантів реалізацій цього оператора й Ви вільні<br/>у виборі, який саме використовувати. Можна відімкнути нашу реалізацію та використовувати іншу -<br/>шляхом завантаження відповідного розширення. В цьому випадку потрібно перезавантажити програму.</p></body></html> - + + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> + + + + + Allow loading extensions from SQL code + + + + Clone databases into Клонувати бази даних до @@ -5923,9 +5933,8 @@ p, li { white-space: pre-wrap; } (X,Y,Z) Функція like() еквівалент вираження "Y LIKE X ESCAPE Z". - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. - (X) Функція load_extension(X) завантажує розширення SQLite з файлу бібліотеки динамічного компонування X. + (X) Функція load_extension(X) завантажує розширення SQLite з файлу бібліотеки динамічного компонування X. (X,Y) The load_extension(X,Y) function loads SQLite extensions out of the shared library file named X using the entry point Y. @@ -5956,9 +5965,20 @@ p, li { white-space: pre-wrap; } (X,Y) функція glob(X,Y) еквівалент вираження "Y GLOB X". - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. - (X,Y) функція load_extension(X) завантажує розширення SQLite з файлу бібліотеки динамічного компонування X використовуючи точку входу Y. + (X,Y) функція load_extension(X) завантажує розширення SQLite з файлу бібліотеки динамічного компонування X використовуючи точку входу Y. + + + + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. +Use of this function must be authorized from Preferences. + + + + + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. +Use of this function must be authorized from Preferences. + diff --git a/src/translations/sqlb_zh.ts b/src/translations/sqlb_zh.ts index 2838fc66a..bb65f28dc 100644 --- a/src/translations/sqlb_zh.ts +++ b/src/translations/sqlb_zh.ts @@ -5109,7 +5109,17 @@ Can be set to 0 for disabling completion. 禁用正则表达式扩展 - + + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> + + + + + Allow loading extensions from SQL code + + + + Remote 远程 @@ -5709,12 +5719,14 @@ p, li { white-space: pre-wrap; } - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. +Use of this function must be authorized from Preferences. - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. +Use of this function must be authorized from Preferences. diff --git a/src/translations/sqlb_zh_TW.ts b/src/translations/sqlb_zh_TW.ts index ece29223b..16475f725 100644 --- a/src/translations/sqlb_zh_TW.ts +++ b/src/translations/sqlb_zh_TW.ts @@ -5032,7 +5032,17 @@ Can be set to 0 for disabling completion. - + + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> + + + + + Allow loading extensions from SQL code + + + + Remote @@ -5704,12 +5714,14 @@ p, li { white-space: pre-wrap; } - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. +Use of this function must be authorized from Preferences. - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. +Use of this function must be authorized from Preferences. From 5c37770c8e5176366e8ed9c121fb4b12a6b2fdab Mon Sep 17 00:00:00 2001 From: Bernardo Sulzbach Date: Sun, 14 Oct 2018 18:21:16 -0300 Subject: [PATCH 007/127] Updated the PT-BR translation --- src/translations/sqlb_pt_BR.ts | 881 +++++++++++++++++---------------- 1 file changed, 468 insertions(+), 413 deletions(-) diff --git a/src/translations/sqlb_pt_BR.ts b/src/translations/sqlb_pt_BR.ts index ddb67f470..a71777d21 100644 --- a/src/translations/sqlb_pt_BR.ts +++ b/src/translations/sqlb_pt_BR.ts @@ -33,85 +33,92 @@ <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - + <html><head/><body><p>DB Browser para SQLite é uma ferramenta de código livre gratuita usada para criar, projetar e editar bancos de dados SQLite.</p><p>Ela é bi-licensiada sob a Mozilla Public License Version 2 e sob a GNU General Public License Version 3 ou posterior. Você pode modificar ou redistribuir ela sob as condições de qualquer uma dessas licenças.</p><p>Veja <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> e <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> para mais detalhes.</p><p>Para mais informações sobre esse programa visite nosso site em: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">Esse software usa o GPL/LGPL Qt Toolkit de </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Veja </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> para termos de licença e informação.</span></p><p><span style=" font-size:small;">Ele também usa o conjunto de ícones Silk por Mark James licenciado sob a Creative Commons Attribution 2.5 e 3.0.<br/>Veja </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> para detalhes.</span></p></body></html> (based on SQLite %1) - + (baseado no SQLite %1) AddRecordDialog Add New Record - + Adicionar Novo Registro Enter values for the new record considering constraints. Fields in bold are mandatory. - + Entre valores para o novo registro considerando as restriões. Campos em negrito são obrigatórios. In the Value column you can specify the value for the field identified in the Name column. The Type column indicates the type of the field. Default values are displayed in the same style as NULL values. - + Na coluna Valor você pode especificar o valor para o campo identificado na coluna Nome. A coluna Tipo indica qual o tipo do campo. Valores padrão são exibidos no mesmo estilo que valores nulos. Name - Nome + Nome Type - Tipo + Tipo Value - + Valor Values to insert. Pre-filled default values are inserted automatically unless they are changed. - + Valores para inserir. Valores padrão pré-preenchidos são inseridos automaticamente a não ser que sejam alterados. When you edit the values in the upper frame, the SQL query for inserting this new record is shown here. You can edit manually the query before saving. - + Quando você edita os valores no frame acima, a consulta SQL para inserir esse novo registro é exibida aqui. Você pode editar manualmente a consulta antes de salvar. <html><head/><body><p><span style=" font-weight:600;">Save</span> will submit the shown SQL statement to the database for inserting the new record.</p><p><span style=" font-weight:600;">Restore Defaults</span> will restore the initial values in the <span style=" font-weight:600;">Value</span> column.</p><p><span style=" font-weight:600;">Cancel</span> will close this dialog without executing the query.</p></body></html> - + <html><head/><body><p><span style=" font-weight:600;">Salvar</span> irá enviar o comando SQL exibido para o banco de dados para a inserção do novo registro.</p><p><span style=" font-weight:600;">Restaurar Padrões</span> irá restaurar os valores iniciais na coluna <span style=" font-weight:600;">Valor</span>.</p><p><span style=" font-weight:600;">Cancelar</span> irá fechar esse diálogo sem executar a consulta.</p></body></html> Auto-increment - + Auto-incremento + Unique constraint - + Restrição de unicidade + Check constraint: %1 - + Restrição de condição %1 + Foreign key: %1 - + Chave estrangeira: %1 + Default value: %1 - + Valor padrão: %1 + Error adding record. Message from database engine: %1 - + Erro adicionando registro. Mensagem do banco de dados: + +%1 Are you sure you want to restore all the entered values to their defaults? - + Você tem certeza que deseja restaurar todos os valores inseridos para os seus valores padrão? @@ -119,7 +126,8 @@ Usage: %1 [options] [db] - Uso: %1 [opções] [bd] + Uso: %1 [opções] [bd] + Possible command line arguments: @@ -167,15 +175,15 @@ -v, --version Display the current version - + -v, -versão Exibir a versão atual -R, --read-only Open database in read-only mode - + -R, --somente-leitura Abrir o banco de dados em modo somente leitura This is DB Browser for SQLite version %1. - + Este é o DB Browser para SQLite versão %1. @@ -307,15 +315,15 @@ O processo de encriptação pode demorar alguns minutos e você deve ter um back Java epoch (milliseconds) to date - + Época Java (ms) para data Unix epoch to local time - + Época Unix para tempo local Date as dd/mm/yyyy - + Data como dd/mm/yyyy @@ -453,39 +461,39 @@ Aborting execution%3. This database has already been attached. Its schema name is '%1'. - + Esse banco de dados já foi anexado. O seu nome de esquema e '%1'. Do you really want to close this temporary database? All data will be lost. - + Você realmente quer fechar esse banco de dados temporário? Todos os dados serão perdidos. The database is currently busy: - + O banco de dados está ocupado: Do you want to abort that other operation? - + Você quer abortar a outra operação? No database file opened - + Não há um arquivo de banco de dados aberto Cannot delete this object - + Não pode deletar esse objeto A table with the name '%1' already exists in schema '%2'. - + Uma tabela com o nome '%1' já existe no schema '%2'. could not get list of databases: %1 - + não pôde obter a lista de bancos de dados: %1 Error loading extension: %1 - Erro carregado extensão: %1 + Erro carregado extensão: %1 @@ -532,15 +540,15 @@ Aborting execution%3. Database - + Banco de dados Browsables - + Navegáveis Temporary - + Temporário @@ -701,165 +709,167 @@ Aborting execution%3. This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. - + Essa é a lista de modos suportados pelo editor de célula. Escolha um modo para visualizar ou editar os dados da célula atual. JSON - + JSON XML - + XML Automatically adjust the editor mode to the loaded data type - + Automaticamente ajustar o modo do editor para o tipo de dado carregado This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. - + Esse botão assinalável ativa ou desativa a troca automática do modo do editor. Quando uma nova célula é selecionado ou novos dados são importados e a troca automática está habilitada, o modo ajusta para o tipo detectado. Você pode então mudar o modo do editor manualmente. Se você quer manter o modo manualmente escolhido enquanto movendo pelas células, desmarque essa opção. Auto-switch - + Auto-trocar Auto-format: pretty print on loading, compact on saving. - + Auto-formatar: exibir formatado ao carregar, compactar ao salvar. When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. - + Quando ativado, a funcionalidade de auto-formatar formata os dados ao carregar, quebrando o texto em linhas e indentando ele para melhor legibilidade. Ao salvar os dados, o auto-formatador compacta os dados removendo espaços em branco desnecessários. Autoformat - + Autoformatar Import from file - + Importar do arquivo Opens a file dialog used to import any kind of data to this database cell. - + Abre um seletor de arquivos usado para importar qualquer tipo de dado para essa célula. Export to file - + Exportar para arquivo Opens a file dialog used to export the contents of this database cell to a file. - + Abre um seletor de arquivo para exportar os conteúdos dessa célula para um arquivo. This editor mode lets you edit JSON or XML data with syntax highlighting, automatic formatting and validation before saving. Errors are indicated with a red squiggle underline. - + Esse modo de editor deixa você editar JSON ou XML com realce de sintaxe, formatação automática e validação antes de salvar. + +Erros são indicados com um ondulado vermelho. Apply data to cell [Ctrl+Return] - + Aplicar dados à célula [Ctrl+Enter] This button saves the changes performed in the cell editor to the database cell. - + Esse botão salva as modificações realizadas no editor da célula para a célula do banco de dados. Image data can't be viewed in this mode. - + Dados de imagem não podem ser visualizados nesse modo. Try switching to Image or Binary mode. - + Tente mudar para modo de Imagem ou Binário. Binary data can't be viewed in this mode. - + Dados binários não podem ser visualizados nesse modo. Try switching to Binary mode. - + Tente mudar para modo binário. Text files (*.txt) - + Arquivos texto (*.txt) JSON files (*.json) - + Arquivos JSON (*.json) XML files (*.xml) - + Arquivos XML (*.xml) Image files (%1) - + Arquivos de imagem (%1) Binary files (*.bin) - + Arquivos binários (*.bin) All files (*) - + Todos arquivos (*) Choose a file to import - Escolha um arquivo para importar + Escolha um arquivo para importar %1 Image - + %1 Imagem SVG files (*.svg) - + Arquivos SVG (*.svg) Invalid data for this mode - + Dados inválidos para esse modo The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? - + A célula contém dados inválidos %1. Motivo: %2. Você realmente quer aplicar isso? Type of data currently in cell: Valid JSON - + Tipo de dados atualmente na célula: JSON válido Print... - + Imprimir... Open preview dialog for printing displayed image - + Abrir diálogo de prévia para imprimir imagem exibida Ctrl+P - Ctrl+P + Ctrl+P Open preview dialog for printing displayed text - + Abrir diálogo de prévia para imprimir texto exibido Copy Hex and ASCII - + Copiar Hex e ASCII Copy selected hexadecimal and ASCII columns to the clipboard - + Copiar colunas hexadecimal e ASCII selecionadas para a área de transferência Ctrl+Shift+C - + Ctrl+Shift+C Hex dump files (*.txt) - + Arquivos de dump hexadecimal (*.txt) @@ -1134,20 +1144,21 @@ Todos os dados atualmente armazenados nesse campo serão perdidos. <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> - + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Alerta: </span>Nosso parser não entende algo dessa definição de tabela. Modificar e salvar essa tabela pode causar problemas.</p></body></html> Database schema - + Esquema do banco de dados NN - + NN Changing the table schema failed. Error message: %1 - + Modificar o esquema falhou. Erro: +%1 @@ -1262,11 +1273,11 @@ Todos os dados atualmente armazenados nesse campo serão perdidos. exporting CSV - + exporando CSV exporting JSON - + exportando JSON @@ -1349,26 +1360,26 @@ Todos os dados atualmente armazenados nesse campo serão perdidos. Please select at least one table. - + Por favor selecione pelo menos uma tabela. ExtendedScintilla Ctrl+H - + Ctrl+H Ctrl+P - Ctrl+P + Ctrl+P Find and Replace... - + Encontrar e Substituir... Print... - + Imprimir... @@ -1399,63 +1410,63 @@ Deseja inserir mesmo assim? Use as Exact Filter - + Usar como Filtro Exato Containing - + Contendo Not equal to - + Diferente de Greater than - + Maior que Less than - + Menor que Greater or equal - + Maior ou igual a Less or equal - + Menor ou igual a Between this and... - + Entre isso e... Copy with Headers - + Copiar com Cabeçalhos Copy as SQL - + Copiar como SQL Print... - + Imprimir... Use in Filter Expression - + Usar na expressão de filtro Alt+Del - + Alt+Del Ctrl+Shift+C - + Ctrl+Shift+C Ctrl+Alt+C - + Ctrl+Alt+C @@ -1469,35 +1480,35 @@ Deseja inserir mesmo assim? FileExtensionManager File Extension Manager - + Gerenciador de extensão de arquivo &Up - + &Subir &Down - + &Descer &Add - + &Adicionar &Remove - + &Remover Description - + Descrição Extensions - + Extensões *.extension - + *.extensão @@ -1518,158 +1529,168 @@ The following operators are also supported: = Equal to: exact match <> Unequal: exact inverse match x~y Range: values between x and y - + Esses campos de entrada permitem você realizar filtros rápidos na tabela atualmente selecionada. +Por padrão, as linhas contendo o texto de entrada são filtradas. +Os seguintes operadores também são suportados: +% Curinga +> Maior que +< Menor que +>= Igual a ou maior que +<= Igual a ou menor que += Igual a +<> Diferente +x~y Intervalo: valores entre x e y Set Filter Expression - + Definir expressão de filtro What's This? - O que é isso? + O que é isso? Is NULL - + É NULL Is not NULL - + Não é NULL Is empty - + É vazio Is not empty - + Não é vazio Equal to... - + Igual a... Not equal to... - + Diferente de... Greater than... - + Maior que... Less than... - + Menor que... Greater or equal... - + Maior ou igual... Less or equal... - + Menor ou igual... In range... - + No intervalo... FindReplaceDialog Find and Replace - + Encontrar e substituir Fi&nd text: - + E&ncontrar texto: Re&place with: - + Su&bstituir com: Match &exact case - + Casar caixa &exata Match &only whole words - + Casar s&omente palavras inteiras When enabled, the search continues from the other end when it reaches one end of the page - + Quando ativado, a busca continua do outro fim quando ela atinge um fim da página &Wrap around - + &Envolver em torno When set, the search goes backwards from cursor position, otherwise it goes forward - + Quando ativado, a busca retrocede a partir do cursor em vez de ir para frente Search &backwards - + Buscar para &trás <html><head/><body><p>When checked, the pattern to find is interpreted as a UNIX regular expression. See <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>.</p></body></html> - + <html><head/><body><p>Quando selecionado, o padrão a ser encontrado é interpretado como uma expressão regular UNIX. Veja <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression nos Wikibooks</a>.</p></body></html> Use regular e&xpressions - + Usar e&xpressões regulares Find the next occurrence from the cursor position and in the direction set by "Search backwards" - + Encontrar a próxima ocorrência a partir da posição do cursor na direção selecionada por "Buscar para trás" &Find Next - + &Encontrar próximo &Replace - + &Substituir Highlight all the occurrences of the text in the page - + Realçar todas as ocorrências do texto na página F&ind All - + Encontrar &todos Replace all the occurrences of the text in the page - + Substituir todas as ocorrências do texto na página Replace &All - + Substituir &todos The searched text was not found - + O texto procurado não foi encontrado The searched text was not found. - + O texto procurado não foi encontrado. The searched text was found one time. - + O texto procurado foi encontrado uma vez. The searched text was found %1 times. - + O texto procurado foi encontrado %1 vezes. The searched text was replaced one time. - + O texto procurado foi substituído uma vez. The searched text was replaced %1 times. - + O texto procurado foi substituído %1 vezes. @@ -1684,7 +1705,7 @@ x~y Range: values between x and y Foreign key clauses (ON UPDATE, ON DELETE etc.) - + Cláusulas de chave estrangeira (ON UPDATE, ON DELETE etc.) @@ -1807,55 +1828,55 @@ x~y Range: values between x and y Table na&me - + No&me da tabela Advanced - Avançado + Avançado When importing an empty value from the CSV file into an existing table with a default value for this column, that default value is inserted. Activate this option to insert an empty value instead. - + Quando importando um valor em branco do arquivo CSV em uma tabela existente com um valor padrão para essa coluna, aquele valor padrão é inserido. Ative essa opção para inserir um valor em branco em vez. Ignore default &values - + Ignorar &valores padrão Activate this option to stop the import when trying to import an empty value into a NOT NULL column without a default value. - + Ative essa opção para parar a importação quando tentando importar um valor em branco em uma coluna NOT NULL sem um valor padrão. Fail on missing values - + Falhar em valores faltando Disable data type detection - + Desativar detecção de tipo de dados Disable the automatic data type detection when creating a new table. - + Desativa a detecção automática de tipo de dados quando criando uma nova tabela. Import completed - Importação completa + Importação completa There is already a table named '%1' and an import into an existing table is only possible if the number of columns match. - + Já existe uma tabela chamada '%1' e uma importação em uma tabela existente só é possível se o número de colunas bate. There is already a table named '%1'. Do you want to import the data into it? - + Já existe uma tabela chamada '%1'. Você quer importar os dados nela? importing CSV - + Importando CSV Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. - + Importando o arquivo '%1' levou %2 ms. Desses, %3 ms foram gastos na função da linha. @@ -3114,58 +3135,61 @@ Motivo: %1 Scroll one page upwards - + Rolar uma página para cima <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> - + <html><head/><body><p>Clicando nesse botão navega uma página de registros para cima.</p></body></html> Scroll one page downwards - + Rolar uma página para baixo <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> - + <html><head/><body><p>Clicando nesse botão navega uma página de registros para baixo.</p></body></html> Setting PRAGMA values or vacuuming will commit your current transaction. Are you sure? - + Definir valores de PRAGMA ou fazer vacuum irá commitar sua transação atual. +Deseja continuar? This is the structure of the opened database. You can drag SQL statements from an object row and drop them into other applications or into another instance of 'DB Browser for SQLite'. - + Essa é a estrutura do banco de dados aberto. +Você pode arrastar comandos SQL de uma linha e soltá-los em outras aplicações ou em outra instância do DB Browser para SQLite. + Refresh the data in the selected table [F5, Ctrl+R] - + Atualizar os dados na tabela selecionada [F5, Ctrl+R] This button clears all the filters set in the header input fields for the currently browsed table. - + Esse botão limpa todos os filtros definidos no cabeçalho para a tabela atualmente navegada. Save the table as currently displayed - + Salva a tabela como atualmente exibida <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> - + <html><head/><body><p>Esse Menu provê as seguintes opções para a tabela atual:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Exportar para CSV: essa opção exporta os dados como estão exibidos para um arquivo CSV.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Salvar como vista: essa opção salva a configuração atual da tabela como uma vista SQL que você depois pode consultar em comandos SQL.</li></ul></body></html> ... - ... + ... <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> - + <html><head/><body><p>Esse botão cria um novo registro no banco de dados. Segure o botão do mouse para abrir um menu de opções diferentes:</p><ul><li><span style=" font-weight:600;">Novo Registro</span>: insere um novo registro com valores padrão no banco de dados.</li><li><span style=" font-weight:600;">Inserir Valores...</span>: abre um diálogo para novos valores antes de serem inseridos no banco de dados. Isso permite a entrada de valores de acordo com as restrições. Esse diálogo também é abaerto se a opção<span style=" font-weight:600;">Novo Registro</span> falha devido a essas restrições.</li></ul></body></html> This button deletes the record or records currently selected in the table - + Esse botão deleta o registro ou registros selecionados This is the database table view. You can do the following actions: @@ -3175,521 +3199,538 @@ You can drag SQL statements from an object row and drop them into other applicat - Ctrl+" for duplicating the current record. - Ctrl+' for copying the value from the cell above. - Standard selection and copy/paste operations. - + Essa é a vista de tabela do banco de dados. Você pode fazer as seguintes ações: + - Começar a escrever para editar o valor. + - Clicar duas vezes em qualquer registro para editar seus conteúdos no editor de célula. + - Alt+Del para deletar o conteúdo da célula para NULL. + - Ctrl+" para duplicar o registro atual. + - Ctrl+' para copiar o valor da célula de cima. + - Seleção normal para copiar e colar. <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - + <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. - + Alerta: esse pragma não é legível e esse valor foi inferido. Escrever o pragma pode sobrescrever um LIKE redefinido provido por uma extensão SQL. &Tools - + Ferramen&tas This button clears the contents of the SQL logs - + Esse botão limpa os logs do SQL This panel lets you examine a log of all SQL commands issued by the application or by yourself - + Esse painel deixa você examinar um log de todos os comandos SQL dados pela aplicação ou por você This is the structure of the opened database. You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. - + Essa é a estrutura do banco de dados aberto. +Você pode arrastar múltiplos nomes de objetos da coluna Nome e largá-los no editor SQL e você pode ajustar as propriedades dos nomes largados usando o menu de contexto. Isso ajudaria você a compor comandos SQL. +Você pode arrastar comandos SQL da coluna Schema e largá-los no editor SQL ou em outras aplicações. + Project Toolbar - + Barra de ferramentas do projeto Extra DB toolbar - + Barra de ferramentas do banco de dados extra Close the current database file - + Fechar o arquivo de banco de dados aberto This button closes the connection to the currently open database file - + Esse botão fecha a conexão com o arquivo aberto Compact &Database... - + Compactar banco de &dados... &About - + &Sobre This button opens a new tab for the SQL editor - + Esse botão abre uma nova aba para o editor SQL Execute all/selected SQL [F5, Ctrl+Return, Ctrl+R] - + Executar todo/selecionado SQL [F5, Ctrl+Enter, Ctrl+R] This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. - + Esse botão executa o SQL selecionado. Se não existe SQL selecionado, todo o SQL é executado. This button opens a file containing SQL statements and loads it in a new editor tab - + Esse botão abre um arquivo contendo SQL e carrega ele numa nova aba do editor &Load Extension... - + &Carregar extensão... This button executes the SQL statement present in the current editor line - + Esse botão executa o comando SQL presente na linha atual do editor &Wiki - + &Wiki Bug &Report... - + &Reportar bug... Feature Re&quest... - + Re&quisitar feature... Web&site - + &Site &Donate on Patreon... - + &Doar no Patreon... Sa&ve Project... - + Sal&var projeto... This button lets you save all the settings associated to the open DB to a DB4S project file - + Esse botão deixa você salvar todas as configurações associadas ao banco de dados aberto a um projeto do DB4S Open &Project... - + Abrir &Projeto... This button lets you open a DB4S project file - + Esse botão deixa você abrir um projeto do DB4S &Attach Database... - + &Anexar banco de dados... Add another database file to the current database connection - + Adiciona outro arquivo de banco de dados para a conexão atual This button lets you add another database file to the current database connection - + Esse botão deixa você adicionar outro banco de dados para a conexão atual com o banco de dados &Set Encryption... - + Definir en&criptação... This button saves the content of the current SQL editor tab to a file - + Esse botão salva o conteúdo do editor SQL para um arquivo SQLCipher &FAQ - + &FAQ do SQLCipher Table(&s) to JSON... - + Tabela(&s) para JSON... Open Data&base Read Only... - + Abrir &banco de dados somente leitura... Save results - + Salvar resultados Save the results view - + Salvar a vista de resultados This button lets you save the results of the last executed query - + Esse botão deixa você salvar os resultados da última consulta executada Find text in SQL editor - + Encontrar texto no editor SQL Find text in SQL editor [Ctrl+F] - + Encontrar texto no editor SQL [Ctrl+F] This button opens the search bar of the editor - + Esse botão abre a barra de busca do editor Ctrl+F - + Ctrl+F Find or replace text in SQL editor - + Encontrar ou substituir texto no editor SQL Find or replace text in SQL editor [Ctrl+H] - + Encontrar ou substituir texto no editor SQL [Ctrl+H] This button opens the find/replace dialog for the current editor tab - + Esse botão abre o diálogo de encontrar/substituir para a aba atual do editor Export to &CSV - Exportar para &CSV + Exportar para &CSV Save as &view - Salvar como &vista + Salvar como &vista Save as view - Salvar como vista + Salvar como vista Hide column(s) - + Ocultar coluna(s) Hide selected column(s) - + Ocultar coluna(s) selecionada(s) Show all columns - + Mostrar todas as colunas Show all columns that were hidden - + Mostrar todas as colunas ocultas Shows or hides the Project toolbar. - + Mostra ou oculta a barra de ferramentos do Projeto. Extra DB Toolbar - + Barra de ferramentas do banco de dados extra Export the filtered data to CSV - + Exportar dados filtrados para CSV This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. - + Esse botão exporta os dados da tabela como atualmente exibidos como um arquivo CSV. Save the current filter, sort column and display formats as a view - + Salva o filtro, ordenação e formato como uma vista This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. - + Esse botão salva as configurações da tabela exibida como uma vista SQL que você pode utilizar em comandos SQL depois. Insert Values... - + Inserir Valores... Open a dialog for inserting values in a new record - + Abre um diálogo para inserir valores em um novo registro Insert new record using default values in browsed table - + Inserir novo registro usando valores padrão na tabela New In-&Memory Database - + Nova tabela em &memória Drag && Drop Qualified Names - + Arrastar e Soltar Nomes Qualificados Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor - + Use nomes qualificados (p.e. "Tabela"."Campo") quando arrastando objetos e soltando eles no editor Drag && Drop Enquoted Names - + Arrastar e Soltar Nomes Entre Áspas Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor - + Use identificadores escapados (p.e. "Tabela1") quando arrastando e soltando objetos no editor &Integrity Check - + Teste de &Integridade Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. - + Roda o teste de integridade sobre o banco de dados aberto e retorna os resultados na aba Executar SQL. &Foreign-Key Check - + Teste de chave &estrangeira Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab - + Roda o teste de chave estrangeira sobre o banco de dados aberto e retorna os resultados na aba Executar SQL &Quick Integrity Check - + Teste de integridade &rápido Run a quick integrity check over the open DB - + Roda um teste de integridade rápido sobre o banco de dados aberto Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. - + Roda um outro pragma para a verificação de integridade do banco de dados. Faz quase tantos testes quando o outro PRAGMA mas executa muito mais rápido. &Optimize - + &Otimizar Attempt to optimize the database - + Tenta otimizar o banco de dados Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. - + Roda o pragma de otimização sobre o banco de dados aberto. Esse pragma pode realizar otimizações que vão melhorar a performance de consultas futuras. Print - + Imprimir Print text from current SQL editor tab [Ctrl+P] - + Imprimir texto do editor SQL [Ctrl+P] Open a dialog for printing the text in the current SQL editor tab - + Abre um diálogo para imprimir o texto na aba atual do editor SQL Print the structure of the opened database [Ctrl+P] - + Imprime a estrutura do banco de dados aberto [Ctrl+P] Open a dialog for printing the structure of the opened database - + Abre um diálogo para imprimir a estrutura do banco de dados aberto In-Memory database - + Banco de dados em memória determining row count... - + determinando número de linhas... %1 - %2 of >= %3 - + %1 - %2 de >= %3 Are you sure you want to delete the table '%1'? All data associated with the table will be lost. - + Você tem certeza de que deseja deletar a tabela '%1'? +Todos os dados associados com a tabela serão perdidos. Are you sure you want to delete the view '%1'? - + Você tem certeza que deseja deletar a vista '%1'? Are you sure you want to delete the trigger '%1'? - + Você tem certeza que deseja deletar o gatilho '%1'? Are you sure you want to delete the index '%1'? - + Você tem certeza que deseja deletar o índice '%1'? Error: could not delete the table. - + Erro: não pôde deletar a tabela. Error: could not delete the view. - + Erro: não pôde deletar a vista. Error: could not delete the trigger. - + Erro: não pôde deletar o gatilho. Error: could not delete the index. - + Erro: não pôde deletar o índice. Message from database engine: %1 - + Mensagem do banco de dados: +%1 Editing the table requires to save all pending changes now. Are you sure you want to save the database? - + Editar a tabela requer salvar todas as mudanças pendentes agora. +Você tem certeza que quer salvar o banco de dados? -- EXECUTING SELECTION IN '%1' -- - + -- EXECUTANDO SELEÇÃO EM '%1' +-- -- EXECUTING LINE IN '%1' -- - + -- EXECUTANDO LINHA EM '%1' +-- -- EXECUTING ALL IN '%1' -- - + -- EXECUTANDO TUDO EM '%1' +-- executing query - + executando consulta %1 rows returned in %2ms - + %1 linhas retornadas em %2 ms query executed successfully. Took %1ms%2 - + consulta executada com sucesso. Levou %1 ms%2 -- At line %1: %4 -- Result: %3 - + -- Na linha %1: +%4 +-- Resultado: %3 Import completed. Some foreign key constraints are violated. Please fix them before saving. - + Importação completa. Algumas chaves estrangeiras são violadas. Por favor corrija-as antes de salvar. Choose a project file to open - + Escolha um arquivo de projeto para abrir This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - + Esse arquivo de projeto está usando um formato de arquivo mais velho porque ele foi criado usando DB Browser para SQLite versão 3.10 ou menor. Esse arquivo é suportado mas nós aconselhamos converter todos os projetos para o novo formato de arquivos porque o suporte para arquivos antigos pode ser abandonado no futuro. Você pode converter seus arquivos simplesmente abrindo e salvando eles. Duplicate records - + Duplicar registros Ctrl+" - + Ctrl+" Collation needed! Proceed? - Função de comparação necessária! Proceder? + Função de comparação necessária! Proceder? A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! - Uma tabela nesse banco de dados requer uma função de comparação especial '%1' que esse aplicativo não pode prover. + Uma tabela nesse banco de dados requer uma função de comparação especial '%1' que esse aplicativo não pode prover. So você optar por proceder, esteja avisado de que coisas ruins podem acontecer para o seu banco de dados. Faça um backup! creating collation - + criando função de comparação Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. - + Defina um novo nome para a aba de SQL. Use o caractere '&&' para poder usar o seguinte caractere como um atalho de teclado. Please specify the view name - Por favor, especifique o nome da vista + Por favor, especifique o nome da vista There is already an object with that name. Please choose a different name. - Já existe um objeto com esse nome. Por favor, escolha um nome diferente. + Já existe um objeto com esse nome. Por favor, escolha um nome diferente. View successfully created. - Vista criada com sucesso. + Vista criada com sucesso. Error creating view: %1 - Erro criando vista: %1 + Erro criando vista: %1 There is no filter set for this table. View will not be created. - + Não há filtro para essa tabela. Vista não será criada. Delete Records - + Deletar Registros This action will open a new SQL tab for running: - + Essa ação irá abrir uma nova aba SQL para rodar: Press Help for opening the corresponding SQLite reference page. - + Pressione Help para abrir a página de referência SQL correspondente. Print currrently browsed table data [Ctrl+P] - + Imprimir dados da tabela atual [Ctrl+P] Print currrently browsed table data. Print selection if more than one cell is selected. - + Imprimir dados da tabela atual. Imprime a seleção se mais de uma célula está selecionada. Error checking foreign keys after table modification. The changes will be reverted. - + Erro verificando as chaves estrangeiras após modificação. Mudanças serão revertidas. This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. - + Essa tabela não passou um teste de chave estrangeira.<br/>Você deveria rodar 'Ferramentas | Teste de Chave Estrangeira| e corrigir os problemas reportados. NullLineEdit Set to NULL - Definir como NULL + Definir como NULL Alt+Del - + Alt+Del @@ -3840,11 +3881,11 @@ Faça um backup! <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> - + <html><head/><body><p>Esse painel mostra a lista de colunas da tabela atualmente exibida ou a consulta recém executada. Você pode selecionar as colunas que você quer que sejam utilizadas como os eixos X e Y para o painel de plotagem abaixo. A tabela mostra o tipo detectado de exio que será utilizado na plotagem. For o eixo Y você só pode selecionar colunas numéricas, mas para o eixo X você pode selecionar:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Data/Hora</span>: strings com o formato &quot;yyyy-MM-dd hh:mm:ss&quot; ou &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Data</span>: strings com o formato &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Hora</span>: strings com o formato &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Rótulo</span>: outros formatos de string. Selecionando essa coluna como X vai produzir um gráfico de barras com as colunas como rótulos para as barras</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numérico</span>: valores inteiros ou reais</li></ul><p>Clicando duas vezes nas células Y você pode mudar a cor usada para aquele gráfico.</p></body></html> Axis Type - + Tipo do eixo Here is a plot drawn when you select the x and y values above. @@ -3854,64 +3895,71 @@ Click on points to select them in the plot and in the table. Ctrl+Click for sele Use mouse-wheel for zooming and mouse drag for changing the axis range. Select the axes or axes labels to drag and zoom only in that orientation. - + Aqui está um gráfico feito quando você seleciona os valores X e Y acima. + +Clique nos pontos para selecioná-los no gráfico e na tabela. Ctrl+Clique para selecionar um intervalo de pontos. + +Use o scroll do mouse para dar zoom e arraste o mouse para alterar o intervalo dos eixos. + +Selecione os eixos ou rótulos dos eixos para arrastar e dar zoom somente naquela orientação. Load all data and redraw plot - + Carregar todos os dados e plotar de novo Copy - Copiar + Copiar Show legend - + Mostrar legenda Stacked bars - + Barras empilhadas Date/Time - + Data/Hora Date - + Data Time - + Hora Numeric - + Numérico Label - + Rótulo Invalid - + Inválido Load all data and redraw plot. Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. - + Carregar todos os dados e plotar de novo. +Aviso: nem todos os dados foram obtidos da tabela ainda devido ao mecanismo de obtenção parcial. Choose an axis color - + Escolher a cor do eixo There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. - + Existem curvas nesse gráfico e o estilo de linha selecionado só pode ser aplicado para gráficos ordenados por X. Ou ordene a tabela ou consulte por X para remover curvas ou selecione um dos estilos suportados por curvas: Nenhum ou Linha. Print... - + Imprimir... @@ -4306,137 +4354,139 @@ Warning: not all data has been fetched from the table yet due to the partial fet Toolbar style - + Estilo da barra de ferramentas Only display the icon - + Exibir apenas o ícone Only display the text - + Exibir apenas o texto The text appears beside the icon - + O texto aparece ao lado do ícone The text appears under the icon - + O texto aparece sob o ícone Follow the style - + Seguir o estilo DB file extensions - + Extensões de arquivo de bancos de dados Manage - + Gerenciar Font si&ze - + &Tamanho da fonte This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. - + Esse é o número máximo de linhas na tabela para preencher baseado nos valores atualmente na coluna. +Pode ser 0 para desabilitar preenchimento. Row count threshold for completion - + Limite de contagem de linhas para preencher Field display - + Exibição do campo Displayed &text - + &Texto exibido Text color - + Cor do texto Background color - + Cor do plano de fundo Preview only (N/A) - + Somente prévia (N/D) Foreground - + Plano de frente SQL &results font size - + Tamanho da fonte dos &resultados do SQL &Wrap lines - + &Quebra de linhas Never - + Nunca At word boundaries - + Nos limites de palavras At character boundaries - + Nos limites de caractere At whitespace boundaries - + Nos limites de espaço em branco &Quotes for identifiers - + Áspas &para identificadores Choose the quoting mechanism used by the application for identifiers in SQL code. - + Escolha as áspas utilizadas pela aplicação para identificadores no código SQL. "Double quotes" - Standard SQL (recommended) - + "Áspas duplas" - SQL Padrão (recomendado) `Grave accents` - Traditional MySQL quotes - + `Crases`- MySQL tradicional [Square brackets] - Traditional MS SQL Server quotes - + [Colchetes] - MS SQL Server tradicional Keywords in &UPPER CASE - + Palavras-chave em &CAIXA ALTA When set, the SQL keywords are completed in UPPER CASE letters. - + Quando definido, as palavras-chave SQL serão completadas em CAIXA ALTA. When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background - + Quando definido, as linhas de código SQL que causaram erros durante a última execução são destacadas e os resultados indicam os erros no fundo Are you sure you want to clear all the saved settings? All your preferences will be lost and default values will be used. - + Você tem certeza que deseja limpar as configurações salvas? +Todas as suas preferências serão perdidas e os valores padrão serão utilizados. When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. - + Quando ativado, as quebras de linha na coluna Schema da aba Estruturas do BD e nas saídas impressas são removidas. <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> @@ -4489,15 +4539,15 @@ Faça um backup! All files (*) - + Todos arquivos (*) Importing CSV file... - + Importando arquivo CSV... SQLite database files (*.db *.sqlite *.sqlite3 *.db3) - + Bancos de dados SQLite (*.db *.sqlite *.sqlite3 *.db3) @@ -4561,18 +4611,18 @@ Faça um backup! Uploading remote database to %1 - Enviando banco de dados remoto para -%1. {1?} + Enviando banco de dados remoto para +%1 Downloading remote database from %1 - Baixando banco de dados remoto de -%1. {1?} + Baixando banco de dados remoto de +%1 The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. - + O banco de dados remoto foi atualizado desde o último checkout. Você deseja atualizar o banco de dados local para a versão mais nova? Note que isso descarta quaisquer mudanças que você fez localmente! Se você não quer perder essas alterações, clique Não para abrir a versão local. @@ -4599,15 +4649,15 @@ Faça um backup! Push currently opened database to server - + Enviar o banco de dados aberto para o servidor Connect to the remote server using the currently selected identity. The correct server is taken from the identity as well. - + Conectar com o servidor remoto usando a identidade atualmente selecionada. O servidor correto é obtido a partir da identidade também. <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB4S. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to create a DB4S certificate (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB4S Preferences. Click the button to add a new certificate to DB4S and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - + <html><head/><body><p>Nesse painel, bancos de dados remotos do dbhub.io podem ser adicionados ao DB4S. Primeiro você precisa de uma identidade:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Entre no dbhub.io</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Clique no botão para criar um certificado do DB4S (a sua identidade). Isso irá dar um arquivo de certificado que você deve salvar para o disco local</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Vá para a aba Remoto nas preferências do DB4S. Clique o botão para adicionar um novo certificado ao DB4S e escolha o arquivo recém baixado.</li></ol><p>Agora o painel Remoto mostra a sua identidade e você pode adicionar bancos de dados remotos.</p></body></html> @@ -4634,22 +4684,22 @@ Faça um backup! Commit - + Commit RemotePushDialog Push database - + Enviar banco de dados Database na&me to push to - + No&me do banco de dados para enviar Commit message - + Mensagem de commit <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> @@ -4657,39 +4707,43 @@ Faça um backup! p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> Database licence - + Licença do banco de dados Public - + Público Database will be public. Everyone has read access to it. - + Banco de dados será público. Todos poderão lê-lo. Database will be private. Only you have access to it. - + Banco de dados será privado. Somente você terá acesso a ele. Unspecified - + Não especificado Branch - + Ramo Force push - + Forçar envio Use with care. This can cause remote commits to be deleted. - + Use com cuidado. Isso pode causar a perda de commits remotos. @@ -4736,67 +4790,67 @@ p, li { white-space: pre-wrap; } Find previous match [Shift+F3] - + Encontrar resultado anterior [Shift+F3] Find previous match with mapping - + Encontrar resultado anterior com mapeamento Shift+F3 - Shift+F3 + Shift+F3 The found pattern must be a whole word - + O padrão encontrado precisa ser uma palavra inteira Whole Words - + Palavras Inteiras Text pattern to find considering the checks in this frame - + Padrão de texto para encontrar considerando os testes nesse frame Find in editor - + Encontrar no editor The found pattern must match in letter case - + O padrão encontrado precisa casar em capitalização Case Sensitive - + Sensível à capitalização Find next match [Enter, F3] - + Encontrar próxima correspondência [Enter, F3] Find next match with wrapping - + Encontrar próxima correspondência no arquivo inteiro F3 - F3 + F3 Interpret search pattern as a regular expression - + Interpretar padrão de busca como expressão regular <html><head/><body><p>When checked, the pattern to find is interpreted as a UNIX regular expression. See <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>.</p></body></html> - + <html><head/><body><p>Quando assinalado, o padrão a ser buscado é interpretado como uma expressão regular UNIX. Veja <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression nos Wikibooks</a>.</p></body></html> Regular Expression - + Expressão Regular Close Find Bar - + Fechar barra de busca @@ -4987,59 +5041,59 @@ p, li { white-space: pre-wrap; } () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. - + () O número de linhas dentro da partição atual. Linhas são numeradas de 1 na ordem definida pela cláusula ORDER BY na definição da janela, ou de forma arbitrária. () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. - + () O row_number() do primeiro elemento de cada grupo - o rank da linha atual com gaps. Se não há uma cláusula ORDER BY, então todas as linhas são consideradas elementos e essa função sempre retorna 1. () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. - + () O número do grupo de colegas da linha atual dentro da sua partição - o rank da linha atual sem intervalos. Partições são numeradas a partir de 1 na ordem definida pela cláusula ORDER BY na definição. Se não há ORDER BY, então todas as linhas são consideradas colegas e essa função sempre retorna 1. () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. - + () Apesar do nome, essa função sempre retorna um valor entre 0.0 e 1.0 igual a (rank - 1)/(linhas-na-partição - 1), onde rank é o valor retornado pela built-in rank() e linhas-na-partição é o número total de linhas na partição. Se a partição contém somente uma linha, essa função retorna 0. () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. - + () A distribuição cumulativa. Calculada como número-da-linha/linhas-na-partição em que número-da-linha é o valor retornado por row_number() para o último elemento do grupo e linhas-na-partição é o número de linhas na partição. (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. - + (N) Argumento N é interpretado como um inteiro. Essa função divide a partição em N grupos tão igualmente como possível e atribui um inteiro entre 1 e N para cada grupo, na ordem definida pela cláusula ORDER BY, ou em ordem arbitrária. Se necessário, grupos maiores ocorrem primeiro. Essa função retorna o valor inteiro atribuido ao grupo que a linha atual é parte de. (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. - + (expr) Retorna o resultado de avaliar expressão expr contra a linha anterior na partição. Ou, se não há linha anterior, NULL. (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. - + (expr,offset) Se o offset é fornecido, então ele precisa ser um inteiro não-negativo. Nesse caso, o valor retornado é o resultado de avaliar expr contra a linha offset linhas antes da linha atual dentro da partição. Se offset é 0, então expr é avaliada contra a linha atual. Se não há linha offset linhas antes da linha atual, NULL é retornado. (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. - + (expr,offset,default) Se default também é fornecido, ele é retornado em vez de NULL se a linha identificada por offset não existe. (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. - + (expr) Retorna o resultado de avaliar a expressão expr contra a próxima linha na partição. Ou, se não há próxima linha, NULL. (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. - + (expr,offset) Se o offset é fornecido, então ele precisa ser um inteiro não-negativo. Nesse caso, o valor retornado é o resultado de avaliar expr contra a linha offset linhas após a linha atual dentro da partição. Se offset é 0, então expr é avaliada contra a linha atual. Se não há linha offset linhas após a linha atual, NULL é retornado. (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. - + (expr) Essa função de janela built-in calcula o frame da janela para cada linha na mesma forma que uma função de janela agregada. Ela retorna o valor de expr avaliada contra a primeira linha do frame da janela para cada linha. (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. - + (expr) Essa função de janela built-in calcula o frame da janela para cada linha na mesma forma que uma função de janela agregada. Ela retorna o valor de expr avaliada contra a última linha do frame da janela para cada linha. (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. - + (expr) Essa função de janela built-in calcula o frame da janela para cada linha na mesma forma que uma função de janela agregada. Ela retorna o valor de expr avaliada contra a linha N do frame da janela para cada linha.Linhas são numeradas dentro do frame da janela começando em 1 na ordem definida pela cláusula ORDER BY se uma está presente, ou em ordem arbitrária, caso contrário. Se não há uma N-ésima linha na partição, NULL é retornado. (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. @@ -5068,28 +5122,29 @@ Pressione Ctrl+Shift e clique para ir até lá reading rows - + lendo linhas loading... - + carregando... References %1(%2) Hold %3Shift and click to jump there - + Referencia %1(%2) +Segure %3Shift e clique para ir para lá retrieving list of columns - + obtendo lista de colunas Fetching data... - + Obtendo dados... Cancel - Cancelar + Cancelar @@ -5108,11 +5163,11 @@ Hold %3Shift and click to jump there Warning: Compacting the database will commit all of your changes. - + Alerta: compactando o banco de dados irá confirmar todas as suas modificações. Please select the databases to co&mpact: - + Por favor selecione o banco de dados para co&mpactar: From bf46a29851901c993603663f7d34ccff865fd4a6 Mon Sep 17 00:00:00 2001 From: Bernardo Sulzbach Date: Mon, 15 Oct 2018 20:44:01 -0300 Subject: [PATCH 008/127] Should always translate Schema to Esquema --- src/translations/sqlb_pt_BR.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/translations/sqlb_pt_BR.ts b/src/translations/sqlb_pt_BR.ts index a71777d21..c26be7a3e 100644 --- a/src/translations/sqlb_pt_BR.ts +++ b/src/translations/sqlb_pt_BR.ts @@ -485,7 +485,7 @@ Aborting execution%3. A table with the name '%1' already exists in schema '%2'. - Uma tabela com o nome '%1' já existe no schema '%2'. + Uma tabela com o nome '%1' já existe no esquema '%2'. could not get list of databases: %1 @@ -914,7 +914,7 @@ Erros são indicados com um ondulado vermelho. Edit Index Schema - Editar Schema do Índice + Editar esquema do índice For restricting the index to only a part of the table you can specify a WHERE clause here that selects the part of the table that should be indexed @@ -1304,7 +1304,7 @@ Todos os dados atualmente armazenados nesse campo serão perdidos. Export schema only - Exportar somente schema + Exportar somente esquema Please select at least 1 table. @@ -1352,11 +1352,11 @@ Todos os dados atualmente armazenados nesse campo serão perdidos. Keep old schema (CREATE TABLE IF NOT EXISTS) - Manter schema antigo (CREATE TABLE IF NOT EXISTS) + Manter esquema antigo (CREATE TABLE IF NOT EXISTS) Overwrite old schema (DROP TABLE, then CREATE TABLE) - Sobrescrever schema antigo (DROP TABLE, then CREATE TABLE) + Sobrescrever esquema antigo (DROP TABLE, then CREATE TABLE) Please select at least one table. @@ -3017,7 +3017,7 @@ Deixe o campo em branco para usar a codificação do banco de dados. DB Sche&ma - Sche&ma do BD + Esque&ma do BD Execute SQL [F5, Ctrl+Return, Ctrl+R] @@ -3234,7 +3234,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Essa é a estrutura do banco de dados aberto. Você pode arrastar múltiplos nomes de objetos da coluna Nome e largá-los no editor SQL e você pode ajustar as propriedades dos nomes largados usando o menu de contexto. Isso ajudaria você a compor comandos SQL. -Você pode arrastar comandos SQL da coluna Schema e largá-los no editor SQL ou em outras aplicações. +Você pode arrastar comandos SQL da coluna Esquema e largá-los no editor SQL ou em outras aplicações. @@ -3315,7 +3315,7 @@ Você pode arrastar comandos SQL da coluna Schema e largá-los no editor SQL ou Open &Project... - Abrir &Projeto... + Abrir &projeto... This button lets you open a DB4S project file @@ -4486,7 +4486,7 @@ Todas as suas preferências serão perdidas e os valores padrão serão utilizad When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. - Quando ativado, as quebras de linha na coluna Schema da aba Estruturas do BD e nas saídas impressas são removidas. + Quando ativado, as quebras de linha na coluna Esquema da aba Estruturas do BD e nas saídas impressas são removidas. <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> From a407987fc3d8fec282818a1562c0c0dbcd55a38d Mon Sep 17 00:00:00 2001 From: Bernardo Sulzbach Date: Mon, 15 Oct 2018 20:52:52 -0300 Subject: [PATCH 009/127] Should always translate to "banco de dados" This improves overall consistency. --- src/translations/sqlb_pt_BR.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/translations/sqlb_pt_BR.ts b/src/translations/sqlb_pt_BR.ts index c26be7a3e..2a94fd2ef 100644 --- a/src/translations/sqlb_pt_BR.ts +++ b/src/translations/sqlb_pt_BR.ts @@ -44,7 +44,7 @@ AddRecordDialog Add New Record - Adicionar Novo Registro + Adicionar novo registro Enter values for the new record considering constraints. Fields in bold are mandatory. @@ -1052,7 +1052,7 @@ Erros são indicados com um ondulado vermelho. Error creating table. Message from database engine: %1 - Erro criando tabela. Mensagem do DB: + Erro criando tabela. Mensagem da engine do banco de dados: %1 @@ -1273,7 +1273,7 @@ Todos os dados atualmente armazenados nesse campo serão perdidos. exporting CSV - exporando CSV + exportando CSV exporting JSON @@ -2171,7 +2171,7 @@ x~y Intervalo: valores entre x e y DB Toolbar - DB Toolbar + Barra de ferramentas do banco de dados SQL Log @@ -3017,7 +3017,7 @@ Deixe o campo em branco para usar a codificação do banco de dados. DB Sche&ma - Esque&ma do BD + Esque&ma do banco de dados Execute SQL [F5, Ctrl+Return, Ctrl+R] @@ -4486,7 +4486,7 @@ Todas as suas preferências serão perdidas e os valores padrão serão utilizad When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. - Quando ativado, as quebras de linha na coluna Esquema da aba Estruturas do BD e nas saídas impressas são removidas. + Quando ativado, as quebras de linha na coluna Esquema da aba Estrutura do banco de dados e nas saídas impressas são removidas. <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> From e2fcdbc15b0da7b8723eccf36ef9125a268f27a8 Mon Sep 17 00:00:00 2001 From: Bernardo Sulzbach Date: Mon, 15 Oct 2018 20:56:29 -0300 Subject: [PATCH 010/127] Added missing Portuguese translation --- src/translations/sqlb_pt_BR.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/translations/sqlb_pt_BR.ts b/src/translations/sqlb_pt_BR.ts index 2a94fd2ef..9a066451d 100644 --- a/src/translations/sqlb_pt_BR.ts +++ b/src/translations/sqlb_pt_BR.ts @@ -2747,7 +2747,7 @@ Você tem certeza? SQL &Log - SQL &Log + &Log do SQL Show S&QL submitted by From 6f0184b504bcf8bb941de7686d941adc82aad6da Mon Sep 17 00:00:00 2001 From: Bernardo Sulzbach Date: Tue, 16 Oct 2018 19:19:27 -0300 Subject: [PATCH 011/127] Fixed Portuguese translations being in Title Case --- src/translations/sqlb_pt_BR.ts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/translations/sqlb_pt_BR.ts b/src/translations/sqlb_pt_BR.ts index 9a066451d..adc9216f7 100644 --- a/src/translations/sqlb_pt_BR.ts +++ b/src/translations/sqlb_pt_BR.ts @@ -1375,7 +1375,7 @@ Todos os dados atualmente armazenados nesse campo serão perdidos. Find and Replace... - Encontrar e Substituir... + Encontrar e substituir... Print... @@ -1410,7 +1410,7 @@ Deseja inserir mesmo assim? Use as Exact Filter - Usar como Filtro Exato + Usar como filtro exato Containing @@ -1442,7 +1442,7 @@ Deseja inserir mesmo assim? Copy with Headers - Copiar com Cabeçalhos + Copiar com cabeçalhos Copy as SQL @@ -3463,7 +3463,7 @@ Você pode arrastar comandos SQL da coluna Esquema e largá-los no editor SQL ou Drag && Drop Qualified Names - Arrastar e Soltar Nomes Qualificados + Arrastar e soltar nomes qualificados Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor @@ -3471,7 +3471,7 @@ Você pode arrastar comandos SQL da coluna Esquema e largá-los no editor SQL ou Drag && Drop Enquoted Names - Arrastar e Soltar Nomes Entre Áspas + Arrastar e soltar nomes entre áspas Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor @@ -3479,7 +3479,7 @@ Você pode arrastar comandos SQL da coluna Esquema e largá-los no editor SQL ou &Integrity Check - Teste de &Integridade + Teste de &integridade Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. @@ -4290,11 +4290,11 @@ Aviso: nem todos os dados foram obtidos da tabela ainda devido ao mecanismo de o Subject CN - Nome Comum do sujeito + Nome comum do sujeito Common Name - Nome Comum + Nome comum Subject O @@ -4326,7 +4326,7 @@ Aviso: nem todos os dados foram obtidos da tabela ainda devido ao mecanismo de o Subject Common Name - Nome Comum do sujeito + Nome comum do sujeito Issuer CN @@ -4806,7 +4806,7 @@ p, li { white-space: pre-wrap; } Whole Words - Palavras Inteiras + Palavras inteiras Text pattern to find considering the checks in this frame From 3b84fbc5b5ea6d2ccd2196e8b709596fce5c12c3 Mon Sep 17 00:00:00 2001 From: mgrojo Date: Wed, 17 Oct 2018 23:36:34 +0200 Subject: [PATCH 012/127] Fixed two filters in pt_BR translation --- src/translations/sqlb_pt_BR.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/translations/sqlb_pt_BR.ts b/src/translations/sqlb_pt_BR.ts index adc9216f7..fcbf03b2d 100644 --- a/src/translations/sqlb_pt_BR.ts +++ b/src/translations/sqlb_pt_BR.ts @@ -2631,7 +2631,7 @@ Todos os dados associados com %1 serão perdidos. Text files(*.csv *.txt);;All files(*) - Arquivos de texto(*.txt);;Todos os arquivos(*) + Arquivos de texto(*.csv *.txt);;Todos os arquivos(*) Import completed @@ -2647,7 +2647,7 @@ Todos os dados associados com %1 serão perdidos. Text files(*.sql *.txt);;All files(*) - Arquivos de texto(*.txt);;Todos os arquivos(*) + Arquivos de texto(*.sql *.txt);;Todos os arquivos(*) Do you want to create a new database file to hold the imported data? From a1ce0f8cf6f40372737b9815a05e5f013e3ff32f Mon Sep 17 00:00:00 2001 From: mgrojo Date: Thu, 18 Oct 2018 00:11:02 +0200 Subject: [PATCH 013/127] Update es_ES translation for PR #1558 --- src/translations/sqlb_es_ES.ts | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/translations/sqlb_es_ES.ts b/src/translations/sqlb_es_ES.ts index af65f39a1..d76a404aa 100644 --- a/src/translations/sqlb_es_ES.ts +++ b/src/translations/sqlb_es_ES.ts @@ -5364,7 +5364,17 @@ Se puede poner a 0 para desactivar el autocompletado. Si se activa, las líneas de código SQL que causaron errores durante la última ejecución se destacan y el marco de resultados indica el error mediante el color del fondo - + + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> + <html><head/><body><p>SQLite proporciona una función SQL para cargar extensiones desde un archivo de biblioteca compartida. Active esta opción si desea usar la función <span style=" font-style:italic;">load_extension()</span> desde código SQL.</p><p>Por razónes de seguridad, la carga de extensiones está desactivada por defecto y debe ser habilitada usando esta configuración. Siempre puede cargar extensiones a través de la interfaz de usuario, incluso aunque esta opción esté deshabilitada.</p></body></html> + + + + Allow loading extensions from SQL code + Permitir cargar extensiones desde código SQL + + + Remote Remoto @@ -6063,13 +6073,15 @@ p, li { white-space: pre-wrap; } (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. Use of this function must be authorized from Preferences. - + (X) La función load_extension(X) carga extensiones SQLite del archivo de la biblioteca compartida llamada X usando el punto de entrada Y. +El uso de esta función tiene que ser autorizado desde las Preferencias. (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. Use of this function must be authorized from Preferences. - + (X,Y) La función load_extension(X,Y) carga extensiones SQLite del archivo de la biblioteca compartida llamado X usando el punto de entrada Y. +El uso de esta función tiene que ser autorizado desde las Preferencias. From 24c0924b35ac2406fbb23d26c93745c360c7a5d7 Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Sat, 20 Oct 2018 02:02:30 +1100 Subject: [PATCH 014/127] Updated .msi installer version number to 3.11.100 --- installer/windows/variables.wxi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installer/windows/variables.wxi b/installer/windows/variables.wxi index 938d648c9..4024e8d28 100644 --- a/installer/windows/variables.wxi +++ b/installer/windows/variables.wxi @@ -3,7 +3,7 @@ - + - + From cc3d350f00ccc67a9de4d83b511c0dc7f736d4ce Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Sat, 24 Nov 2018 10:12:41 +1100 Subject: [PATCH 032/127] Typo fix in a comment --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index eb9c469d9..f379ce759 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -516,7 +516,7 @@ set(CPACK_PACKAGE_VERSION_PATCH "100") set(CPACK_PACKAGE_INSTALL_DIRECTORY "DB Browser for SQLite") if(WIN32 AND NOT UNIX) # There is a bug in NSIS that does not handle full unix paths properly. Make - # sure there is at least one set of four (4) backlasshes. + # sure there is at least one set of four (4) backslashes. set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\src\\\\iconwin.ico") set(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\src\\\\iconwin.ico") set(CPACK_NSIS_EXECUTABLES_DIRECTORY "/") From e9a03d0ff078ca2a132df949afb6f075b5d6ef75 Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Sat, 24 Nov 2018 15:01:26 +1100 Subject: [PATCH 033/127] Added Win64 nightly build script --- .../nightly_build_scripts/win64build.bat | 107 ++++++++++++++++++ .../winbuild.bat | 0 2 files changed, 107 insertions(+) create mode 100755 installer/windows/nightly_build_scripts/win64build.bat rename installer/windows/{nightly_build_script => nightly_build_scripts}/winbuild.bat (100%) diff --git a/installer/windows/nightly_build_scripts/win64build.bat b/installer/windows/nightly_build_scripts/win64build.bat new file mode 100755 index 000000000..3e97fbcb8 --- /dev/null +++ b/installer/windows/nightly_build_scripts/win64build.bat @@ -0,0 +1,107 @@ +:: Destination path - specify where to move package after build +SET DEST_PATH=C:\\builds +MKDIR "%DEST_PATH%" + +SET SQLITE_DIR=C:\\dev\\SQLite-Win64 +SET SQLCIPHER_DIR=C:\\git_repos\\SQLCipher-Win64 +SET SQLCIPHER_TAG=v3.4.2 + +:: You need to change the date format in Windows settings to YYYY-MM-DD +:: before this will work properly. ;) +set RUN_DATE=%DATE% + +:: If no branch given on the command line, use master +IF "%1"=="" (SET BRANCH="master") ELSE (SET BRANCH="%1") + +CD /d "C:\" +if exist "%SQLITE_DIR%" rd /q /s "%SQLITE_DIR%" +if exist "C:\\builds\\release-sqlite-win64" rd /q /s "C:\\builds\\release-sqlite-win64" +if exist "C:\\builds\\release-sqlcipher-win64" rd /q /s "C:\\builds\\release-sqlcipher-win64" + +:: Unpack SQLite +CD C:\dev +"C:\Program Files\7-Zip\7z.exe" e sqlite*zip "-o%SQLITE_DIR%" + +:: Update repositories +::git clone -b v3.4.2 https://github.com/sqlcipher/sqlcipher.git SQLCipher-Win64 +CD C:\\git_repos\\SQLCipher-Win64 +git clean -dffx +git checkout master +git pull +git checkout "%SQLCIPHER_TAG%" +git clean -dffx + +::git clone -b %BRANCH% https://github.com/sqlitebrowser/sqlitebrowser.git "%DB4S_DIR%Win64" +CD C:\\git_repos\\sqlitebrowser +git clean -dffx +git checkout master +git pull +git checkout %BRANCH% +git clean -dffx + + +:: WIN64 SQLITE BUILD PROCEDURE + +:: Set path variables +CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" + +:: Build SQLite x64 +CD %SQLITE_DIR% +cl sqlite3.c -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_JSON1 -DSQLITE_API=_declspec(dllexport) -link -dll -out:sqlite3.dll + +:: Run CMake for SQLite x64 +CD C:\\builds +MKDIR "release-sqlite-win64" +CD "release-sqlite-win64" +cmake -G "Visual Studio 15 2017 Win64" -Wno-dev C:\\git_repos\\sqlitebrowser + +:: Build package +devenv /Build Release sqlitebrowser.sln /project "ALL_BUILD" + +:: Build MSI +MKDIR C:\\git_repos\\sqlitebrowser\\Release +MOVE C:\\builds\\release-sqlite-win64\\Release\\*.exe C:\\git_repos\\sqlitebrowser\\Release +CD C:\\git_repos\\sqlitebrowser\\installer\\windows +CALL build.cmd win64 + +:: Move package to DEST_PATH +MOVE /Y *msi "%DEST_PATH%\\DB Browser for SQLite-%RUN_DATE%-win64.msi" + +:: Clean up +DEL /F "C:\git_repos\sqlitebrowser\Release\DB Browser for SQLite.exe" + + +:: WIN64 SQLCIPHER BUILD PROCEDURE + +:: Build SQLCipher x64 +CD %SQLCIPHER_DIR% +nmake /f Makefile.msc sqlcipher.dll USE_AMALGAMATION=1 NO_TCL=1 SQLITE3DLL=sqlcipher.dll SQLITE3LIB=sqlcipher.lib SQLITE3EXE=sqlcipher.exe LTLINKOPTS="C:\dev\OpenSSL-Win64\lib\libeay32.lib" OPT_FEATURE_FLAGS="-DSQLITE_TEMP_STORE=2 -DSQLITE_HAS_CODEC=1 -DSQLITE_ENABLE_FTS5=1 -DSQLITE_ENABLE_FTS3_PARENTHESIS=1 -DSQLITE_ENABLE_JSON1=1 -DSQLCIPHER_CRYPTO_OPENSSL=1 -IC:\dev\OpenSSL-Win64\include" + +:: Run CMake for SQLCipher x64 +CD C:\\builds +MKDIR "release-sqlcipher-win64" +CD "release-sqlcipher-win64" +cmake -G "Visual Studio 15 2017 Win64" -Wno-dev -Dsqlcipher=1 C:\\git_repos\\sqlitebrowser + +:: Build package +devenv /Build Release sqlitebrowser.sln /project "ALL_BUILD" + +:: Build MSI +MOVE C:\\builds\\release-sqlcipher-win64\\Release\\*.exe C:\\git_repos\\sqlitebrowser\\Release +CD C:\\git_repos\\sqlitebrowser\\installer\\windows +CALL build.cmd win64 sqlcipher + +:: Move package to DEST_PATH +MOVE /Y *msi "%DEST_PATH%\DB Browser for SQLite-sqlcipher-%RUN_DATE%-win64.msi" + +:: Clean up +DEL /F "C:\git_repos\sqlitebrowser\Release\DB Browser for SQLite.exe" + + +:: Upload the packages to the nightlies server +pscp -q -p -i C:\dev\puttygen_private.ppk "%DEST_PATH%\DB*%RUN_DATE%*win64.msi" nightlies@nightlies.sqlitebrowser.org:/nightlies/win64 + +:: Copy the new binaries to /latest directory on the nightlies server +plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cd /nightlies/latest; rm -f *-win64.msi" +plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win64/DB*SQLite-%RUN_DATE%-win64.msi /nightlies/latest/DB.Browser.for.SQLite-win64.msi" +plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win64/DB*sqlcipher-%RUN_DATE%-win64.msi /nightlies/latest/DB.Browser.for.SQLite-sqlcipher-win64.msi" diff --git a/installer/windows/nightly_build_script/winbuild.bat b/installer/windows/nightly_build_scripts/winbuild.bat similarity index 100% rename from installer/windows/nightly_build_script/winbuild.bat rename to installer/windows/nightly_build_scripts/winbuild.bat From e8acdfe5bd80e5f390a52c27463de7a0f476e773 Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Sat, 24 Nov 2018 15:38:34 +1100 Subject: [PATCH 034/127] Added Win32 nightly build script --- .../nightly_build_scripts/win32build.bat | 107 +++++++++++ .../nightly_build_scripts/winbuild.bat | 180 ------------------ 2 files changed, 107 insertions(+), 180 deletions(-) create mode 100755 installer/windows/nightly_build_scripts/win32build.bat delete mode 100644 installer/windows/nightly_build_scripts/winbuild.bat diff --git a/installer/windows/nightly_build_scripts/win32build.bat b/installer/windows/nightly_build_scripts/win32build.bat new file mode 100755 index 000000000..0e023acd8 --- /dev/null +++ b/installer/windows/nightly_build_scripts/win32build.bat @@ -0,0 +1,107 @@ +:: Destination path - specify where to move package after build +SET DEST_PATH=C:\\builds +MKDIR "%DEST_PATH%" + +SET SQLITE_DIR=C:\\dev\\SQLite-Win32 +SET SQLCIPHER_DIR=C:\\git_repos\\SQLCipher-Win32 +SET SQLCIPHER_TAG=v3.4.2 + +:: You need to change the date format in Windows settings to YYYY-MM-DD +:: before this will work properly. ;) +set RUN_DATE=%DATE% + +:: If no branch given on the command line, use master +IF "%1"=="" (SET BRANCH="master") ELSE (SET BRANCH="%1") + +CD /d "C:\" +if exist "%SQLITE_DIR%" rd /q /s "%SQLITE_DIR%" +if exist "C:\\builds\\release-sqlite-win32" rd /q /s "C:\\builds\\release-sqlite-win32" +if exist "C:\\builds\\release-sqlcipher-win32" rd /q /s "C:\\builds\\release-sqlcipher-win32" + +:: Unpack SQLite +CD C:\dev +"C:\Program Files\7-Zip\7z.exe" e sqlite*zip "-o%SQLITE_DIR%" + +:: Update repositories +::git clone -b v3.4.2 https://github.com/sqlcipher/sqlcipher.git SQLCipher-Win32 +CD C:\\git_repos\\SQLCipher-Win32 +git clean -dffx +git checkout master +git pull +git checkout "%SQLCIPHER_TAG%" +git clean -dffx + +::git clone -b %BRANCH% https://github.com/sqlitebrowser/sqlitebrowser.git "%DB4S_DIR%Win32" +CD C:\\git_repos\\sqlitebrowser +git clean -dffx +git checkout master +git pull +git checkout %BRANCH% +git clean -dffx + + +:: WIN32 SQLITE BUILD PROCEDURE + +:: Set path variables +CALL "C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\bin\\vcvars32.bat" + +:: Build SQLite x86 +CD %SQLITE_DIR% +cl sqlite3.c -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_JSON1 -DSQLITE_API=_declspec(dllexport) -link -dll -out:sqlite3.dll + +:: Run CMake for SQLite x86 +CD C:\\builds +MKDIR "release-sqlite-win32" +CD "release-sqlite-win32" +cmake -G "Visual Studio 12 2013" -Wno-dev C:\\git_repos\\sqlitebrowser + +:: Build package +devenv /Build Release sqlitebrowser.sln /project "ALL_BUILD" + +:: Build MSI +MKDIR C:\\git_repos\\sqlitebrowser\\Release +MOVE C:\\builds\\release-sqlite-win32\\Release\\*.exe C:\\git_repos\\sqlitebrowser\\Release +CD C:\\git_repos\\sqlitebrowser\\installer\\windows +CALL build.cmd win32 + +:: Move package to DEST_PATH +MOVE /Y *msi "%DEST_PATH%\\DB Browser for SQLite-%RUN_DATE%-win32.msi" + +:: Clean up +DEL /F "C:\git_repos\sqlitebrowser\Release\DB Browser for SQLite.exe" + + +:: WIN32 SQLCIPHER BUILD PROCEDURE + +:: Build SQLCipher x86 +CD %SQLCIPHER_DIR% +nmake /f Makefile.msc sqlcipher.dll USE_AMALGAMATION=1 NO_TCL=1 SQLITE3DLL=sqlcipher.dll SQLITE3LIB=sqlcipher.lib SQLITE3EXE=sqlcipher.exe LTLINKOPTS="C:\dev\OpenSSL-Win32\lib\libeay32.lib" OPT_FEATURE_FLAGS="-DSQLITE_TEMP_STORE=2 -DSQLITE_HAS_CODEC=1 -DSQLITE_ENABLE_FTS5=1 -DSQLITE_ENABLE_FTS3_PARENTHESIS=1 -DSQLITE_ENABLE_JSON1=1 -DSQLCIPHER_CRYPTO_OPENSSL=1 -IC:\dev\OpenSSL-Win32\include" + +:: Run CMake for SQLCipher x86 +CD C:\\builds +MKDIR "release-sqlcipher-win32" +CD "release-sqlcipher-win32" +cmake -G "Visual Studio 12 2013" -Wno-dev -Dsqlcipher=1 C:\\git_repos\\sqlitebrowser + +:: Build package +devenv /Build Release sqlitebrowser.sln /project "ALL_BUILD" + +:: Build MSI +MOVE C:\\builds\\release-sqlcipher-win32\\Release\\*.exe C:\\git_repos\\sqlitebrowser\\Release +CD C:\\git_repos\\sqlitebrowser\\installer\\windows +CALL build.cmd win32 sqlcipher + +:: Move package to DEST_PATH +MOVE /Y *msi "%DEST_PATH%\DB Browser for SQLite-sqlcipher-%RUN_DATE%-win32.msi" + +:: Clean up +DEL /F "C:\git_repos\sqlitebrowser\Release\DB Browser for SQLite.exe" + + +:: Upload the packages to the nightlies server +pscp -q -p -i C:\dev\puttygen_private.ppk "%DEST_PATH%\DB*%RUN_DATE%*win32.msi" nightlies@nightlies.sqlitebrowser.org:/nightlies/win32 + +:: Copy the new binaries to /latest directory on the nightlies server +plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cd /nightlies/latest; rm -f *-win32.msi" +plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win32/DB*SQLite-%RUN_DATE%-win32.msi /nightlies/latest/DB.Browser.for.SQLite-win32.msi" +plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win32/DB*sqlcipher-%RUN_DATE%-win32.msi /nightlies/latest/DB.Browser.for.SQLite-sqlcipher-win32.msi" diff --git a/installer/windows/nightly_build_scripts/winbuild.bat b/installer/windows/nightly_build_scripts/winbuild.bat deleted file mode 100644 index 4bbf55799..000000000 --- a/installer/windows/nightly_build_scripts/winbuild.bat +++ /dev/null @@ -1,180 +0,0 @@ -:: Destination path - specify where to move package after build -set DEST_PATH=C:\\builds -MKDIR "%DEST_PATH%" -MKDIR "%DEST_PATH%\tmp\" - -set SQLITE_DIR=C:\\dev\\SQLite- -set SQLCIPHER_DIR=C:\\git_repos\\SQLCipher- - -:: You need to change the date format in Windows settings to YYYY-MM-DD -:: before this will work properly. ;) -set RUN_DATE=%DATE% - -:: If no branch given on the command line, use master -IF "%1"=="" (SET BRANCH="master") ELSE (SET BRANCH="%1") - -cd /d "C:\" -if exist "git_repos" rd /q /s "git_repos" -if exist "%SQLITE_DIR%Win32" rd /q /s "%SQLITE_DIR%Win32" -if exist "%SQLITE_DIR%Win64" rd /q /s "%SQLITE_DIR%Win64" -if exist "%SQLCIPHER_DIR%Win32" rd /q /s "%SQLCIPHER_DIR%Win32" -if exist "%SQLCIPHER_DIR%Win64" rd /q /s "%SQLCIPHER_DIR%Win64" - -:: Unpack SQLite -cd C:\dev -"C:\Program Files\7-Zip\7z.exe" e sqlite*zip "-o%SQLITE_DIR%Win32" -"C:\Program Files\7-Zip\7z.exe" e sqlite*zip "-o%SQLITE_DIR%Win64" - -:: Clone repositories -MKDIR "C:\\git_repos" -cd C:\\git_repos -git clone -b msvc2013_win32 --depth 1 https://github.com/justinclift/sqlcipher.git SQLCipher-Win32 -git clone -b msvc2013_win64 --depth 1 https://github.com/justinclift/sqlcipher.git SQLCipher-Win64 -git clone -b %BRANCH% https://github.com/sqlitebrowser/sqlitebrowser.git - - -:: WIN32 SQLITE BUILD PROCEDURE - -:: Set path variables -call "C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\bin\\vcvars32.bat" - -:: Build SQLite x86 -cd %SQLITE_DIR%Win32 -cl sqlite3.c -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_JSON1 -DSQLITE_API=_declspec(dllexport) -link -dll -out:sqlite3.dll - -:: Run CMake for SQLite x86 -cd C:\\git_repos\\sqlitebrowser -MKDIR "release-sqlite-win32" -cd "release-sqlite-win32" -cmake -G "Visual Studio 12 2013" -Wno-dev .. - -:: Build package -FOR %%I IN (*.sln) DO devenv /Build Release "%%I" /project "PACKAGE" - -:: Copy .exe to destination. Weirdly, this needs to be done in two steps as doing -:: it with a single MOVE always results in a broken .exe 4k in size -COPY /Y C:\\git_repos\\sqlitebrowser\\release-sqlite-win32\\DB*.exe "%DEST_PATH%\\tmp\\" -MOVE /Y %DEST_PATH%\\tmp\\DB*.exe "%DEST_PATH%\\DB Browser for SQLite-%RUN_DATE%-win32.exe" - -:: Build MSI -MKDIR C:\\git_repos\\sqlitebrowser\\Release -MOVE C:\\git_repos\\sqlitebrowser\\release-sqlite-win32\\Release\\*.exe C:\\git_repos\\sqlitebrowser\\Release -cd C:\\git_repos\\sqlitebrowser\\installer\\windows -CALL build.cmd win32 - -:: Move package to DEST_PATH -MOVE /Y *msi "%DEST_PATH%\DB Browser for SQLite-%RUN_DATE%-win32.msi" - - -:: WIN32 SQLCIPHER BUILD PROCEDURE - -:: Build SQLCipher x86 -cd %SQLCIPHER_DIR%Win32 -nmake /f Makefile.msc - -:: Run CMake for SQLCipher x86 -cd C:\\git_repos\\sqlitebrowser -MKDIR "release-sqlcipher-win32" -cd "release-sqlcipher-win32" -cmake -G "Visual Studio 12 2013" -Wno-dev -Dsqlcipher=1 .. - -:: Build package -FOR %%I IN (*.sln) DO devenv /Build Release "%%I" /project "PACKAGE" - -:: Copy .exe to destination. Weirdly, this needs to be done in two steps as doing -:: it with a single MOVE always results in a broken .exe 4k in size -COPY /Y C:\\git_repos\\sqlitebrowser\\release-sqlcipher-win32\\DB*.exe "%DEST_PATH%\\tmp\\" -MOVE /Y %DEST_PATH%\\tmp\\DB*.exe "%DEST_PATH%\\DB Browser for SQLite-sqlcipher-%RUN_DATE%-win32.exe" - -:: Build MSI -MKDIR C:\\git_repos\\sqlitebrowser\\Release -MOVE C:\\git_repos\\sqlitebrowser\\release-sqlcipher-win32\\Release\\*.exe C:\\git_repos\\sqlitebrowser\\Release -cd C:\\git_repos\\sqlitebrowser\\installer\\windows -CALL build.cmd win32 sqlcipher - -:: Move package to DEST_PATH -MOVE /Y *msi "%DEST_PATH%\DB Browser for SQLite-sqlcipher-%RUN_DATE%-win32.msi" - - -:: WIN64 SQLITE BUILD PROCEDURE - -:: Set path variables -call "C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\bin\\amd64\\vcvars64.bat" - -:: Build SQLite x64 -cd %SQLITE_DIR%Win64 -cl sqlite3.c -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_JSON1 -DSQLITE_API=_declspec(dllexport) -link -dll -out:sqlite3.dll - -:: Run CMake for SQLite x64 -cd C:\\git_repos\\sqlitebrowser -MKDIR "release-sqlite-win64" -cd "release-sqlite-win64" -cmake -G "Visual Studio 12 2013 Win64" -Wno-dev .. - -:: Build package -FOR %%I IN (*.sln) DO devenv /Build Release "%%I" /project "PACKAGE" - -:: Copy .exe to destination. Weirdly, this needs to be done in two steps as doing -:: it with a single MOVE always results in a broken .exe 4k in size -COPY /Y C:\\git_repos\\sqlitebrowser\\release-sqlite-win64\\DB*.exe "%DEST_PATH%\\tmp\\" -MOVE /Y %DEST_PATH%\\tmp\\DB*.exe "%DEST_PATH%\DB Browser for SQLite-%RUN_DATE%-win64.exe" - -:: Build MSI -MKDIR C:\\git_repos\\sqlitebrowser\\Release -MOVE C:\\git_repos\\sqlitebrowser\\release-sqlite-win64\\Release\\*.exe C:\\git_repos\\sqlitebrowser\\Release -cd C:\\git_repos\\sqlitebrowser\\installer\\windows -CALL build.cmd win64 - -:: Move package to DEST_PATH -MOVE /Y *msi "%DEST_PATH%\DB Browser for SQLite-%RUN_DATE%-win64.msi" - - -:: WIN64 SQLCIPHER BUILD PROCEDURE - -:: Build SQLCipher x64 -cd %SQLCIPHER_DIR%Win64 -nmake /f Makefile.msc - -:: Run CMake for SQLCipher x64 -cd C:\\git_repos\\sqlitebrowser -MKDIR "release-sqlcipher-win64" -cd "release-sqlcipher-win64" -cmake -G "Visual Studio 12 2013 Win64" -Wno-dev -Dsqlcipher=1 .. - -:: Build package -FOR %%I IN (*.sln) DO devenv /Build Release "%%I" /project "PACKAGE" - -:: Copy .exe to destination. Weirdly, this needs to be done in two steps as doing -:: it with a single MOVE always results in a broken .exe 4k in size -COPY /Y C:\\git_repos\\sqlitebrowser\\release-sqlcipher-win64\\DB*.exe "%DEST_PATH%\\tmp\\" -MOVE /Y %DEST_PATH%\\tmp\\DB*.exe "%DEST_PATH%\DB Browser for SQLite-sqlcipher-%RUN_DATE%-win64.exe" - -:: Build MSI -MKDIR C:\\git_repos\\sqlitebrowser\\Release -MOVE C:\\git_repos\\sqlitebrowser\\release-sqlcipher-win64\\Release\\*.exe C:\\git_repos\\sqlitebrowser\\Release -cd C:\\git_repos\\sqlitebrowser\\installer\\windows -CALL build.cmd win64 sqlcipher - -:: Move package to DEST_PATH -MOVE /Y *msi "%DEST_PATH%\DB Browser for SQLite-sqlcipher-%RUN_DATE%-win64.msi" - -:: Upload the packages to the nightlies server -pscp -q -p -i C:\dev\puttygen_private.ppk "%DEST_PATH%\DB*%RUN_DATE%*win32.exe" nightlies@nightlies.sqlitebrowser.org:/nightlies/win32 -pscp -q -p -i C:\dev\puttygen_private.ppk "%DEST_PATH%\DB*%RUN_DATE%*win32.msi" nightlies@nightlies.sqlitebrowser.org:/nightlies/win32 -pscp -q -p -i C:\dev\puttygen_private.ppk "%DEST_PATH%\DB*%RUN_DATE%*win64.exe" nightlies@nightlies.sqlitebrowser.org:/nightlies/win64 -pscp -q -p -i C:\dev\puttygen_private.ppk "%DEST_PATH%\DB*%RUN_DATE%*win64.msi" nightlies@nightlies.sqlitebrowser.org:/nightlies/win64 - -:: Copy the new binaries to /latest directory on the nightlies server -plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cd /nightlies/latest; rm -f *.exe *.msi" -plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win32/DB*SQLite-%RUN_DATE%-win32.exe /nightlies/latest/DB.Browser.for.SQLite-win32.exe" -plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win32/DB*SQLite-%RUN_DATE%-win32.msi /nightlies/latest/DB.Browser.for.SQLite-win32.msi" -plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win32/DB*sqlcipher-%RUN_DATE%-win32.exe /nightlies/latest/DB.Browser.for.SQLite-sqlcipher-win32.exe" -plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win32/DB*sqlcipher-%RUN_DATE%-win32.msi /nightlies/latest/DB.Browser.for.SQLite-sqlcipher-win32.msi" -plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win64/DB*SQLite-%RUN_DATE%-win64.exe /nightlies/latest/DB.Browser.for.SQLite-win64.exe" -plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win64/DB*SQLite-%RUN_DATE%-win64.msi /nightlies/latest/DB.Browser.for.SQLite-win64.msi" -plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win64/DB*sqlcipher-%RUN_DATE%-win64.exe /nightlies/latest/DB.Browser.for.SQLite-sqlcipher-win64.exe" -plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win64/DB*sqlcipher-%RUN_DATE%-win64.msi /nightlies/latest/DB.Browser.for.SQLite-sqlcipher-win64.msi" - -:: Wipe working dir -cd /d C:\ -rd /q /s "C:\\git_repos" From 85b7a46a1f988ade7bd9573f96eab819fc9efe5f Mon Sep 17 00:00:00 2001 From: Karim ElDeeb Date: Sat, 24 Nov 2018 11:12:15 +0200 Subject: [PATCH 035/127] Update the location of MSVC 2017 merge modules See #1592. --- installer/windows/variables.wxi | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/installer/windows/variables.wxi b/installer/windows/variables.wxi index aba9fbd12..37e33b72b 100644 --- a/installer/windows/variables.wxi +++ b/installer/windows/variables.wxi @@ -40,8 +40,13 @@ Visual Studio 2013. The build "ARCH" will be set automatically. --> - - + + + + + + + + + + + + + + + @@ -119,6 +134,8 @@ + + From eea0df2d093097b9637a9d74862fa9f18c2c3dfc Mon Sep 17 00:00:00 2001 From: Karim ElDeeb Date: Sun, 25 Nov 2018 02:09:01 +0200 Subject: [PATCH 039/127] Remove the bearer plugin from the 32-bit build The 32-bit version is built using Qt 5.7 and it doesn't look like it needs this plugin. It will be included in 64-bit builds only. See #1592. --- installer/windows/product.wxs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/installer/windows/product.wxs b/installer/windows/product.wxs index e7c2b7d77..c7006a960 100644 --- a/installer/windows/product.wxs +++ b/installer/windows/product.wxs @@ -62,9 +62,12 @@ + + + @@ -135,7 +138,9 @@ + + From 0286664d8f53208622419eae275e5e4968866d4c Mon Sep 17 00:00:00 2001 From: Karim ElDeeb Date: Sun, 25 Nov 2018 15:41:46 +0200 Subject: [PATCH 040/127] Add the missing *.qm translations files The *.qm translations files were missing from being bundled with the installer, so the default strings weren't translated and were defaulting to English. See #1592. --- installer/windows/build.cmd | 5 +- installer/windows/product.wxs | 3 + installer/windows/translations.wxs | 220 +++++++++++++++++++++++++++++ 3 files changed, 226 insertions(+), 2 deletions(-) create mode 100644 installer/windows/translations.wxs diff --git a/installer/windows/build.cmd b/installer/windows/build.cmd index 3485582d1..427bb52f8 100644 --- a/installer/windows/build.cmd +++ b/installer/windows/build.cmd @@ -39,9 +39,10 @@ set ICE=-sice:ICE03 -sice:ICE82 -sice:ICE61 -sice:ICE38 -sice:ICE43 -sice:ICE57 set LIGHT=-sw1104 :: Compile & Link -"%WIX%\bin\candle.exe" -nologo -pedantic -arch %ARCH% %SQLCIPHER% product.wxs -"%WIX%\bin\light.exe" -sval -nologo -pedantic %LIGHT% %ICE% -ext WixUIExtension -ext WixUtilExtension -cultures:en-us -loc strings.wxl product.wixobj -out %MSI%.msi +"%WIX%\bin\candle.exe" -nologo -pedantic -arch %ARCH% %SQLCIPHER% product.wxs translations.wxs +"%WIX%\bin\light.exe" -sval -nologo -pedantic %LIGHT% %ICE% -ext WixUIExtension -ext WixUtilExtension -cultures:en-us -loc strings.wxl product.wixobj translations.wixobj -out %MSI%.msi :: Cleanup del product.wixobj +del translations.wixobj del %MSI%.wixpdb diff --git a/installer/windows/product.wxs b/installer/windows/product.wxs index c7006a960..10219114a 100644 --- a/installer/windows/product.wxs +++ b/installer/windows/product.wxs @@ -137,6 +137,9 @@ + + + diff --git a/installer/windows/translations.wxs b/installer/windows/translations.wxs new file mode 100644 index 000000000..c8bc09510 --- /dev/null +++ b/installer/windows/translations.wxs @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From c5cfb9b9da3ac5b5fa1c8e451cfd683733879914 Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Mon, 26 Nov 2018 11:30:19 +1100 Subject: [PATCH 041/127] Update the included translations for our Win32 nightly builds --- installer/windows/translations.wxs | 44 +++++++++++++++++++----------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/installer/windows/translations.wxs b/installer/windows/translations.wxs index c8bc09510..b51fe591b 100644 --- a/installer/windows/translations.wxs +++ b/installer/windows/translations.wxs @@ -31,9 +31,12 @@ - - - + + + + + + @@ -102,11 +105,14 @@ - - - - - + + + + + + + + @@ -126,9 +132,12 @@ - - - + + + + + + @@ -197,11 +206,14 @@ - - - - - + + + + + + + + From 9a32c00aadab6126386e3a366e83f86ce48f1897 Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Tue, 27 Nov 2018 16:22:24 +1100 Subject: [PATCH 042/127] Update version number to 3.10.200, which we're using for our 3.11.0-beta1 release --- installer/windows/variables.wxi | 2 +- src/app.plist | 6 +++--- src/version.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/installer/windows/variables.wxi b/installer/windows/variables.wxi index 37e33b72b..585de3863 100644 --- a/installer/windows/variables.wxi +++ b/installer/windows/variables.wxi @@ -3,7 +3,7 @@ - + + + + + From 82d2f6a5d225453b224336f29d1340b49e15ae59 Mon Sep 17 00:00:00 2001 From: mgrojo Date: Sat, 1 Dec 2018 18:12:53 +0100 Subject: [PATCH 045/127] Support for CMake 3.11 CMake 3.11 has a new AUTOMOC implementation that is breaking QScintilla compilation. https://cmake.org/cmake/help/v3.11/release/3.11.html#autogen It is disabled and QT5_WRAP_CPP used instead. This has been tested with CMake 3.10.2 and 3.13.1. See issue #1361 --- libs/qscintilla/Qt4Qt5/CMakeLists.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libs/qscintilla/Qt4Qt5/CMakeLists.txt b/libs/qscintilla/Qt4Qt5/CMakeLists.txt index fbdeb4fbc..098c9ef81 100644 --- a/libs/qscintilla/Qt4Qt5/CMakeLists.txt +++ b/libs/qscintilla/Qt4Qt5/CMakeLists.txt @@ -1,6 +1,7 @@ cmake_minimum_required(VERSION 2.8.12.2) -set(CMAKE_AUTOMOC ON) +# Disable AUTOMOC because it cannot be made to work with QScintilla +set(CMAKE_AUTOMOC OFF) set(CMAKE_INCLUDE_CURRENT_DIR ON) find_package(Qt5 REQUIRED COMPONENTS PrintSupport Widgets) @@ -163,9 +164,11 @@ set(QSCINTILLA_MOC_HDR ScintillaQt.h ) +QT5_WRAP_CPP(QSCINTILLA_WRAP_MOC_HDR ${QSCINTILLA_MOC_HDR}) + include_directories(. ../include ../lexlib ../src) -add_library(qscintilla2 ${QSCINTILLA_SRC} ${QSCINTILLA_HDR} ${QSCINTILLA_MOC_HDR} ${QSCINTILLA_MOC}) +add_library(qscintilla2 ${QSCINTILLA_SRC} ${QSCINTILLA_HDR} ${QSCINTILLA_MOC_HDR} ${QSCINTILLA_MOC} ${QSCINTILLA_WRAP_MOC_HDR}) target_link_libraries(qscintilla2 Qt5::Widgets Qt5::PrintSupport) From 1183b53b36496f0c1a0938e526e88b8b1d00311a Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Sun, 2 Dec 2018 16:24:19 +1100 Subject: [PATCH 046/127] Copy over Karim's improvements to the installer This merges both SQLite and SQLCipher into the one installer, so people can launch either as desired. --- installer/windows/build.cmd | 16 ++------- installer/windows/product.wxs | 58 ++++++++++++++++++++------------- installer/windows/variables.wxi | 4 +++ 3 files changed, 42 insertions(+), 36 deletions(-) diff --git a/installer/windows/build.cmd b/installer/windows/build.cmd index 427bb52f8..75112e611 100644 --- a/installer/windows/build.cmd +++ b/installer/windows/build.cmd @@ -1,7 +1,7 @@ @echo off :: Output file name -set MSI=DB.Browser.for.SQLite +set MSI=DB.Browser.for.SQLite-%1 :: Set the ARCH based on the first parameter if "%1"=="" ( @@ -16,18 +16,6 @@ if "%1"=="" ( goto :eof ) -:: Choose between building the application with SQLite (default) or SQLCipher library -if "%2"=="" ( - set SQLCIPHER= - set MSI=%MSI%-%1 -) else if "%2"=="sqlcipher" ( - set MSI=%MSI%-sqlcipher-%1 - set SQLCIPHER=-dSQLCipher=1 -) else ( - echo ERROR: Second parameter can only be "sqlcipher" or nothing - goto :eof -) - :: Suppress some ICE checks :: - 61 (major upgrade) :: - 03 & 82 (merge module) @@ -39,7 +27,7 @@ set ICE=-sice:ICE03 -sice:ICE82 -sice:ICE61 -sice:ICE38 -sice:ICE43 -sice:ICE57 set LIGHT=-sw1104 :: Compile & Link -"%WIX%\bin\candle.exe" -nologo -pedantic -arch %ARCH% %SQLCIPHER% product.wxs translations.wxs +"%WIX%\bin\candle.exe" -nologo -pedantic -arch %ARCH% product.wxs translations.wxs "%WIX%\bin\light.exe" -sval -nologo -pedantic %LIGHT% %ICE% -ext WixUIExtension -ext WixUtilExtension -cultures:en-us -loc strings.wxl product.wixobj translations.wixobj -out %MSI%.msi :: Cleanup diff --git a/installer/windows/product.wxs b/installer/windows/product.wxs index 363b6ad2a..e879be076 100644 --- a/installer/windows/product.wxs +++ b/installer/windows/product.wxs @@ -68,6 +68,9 @@ + + + @@ -98,24 +101,30 @@ - - - - - - + + + + - - - + + + + + + + - - - + + + + + + + @@ -129,12 +138,17 @@ - - + + + + - - + + + + + @@ -176,14 +190,14 @@ - - - - - - + + + + + + diff --git a/installer/windows/variables.wxi b/installer/windows/variables.wxi index 585de3863..42bb43c1b 100644 --- a/installer/windows/variables.wxi +++ b/installer/windows/variables.wxi @@ -59,11 +59,15 @@ + + + + From 7717d467d18a62c36461d14f4f0b439dc6b1f50b Mon Sep 17 00:00:00 2001 From: Karim ElDeeb Date: Thu, 29 Nov 2018 04:14:42 +0200 Subject: [PATCH 047/127] Add math extension source --- src/extensions/extension-functions.c | 1947 ++++++++++++++++++++++++ src/extensions/extension-functions.def | 16 + 2 files changed, 1963 insertions(+) create mode 100644 src/extensions/extension-functions.c create mode 100644 src/extensions/extension-functions.def diff --git a/src/extensions/extension-functions.c b/src/extensions/extension-functions.c new file mode 100644 index 000000000..2bdd1948b --- /dev/null +++ b/src/extensions/extension-functions.c @@ -0,0 +1,1947 @@ +/* +This library will provide common mathematical and string functions in +SQL queries using the operating system libraries or provided +definitions. It includes the following functions: + +Math: acos, asin, atan, atn2, atan2, acosh, asinh, atanh, difference, +degrees, radians, cos, sin, tan, cot, cosh, sinh, tanh, coth, exp, +log, log10, power, sign, sqrt, square, ceil, floor, pi. + +String: replicate, charindex, leftstr, rightstr, ltrim, rtrim, trim, +replace, reverse, proper, padl, padr, padc, strfilter. + +Aggregate: stdev, variance, mode, median, lower_quartile, +upper_quartile. + +The string functions ltrim, rtrim, trim, replace are included in +recent versions of SQLite and so by default do not build. + +Compilation instructions: + Compile this C source file into a dynamic library as follows: + * Linux: + gcc -fPIC -lm -shared extension-functions.c -o libsqlitefunctions.so + * Mac OS X: + gcc -fno-common -dynamiclib extension-functions.c -o libsqlitefunctions.dylib + (You may need to add flags + -I /opt/local/include/ -L/opt/local/lib -lsqlite3 + if your sqlite3 is installed from Mac ports, or + -I /sw/include/ -L/sw/lib -lsqlite3 + if installed with Fink.) + * Windows: + 1. Install MinGW (http://www.mingw.org/) and you will get the gcc + (gnu compiler collection) + 2. add the path to your path variable (isn't done during the + installation!) + 3. compile: + gcc -shared -I "path" -o libsqlitefunctions.so extension-functions.c + (path = path of sqlite3ext.h; i.e. C:\programs\sqlite) + +Usage instructions for applications calling the sqlite3 API functions: + In your application, call sqlite3_enable_load_extension(db,1) to + allow loading external libraries. Then load the library libsqlitefunctions + using sqlite3_load_extension; the third argument should be 0. + See http://www.sqlite.org/cvstrac/wiki?p=LoadableExtensions. + Select statements may now use these functions, as in + SELECT cos(radians(inclination)) FROM satsum WHERE satnum = 25544; + +Usage instructions for the sqlite3 program: + If the program is built so that loading extensions is permitted, + the following will work: + sqlite> SELECT load_extension('./libsqlitefunctions.so'); + sqlite> select cos(radians(45)); + 0.707106781186548 + Note: Loading extensions is by default prohibited as a + security measure; see "Security Considerations" in + http://www.sqlite.org/cvstrac/wiki?p=LoadableExtensions. + If the sqlite3 program and library are built this + way, you cannot use these functions from the program, you + must write your own program using the sqlite3 API, and call + sqlite3_enable_load_extension as described above, or else + rebuilt the sqlite3 program to allow loadable extensions. + +Alterations: +The instructions are for Linux, Mac OS X, and Windows; users of other +OSes may need to modify this procedure. In particular, if your math +library lacks one or more of the needed trig or log functions, comment +out the appropriate HAVE_ #define at the top of file. If you do not +wish to make a loadable module, comment out the define for +COMPILE_SQLITE_EXTENSIONS_AS_LOADABLE_MODULE. If you are using a +version of SQLite without the trim functions and replace, comment out +the HAVE_TRIM #define. + +Liam Healy + +History: +2010-01-06 Correct check for argc in squareFunc, and add Windows +compilation instructions. +2009-06-24 Correct check for argc in properFunc. +2008-09-14 Add check that memory was actually allocated after +sqlite3_malloc or sqlite3StrDup, call sqlite3_result_error_nomem if +not. Thanks to Robert Simpson. +2008-06-13 Change to instructions to indicate use of the math library +and that program might work. +2007-10-01 Minor clarification to instructions. +2007-09-29 Compilation as loadable module is optional with +COMPILE_SQLITE_EXTENSIONS_AS_LOADABLE_MODULE. +2007-09-28 Use sqlite3_extension_init and macros +SQLITE_EXTENSION_INIT1, SQLITE_EXTENSION_INIT2, so that it works with +sqlite3_load_extension. Thanks to Eric Higashino and Joe Wilson. +New instructions for Mac compilation. +2007-09-17 With help from Joe Wilson and Nuno Luca, made use of +external interfaces so that compilation is no longer dependent on +SQLite source code. Merged source, header, and README into a single +file. Added casts so that Mac will compile without warnings (unsigned +and signed char). +2007-09-05 Included some definitions from sqlite 3.3.13 so that this +will continue to work in newer versions of sqlite. Completed +description of functions available. +2007-03-27 Revised description. +2007-03-23 Small cleanup and a bug fix on the code. This was mainly +letting errno flag errors encountered in the math library and checking +the result, rather than pre-checking. This fixes a bug in power that +would cause an error if any non-positive number was raised to any +power. +2007-02-07 posted by Mikey C to sqlite mailing list. +Original code 2006 June 05 by relicoder. + +*/ + +//#include "config.h" + +#define COMPILE_SQLITE_EXTENSIONS_AS_LOADABLE_MODULE 1 +#define HAVE_ACOSH 1 +#define HAVE_ASINH 1 +#define HAVE_ATANH 1 +#define HAVE_SINH 1 +#define HAVE_COSH 1 +#define HAVE_TANH 1 +#define HAVE_LOG10 1 +#define HAVE_ISBLANK 1 +#define SQLITE_SOUNDEX 1 +#define HAVE_TRIM 1 /* LMH 2007-03-25 if sqlite has trim functions */ + +#ifdef COMPILE_SQLITE_EXTENSIONS_AS_LOADABLE_MODULE +#include "sqlite3ext.h" +SQLITE_EXTENSION_INIT1 +#else +#include "sqlite3.h" +#endif + +#include +/* relicoder */ +#include +#include +#include +#include /* LMH 2007-03-25 */ + +#include +#include + +#ifndef _MAP_H_ +#define _MAP_H_ + +#include + +/* +** Simple binary tree implementation to use in median, mode and quartile calculations +** Tree is not necessarily balanced. That would require something like red&black trees of AVL +*/ + +typedef int(*cmp_func)(const void *, const void *); +typedef void(*map_iterator)(void*, int64_t, void*); + +typedef struct node{ + struct node *l; + struct node *r; + void* data; + int64_t count; +} node; + +typedef struct map{ + node *base; + cmp_func cmp; + short free; +} map; + +/* +** creates a map given a comparison function +*/ +map map_make(cmp_func cmp); + +/* +** inserts the element e into map m +*/ +void map_insert(map *m, void *e); + +/* +** executes function iter over all elements in the map, in key increasing order +*/ +void map_iterate(map *m, map_iterator iter, void* p); + +/* +** frees all memory used by a map +*/ +void map_destroy(map *m); + +/* +** compares 2 integers +** to use with map_make +*/ +int int_cmp(const void *a, const void *b); + +/* +** compares 2 doubles +** to use with map_make +*/ +int double_cmp(const void *a, const void *b); + +#endif /* _MAP_H_ */ + +typedef uint8_t u8; +typedef uint16_t u16; +typedef int64_t i64; + +static char *sqlite3StrDup( const char *z ) { + char *res = sqlite3_malloc( strlen(z)+1 ); + return strcpy( res, z ); +} + +/* +** These are copied verbatim from fun.c so as to not have the names exported +*/ + +/* LMH from sqlite3 3.3.13 */ +/* +** This table maps from the first byte of a UTF-8 character to the number +** of trailing bytes expected. A value '4' indicates that the table key +** is not a legal first byte for a UTF-8 character. +*/ +static const u8 xtra_utf8_bytes[256] = { +/* 0xxxxxxx */ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + +/* 10wwwwww */ +4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, +4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, +4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, +4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + +/* 110yyyyy */ +1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + +/* 1110zzzz */ +2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + +/* 11110yyy */ +3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, +}; + + +/* +** This table maps from the number of trailing bytes in a UTF-8 character +** to an integer constant that is effectively calculated for each character +** read by a naive implementation of a UTF-8 character reader. The code +** in the READ_UTF8 macro explains things best. +*/ +static const int xtra_utf8_bits[] = { + 0, + 12416, /* (0xC0 << 6) + (0x80) */ + 925824, /* (0xE0 << 12) + (0x80 << 6) + (0x80) */ + 63447168 /* (0xF0 << 18) + (0x80 << 12) + (0x80 << 6) + 0x80 */ +}; + +/* +** If a UTF-8 character contains N bytes extra bytes (N bytes follow +** the initial byte so that the total character length is N+1) then +** masking the character with utf8_mask[N] must produce a non-zero +** result. Otherwise, we have an (illegal) overlong encoding. +*/ +static const int utf_mask[] = { + 0x00000000, + 0xffffff80, + 0xfffff800, + 0xffff0000, +}; + +/* LMH salvaged from sqlite3 3.3.13 source code src/utf.c */ +#define READ_UTF8(zIn, c) { \ + int xtra; \ + c = *(zIn)++; \ + xtra = xtra_utf8_bytes[c]; \ + switch( xtra ){ \ + case 4: c = (int)0xFFFD; break; \ + case 3: c = (c<<6) + *(zIn)++; \ + case 2: c = (c<<6) + *(zIn)++; \ + case 1: c = (c<<6) + *(zIn)++; \ + c -= xtra_utf8_bits[xtra]; \ + if( (utf_mask[xtra]&c)==0 \ + || (c&0xFFFFF800)==0xD800 \ + || (c&0xFFFFFFFE)==0xFFFE ){ c = 0xFFFD; } \ + } \ +} + +static int sqlite3ReadUtf8(const unsigned char *z){ + int c; + READ_UTF8(z, c); + return c; +} + +#define SKIP_UTF8(zIn) { \ + zIn += (xtra_utf8_bytes[*(u8 *)zIn] + 1); \ +} + +/* +** pZ is a UTF-8 encoded unicode string. If nByte is less than zero, +** return the number of unicode characters in pZ up to (but not including) +** the first 0x00 byte. If nByte is not less than zero, return the +** number of unicode characters in the first nByte of pZ (or up to +** the first 0x00, whichever comes first). +*/ +static int sqlite3Utf8CharLen(const char *z, int nByte){ + int r = 0; + const char *zTerm; + if( nByte>=0 ){ + zTerm = &z[nByte]; + }else{ + zTerm = (const char *)(-1); + } + assert( z<=zTerm ); + while( *z!=0 && z 0) ? 1: ( iVal < 0 ) ? -1: 0; + sqlite3_result_int64(context, iVal); + break; + } + case SQLITE_NULL: { + sqlite3_result_null(context); + break; + } + default: { + /* 2nd change below. Line for abs was: if( rVal<0 ) rVal = rVal * -1.0; */ + + rVal = sqlite3_value_double(argv[0]); + rVal = ( rVal > 0) ? 1: ( rVal < 0 ) ? -1: 0; + sqlite3_result_double(context, rVal); + break; + } + } +} + + +/* +** smallest integer value not less than argument +*/ +static void ceilFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + double rVal=0.0; + i64 iVal=0; + assert( argc==1 ); + switch( sqlite3_value_type(argv[0]) ){ + case SQLITE_INTEGER: { + i64 iVal = sqlite3_value_int64(argv[0]); + sqlite3_result_int64(context, iVal); + break; + } + case SQLITE_NULL: { + sqlite3_result_null(context); + break; + } + default: { + rVal = sqlite3_value_double(argv[0]); + sqlite3_result_int64(context, (i64) ceil(rVal)); + break; + } + } +} + +/* +** largest integer value not greater than argument +*/ +static void floorFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + double rVal=0.0; + i64 iVal=0; + assert( argc==1 ); + switch( sqlite3_value_type(argv[0]) ){ + case SQLITE_INTEGER: { + i64 iVal = sqlite3_value_int64(argv[0]); + sqlite3_result_int64(context, iVal); + break; + } + case SQLITE_NULL: { + sqlite3_result_null(context); + break; + } + default: { + rVal = sqlite3_value_double(argv[0]); + sqlite3_result_int64(context, (i64) floor(rVal)); + break; + } + } +} + +/* +** Given a string (s) in the first argument and an integer (n) in the second returns the +** string that constains s contatenated n times +*/ +static void replicateFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + unsigned char *z; /* input string */ + unsigned char *zo; /* result string */ + i64 iCount; /* times to repeat */ + i64 nLen; /* length of the input string (no multibyte considerations) */ + i64 nTLen; /* length of the result string (no multibyte considerations) */ + i64 i=0; + + if( argc!=2 || SQLITE_NULL==sqlite3_value_type(argv[0]) ) + return; + + iCount = sqlite3_value_int64(argv[1]); + + if( iCount<0 ){ + sqlite3_result_error(context, "domain error", -1); + }else{ + + nLen = sqlite3_value_bytes(argv[0]); + nTLen = nLen*iCount; + z=sqlite3_malloc(nTLen+1); + zo=sqlite3_malloc(nLen+1); + if (!z || !zo){ + sqlite3_result_error_nomem(context); + if (z) sqlite3_free(z); + if (zo) sqlite3_free(zo); + return; + } + strcpy((char*)zo, (char*)sqlite3_value_text(argv[0])); + + for(i=0; i=n it's a NOP +** padl(NULL) = NULL +*/ +static void padlFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + i64 ilen; /* length to pad to */ + i64 zl; /* length of the input string (UTF-8 chars) */ + int i = 0; + const char *zi; /* input string */ + char *zo; /* output string */ + char *zt; + + assert( argc==2 ); + + if( sqlite3_value_type(argv[0]) == SQLITE_NULL ){ + sqlite3_result_null(context); + }else{ + zi = (char *)sqlite3_value_text(argv[0]); + ilen = sqlite3_value_int64(argv[1]); + /* check domain */ + if(ilen<0){ + sqlite3_result_error(context, "domain error", -1); + return; + } + zl = sqlite3Utf8CharLen(zi, -1); + if( zl>=ilen ){ + /* string is longer than the requested pad length, return the same string (dup it) */ + zo = sqlite3StrDup(zi); + if (!zo){ + sqlite3_result_error_nomem(context); + return; + } + sqlite3_result_text(context, zo, -1, SQLITE_TRANSIENT); + }else{ + zo = sqlite3_malloc(strlen(zi)+ilen-zl+1); + if (!zo){ + sqlite3_result_error_nomem(context); + return; + } + zt = zo; + for(i=1; i+zl<=ilen; ++i){ + *(zt++)=' '; + } + /* no need to take UTF-8 into consideration here */ + strcpy(zt,zi); + } + sqlite3_result_text(context, zo, -1, SQLITE_TRANSIENT); + sqlite3_free(zo); + } +} + +/* +** given an input string (s) and an integer (n) appends spaces at the end of s +** until it has a length of n characters. +** When s has a length >=n it's a NOP +** padl(NULL) = NULL +*/ +static void padrFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + i64 ilen; /* length to pad to */ + i64 zl; /* length of the input string (UTF-8 chars) */ + i64 zll; /* length of the input string (bytes) */ + int i = 0; + const char *zi; /* input string */ + char *zo; /* output string */ + char *zt; + + assert( argc==2 ); + + if( sqlite3_value_type(argv[0]) == SQLITE_NULL ){ + sqlite3_result_null(context); + }else{ + zi = (char *)sqlite3_value_text(argv[0]); + ilen = sqlite3_value_int64(argv[1]); + /* check domain */ + if(ilen<0){ + sqlite3_result_error(context, "domain error", -1); + return; + } + zl = sqlite3Utf8CharLen(zi, -1); + if( zl>=ilen ){ + /* string is longer than the requested pad length, return the same string (dup it) */ + zo = sqlite3StrDup(zi); + if (!zo){ + sqlite3_result_error_nomem(context); + return; + } + sqlite3_result_text(context, zo, -1, SQLITE_TRANSIENT); + }else{ + zll = strlen(zi); + zo = sqlite3_malloc(zll+ilen-zl+1); + if (!zo){ + sqlite3_result_error_nomem(context); + return; + } + zt = strcpy(zo,zi)+zll; + for(i=1; i+zl<=ilen; ++i){ + *(zt++) = ' '; + } + *zt = '\0'; + } + sqlite3_result_text(context, zo, -1, SQLITE_TRANSIENT); + sqlite3_free(zo); + } +} + +/* +** given an input string (s) and an integer (n) appends spaces at the end of s +** and adds spaces at the begining of s until it has a length of n characters. +** Tries to add has many characters at the left as at the right. +** When s has a length >=n it's a NOP +** padl(NULL) = NULL +*/ +static void padcFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + i64 ilen; /* length to pad to */ + i64 zl; /* length of the input string (UTF-8 chars) */ + i64 zll; /* length of the input string (bytes) */ + int i = 0; + const char *zi; /* input string */ + char *zo; /* output string */ + char *zt; + + assert( argc==2 ); + + if( sqlite3_value_type(argv[0]) == SQLITE_NULL ){ + sqlite3_result_null(context); + }else{ + zi = (char *)sqlite3_value_text(argv[0]); + ilen = sqlite3_value_int64(argv[1]); + /* check domain */ + if(ilen<0){ + sqlite3_result_error(context, "domain error", -1); + return; + } + zl = sqlite3Utf8CharLen(zi, -1); + if( zl>=ilen ){ + /* string is longer than the requested pad length, return the same string (dup it) */ + zo = sqlite3StrDup(zi); + if (!zo){ + sqlite3_result_error_nomem(context); + return; + } + sqlite3_result_text(context, zo, -1, SQLITE_TRANSIENT); + }else{ + zll = strlen(zi); + zo = sqlite3_malloc(zll+ilen-zl+1); + if (!zo){ + sqlite3_result_error_nomem(context); + return; + } + zt = zo; + for(i=1; 2*i+zl<=ilen; ++i){ + *(zt++) = ' '; + } + strcpy(zt, zi); + zt+=zll; + for(; i+zl<=ilen; ++i){ + *(zt++) = ' '; + } + *zt = '\0'; + } + sqlite3_result_text(context, zo, -1, SQLITE_TRANSIENT); + sqlite3_free(zo); + } +} + +/* +** given 2 string (s1,s2) returns the string s1 with the characters NOT in s2 removed +** assumes strings are UTF-8 encoded +*/ +static void strfilterFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + const char *zi1; /* first parameter string (searched string) */ + const char *zi2; /* second parameter string (vcontains valid characters) */ + const char *z1; + const char *z21; + const char *z22; + char *zo; /* output string */ + char *zot; + int c1 = 0; + int c2 = 0; + + assert( argc==2 ); + + if( sqlite3_value_type(argv[0]) == SQLITE_NULL || sqlite3_value_type(argv[1]) == SQLITE_NULL ){ + sqlite3_result_null(context); + }else{ + zi1 = (char *)sqlite3_value_text(argv[0]); + zi2 = (char *)sqlite3_value_text(argv[1]); + /* + ** maybe I could allocate less, but that would imply 2 passes, rather waste + ** (possibly) some memory + */ + zo = sqlite3_malloc(strlen(zi1)+1); + if (!zo){ + sqlite3_result_error_nomem(context); + return; + } + zot = zo; + z1 = zi1; + while( (c1=sqliteCharVal((unsigned char *)z1))!=0 ){ + z21=zi2; + while( (c2=sqliteCharVal((unsigned char *)z21))!=0 && c2!=c1 ){ + sqliteNextChar(z21); + } + if( c2!=0){ + z22=z21; + sqliteNextChar(z22); + strncpy(zot, z21, z22-z21); + zot+=z22-z21; + } + sqliteNextChar(z1); + } + *zot = '\0'; + + sqlite3_result_text(context, zo, -1, SQLITE_TRANSIENT); + sqlite3_free(zo); + } +} + +/* +** Given a string z1, retutns the (0 based) index of it's first occurence +** in z2 after the first s characters. +** Returns -1 when there isn't a match. +** updates p to point to the character where the match occured. +** This is an auxiliary function. +*/ +static int _substr(const char* z1, const char* z2, int s, const char** p){ + int c = 0; + int rVal=-1; + const char* zt1; + const char* zt2; + int c1,c2; + + if( '\0'==*z1 ){ + return -1; + } + + while( (sqliteCharVal((unsigned char *)z2) != 0) && (c++)=0 ? rVal+s : rVal; +} + +/* +** given 2 input strings (s1,s2) and an integer (n) searches from the nth character +** for the string s1. Returns the position where the match occured. +** Characters are counted from 1. +** 0 is returned when no match occurs. +*/ + +static void charindexFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + const u8 *z1; /* s1 string */ + u8 *z2; /* s2 string */ + int s=0; + int rVal=0; + + assert( argc==3 ||argc==2); + + if( SQLITE_NULL==sqlite3_value_type(argv[0]) || SQLITE_NULL==sqlite3_value_type(argv[1])){ + sqlite3_result_null(context); + return; + } + + z1 = sqlite3_value_text(argv[0]); + if( z1==0 ) return; + z2 = (u8*) sqlite3_value_text(argv[1]); + if(argc==3){ + s = sqlite3_value_int(argv[2])-1; + if(s<0){ + s=0; + } + }else{ + s = 0; + } + + rVal = _substr((char *)z1,(char *)z2,s,NULL); + sqlite3_result_int(context, rVal+1); +} + +/* +** given a string (s) and an integer (n) returns the n leftmost (UTF-8) characters +** if the string has a length<=n or is NULL this function is NOP +*/ +static void leftFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + int c=0; + int cc=0; + int l=0; + const unsigned char *z; /* input string */ + const unsigned char *zt; + unsigned char *rz; /* output string */ + + assert( argc==2); + + if( SQLITE_NULL==sqlite3_value_type(argv[0]) || SQLITE_NULL==sqlite3_value_type(argv[1])){ + sqlite3_result_null(context); + return; + } + + z = sqlite3_value_text(argv[0]); + l = sqlite3_value_int(argv[1]); + zt = z; + + while( sqliteCharVal(zt) && c++ 0 ){ + sqliteNextChar(zt); + } + + rz = sqlite3_malloc(ze-zt+1); + if (!rz){ + sqlite3_result_error_nomem(context); + return; + } + strcpy((char*) rz, (char*) (zt)); + sqlite3_result_text(context, (char*)rz, -1, SQLITE_TRANSIENT); + sqlite3_free(rz); +} + +#ifndef HAVE_TRIM +/* +** removes the whitespaces at the begining of a string. +*/ +const char* ltrim(const char* s){ + while( *s==' ' ) + ++s; + return s; +} + +/* +** removes the whitespaces at the end of a string. +** !mutates the input string! +*/ +void rtrim(char* s){ + char* ss = s+strlen(s)-1; + while( ss>=s && *ss==' ' ) + --ss; + *(ss+1)='\0'; +} + +/* +** Removes the whitespace at the begining of a string +*/ +static void ltrimFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + const char *z; + + assert( argc==1); + + if( SQLITE_NULL==sqlite3_value_type(argv[0]) ){ + sqlite3_result_null(context); + return; + } + z = sqlite3_value_text(argv[0]); + sqlite3_result_text(context, ltrim(z), -1, SQLITE_TRANSIENT); +} + +/* +** Removes the whitespace at the end of a string +*/ +static void rtrimFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + const char *z; + char *rz; + /* try not to change data in argv */ + + assert( argc==1); + + if( SQLITE_NULL==sqlite3_value_type(argv[0]) ){ + sqlite3_result_null(context); + return; + } + z = sqlite3_value_text(argv[0]); + rz = sqlite3StrDup(z); + rtrim(rz); + sqlite3_result_text(context, rz, -1, SQLITE_TRANSIENT); + sqlite3_free(rz); +} + +/* +** Removes the whitespace at the begining and end of a string +*/ +static void trimFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + const char *z; + char *rz; + /* try not to change data in argv */ + + assert( argc==1); + + if( SQLITE_NULL==sqlite3_value_type(argv[0]) ){ + sqlite3_result_null(context); + return; + } + z = sqlite3_value_text(argv[0]); + rz = sqlite3StrDup(z); + rtrim(rz); + sqlite3_result_text(context, ltrim(rz), -1, SQLITE_TRANSIENT); + sqlite3_free(rz); +} +#endif + +/* +** given a pointer to a string s1, the length of that string (l1), a new string (s2) +** and it's length (l2) appends s2 to s1. +** All lengths in bytes. +** This is just an auxiliary function +*/ +// static void _append(char **s1, int l1, const char *s2, int l2){ +// *s1 = realloc(*s1, (l1+l2+1)*sizeof(char)); +// strncpy((*s1)+l1, s2, l2); +// *(*(s1)+l1+l2) = '\0'; +// } + +#ifndef HAVE_TRIM + +/* +** given strings s, s1 and s2 replaces occurrences of s1 in s by s2 +*/ +static void replaceFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + const char *z1; /* string s (first parameter) */ + const char *z2; /* string s1 (second parameter) string to look for */ + const char *z3; /* string s2 (third parameter) string to replace occurrences of s1 with */ + int lz1; + int lz2; + int lz3; + int lzo=0; + char *zo=0; + int ret=0; + const char *zt1; + const char *zt2; + + assert( 3==argc ); + + if( SQLITE_NULL==sqlite3_value_type(argv[0]) ){ + sqlite3_result_null(context); + return; + } + + z1 = sqlite3_value_text(argv[0]); + z2 = sqlite3_value_text(argv[1]); + z3 = sqlite3_value_text(argv[2]); + /* handle possible null values */ + if( 0==z2 ){ + z2=""; + } + if( 0==z3 ){ + z3=""; + } + + lz1 = strlen(z1); + lz2 = strlen(z2); + lz3 = strlen(z3); + +#if 0 + /* special case when z2 is empty (or null) nothing will be changed */ + if( 0==lz2 ){ + sqlite3_result_text(context, z1, -1, SQLITE_TRANSIENT); + return; + } +#endif + + zt1=z1; + zt2=z1; + + while(1){ + ret=_substr(z2,zt1 , 0, &zt2); + + if( ret<0 ) + break; + + _append(&zo, lzo, zt1, zt2-zt1); + lzo+=zt2-zt1; + _append(&zo, lzo, z3, lz3); + lzo+=lz3; + + zt1=zt2+lz2; + } + _append(&zo, lzo, zt1, lz1-(zt1-z1)); + sqlite3_result_text(context, zo, -1, SQLITE_TRANSIENT); + sqlite3_free(zo); +} +#endif + +/* +** given a string returns the same string but with the characters in reverse order +*/ +static void reverseFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + const char *z; + const char *zt; + char *rz; + char *rzt; + int l = 0; + int i = 0; + + assert( 1==argc ); + + if( SQLITE_NULL==sqlite3_value_type(argv[0]) ){ + sqlite3_result_null(context); + return; + } + z = (char *)sqlite3_value_text(argv[0]); + l = strlen(z); + rz = sqlite3_malloc(l+1); + if (!rz){ + sqlite3_result_error_nomem(context); + return; + } + rzt = rz+l; + *(rzt--) = '\0'; + + zt=z; + while( sqliteCharVal((unsigned char *)zt)!=0 ){ + z=zt; + sqliteNextChar(zt); + for(i=1; zt-i>=z; ++i){ + *(rzt--)=*(zt-i); + } + } + + sqlite3_result_text(context, rz, -1, SQLITE_TRANSIENT); + sqlite3_free(rz); +} + +/* +** An instance of the following structure holds the context of a +** stdev() or variance() aggregate computation. +** implementaion of http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Algorithm_II +** less prone to rounding errors +*/ +typedef struct StdevCtx StdevCtx; +struct StdevCtx { + double rM; + double rS; + i64 cnt; /* number of elements */ +}; + +/* +** An instance of the following structure holds the context of a +** mode() or median() aggregate computation. +** Depends on structures defined in map.c (see map & map) +** These aggregate functions only work for integers and floats although +** they could be made to work for strings. This is usually considered meaningless. +** Only usuall order (for median), no use of collation functions (would this even make sense?) +*/ +typedef struct ModeCtx ModeCtx; +struct ModeCtx { + i64 riM; /* integer value found so far */ + double rdM; /* double value found so far */ + i64 cnt; /* number of elements so far */ + double pcnt; /* number of elements smaller than a percentile */ + i64 mcnt; /* maximum number of occurrences (for mode) */ + i64 mn; /* number of occurrences (for mode and percentiles) */ + i64 is_double; /* whether the computation is being done for doubles (>0) or integers (=0) */ + map* m; /* map structure used for the computation */ + int done; /* whether the answer has been found */ +}; + +/* +** called for each value received during a calculation of stdev or variance +*/ +static void varianceStep(sqlite3_context *context, int argc, sqlite3_value **argv){ + StdevCtx *p; + + double delta; + double x; + + assert( argc==1 ); + p = sqlite3_aggregate_context(context, sizeof(*p)); + /* only consider non-null values */ + if( SQLITE_NULL != sqlite3_value_numeric_type(argv[0]) ){ + p->cnt++; + x = sqlite3_value_double(argv[0]); + delta = (x-p->rM); + p->rM += delta/p->cnt; + p->rS += delta*(x-p->rM); + } +} + +/* +** called for each value received during a calculation of mode of median +*/ +static void modeStep(sqlite3_context *context, int argc, sqlite3_value **argv){ + ModeCtx *p; + i64 xi=0; + double xd=0.0; + i64 *iptr; + double *dptr; + int type; + + assert( argc==1 ); + type = sqlite3_value_numeric_type(argv[0]); + + if( type == SQLITE_NULL) + return; + + p = sqlite3_aggregate_context(context, sizeof(*p)); + + if( 0==(p->m) ){ + p->m = calloc(1, sizeof(map)); + if( type==SQLITE_INTEGER ){ + /* map will be used for integers */ + *(p->m) = map_make(int_cmp); + p->is_double = 0; + }else{ + p->is_double = 1; + /* map will be used for doubles */ + *(p->m) = map_make(double_cmp); + } + } + + ++(p->cnt); + + if( 0==p->is_double ){ + xi = sqlite3_value_int64(argv[0]); + iptr = (i64*)calloc(1,sizeof(i64)); + *iptr = xi; + map_insert(p->m, iptr); + }else{ + xd = sqlite3_value_double(argv[0]); + dptr = (double*)calloc(1,sizeof(double)); + *dptr = xd; + map_insert(p->m, dptr); + } +} + +/* +** Auxiliary function that iterates all elements in a map and finds the mode +** (most frequent value) +*/ +static void modeIterate(void* e, i64 c, void* pp){ + i64 ei; + double ed; + ModeCtx *p = (ModeCtx*)pp; + + if( 0==p->is_double ){ + ei = *(int*)(e); + + if( p->mcnt==c ){ + ++p->mn; + }else if( p->mcntriM = ei; + p->mcnt = c; + p->mn=1; + } + }else{ + ed = *(double*)(e); + + if( p->mcnt==c ){ + ++p->mn; + }else if(p->mcntrdM = ed; + p->mcnt = c; + p->mn=1; + } + } +} + +/* +** Auxiliary function that iterates all elements in a map and finds the median +** (the value such that the number of elements smaller is equal the the number of +** elements larger) +*/ +static void medianIterate(void* e, i64 c, void* pp){ + i64 ei; + double ed; + double iL; + double iR; + int il; + int ir; + ModeCtx *p = (ModeCtx*)pp; + + if(p->done>0) + return; + + iL = p->pcnt; + iR = p->cnt - p->pcnt; + il = p->mcnt + c; + ir = p->cnt - p->mcnt; + + if( il >= iL ){ + if( ir >= iR ){ + ++p->mn; + if( 0==p->is_double ){ + ei = *(int*)(e); + p->riM += ei; + }else{ + ed = *(double*)(e); + p->rdM += ed; + } + }else{ + p->done=1; + } + } + p->mcnt+=c; +} + +/* +** Returns the mode value +*/ +static void modeFinalize(sqlite3_context *context){ + ModeCtx *p; + p = sqlite3_aggregate_context(context, 0); + if( p && p->m ){ + map_iterate(p->m, modeIterate, p); + map_destroy(p->m); + free(p->m); + + if( 1==p->mn ){ + if( 0==p->is_double ) + sqlite3_result_int64(context, p->riM); + else + sqlite3_result_double(context, p->rdM); + } + } +} + +/* +** auxiliary function for percentiles +*/ +static void _medianFinalize(sqlite3_context *context){ + ModeCtx *p; + p = (ModeCtx*) sqlite3_aggregate_context(context, 0); + if( p && p->m ){ + p->done=0; + map_iterate(p->m, medianIterate, p); + map_destroy(p->m); + free(p->m); + + if( 0==p->is_double ) + if( 1==p->mn ) + sqlite3_result_int64(context, p->riM); + else + sqlite3_result_double(context, p->riM*1.0/p->mn); + else + sqlite3_result_double(context, p->rdM/p->mn); + } +} + +/* +** Returns the median value +*/ +static void medianFinalize(sqlite3_context *context){ + ModeCtx *p; + p = (ModeCtx*) sqlite3_aggregate_context(context, 0); + if( p!=0 ){ + p->pcnt = (p->cnt)/2.0; + _medianFinalize(context); + } +} + +/* +** Returns the lower_quartile value +*/ +static void lower_quartileFinalize(sqlite3_context *context){ + ModeCtx *p; + p = (ModeCtx*) sqlite3_aggregate_context(context, 0); + if( p!=0 ){ + p->pcnt = (p->cnt)/4.0; + _medianFinalize(context); + } +} + +/* +** Returns the upper_quartile value +*/ +static void upper_quartileFinalize(sqlite3_context *context){ + ModeCtx *p; + p = (ModeCtx*) sqlite3_aggregate_context(context, 0); + if( p!=0 ){ + p->pcnt = (p->cnt)*3/4.0; + _medianFinalize(context); + } +} + +/* +** Returns the stdev value +*/ +static void stdevFinalize(sqlite3_context *context){ + StdevCtx *p; + p = sqlite3_aggregate_context(context, 0); + if( p && p->cnt>1 ){ + sqlite3_result_double(context, sqrt(p->rS/(p->cnt-1))); + }else{ + sqlite3_result_double(context, 0.0); + } +} + +/* +** Returns the variance value +*/ +static void varianceFinalize(sqlite3_context *context){ + StdevCtx *p; + p = sqlite3_aggregate_context(context, 0); + if( p && p->cnt>1 ){ + sqlite3_result_double(context, p->rS/(p->cnt-1)); + }else{ + sqlite3_result_double(context, 0.0); + } +} + +#ifdef SQLITE_SOUNDEX + +/* relicoder factored code */ +/* +** Calculates the soundex value of a string +*/ + +static void soundex(const u8 *zIn, char *zResult){ + int i, j; + static const unsigned char iCode[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 3, 0, 1, 2, 0, 0, 2, 2, 4, 5, 5, 0, + 1, 2, 6, 2, 3, 0, 1, 0, 2, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 3, 0, 1, 2, 0, 0, 2, 2, 4, 5, 5, 0, + 1, 2, 6, 2, 3, 0, 1, 0, 2, 0, 2, 0, 0, 0, 0, 0, + }; + + for(i=0; zIn[i] && !isalpha(zIn[i]); i++){} + if( zIn[i] ){ + zResult[0] = toupper(zIn[i]); + for(j=1; j<4 && zIn[i]; i++){ + int code = iCode[zIn[i]&0x7f]; + if( code>0 ){ + zResult[j++] = code + '0'; + } + } + while( j<4 ){ + zResult[j++] = '0'; + } + zResult[j] = 0; + }else{ + strcpy(zResult, "?000"); + } +} + +/* +** computes the number of different characters between the soundex value fo 2 strings +*/ +static void differenceFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + char zResult1[8]; + char zResult2[8]; + char *zR1 = zResult1; + char *zR2 = zResult2; + int rVal = 0; + int i = 0; + const u8 *zIn1; + const u8 *zIn2; + + assert( argc==2 ); + + if( sqlite3_value_type(argv[0])==SQLITE_NULL || sqlite3_value_type(argv[1])==SQLITE_NULL ){ + sqlite3_result_null(context); + return; + } + + zIn1 = (u8*)sqlite3_value_text(argv[0]); + zIn2 = (u8*)sqlite3_value_text(argv[1]); + + soundex(zIn1, zR1); + soundex(zIn2, zR2); + + for(i=0; i<4; ++i){ + if( sqliteCharVal((unsigned char *)zR1)==sqliteCharVal((unsigned char *)zR2) ) + ++rVal; + sqliteNextChar(zR1); + sqliteNextChar(zR2); + } + sqlite3_result_int(context, rVal); +} +#endif + +/* +** This function registered all of the above C functions as SQL +** functions. This should be the only routine in this file with +** external linkage. +*/ +int RegisterExtensionFunctions(sqlite3 *db){ + static const struct FuncDef { + char *zName; + signed char nArg; + u8 argType; /* 0: none. 1: db 2: (-1) */ + u8 eTextRep; /* 1: UTF-16. 0: UTF-8 */ + u8 needCollSeq; + void (*xFunc)(sqlite3_context*,int,sqlite3_value **); + } aFuncs[] = { + /* math.h */ + { "acos", 1, 0, SQLITE_UTF8, 0, acosFunc }, + { "asin", 1, 0, SQLITE_UTF8, 0, asinFunc }, + { "atan", 1, 0, SQLITE_UTF8, 0, atanFunc }, + { "atn2", 2, 0, SQLITE_UTF8, 0, atn2Func }, + /* XXX alias */ + { "atan2", 2, 0, SQLITE_UTF8, 0, atn2Func }, + { "acosh", 1, 0, SQLITE_UTF8, 0, acoshFunc }, + { "asinh", 1, 0, SQLITE_UTF8, 0, asinhFunc }, + { "atanh", 1, 0, SQLITE_UTF8, 0, atanhFunc }, + + { "difference", 2, 0, SQLITE_UTF8, 0, differenceFunc}, + { "degrees", 1, 0, SQLITE_UTF8, 0, rad2degFunc }, + { "radians", 1, 0, SQLITE_UTF8, 0, deg2radFunc }, + + { "cos", 1, 0, SQLITE_UTF8, 0, cosFunc }, + { "sin", 1, 0, SQLITE_UTF8, 0, sinFunc }, + { "tan", 1, 0, SQLITE_UTF8, 0, tanFunc }, + { "cot", 1, 0, SQLITE_UTF8, 0, cotFunc }, + { "cosh", 1, 0, SQLITE_UTF8, 0, coshFunc }, + { "sinh", 1, 0, SQLITE_UTF8, 0, sinhFunc }, + { "tanh", 1, 0, SQLITE_UTF8, 0, tanhFunc }, + { "coth", 1, 0, SQLITE_UTF8, 0, cothFunc }, + + { "exp", 1, 0, SQLITE_UTF8, 0, expFunc }, + { "log", 1, 0, SQLITE_UTF8, 0, logFunc }, + { "log10", 1, 0, SQLITE_UTF8, 0, log10Func }, + { "power", 2, 0, SQLITE_UTF8, 0, powerFunc }, + { "sign", 1, 0, SQLITE_UTF8, 0, signFunc }, + { "sqrt", 1, 0, SQLITE_UTF8, 0, sqrtFunc }, + { "square", 1, 0, SQLITE_UTF8, 0, squareFunc }, + + { "ceil", 1, 0, SQLITE_UTF8, 0, ceilFunc }, + { "floor", 1, 0, SQLITE_UTF8, 0, floorFunc }, + + { "pi", 0, 0, SQLITE_UTF8, 1, piFunc }, + + + /* string */ + { "replicate", 2, 0, SQLITE_UTF8, 0, replicateFunc }, + { "charindex", 2, 0, SQLITE_UTF8, 0, charindexFunc }, + { "charindex", 3, 0, SQLITE_UTF8, 0, charindexFunc }, + { "leftstr", 2, 0, SQLITE_UTF8, 0, leftFunc }, + { "rightstr", 2, 0, SQLITE_UTF8, 0, rightFunc }, +#ifndef HAVE_TRIM + { "ltrim", 1, 0, SQLITE_UTF8, 0, ltrimFunc }, + { "rtrim", 1, 0, SQLITE_UTF8, 0, rtrimFunc }, + { "trim", 1, 0, SQLITE_UTF8, 0, trimFunc }, + { "replace", 3, 0, SQLITE_UTF8, 0, replaceFunc }, +#endif + { "reverse", 1, 0, SQLITE_UTF8, 0, reverseFunc }, + { "proper", 1, 0, SQLITE_UTF8, 0, properFunc }, + { "padl", 2, 0, SQLITE_UTF8, 0, padlFunc }, + { "padr", 2, 0, SQLITE_UTF8, 0, padrFunc }, + { "padc", 2, 0, SQLITE_UTF8, 0, padcFunc }, + { "strfilter", 2, 0, SQLITE_UTF8, 0, strfilterFunc }, + + }; + /* Aggregate functions */ + static const struct FuncDefAgg { + char *zName; + signed char nArg; + u8 argType; + u8 needCollSeq; + void (*xStep)(sqlite3_context*,int,sqlite3_value**); + void (*xFinalize)(sqlite3_context*); + } aAggs[] = { + { "stdev", 1, 0, 0, varianceStep, stdevFinalize }, + { "variance", 1, 0, 0, varianceStep, varianceFinalize }, + { "mode", 1, 0, 0, modeStep, modeFinalize }, + { "median", 1, 0, 0, modeStep, medianFinalize }, + { "lower_quartile", 1, 0, 0, modeStep, lower_quartileFinalize }, + { "upper_quartile", 1, 0, 0, modeStep, upper_quartileFinalize }, + }; + int i; + + for(i=0; ineedCollSeq = 1; + } + } +#endif + } + + for(i=0; ineedCollSeq = 1; + } + } +#endif + } + return 0; +} + +#ifdef COMPILE_SQLITE_EXTENSIONS_AS_LOADABLE_MODULE +int sqlite3_extension_init( + sqlite3 *db, char **pzErrMsg, const sqlite3_api_routines *pApi){ + SQLITE_EXTENSION_INIT2(pApi); + RegisterExtensionFunctions(db); + return 0; +} +#endif /* COMPILE_SQLITE_EXTENSIONS_AS_LOADABLE_MODULE */ + +map map_make(cmp_func cmp){ + map r; + r.cmp=cmp; + r.base = 0; + + return r; +} + +void* xcalloc(size_t nmemb, size_t size, char* s){ + void* ret = calloc(nmemb, size); + return ret; +} + +void xfree(void* p){ + free(p); +} + +void node_insert(node** n, cmp_func cmp, void *e){ + int c; + node* nn; + if(*n==0){ + nn = (node*)xcalloc(1,sizeof(node), "for node"); + nn->data = e; + nn->count = 1; + *n=nn; + }else{ + c=cmp((*n)->data,e); + if(0==c){ + ++((*n)->count); + xfree(e); + }else if(c>0){ + /* put it right here */ + node_insert(&((*n)->l), cmp, e); + }else{ + node_insert(&((*n)->r), cmp, e); + } + } +} + +void map_insert(map *m, void *e){ + node_insert(&(m->base), m->cmp, e); +} + +void node_iterate(node *n, map_iterator iter, void* p){ + if(n){ + if(n->l) + node_iterate(n->l, iter, p); + iter(n->data, n->count, p); + if(n->r) + node_iterate(n->r, iter, p); + } +} + +void map_iterate(map *m, map_iterator iter, void* p){ + node_iterate(m->base, iter, p); +} + +void node_destroy(node *n){ + if(0!=n){ + xfree(n->data); + if(n->l) + node_destroy(n->l); + if(n->r) + node_destroy(n->r); + + xfree(n); + } +} + +void map_destroy(map *m){ + node_destroy(m->base); +} + +int int_cmp(const void *a, const void *b){ + int64_t aa = *(int64_t *)(a); + int64_t bb = *(int64_t *)(b); + /* printf("cmp %d <=> %d\n",aa,bb); */ + if(aa==bb) + return 0; + else if(aa %d\n",aa,bb); */ + if(aa==bb) + return 0; + else if(aa %lld\n", ee,c); +} + diff --git a/src/extensions/extension-functions.def b/src/extensions/extension-functions.def new file mode 100644 index 000000000..df979a4ad --- /dev/null +++ b/src/extensions/extension-functions.def @@ -0,0 +1,16 @@ +EXPORTS + RegisterExtensionFunctions + double_cmp + int_cmp + map_destroy + map_insert + map_iterate + map_make + node_destroy + node_insert + node_iterate + print_elem + sqlite3_api + sqlite3_extension_init + xcalloc + xfree From a414866a6079cf4a1717c34b5f2fd430f0777f2e Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Sun, 2 Dec 2018 18:43:02 +1100 Subject: [PATCH 048/127] Update version number to 3.10.201, which we're using for beta2 --- installer/windows/variables.wxi | 2 +- src/app.plist | 6 +++--- src/version.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/installer/windows/variables.wxi b/installer/windows/variables.wxi index 42bb43c1b..afa0baabb 100644 --- a/installer/windows/variables.wxi +++ b/installer/windows/variables.wxi @@ -3,7 +3,7 @@ - + + + + + + + + @@ -177,6 +185,14 @@ + + + + + + + + From 567651c4f88575613e4565f0cc264aac66670fb9 Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Sat, 8 Dec 2018 17:29:33 +1100 Subject: [PATCH 059/127] Update macOS nightly build script default branch to be v3.11.x This is just for this branch, so it pulls from the branch it's in. --- installer/macos/build_sqlitebrowser_nightly.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installer/macos/build_sqlitebrowser_nightly.sh b/installer/macos/build_sqlitebrowser_nightly.sh index 7ec5fb0cb..88b1dd7db 100755 --- a/installer/macos/build_sqlitebrowser_nightly.sh +++ b/installer/macos/build_sqlitebrowser_nightly.sh @@ -4,7 +4,7 @@ # after updating the Homebrew dependencies QTVER="5.11.2" -BRANCH="master" +BRANCH="v3.11.x" BREW="/usr/local/bin/brew" BUILD_TYPE="release" DATE=`date "+%Y%m%d"` From c3ff5c2dc73fa8977b3aabc4a781e1ad717e547a Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Tue, 11 Dec 2018 19:38:51 +1100 Subject: [PATCH 060/127] Update Windows x64 3.11.x builds to use Qt 5.12.0 --- CMakeLists.txt | 2 +- installer/windows/variables.wxi | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f6df7c142..841240fc9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,7 +35,7 @@ if(WIN32 AND MSVC) if(CMAKE_CL_64) # Paths for 64-bit windows builds set(OPENSSL_PATH "C:/dev/OpenSSL-Win64") - set(QT5_PATH "C:/dev/Qt/5.11.2/msvc2017_64") + set(QT5_PATH "C:/dev/Qt/5.12.0/msvc2017_64") # Choose between SQLCipher or SQLite, depending whether # -Dsqlcipher=1 is passed on the command line diff --git a/installer/windows/variables.wxi b/installer/windows/variables.wxi index afa0baabb..8fa341e3f 100644 --- a/installer/windows/variables.wxi +++ b/installer/windows/variables.wxi @@ -55,7 +55,7 @@ --> - + From 4de3ac7842c9334c41580cb5ed3692ead426a1b5 Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Tue, 11 Dec 2018 22:27:01 +1100 Subject: [PATCH 061/127] Update macOS build script to use Qt 5.12.0 --- installer/macos/build_sqlitebrowser_nightly.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installer/macos/build_sqlitebrowser_nightly.sh b/installer/macos/build_sqlitebrowser_nightly.sh index 88b1dd7db..167870514 100755 --- a/installer/macos/build_sqlitebrowser_nightly.sh +++ b/installer/macos/build_sqlitebrowser_nightly.sh @@ -3,7 +3,7 @@ # Builds and uploads DB Browser for SQLite nightlies, # after updating the Homebrew dependencies -QTVER="5.11.2" +QTVER="5.12.0" BRANCH="v3.11.x" BREW="/usr/local/bin/brew" BUILD_TYPE="release" From f01dbc642c141d71bdd09793bc274203c518cd5d Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Tue, 11 Dec 2018 22:48:19 +1100 Subject: [PATCH 062/127] Homebrew SQLite package no longer has a `--without-readline` option --- installer/macos/build_sqlitebrowser_nightly.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installer/macos/build_sqlitebrowser_nightly.sh b/installer/macos/build_sqlitebrowser_nightly.sh index 167870514..11f188c40 100755 --- a/installer/macos/build_sqlitebrowser_nightly.sh +++ b/installer/macos/build_sqlitebrowser_nightly.sh @@ -64,7 +64,7 @@ $BREW remove `$BREW list` --force >>$LOG 2>&1 # Install SQLite3 echo Install SQLite3 >>$LOG 2>&1 -$BREW install sqlite --with-functions --with-json1 --without-readline --with-fts --with-fts5 >>$LOG 2>&1 +$BREW install sqlite --with-functions --with-json1 --with-fts --with-fts5 >>$LOG 2>&1 $BREW link sqlite3 --force >>$LOG 2>&1 # Update the sqlitebrowser source From 8f83a9ccc2e1b797cc8ef11d99f91ec46415275a Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Tue, 11 Dec 2018 12:45:51 +0000 Subject: [PATCH 063/127] Optimise the macOS nightly build script slightly --- installer/macos/build_sqlitebrowser_nightly.sh | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/installer/macos/build_sqlitebrowser_nightly.sh b/installer/macos/build_sqlitebrowser_nightly.sh index 11f188c40..e881f5bb9 100755 --- a/installer/macos/build_sqlitebrowser_nightly.sh +++ b/installer/macos/build_sqlitebrowser_nightly.sh @@ -127,10 +127,6 @@ mv DB\ Browser\ for\ SQLite_${DATE}.dmg $HOME/db4s_nightlies/ >>$LOG 2>&1 $BREW unlink sqlite3 >>$LOG 2>&1 rm -rf $HOME/appdmg/DB\ Browser\ for\ SQLite.app >>$LOG 2>&1 -# Upload standard sqlitebrowser nightly -echo Upload standard sqlitebrowser nightly >>$LOG 2>&1 -rsync -a $HOME/db4s_nightlies/DB\ Browser\ for\ SQLite_${DATE}.dmg nightlies@nightlies.sqlitebrowser.org:/nightlies/osx/ >>$LOG 2>&1 - ### Build SQLCipher version # Remove any existing Homebrew installed packages echo Remove any existing Homebrew installed packages >>$LOG 2>&1 @@ -208,21 +204,13 @@ if [ "${BRANCH}" != "master" ]; then git branch -D "${BRANCH}" >>$LOG 2>&1 fi -# Upload sqlitebrowser nightly with SQLCipher support -echo Upload sqlitebrowser nightly with SQLCipher support >>$LOG 2>&1 -rsync -a $HOME/db4s_nightlies/DB\ Browser\ for\ SQLite-sqlcipher_${DATE}.dmg nightlies@nightlies.sqlitebrowser.org:/nightlies/osx/ >>$LOG 2>&1 - -# Upload the nightlies build log -echo Upload the build log >>$LOG 2>&1 -rsync -a $HOME/db4s_nightlies/nightly.log-${DATE} nightlies@nightlies.sqlitebrowser.org:/nightlies/osx/ >>$LOG 2>&1 +# Upload nightly builds and the build log thus far +echo Upload nightly builds >>$LOG 2>&1 +rsync -a $HOME/db4s_nightlies/DB\ Browser\ for\ SQLite*${DATE}.dmg $HOME/db4s_nightlies/nightly.log-${DATE} ${UPLOAD_SERVER}:/nightlies/osx/ >>$LOG 2>&1 # Add the new builds to the "latest" directory ssh ${UPLOAD_SERVER} "cd /nightlies/latest; rm -f *dmg" >>$LOG 2>&1 ssh ${UPLOAD_SERVER} "cd /nightlies/latest; cp /nightlies/osx/DB\ Browser\ for\ SQLite_${DATE}.dmg /nightlies/latest/DB.Browser.for.SQLite.dmg" >>$LOG 2>&1 ssh ${UPLOAD_SERVER} "cd /nightlies/latest; cp /nightlies/osx/DB\ Browser\ for\ SQLite-sqlcipher_${DATE}.dmg /nightlies/latest/DB.Browser.for.SQLite-sqlcipher.dmg" >>$LOG 2>&1 -# Remove the nightlies from the local filesystem as we no longer need them -#echo Remove the nightlies from the local filesystem as we no longer need them >>$LOG 2>&1 -#rm -f $HOME/db4s_nightlies/sqlitebrowser_${DATE}.dmg $HOME/db4s_nightlies/sqlitebrowser-sqlcipher_${DATE}.dmg >>$LOG 2>&1 - echo Done! >>$LOG 2>&1 From f43a99cb0521f62fcec5aaccb5f9c54caea1b841 Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Wed, 12 Dec 2018 00:19:25 +1100 Subject: [PATCH 064/127] Work around an edge case for the macOS nightly builds --- installer/macos/build_sqlitebrowser_nightly.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/installer/macos/build_sqlitebrowser_nightly.sh b/installer/macos/build_sqlitebrowser_nightly.sh index e881f5bb9..6d675f007 100755 --- a/installer/macos/build_sqlitebrowser_nightly.sh +++ b/installer/macos/build_sqlitebrowser_nightly.sh @@ -74,6 +74,9 @@ git reset --hard HEAD >>$LOG 2>&1 git clean -dffx >>$LOG 2>&1 git pull >>$LOG 2>&1 git checkout $BRANCH >>$LOG 2>&1 +git reset --hard HEAD >>$LOG 2>&1 +git clean -dffx >>$LOG 2>&1 +git pull >>$LOG 2>&1 # Update the translation files echo Updating the translations >>$LOG 2>&1 @@ -142,6 +145,9 @@ cd $HOME/git_repos/sqlitebrowser >>$LOG 2>&1 git reset --hard HEAD >>$LOG 2>&1 git clean -dffx >>$LOG 2>&1 git checkout $BRANCH >>$LOG 2>&1 +git reset --hard HEAD >>$LOG 2>&1 +git clean -dffx >>$LOG 2>&1 +git pull >>$LOG 2>&1 # Update the translation files echo Updating the translations >>$LOG 2>&1 From c9fc7b2a26e4cb1c4df35013f3fe1af44bd26e01 Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Wed, 12 Dec 2018 00:27:07 +1100 Subject: [PATCH 065/127] Fix a bad cut-n-paste We don't go a git pull of the sqlitebrowser repo for the SQLCipher build, else the SQLite and SQLCipher builds could differ in the commits they'd done with. --- installer/macos/build_sqlitebrowser_nightly.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/installer/macos/build_sqlitebrowser_nightly.sh b/installer/macos/build_sqlitebrowser_nightly.sh index 6d675f007..b79d23300 100755 --- a/installer/macos/build_sqlitebrowser_nightly.sh +++ b/installer/macos/build_sqlitebrowser_nightly.sh @@ -147,7 +147,6 @@ git clean -dffx >>$LOG 2>&1 git checkout $BRANCH >>$LOG 2>&1 git reset --hard HEAD >>$LOG 2>&1 git clean -dffx >>$LOG 2>&1 -git pull >>$LOG 2>&1 # Update the translation files echo Updating the translations >>$LOG 2>&1 From cfc607ec6d2448fe318943f74530439950a07093 Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Wed, 12 Dec 2018 02:02:37 +0000 Subject: [PATCH 066/127] Use our temporary SQLCipher 3.4.2 Homebrew tap This is just until we get some things for SQLCipher 4.0.x worked out. --- installer/macos/build_sqlitebrowser_nightly.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/installer/macos/build_sqlitebrowser_nightly.sh b/installer/macos/build_sqlitebrowser_nightly.sh index b79d23300..fff78eb17 100755 --- a/installer/macos/build_sqlitebrowser_nightly.sh +++ b/installer/macos/build_sqlitebrowser_nightly.sh @@ -50,7 +50,11 @@ fi # Ensure Homebrew is owned by my user echo Ensure Homebrew is owned by my user >>$LOG 2>&1 -sudo chown -Rh jc:staff /usr/local >$LOG 2>&1 +sudo chown -Rh jc:staff /usr/local >>$LOG 2>&1 + +# Ensure the temporary SQLCipher v3.4.2 tap is in place +echo Ensure the temporary SQLCipher v3.4.2 tap is in place >>$LOG 2>&1 +brew tap justinclift/sqlcipher3 >>$LOG 2>&1 # Update Homebrew echo Update Homebrew >>$LOG 2>&1 @@ -137,7 +141,7 @@ $BREW remove `$BREW list` --force >>$LOG 2>&1 # Install sqlcipher echo Install sqlcipher >>$LOG 2>&1 -$BREW install sqlcipher --with-fts >>$LOG 2>&1 +$BREW install sqlcipher3 --with-fts >>$LOG 2>&1 # Clean the sqlitebrowser source echo Clean the sqlitebrowser source >>$LOG 2>&1 @@ -211,7 +215,7 @@ fi # Upload nightly builds and the build log thus far echo Upload nightly builds >>$LOG 2>&1 -rsync -a $HOME/db4s_nightlies/DB\ Browser\ for\ SQLite*${DATE}.dmg $HOME/db4s_nightlies/nightly.log-${DATE} ${UPLOAD_SERVER}:/nightlies/osx/ >>$LOG 2>&1 +rsync -aP $HOME/db4s_nightlies/DB\ Browser\ for\ SQLite*${DATE}.dmg $HOME/db4s_nightlies/nightly.log-${DATE} ${UPLOAD_SERVER}:/nightlies/osx/ >>$LOG 2>&1 # Add the new builds to the "latest" directory ssh ${UPLOAD_SERVER} "cd /nightlies/latest; rm -f *dmg" >>$LOG 2>&1 From 3bce67d1a331cff337083015b59d4af8bbb09d4d Mon Sep 17 00:00:00 2001 From: Karim ElDeeb Date: Tue, 4 Dec 2018 14:12:58 +0200 Subject: [PATCH 067/127] Update the Windows Installer See issue #1642. --- installer/windows/build.cmd | 5 ++- installer/windows/product.wxs | 71 +++++++++++++++++++++++------------ installer/windows/strings.wxl | 12 +++++- installer/windows/ui.wxs | 34 +++++++++++++++++ 4 files changed, 93 insertions(+), 29 deletions(-) create mode 100644 installer/windows/ui.wxs diff --git a/installer/windows/build.cmd b/installer/windows/build.cmd index 75112e611..af86b2b67 100644 --- a/installer/windows/build.cmd +++ b/installer/windows/build.cmd @@ -27,10 +27,11 @@ set ICE=-sice:ICE03 -sice:ICE82 -sice:ICE61 -sice:ICE38 -sice:ICE43 -sice:ICE57 set LIGHT=-sw1104 :: Compile & Link -"%WIX%\bin\candle.exe" -nologo -pedantic -arch %ARCH% product.wxs translations.wxs -"%WIX%\bin\light.exe" -sval -nologo -pedantic %LIGHT% %ICE% -ext WixUIExtension -ext WixUtilExtension -cultures:en-us -loc strings.wxl product.wixobj translations.wixobj -out %MSI%.msi +"%WIX%\bin\candle.exe" -nologo -pedantic -arch %ARCH% product.wxs translations.wxs ui.wxs +"%WIX%\bin\light.exe" -sval -nologo -pedantic %LIGHT% %ICE% -ext WixUIExtension -ext WixUtilExtension -cultures:en-us -loc strings.wxl product.wixobj translations.wixobj ui.wixobj -out %MSI%.msi :: Cleanup del product.wixobj del translations.wixobj +del ui.wixobj del %MSI%.wixpdb diff --git a/installer/windows/product.wxs b/installer/windows/product.wxs index e879be076..9e736b1f0 100644 --- a/installer/windows/product.wxs +++ b/installer/windows/product.wxs @@ -5,7 +5,7 @@ - + @@ -108,21 +108,25 @@ - + + SHORTCUT_SQLITE_DESKTOP - + + SHORTCUT_SQLCIPHER_DESKTOP - + + SHORTCUT_SQLITE_PROGRAMMENU - + + SHORTCUT_SQLCIPHER_PROGRAMMENU @@ -137,20 +141,18 @@ - - - - - - - - - - + + + - + + + + + + @@ -196,26 +198,45 @@ - - - - - - - - - + + + + + + + + + LicenseAccepted = "1" + NOT Installed + + + + + + + + + + + + + + + + + + diff --git a/installer/windows/strings.wxl b/installer/windows/strings.wxl index 0ab05b167..f5af817de 100644 --- a/installer/windows/strings.wxl +++ b/installer/windows/strings.wxl @@ -1,6 +1,14 @@ - This Setup Wizard will install [ProductName] on your computer. + This Setup Wizard will install [ProductName] on your computer. If you have a previous version already installed, this installation process will update it. -If you have a previous version already installed, this will update it. + + [ProductName] Setup + {\WixUI_Font_Title}Shortcuts + Select the shortcuts for the application. + [ProductName] uses the latest version of SQLite, so you can enjoy all of its new features and bug fixes, but it does not have encryption support. It is also built with SQLCipher as a separate application. SQLCipher is an open source extension to SQLite providing transparent 256-bit AES encryption of database files, but uses a slightly older version of SQLite. Both applications (with and without SQLCipher) are installed and can run concurrently. This page allows you to choose the shortcuts for each application and where to place them. + DB Browser (SQLite) + DB Browser (SQLCipher) + Desktop + Program Menu diff --git a/installer/windows/ui.wxs b/installer/windows/ui.wxs new file mode 100644 index 000000000..1d397bf0b --- /dev/null +++ b/installer/windows/ui.wxs @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + 1 + + + 1 + + + 1 + + + + + From 45167b8fdede073fc6ecbec432d62ac38e16f4c7 Mon Sep 17 00:00:00 2001 From: Karim ElDeeb Date: Wed, 5 Dec 2018 23:55:12 +0200 Subject: [PATCH 068/127] Update Windows Installer to detect old NSIS installer NSIS was used up to v3.10.1 and then we moved to MSI. The Windows Installer will now be able to detect if a previous version was installed using NSIS and uninstall it before installing the new version. See issue #1642. --- installer/windows/product.wxs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/installer/windows/product.wxs b/installer/windows/product.wxs index 9e736b1f0..30d3970ac 100644 --- a/installer/windows/product.wxs +++ b/installer/windows/product.wxs @@ -257,6 +257,39 @@ + + + + + + + + + + NSIS_INSTALLDIR + + + + + + + NSIS_INSTALLDIR + + From f5f5894e138300d99d37702ba05b19d973b6149c Mon Sep 17 00:00:00 2001 From: Karim ElDeeb Date: Wed, 12 Dec 2018 17:08:48 +0200 Subject: [PATCH 069/127] Disable running the application after installation on Windows See issue #1656. --- installer/windows/product.wxs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/installer/windows/product.wxs b/installer/windows/product.wxs index 30d3970ac..e2ec49943 100644 --- a/installer/windows/product.wxs +++ b/installer/windows/product.wxs @@ -242,15 +242,21 @@ + + + From 7fbd89a59fc07160dca07146448649341f8addbf Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Thu, 13 Dec 2018 18:02:28 +1100 Subject: [PATCH 070/127] Include the math extension with our macOS nightly build --- installer/macos/build_sqlitebrowser_nightly.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/installer/macos/build_sqlitebrowser_nightly.sh b/installer/macos/build_sqlitebrowser_nightly.sh index fff78eb17..24f554002 100755 --- a/installer/macos/build_sqlitebrowser_nightly.sh +++ b/installer/macos/build_sqlitebrowser_nightly.sh @@ -100,6 +100,11 @@ make -j3 >>$LOG 2>&1 # Seems to need a 2nd time now, due to language files needi # Include the depencencies in the .app bundle $MACDEPLOYQT src/DB\ Browser\ for\ SQLite.app -verbose=2 >>$LOG 2>&1 +# Add the math extensions to the .dmg +echo Add the math extensions to the .dmg >>$LOG 2>&1 +mkdir src/DB\ Browser\ for\ SQLite.app/Contents/Extensions >>$LOG 2>&1 +gcc -I/usr/local/opt/sqlite/include -L/usr/local/opt/sqlite/lib -fno-common -dynamiclib src/extensions/extension-functions.c -o src/DB\ Browser\ for\ SQLite.app/Contents/Extensions/math.dylib >>$LOG 2>&1 + # Copy the license files to the .dmg echo Copying the license files to the .dmg >>$LOG 2>&1 cp LICENSE LICENSE-PLUGINS src/DB\ Browser\ for\ SQLite.app/Contents/Resources/ >>$LOG 2>&1 @@ -170,6 +175,11 @@ make -j3 >>$LOG 2>&1 # Seems to need a 2nd time now, due to language files needi # Include the depencencies in the .app bundle $MACDEPLOYQT src/DB\ Browser\ for\ SQLite.app -verbose=2 >>$LOG 2>&1 +# Add the math extensions to the .dmg +echo Add the math extensions to the .dmg >>$LOG 2>&1 +mkdir src/DB\ Browser\ for\ SQLite.app/Contents/Extensions >>$LOG 2>&1 +gcc -I/usr/local/opt/sqlite/include -L/usr/local/opt/sqlite/lib -fno-common -dynamiclib src/extensions/extension-functions.c -o src/DB\ Browser\ for\ SQLite.app/Contents/Extensions/math.dylib >>$LOG 2>&1 + # Copy the license files to the .dmg echo Copying the license files to the .dmg >>$LOG 2>&1 cp LICENSE LICENSE-PLUGINS src/DB\ Browser\ for\ SQLite.app/Contents/Resources/ >>$LOG 2>&1 From f53f5ef2181e69ad097c967a3d99886f4e50affc Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Thu, 13 Dec 2018 16:50:45 +1100 Subject: [PATCH 071/127] Add macOS .dylib extension to the extension selector dialog --- src/MainWindow.cpp | 2 +- src/PreferencesDialog.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index b67ff4e4d..0c45b986b 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -2228,7 +2228,7 @@ void MainWindow::loadExtension() QString file = FileDialog::getOpenFileName( this, tr("Select extension file"), - tr("Extensions(*.so *.dll);;All files(*)")); + tr("Extensions(*.so *.dylib *.dll);;All files(*)")); if(file.isEmpty()) return; diff --git a/src/PreferencesDialog.cpp b/src/PreferencesDialog.cpp index bcbd32238..fc171e733 100644 --- a/src/PreferencesDialog.cpp +++ b/src/PreferencesDialog.cpp @@ -370,7 +370,7 @@ void PreferencesDialog::addExtension() QString file = FileDialog::getOpenFileName( this, tr("Select extension file"), - tr("Extensions(*.so *.dll);;All files(*)")); + tr("Extensions(*.so *.dylib *.dll);;All files(*)")); if(QFile::exists(file)) ui->listExtensions->addItem(file); From 640b0de37d2966deb8a53fcd95af1285e03de38a Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Thu, 13 Dec 2018 18:11:12 +1100 Subject: [PATCH 072/127] Update version number to 3.10.202, which we're using for beta3 --- installer/windows/variables.wxi | 2 +- src/app.plist | 6 +++--- src/version.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/installer/windows/variables.wxi b/installer/windows/variables.wxi index 8fa341e3f..1942455f2 100644 --- a/installer/windows/variables.wxi +++ b/installer/windows/variables.wxi @@ -3,7 +3,7 @@ - + - + From a7cf0e7bd3ca09008cf75377643ffe1b377afc39 Mon Sep 17 00:00:00 2001 From: Iulian Onofrei <6d0847b9@opayq.com> Date: Sat, 9 Feb 2019 21:37:55 +0200 Subject: [PATCH 092/127] Fix static analyzer issues (#1727) * Fix `barsGroup` memory leak * Remove unused values --- src/PlotDock.cpp | 11 ++++++++--- src/csvparser.cpp | 10 +++++----- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/PlotDock.cpp b/src/PlotDock.cpp index bbfd7eea3..7616bbbb5 100644 --- a/src/PlotDock.cpp +++ b/src/PlotDock.cpp @@ -825,10 +825,15 @@ void PlotDock::toggleLegendVisible(bool visible) void PlotDock::adjustBars() { const double padding = 0.15; - const double groupedWidth = ui->plotWidget->plottableCount()? 1.0 / ui->plotWidget->plottableCount() : 0.0; + int plottableCount = ui->plotWidget->plottableCount(); + + if (plottableCount == 0) + return; + + const double groupedWidth = 1.0 / plottableCount; QCPBars* previousBar = nullptr; - QCPBarsGroup* barsGroup = m_stackedBars? nullptr : new QCPBarsGroup(ui->plotWidget); - for (int i = 0, ie = ui->plotWidget->plottableCount(); i < ie; ++i) + QCPBarsGroup* barsGroup = m_stackedBars ? nullptr : new QCPBarsGroup(ui->plotWidget); + for (int i = 0, ie = plottableCount; i < ie; ++i) { QCPBars* bar = qobject_cast(ui->plotWidget->plottable(i)); if (bar) { diff --git a/src/csvparser.cpp b/src/csvparser.cpp index 0ab772b09..019a4ef2e 100644 --- a/src/csvparser.cpp +++ b/src/csvparser.cpp @@ -189,7 +189,7 @@ CSVParser::ParserResult CSVParser::parse(csvRowFunction insertFunction, QTextStr // no linefeed, so assume that CR represents a newline if(nit != sBufferEnd && *nit != '\n') { - field = addColumn(record, field, m_bTrimFields); + addColumn(record, field, m_bTrimFields); if(!(field = addRow(insertFunction, record, parsedRows))) return ParserResult::ParserResultError; @@ -197,7 +197,7 @@ CSVParser::ParserResult CSVParser::parse(csvRowFunction insertFunction, QTextStr } else if(c == '\n') { - field = addColumn(record, field, m_bTrimFields); + addColumn(record, field, m_bTrimFields); if(!(field = addRow(insertFunction, record, parsedRows))) return ParserResult::ParserResultError; @@ -235,7 +235,7 @@ CSVParser::ParserResult CSVParser::parse(csvRowFunction insertFunction, QTextStr else if(c == '\n') { state = StateNormal; - field = addColumn(record, field, m_bTrimFields); + addColumn(record, field, m_bTrimFields); if(!(field = addRow(insertFunction, record, parsedRows))) return ParserResult::ParserResultError; @@ -257,7 +257,7 @@ CSVParser::ParserResult CSVParser::parse(csvRowFunction insertFunction, QTextStr // no linefeed, so assume that CR represents a newline if(nit != sBufferEnd && *nit != '\n') { - field = addColumn(record, field, m_bTrimFields); + addColumn(record, field, m_bTrimFields); if(!(field = addRow(insertFunction, record, parsedRows))) return ParserResult::ParserResultError; @@ -285,7 +285,7 @@ CSVParser::ParserResult CSVParser::parse(csvRowFunction insertFunction, QTextStr if(record.num_fields) { - field = addColumn(record, field, m_bTrimFields); + addColumn(record, field, m_bTrimFields); if(!(field = addRow(insertFunction, record, parsedRows))) return ParserResult::ParserResultError; From 22fbac7a158df625b5a29024dfc5450da96b458c Mon Sep 17 00:00:00 2001 From: Martin Kleusberg Date: Sat, 9 Feb 2019 13:26:21 +0100 Subject: [PATCH 093/127] grammar: Disable window function parsing Remove the window function grammar rules. I think they are not needed anyway as long as we only parse CREATE TABLE and CREATE INDEX statements and unexpectedly they do seem to cause problems. It it still worth investigating how this is possible but for now removing them seems like the best option. See issue #1733. --- src/grammar/Sqlite3Lexer.cpp | 10 +- src/grammar/Sqlite3Parser.cpp | 1257 +++-------------------------- src/grammar/Sqlite3Parser.hpp | 16 +- src/grammar/sqlite3.g | 4 +- src/grammar/sqlite3TokenTypes.hpp | 8 +- 5 files changed, 119 insertions(+), 1176 deletions(-) diff --git a/src/grammar/Sqlite3Lexer.cpp b/src/grammar/Sqlite3Lexer.cpp index 414be40ec..8a7094e40 100644 --- a/src/grammar/Sqlite3Lexer.cpp +++ b/src/grammar/Sqlite3Lexer.cpp @@ -1199,34 +1199,34 @@ const unsigned long Sqlite3Lexer::_tokenSet_0_data_[] = { 4294967295UL, 42949672 // 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e // 0x1f ! \" # $ % & \' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > // ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ 0x5c ] ^ _ -// a b c d e f g h i j k l m n o p q r s t u v w x y z { | +// a b c d e f g h i j k l m n o p q r s t u v w x const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Lexer::_tokenSet_0(_tokenSet_0_data_,4096); const unsigned long Sqlite3Lexer::_tokenSet_1_data_[] = { 4294967295UL, 4294967295UL, 3758096383UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 2147483647UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 // 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e // 0x1f ! \" # $ % & \' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > // ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ 0x5c ^ _ ` -// a b c d e f g h i j k l m n o p q r s t u v w x y z { | +// a b c d e f g h i j k l m n o p q r s t u v w x const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Lexer::_tokenSet_1(_tokenSet_1_data_,4096); const unsigned long Sqlite3Lexer::_tokenSet_2_data_[] = { 4294967295UL, 4294967291UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 2147483647UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 // 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e // 0x1f ! # $ % & \' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? // @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ 0x5c ] ^ _ ` -// a b c d e f g h i j k l m n o p q r s t u v w x y z { | +// a b c d e f g h i j k l m n o p q r s t u v w x const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Lexer::_tokenSet_2(_tokenSet_2_data_,4096); const unsigned long Sqlite3Lexer::_tokenSet_3_data_[] = { 4294958079UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 2147483647UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xb 0xc 0xe 0xf 0x10 0x11 0x12 // 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f ! // \" # $ % & \' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B // C D E F G H I J K L M N O P Q R S T U V W X Y Z [ 0x5c ] ^ _ ` a b c -// d e f g h i j k l m n o p q r s t u v w x y z { | +// d e f g h i j k l m n o p q r s t u v w x const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Lexer::_tokenSet_3(_tokenSet_3_data_,4096); const unsigned long Sqlite3Lexer::_tokenSet_4_data_[] = { 4294967295UL, 4294967167UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 2147483647UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 // 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e // 0x1f ! \" # $ % & ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? // @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ 0x5c ] ^ _ ` -// a b c d e f g h i j k l m n o p q r s t u v w x y z { | +// a b c d e f g h i j k l m n o p q r s t u v w x const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Lexer::_tokenSet_4(_tokenSet_4_data_,4096); diff --git a/src/grammar/Sqlite3Parser.cpp b/src/grammar/Sqlite3Parser.cpp index 523138c89..b8af7ef9a 100644 --- a/src/grammar/Sqlite3Parser.cpp +++ b/src/grammar/Sqlite3Parser.cpp @@ -4610,12 +4610,6 @@ void Sqlite3Parser::subexpr() { astFactory->addASTChild( currentAST, returnAST ); } } - else if ((_tokenSet_1.member(LA(1))) && (LA(2) == LPAREN)) { - windowfunc(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); - } - } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } @@ -5110,236 +5104,6 @@ void Sqlite3Parser::raisefunction() { returnAST = raisefunction_AST; } -void Sqlite3Parser::windowfunc() { - returnAST = ANTLR_USE_NAMESPACE(antlr)nullAST; - ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; - ANTLR_USE_NAMESPACE(antlr)RefAST windowfunc_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - - functionname(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); - } - ANTLR_USE_NAMESPACE(antlr)RefAST tmp271_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp271_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp271_AST); - } - match(LPAREN); - { - switch ( LA(1)) { - case STAR: - { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp272_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp272_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp272_AST); - } - match(STAR); - break; - } - case ABORT: - case ACTION: - case AUTOINCREMENT: - case AS: - case ASC: - case AND: - case OR: - case CASCADE: - case CASE_T: - case CAST: - case CREATE: - case COLLATE: - case CONFLICT: - case CURRENT_TIME: - case CURRENT_DATE: - case CURRENT_TIMESTAMP: - case DEFAULT: - case DEFERRABLE: - case DEFERRED: - case DELETE: - case DESC: - case ELSE_T: - case END: - case ESCAPE: - case FAIL: - case GLOB: - case KEY: - case LIKE: - case TABLE: - case IF_T: - case IGNORE: - case INITIALLY: - case IMMEDIATE: - case IS: - case NO: - case NOT: - case NULL_T: - case MATCH: - case EXISTS: - case ON: - case RAISE: - case REFERENCES: - case REGEXP: - case REPLACE: - case RESTRICT: - case ROLLBACK: - case ROWID: - case SET: - case TEMPORARY: - case TEMP: - case THEN: - case UPDATE: - case WHEN: - case ID: - case QUOTEDID: - case QUOTEDLITERAL: - case NUMERIC: - case STRINGLITERAL: - case LPAREN: - case PLUS: - case MINUS: - case TILDE: - { - { - expr(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); - } - { // ( ... )* - for (;;) { - if ((LA(1) == COMMA)) { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp273_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp273_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp273_AST); - } - match(COMMA); - expr(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); - } - } - else { - goto _loop211; - } - - } - _loop211:; - } // ( ... )* - } - break; - } - case RPAREN: - { - break; - } - default: - { - throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); - } - } - } - ANTLR_USE_NAMESPACE(antlr)RefAST tmp274_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp274_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp274_AST); - } - match(RPAREN); - { - switch ( LA(1)) { - case FILTER: - { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp275_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp275_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp275_AST); - } - match(FILTER); - ANTLR_USE_NAMESPACE(antlr)RefAST tmp276_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp276_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp276_AST); - } - match(LPAREN); - ANTLR_USE_NAMESPACE(antlr)RefAST tmp277_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp277_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp277_AST); - } - match(WHERE); - expr(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); - } - ANTLR_USE_NAMESPACE(antlr)RefAST tmp278_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp278_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp278_AST); - } - match(RPAREN); - break; - } - case OVER: - { - break; - } - default: - { - throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); - } - } - } - ANTLR_USE_NAMESPACE(antlr)RefAST tmp279_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp279_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp279_AST); - } - match(OVER); - { - switch ( LA(1)) { - case LPAREN: - { - { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp280_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp280_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp280_AST); - } - match(LPAREN); - windowdefn(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); - } - ANTLR_USE_NAMESPACE(antlr)RefAST tmp281_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp281_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp281_AST); - } - match(RPAREN); - } - break; - } - case ID: - case QUOTEDID: - case QUOTEDLITERAL: - case STRINGLITERAL: - { - id(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); - } - break; - } - default: - { - throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); - } - } - } - windowfunc_AST = currentAST.root; - returnAST = windowfunc_AST; -} - void Sqlite3Parser::suffixexpr() { returnAST = ANTLR_USE_NAMESPACE(antlr)nullAST; ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; @@ -5348,10 +5112,10 @@ void Sqlite3Parser::suffixexpr() { switch ( LA(1)) { case COLLATE: { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp282_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; + ANTLR_USE_NAMESPACE(antlr)RefAST tmp271_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; if ( inputState->guessing == 0 ) { - tmp282_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp282_AST); + tmp271_AST = astFactory->create(LT(1)); + astFactory->addASTChild(currentAST, tmp271_AST); } match(COLLATE); collationname(); @@ -5373,10 +5137,10 @@ void Sqlite3Parser::suffixexpr() { switch ( LA(1)) { case NOT: { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp283_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; + ANTLR_USE_NAMESPACE(antlr)RefAST tmp272_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; if ( inputState->guessing == 0 ) { - tmp283_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp283_AST); + tmp272_AST = astFactory->create(LT(1)); + astFactory->addASTChild(currentAST, tmp272_AST); } match(NOT); break; @@ -5400,10 +5164,10 @@ void Sqlite3Parser::suffixexpr() { switch ( LA(1)) { case BETWEEN: { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp284_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; + ANTLR_USE_NAMESPACE(antlr)RefAST tmp273_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; if ( inputState->guessing == 0 ) { - tmp284_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp284_AST); + tmp273_AST = astFactory->create(LT(1)); + astFactory->addASTChild(currentAST, tmp273_AST); } match(BETWEEN); subexpr(); @@ -5447,10 +5211,10 @@ void Sqlite3Parser::suffixexpr() { } case OR: { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp285_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; + ANTLR_USE_NAMESPACE(antlr)RefAST tmp274_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; if ( inputState->guessing == 0 ) { - tmp285_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp285_AST); + tmp274_AST = astFactory->create(LT(1)); + astFactory->addASTChild(currentAST, tmp274_AST); } match(OR); break; @@ -5467,16 +5231,16 @@ void Sqlite3Parser::suffixexpr() { } } else { - goto _loop253; + goto _loop216; } } - _loop253:; + _loop216:; } // ( ... )* - ANTLR_USE_NAMESPACE(antlr)RefAST tmp286_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; + ANTLR_USE_NAMESPACE(antlr)RefAST tmp275_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; if ( inputState->guessing == 0 ) { - tmp286_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp286_AST); + tmp275_AST = astFactory->create(LT(1)); + astFactory->addASTChild(currentAST, tmp275_AST); } match(AND); expr(); @@ -5487,20 +5251,20 @@ void Sqlite3Parser::suffixexpr() { } case IN: { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp287_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; + ANTLR_USE_NAMESPACE(antlr)RefAST tmp276_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; if ( inputState->guessing == 0 ) { - tmp287_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp287_AST); + tmp276_AST = astFactory->create(LT(1)); + astFactory->addASTChild(currentAST, tmp276_AST); } match(IN); { switch ( LA(1)) { case LPAREN: { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp288_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; + ANTLR_USE_NAMESPACE(antlr)RefAST tmp277_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; if ( inputState->guessing == 0 ) { - tmp288_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp288_AST); + tmp277_AST = astFactory->create(LT(1)); + astFactory->addASTChild(currentAST, tmp277_AST); } match(LPAREN); { @@ -5583,10 +5347,10 @@ void Sqlite3Parser::suffixexpr() { { // ( ... )* for (;;) { if ((LA(1) == COMMA)) { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp289_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; + ANTLR_USE_NAMESPACE(antlr)RefAST tmp278_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; if ( inputState->guessing == 0 ) { - tmp289_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp289_AST); + tmp278_AST = astFactory->create(LT(1)); + astFactory->addASTChild(currentAST, tmp278_AST); } match(COMMA); expr(); @@ -5595,11 +5359,11 @@ void Sqlite3Parser::suffixexpr() { } } else { - goto _loop257; + goto _loop220; } } - _loop257:; + _loop220:; } // ( ... )* break; } @@ -5613,10 +5377,10 @@ void Sqlite3Parser::suffixexpr() { } } } - ANTLR_USE_NAMESPACE(antlr)RefAST tmp290_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; + ANTLR_USE_NAMESPACE(antlr)RefAST tmp279_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; if ( inputState->guessing == 0 ) { - tmp290_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp290_AST); + tmp279_AST = astFactory->create(LT(1)); + astFactory->addASTChild(currentAST, tmp279_AST); } match(RPAREN); break; @@ -5655,10 +5419,10 @@ void Sqlite3Parser::suffixexpr() { } { if ((LA(1) == ESCAPE) && (_tokenSet_7.member(LA(2)))) { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp291_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; + ANTLR_USE_NAMESPACE(antlr)RefAST tmp280_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; if ( inputState->guessing == 0 ) { - tmp291_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp291_AST); + tmp280_AST = astFactory->create(LT(1)); + astFactory->addASTChild(currentAST, tmp280_AST); } match(ESCAPE); subexpr(); @@ -5692,790 +5456,54 @@ void Sqlite3Parser::suffixexpr() { returnAST = suffixexpr_AST; } -void Sqlite3Parser::windowdefn() { +void Sqlite3Parser::like_operator() { returnAST = ANTLR_USE_NAMESPACE(antlr)nullAST; ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; - ANTLR_USE_NAMESPACE(antlr)RefAST windowdefn_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; + ANTLR_USE_NAMESPACE(antlr)RefAST like_operator_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - { switch ( LA(1)) { - case PARTITION: + case LIKE: { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp292_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; + ANTLR_USE_NAMESPACE(antlr)RefAST tmp281_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; if ( inputState->guessing == 0 ) { - tmp292_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp292_AST); + tmp281_AST = astFactory->create(LT(1)); + astFactory->addASTChild(currentAST, tmp281_AST); } - match(PARTITION); - ANTLR_USE_NAMESPACE(antlr)RefAST tmp293_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; + match(LIKE); + like_operator_AST = currentAST.root; + break; + } + case GLOB: + { + ANTLR_USE_NAMESPACE(antlr)RefAST tmp282_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; if ( inputState->guessing == 0 ) { - tmp293_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp293_AST); + tmp282_AST = astFactory->create(LT(1)); + astFactory->addASTChild(currentAST, tmp282_AST); } - match(BY); - expr(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); + match(GLOB); + like_operator_AST = currentAST.root; + break; + } + case REGEXP: + { + ANTLR_USE_NAMESPACE(antlr)RefAST tmp283_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; + if ( inputState->guessing == 0 ) { + tmp283_AST = astFactory->create(LT(1)); + astFactory->addASTChild(currentAST, tmp283_AST); } - { // ( ... )* - for (;;) { - if ((LA(1) == COMMA)) { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp294_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp294_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp294_AST); - } - match(COMMA); - expr(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); - } - } - else { - goto _loop218; - } - + match(REGEXP); + like_operator_AST = currentAST.root; + break; + } + case MATCH: + { + ANTLR_USE_NAMESPACE(antlr)RefAST tmp284_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; + if ( inputState->guessing == 0 ) { + tmp284_AST = astFactory->create(LT(1)); + astFactory->addASTChild(currentAST, tmp284_AST); } - _loop218:; - } // ( ... )* - break; - } - case ABORT: - case ACTION: - case AUTOINCREMENT: - case AS: - case ASC: - case AND: - case OR: - case CASCADE: - case CASE_T: - case CAST: - case CREATE: - case COLLATE: - case CONFLICT: - case CURRENT_TIME: - case CURRENT_DATE: - case CURRENT_TIMESTAMP: - case DEFAULT: - case DEFERRABLE: - case DEFERRED: - case DELETE: - case DESC: - case ELSE_T: - case END: - case ESCAPE: - case FAIL: - case GLOB: - case KEY: - case LIKE: - case TABLE: - case IF_T: - case IGNORE: - case INITIALLY: - case IMMEDIATE: - case IS: - case NO: - case NOT: - case NULL_T: - case MATCH: - case EXISTS: - case ON: - case RAISE: - case RANGE: - case REFERENCES: - case REGEXP: - case REPLACE: - case RESTRICT: - case ROLLBACK: - case ROWID: - case ROWS: - case SET: - case TEMPORARY: - case TEMP: - case THEN: - case UNBOUNDED: - case UPDATE: - case WHEN: - case ID: - case QUOTEDID: - case QUOTEDLITERAL: - case NUMERIC: - case STRINGLITERAL: - case LPAREN: - case RPAREN: - case PLUS: - case MINUS: - case TILDE: - case ORDER: - case CURRENT: - { - break; - } - default: - { - throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); - } - } - } - { - switch ( LA(1)) { - case ORDER: - { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp295_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp295_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp295_AST); - } - match(ORDER); - ANTLR_USE_NAMESPACE(antlr)RefAST tmp296_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp296_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp296_AST); - } - match(BY); - orderingterm(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); - } - { // ( ... )* - for (;;) { - if ((LA(1) == COMMA)) { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp297_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp297_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp297_AST); - } - match(COMMA); - orderingterm(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); - } - } - else { - goto _loop221; - } - - } - _loop221:; - } // ( ... )* - break; - } - case ABORT: - case ACTION: - case AUTOINCREMENT: - case AS: - case ASC: - case AND: - case OR: - case CASCADE: - case CASE_T: - case CAST: - case CREATE: - case COLLATE: - case CONFLICT: - case CURRENT_TIME: - case CURRENT_DATE: - case CURRENT_TIMESTAMP: - case DEFAULT: - case DEFERRABLE: - case DEFERRED: - case DELETE: - case DESC: - case ELSE_T: - case END: - case ESCAPE: - case FAIL: - case GLOB: - case KEY: - case LIKE: - case TABLE: - case IF_T: - case IGNORE: - case INITIALLY: - case IMMEDIATE: - case IS: - case NO: - case NOT: - case NULL_T: - case MATCH: - case EXISTS: - case ON: - case RAISE: - case RANGE: - case REFERENCES: - case REGEXP: - case REPLACE: - case RESTRICT: - case ROLLBACK: - case ROWID: - case ROWS: - case SET: - case TEMPORARY: - case TEMP: - case THEN: - case UNBOUNDED: - case UPDATE: - case WHEN: - case ID: - case QUOTEDID: - case QUOTEDLITERAL: - case NUMERIC: - case STRINGLITERAL: - case LPAREN: - case RPAREN: - case PLUS: - case MINUS: - case TILDE: - case CURRENT: - { - break; - } - default: - { - throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); - } - } - } - { - switch ( LA(1)) { - case ABORT: - case ACTION: - case AUTOINCREMENT: - case AS: - case ASC: - case AND: - case OR: - case CASCADE: - case CASE_T: - case CAST: - case CREATE: - case COLLATE: - case CONFLICT: - case CURRENT_TIME: - case CURRENT_DATE: - case CURRENT_TIMESTAMP: - case DEFAULT: - case DEFERRABLE: - case DEFERRED: - case DELETE: - case DESC: - case ELSE_T: - case END: - case ESCAPE: - case FAIL: - case GLOB: - case KEY: - case LIKE: - case TABLE: - case IF_T: - case IGNORE: - case INITIALLY: - case IMMEDIATE: - case IS: - case NO: - case NOT: - case NULL_T: - case MATCH: - case EXISTS: - case ON: - case RAISE: - case RANGE: - case REFERENCES: - case REGEXP: - case REPLACE: - case RESTRICT: - case ROLLBACK: - case ROWID: - case ROWS: - case SET: - case TEMPORARY: - case TEMP: - case THEN: - case UNBOUNDED: - case UPDATE: - case WHEN: - case ID: - case QUOTEDID: - case QUOTEDLITERAL: - case NUMERIC: - case STRINGLITERAL: - case LPAREN: - case PLUS: - case MINUS: - case TILDE: - case CURRENT: - { - framespec(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); - } - break; - } - case RPAREN: - { - break; - } - default: - { - throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); - } - } - } - windowdefn_AST = currentAST.root; - returnAST = windowdefn_AST; -} - -void Sqlite3Parser::orderingterm() { - returnAST = ANTLR_USE_NAMESPACE(antlr)nullAST; - ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; - ANTLR_USE_NAMESPACE(antlr)RefAST orderingterm_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - - expr(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); - } - { - if ((LA(1) == COLLATE) && (LA(2) == ID)) { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp298_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp298_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp298_AST); - } - match(COLLATE); - collationname(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); - } - } - else if ((_tokenSet_25.member(LA(1))) && (_tokenSet_26.member(LA(2)))) { - } - else { - throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); - } - - } - { - if ((LA(1) == ASC) && (_tokenSet_25.member(LA(2)))) { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp299_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp299_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp299_AST); - } - match(ASC); - } - else if ((LA(1) == DESC) && (_tokenSet_25.member(LA(2)))) { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp300_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp300_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp300_AST); - } - match(DESC); - } - else if ((_tokenSet_25.member(LA(1))) && (_tokenSet_26.member(LA(2)))) { - } - else { - throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); - } - - } - orderingterm_AST = currentAST.root; - returnAST = orderingterm_AST; -} - -void Sqlite3Parser::framespec() { - returnAST = ANTLR_USE_NAMESPACE(antlr)nullAST; - ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; - ANTLR_USE_NAMESPACE(antlr)RefAST framespec_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - - switch ( LA(1)) { - case RANGE: - case ROWS: - { - { - switch ( LA(1)) { - case RANGE: - { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp301_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp301_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp301_AST); - } - match(RANGE); - break; - } - case ROWS: - { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp302_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp302_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp302_AST); - } - match(ROWS); - break; - } - default: - { - throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); - } - } - } - { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp303_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp303_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp303_AST); - } - match(BETWEEN); - { - switch ( LA(1)) { - case UNBOUNDED: - { - { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp304_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp304_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp304_AST); - } - match(UNBOUNDED); - ANTLR_USE_NAMESPACE(antlr)RefAST tmp305_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp305_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp305_AST); - } - match(PRECEDING); - } - break; - } - case CURRENT: - { - { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp306_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp306_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp306_AST); - } - match(CURRENT); - ANTLR_USE_NAMESPACE(antlr)RefAST tmp307_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp307_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp307_AST); - } - match(ROW); - } - break; - } - default: - if ((_tokenSet_9.member(LA(1))) && (_tokenSet_27.member(LA(2)))) { - { - expr(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); - } - ANTLR_USE_NAMESPACE(antlr)RefAST tmp308_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp308_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp308_AST); - } - match(PRECEDING); - } - } - else if ((_tokenSet_9.member(LA(1))) && (_tokenSet_28.member(LA(2)))) { - { - expr(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); - } - ANTLR_USE_NAMESPACE(antlr)RefAST tmp309_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp309_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp309_AST); - } - match(FOLLOWING); - } - } - else { - throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); - } - } - } - ANTLR_USE_NAMESPACE(antlr)RefAST tmp310_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp310_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp310_AST); - } - match(AND); - { - switch ( LA(1)) { - case CURRENT: - { - { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp311_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp311_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp311_AST); - } - match(CURRENT); - ANTLR_USE_NAMESPACE(antlr)RefAST tmp312_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp312_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp312_AST); - } - match(ROW); - } - break; - } - case UNBOUNDED: - { - { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp313_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp313_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp313_AST); - } - match(UNBOUNDED); - ANTLR_USE_NAMESPACE(antlr)RefAST tmp314_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp314_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp314_AST); - } - match(FOLLOWING); - } - break; - } - default: - if ((_tokenSet_9.member(LA(1))) && (_tokenSet_27.member(LA(2)))) { - { - expr(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); - } - ANTLR_USE_NAMESPACE(antlr)RefAST tmp315_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp315_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp315_AST); - } - match(PRECEDING); - } - } - else if ((_tokenSet_9.member(LA(1))) && (_tokenSet_28.member(LA(2)))) { - { - expr(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); - } - ANTLR_USE_NAMESPACE(antlr)RefAST tmp316_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp316_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp316_AST); - } - match(FOLLOWING); - } - } - else { - throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); - } - } - } - } - framespec_AST = currentAST.root; - break; - } - case ABORT: - case ACTION: - case AUTOINCREMENT: - case AS: - case ASC: - case AND: - case OR: - case CASCADE: - case CASE_T: - case CAST: - case CREATE: - case COLLATE: - case CONFLICT: - case CURRENT_TIME: - case CURRENT_DATE: - case CURRENT_TIMESTAMP: - case DEFAULT: - case DEFERRABLE: - case DEFERRED: - case DELETE: - case DESC: - case ELSE_T: - case END: - case ESCAPE: - case FAIL: - case GLOB: - case KEY: - case LIKE: - case TABLE: - case IF_T: - case IGNORE: - case INITIALLY: - case IMMEDIATE: - case IS: - case NO: - case NOT: - case NULL_T: - case MATCH: - case EXISTS: - case ON: - case RAISE: - case REFERENCES: - case REGEXP: - case REPLACE: - case RESTRICT: - case ROLLBACK: - case ROWID: - case SET: - case TEMPORARY: - case TEMP: - case THEN: - case UNBOUNDED: - case UPDATE: - case WHEN: - case ID: - case QUOTEDID: - case QUOTEDLITERAL: - case NUMERIC: - case STRINGLITERAL: - case LPAREN: - case PLUS: - case MINUS: - case TILDE: - case CURRENT: - { - { - switch ( LA(1)) { - case UNBOUNDED: - { - { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp317_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp317_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp317_AST); - } - match(UNBOUNDED); - ANTLR_USE_NAMESPACE(antlr)RefAST tmp318_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp318_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp318_AST); - } - match(PRECEDING); - } - break; - } - case CURRENT: - { - { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp319_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp319_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp319_AST); - } - match(CURRENT); - ANTLR_USE_NAMESPACE(antlr)RefAST tmp320_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp320_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp320_AST); - } - match(ROW); - } - break; - } - default: - if ((_tokenSet_9.member(LA(1))) && (_tokenSet_27.member(LA(2)))) { - { - expr(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); - } - ANTLR_USE_NAMESPACE(antlr)RefAST tmp321_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp321_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp321_AST); - } - match(PRECEDING); - } - } - else if ((_tokenSet_9.member(LA(1))) && (_tokenSet_28.member(LA(2)))) { - { - expr(); - if (inputState->guessing==0) { - astFactory->addASTChild( currentAST, returnAST ); - } - ANTLR_USE_NAMESPACE(antlr)RefAST tmp322_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp322_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp322_AST); - } - match(FOLLOWING); - } - } - else { - throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); - } - } - } - framespec_AST = currentAST.root; - break; - } - default: - { - throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); - } - } - returnAST = framespec_AST; -} - -void Sqlite3Parser::like_operator() { - returnAST = ANTLR_USE_NAMESPACE(antlr)nullAST; - ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; - ANTLR_USE_NAMESPACE(antlr)RefAST like_operator_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - - switch ( LA(1)) { - case LIKE: - { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp323_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp323_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp323_AST); - } - match(LIKE); - like_operator_AST = currentAST.root; - break; - } - case GLOB: - { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp324_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp324_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp324_AST); - } - match(GLOB); - like_operator_AST = currentAST.root; - break; - } - case REGEXP: - { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp325_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp325_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp325_AST); - } - match(REGEXP); - like_operator_AST = currentAST.root; - break; - } - case MATCH: - { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp326_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; - if ( inputState->guessing == 0 ) { - tmp326_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp326_AST); - } - match(MATCH); - like_operator_AST = currentAST.root; + match(MATCH); + like_operator_AST = currentAST.root; break; } default: @@ -6496,13 +5524,13 @@ void Sqlite3Parser::between_subexpr() { astFactory->addASTChild( currentAST, returnAST ); } { // ( ... )+ - int _cnt247=0; + int _cnt210=0; for (;;) { if ((LA(1) == AND)) { - ANTLR_USE_NAMESPACE(antlr)RefAST tmp327_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; + ANTLR_USE_NAMESPACE(antlr)RefAST tmp285_AST = ANTLR_USE_NAMESPACE(antlr)nullAST; if ( inputState->guessing == 0 ) { - tmp327_AST = astFactory->create(LT(1)); - astFactory->addASTChild(currentAST, tmp327_AST); + tmp285_AST = astFactory->create(LT(1)); + astFactory->addASTChild(currentAST, tmp285_AST); } match(AND); subexpr(); @@ -6511,12 +5539,12 @@ void Sqlite3Parser::between_subexpr() { } } else { - if ( _cnt247>=1 ) { goto _loop247; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());} + if ( _cnt210>=1 ) { goto _loop210; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());} } - _cnt247++; + _cnt210++; } - _loop247:; + _loop210:; } // ( ... )+ between_subexpr_AST = currentAST.root; returnAST = between_subexpr_AST; @@ -6524,7 +5552,7 @@ void Sqlite3Parser::between_subexpr() { void Sqlite3Parser::initializeASTFactory( ANTLR_USE_NAMESPACE(antlr)ASTFactory& factory ) { - factory.setMaxNodeType(124); + factory.setMaxNodeType(120); } const char* Sqlite3Parser::tokenNames[] = { "<0>", @@ -6646,10 +5674,6 @@ const char* Sqlite3Parser::tokenNames[] = { "BITWISELEFT", "BITWISERIGHT", "SELECT", - "BY", - "ORDER", - "CURRENT", - "ROW", "SLASH", "PERCENT", 0 @@ -6719,7 +5743,7 @@ const unsigned long Sqlite3Parser::_tokenSet_9_data_[] = { 4294408176UL, 4196395 // "UPDATE" "WHEN" ID QUOTEDID QUOTEDLITERAL NUMERIC STRINGLITERAL LPAREN // PLUS MINUS TILDE const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Parser::_tokenSet_9(_tokenSet_9_data_,8); -const unsigned long Sqlite3Parser::_tokenSet_10_data_[] = { 4294410224UL, 4196396024UL, 520096061UL, 406847463UL, 0UL, 0UL, 0UL, 0UL }; +const unsigned long Sqlite3Parser::_tokenSet_10_data_[] = { 4294410224UL, 4196396024UL, 520096061UL, 29360103UL, 0UL, 0UL, 0UL, 0UL }; // "ABORT" "ACTION" "AUTOINCREMENT" "AS" "ASC" "AND" "OR" "BETWEEN" "CASCADE" // "CASE" "CAST" "CREATE" "COLLATE" "CONFLICT" "CURRENT_TIME" "CURRENT_DATE" // "CURRENT_TIMESTAMP" "DEFAULT" "DEFERRABLE" "DEFERRED" "DELETE" "DESC" @@ -6731,7 +5755,7 @@ const unsigned long Sqlite3Parser::_tokenSet_10_data_[] = { 4294410224UL, 419639 // BITOR OROP EQUAL EQUAL2 GREATER GREATEREQUAL LOWER LOWEREQUAL UNEQUAL // UNEQUAL2 BITWISELEFT BITWISERIGHT SLASH PERCENT const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Parser::_tokenSet_10(_tokenSet_10_data_,8); -const unsigned long Sqlite3Parser::_tokenSet_11_data_[] = { 1536UL, 268714024UL, 0UL, 406847200UL, 0UL, 0UL, 0UL, 0UL }; +const unsigned long Sqlite3Parser::_tokenSet_11_data_[] = { 1536UL, 268714024UL, 0UL, 29359840UL, 0UL, 0UL, 0UL, 0UL }; // "AND" "OR" "GLOB" "LIKE" "IS" "MATCH" "REGEXP" PLUS MINUS STAR AMPERSAND // BITOR OROP EQUAL EQUAL2 GREATER GREATEREQUAL LOWER LOWEREQUAL UNEQUAL // UNEQUAL2 BITWISELEFT BITWISERIGHT SLASH PERCENT @@ -6764,31 +5788,19 @@ const unsigned long Sqlite3Parser::_tokenSet_16_data_[] = { 4294965234UL, 421317 // "UNIQUE" "UPDATE" "WHEN" "WITHOUT" ID QUOTEDID QUOTEDLITERAL NUMERIC // STRINGLITERAL LPAREN RPAREN COMMA SEMI PLUS MINUS const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Parser::_tokenSet_16(_tokenSet_16_data_,8); -const unsigned long Sqlite3Parser::_tokenSet_17_data_[] = { 4294410226UL, 4271893498UL, 503318911UL, 457179135UL, 0UL, 0UL, 0UL, 0UL }; -// EOF "ABORT" "ACTION" "AUTOINCREMENT" "AS" "ASC" "AND" "OR" "BETWEEN" -// "CASCADE" "CASE" "CAST" "CREATE" "COLLATE" "CONFLICT" "CURRENT_TIME" -// "CURRENT_DATE" "CURRENT_TIMESTAMP" "DEFAULT" "DEFERRABLE" "DEFERRED" -// "DELETE" "DESC" "ELSE" "END" "ESCAPE" "FAIL" "FOLLOWING" "GLOB" "KEY" -// "LIKE" "TABLE" "IF" "IGNORE" "IN" "INITIALLY" "IMMEDIATE" "IS" "NO" -// "NOT" "NULL" "MATCH" "EXISTS" "ON" "PRECEDING" "RAISE" "RANGE" "REFERENCES" -// "REGEXP" "REPLACE" "RESTRICT" "ROLLBACK" "ROWID" "ROWS" "SET" "TEMPORARY" -// "TEMP" "THEN" "UNBOUNDED" "UPDATE" "WHEN" ID QUOTEDID QUOTEDLITERAL -// NUMERIC STRINGLITERAL LPAREN RPAREN COMMA SEMI PLUS MINUS STAR TILDE -// AMPERSAND BITOR OROP EQUAL EQUAL2 GREATER GREATEREQUAL LOWER LOWEREQUAL -// UNEQUAL UNEQUAL2 BITWISELEFT BITWISERIGHT ORDER CURRENT SLASH PERCENT +const unsigned long Sqlite3Parser::_tokenSet_17_data_[] = { 2013401026UL, 268780072UL, 2080UL, 29359868UL, 0UL, 0UL, 0UL, 0UL }; +// EOF "AUTOINCREMENT" "AS" "ASC" "AND" "OR" "BETWEEN" "COLLATE" "DESC" +// "ELSE" "END" "ESCAPE" "GLOB" "LIKE" "IN" "IS" "NOT" "MATCH" "REGEXP" +// "THEN" "WHEN" RPAREN COMMA SEMI PLUS MINUS STAR AMPERSAND BITOR OROP +// EQUAL EQUAL2 GREATER GREATEREQUAL LOWER LOWEREQUAL UNEQUAL UNEQUAL2 +// BITWISELEFT BITWISERIGHT SLASH PERCENT const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Parser::_tokenSet_17(_tokenSet_17_data_,8); -const unsigned long Sqlite3Parser::_tokenSet_18_data_[] = { 4294410226UL, 4271893498UL, 520096127UL, 457179135UL, 0UL, 0UL, 0UL, 0UL }; -// EOF "ABORT" "ACTION" "AUTOINCREMENT" "AS" "ASC" "AND" "OR" "BETWEEN" -// "CASCADE" "CASE" "CAST" "CREATE" "COLLATE" "CONFLICT" "CURRENT_TIME" -// "CURRENT_DATE" "CURRENT_TIMESTAMP" "DEFAULT" "DEFERRABLE" "DEFERRED" -// "DELETE" "DESC" "ELSE" "END" "ESCAPE" "FAIL" "FOLLOWING" "GLOB" "KEY" -// "LIKE" "TABLE" "IF" "IGNORE" "IN" "INITIALLY" "IMMEDIATE" "IS" "NO" -// "NOT" "NULL" "MATCH" "EXISTS" "ON" "PRECEDING" "RAISE" "RANGE" "REFERENCES" -// "REGEXP" "REPLACE" "RESTRICT" "ROLLBACK" "ROWID" "ROWS" "SET" "TEMPORARY" -// "TEMP" "THEN" "UNBOUNDED" "UPDATE" "WHEN" DOT ID QUOTEDID QUOTEDLITERAL -// NUMERIC STRINGLITERAL LPAREN RPAREN COMMA SEMI PLUS MINUS STAR TILDE -// AMPERSAND BITOR OROP EQUAL EQUAL2 GREATER GREATEREQUAL LOWER LOWEREQUAL -// UNEQUAL UNEQUAL2 BITWISELEFT BITWISERIGHT ORDER CURRENT SLASH PERCENT +const unsigned long Sqlite3Parser::_tokenSet_18_data_[] = { 2013401026UL, 268780072UL, 16779296UL, 29359868UL, 0UL, 0UL, 0UL, 0UL }; +// EOF "AUTOINCREMENT" "AS" "ASC" "AND" "OR" "BETWEEN" "COLLATE" "DESC" +// "ELSE" "END" "ESCAPE" "GLOB" "LIKE" "IN" "IS" "NOT" "MATCH" "REGEXP" +// "THEN" "WHEN" DOT RPAREN COMMA SEMI PLUS MINUS STAR AMPERSAND BITOR +// OROP EQUAL EQUAL2 GREATER GREATEREQUAL LOWER LOWEREQUAL UNEQUAL UNEQUAL2 +// BITWISELEFT BITWISERIGHT SLASH PERCENT const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Parser::_tokenSet_18(_tokenSet_18_data_,8); const unsigned long Sqlite3Parser::_tokenSet_19_data_[] = { 133120UL, 268763688UL, 0UL, 0UL }; // "BETWEEN" "COLLATE" "GLOB" "LIKE" "IN" "NOT" "MATCH" "REGEXP" @@ -6803,34 +5815,26 @@ const unsigned long Sqlite3Parser::_tokenSet_20_data_[] = { 4294410224UL, 419639 // "SET" "TEMPORARY" "TEMP" "THEN" "UPDATE" "WHEN" ID QUOTEDID QUOTEDLITERAL // NUMERIC STRINGLITERAL LPAREN PLUS MINUS TILDE const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Parser::_tokenSet_20(_tokenSet_20_data_,8); -const unsigned long Sqlite3Parser::_tokenSet_21_data_[] = { 4294408178UL, 4271892986UL, 503318911UL, 457179135UL, 0UL, 0UL, 0UL, 0UL }; -// EOF "ABORT" "ACTION" "AUTOINCREMENT" "AS" "ASC" "AND" "OR" "CASCADE" -// "CASE" "CAST" "CREATE" "COLLATE" "CONFLICT" "CURRENT_TIME" "CURRENT_DATE" -// "CURRENT_TIMESTAMP" "DEFAULT" "DEFERRABLE" "DEFERRED" "DELETE" "DESC" -// "ELSE" "END" "ESCAPE" "FAIL" "FOLLOWING" "GLOB" "KEY" "LIKE" "TABLE" -// "IF" "IGNORE" "INITIALLY" "IMMEDIATE" "IS" "NO" "NOT" "NULL" "MATCH" -// "EXISTS" "ON" "PRECEDING" "RAISE" "RANGE" "REFERENCES" "REGEXP" "REPLACE" -// "RESTRICT" "ROLLBACK" "ROWID" "ROWS" "SET" "TEMPORARY" "TEMP" "THEN" -// "UNBOUNDED" "UPDATE" "WHEN" ID QUOTEDID QUOTEDLITERAL NUMERIC STRINGLITERAL -// LPAREN RPAREN COMMA SEMI PLUS MINUS STAR TILDE AMPERSAND BITOR OROP -// EQUAL EQUAL2 GREATER GREATEREQUAL LOWER LOWEREQUAL UNEQUAL UNEQUAL2 -// BITWISELEFT BITWISERIGHT ORDER CURRENT SLASH PERCENT +const unsigned long Sqlite3Parser::_tokenSet_21_data_[] = { 2013398978UL, 268714024UL, 2080UL, 29359868UL, 0UL, 0UL, 0UL, 0UL }; +// EOF "AUTOINCREMENT" "AS" "ASC" "AND" "OR" "COLLATE" "DESC" "ELSE" "END" +// "ESCAPE" "GLOB" "LIKE" "IS" "MATCH" "REGEXP" "THEN" "WHEN" RPAREN COMMA +// SEMI PLUS MINUS STAR AMPERSAND BITOR OROP EQUAL EQUAL2 GREATER GREATEREQUAL +// LOWER LOWEREQUAL UNEQUAL UNEQUAL2 BITWISELEFT BITWISERIGHT SLASH PERCENT const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Parser::_tokenSet_21(_tokenSet_21_data_,8); -const unsigned long Sqlite3Parser::_tokenSet_22_data_[] = { 4294967282UL, 4290767871UL, 520100351UL, 532676607UL, 0UL, 0UL, 0UL, 0UL }; +const unsigned long Sqlite3Parser::_tokenSet_22_data_[] = { 4294967282UL, 4213173244UL, 503323069UL, 29360127UL, 0UL, 0UL, 0UL, 0UL }; // EOF "ABORT" "ACTION" "AUTOINCREMENT" "AS" "ASC" "AND" "OR" "BETWEEN" // "CASCADE" "CASE" "CAST" "CHECK" "CREATE" "COLLATE" "CONFLICT" "CONSTRAINT" // "CURRENT_TIME" "CURRENT_DATE" "CURRENT_TIMESTAMP" "DEFAULT" "DEFERRABLE" -// "DEFERRED" "DELETE" "DESC" "ELSE" "END" "ESCAPE" "FAIL" "FILTER" "FOLLOWING" -// "FOREIGN" "GLOB" "KEY" "LIKE" "TABLE" "IF" "IGNORE" "IN" "INITIALLY" -// "IMMEDIATE" "IS" "NO" "NOT" "NULL" "MATCH" "EXISTS" "ON" "OVER" "PRECEDING" -// "PRIMARY" "RAISE" "RANGE" "REFERENCES" "REGEXP" "REPLACE" "RESTRICT" -// "ROLLBACK" "ROWID" "ROWS" "SET" "TEMPORARY" "TEMP" "THEN" "UNBOUNDED" -// "UNIQUE" "UPDATE" "WHEN" "WHERE" DOT ID QUOTEDID QUOTEDLITERAL NUMERIC +// "DEFERRED" "DELETE" "DESC" "ELSE" "END" "ESCAPE" "FAIL" "FOREIGN" "GLOB" +// "KEY" "LIKE" "TABLE" "IF" "IGNORE" "IN" "INITIALLY" "IMMEDIATE" "IS" +// "NO" "NOT" "NULL" "MATCH" "EXISTS" "ON" "PRIMARY" "RAISE" "REFERENCES" +// "REGEXP" "REPLACE" "RESTRICT" "ROLLBACK" "ROWID" "SET" "TEMPORARY" "TEMP" +// "THEN" "UNIQUE" "UPDATE" "WHEN" "WHERE" ID QUOTEDID QUOTEDLITERAL NUMERIC // STRINGLITERAL LPAREN RPAREN COMMA SEMI PLUS MINUS STAR TILDE AMPERSAND // BITOR OROP EQUAL EQUAL2 GREATER GREATEREQUAL LOWER LOWEREQUAL UNEQUAL -// UNEQUAL2 BITWISELEFT BITWISERIGHT BY ORDER CURRENT ROW SLASH PERCENT +// UNEQUAL2 BITWISELEFT BITWISERIGHT SLASH PERCENT const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Parser::_tokenSet_22(_tokenSet_22_data_,8); -const unsigned long Sqlite3Parser::_tokenSet_23_data_[] = { 4294410224UL, 4196396024UL, 520096061UL, 406847459UL, 0UL, 0UL, 0UL, 0UL }; +const unsigned long Sqlite3Parser::_tokenSet_23_data_[] = { 4294410224UL, 4196396024UL, 520096061UL, 29360099UL, 0UL, 0UL, 0UL, 0UL }; // "ABORT" "ACTION" "AUTOINCREMENT" "AS" "ASC" "AND" "OR" "BETWEEN" "CASCADE" // "CASE" "CAST" "CREATE" "COLLATE" "CONFLICT" "CURRENT_TIME" "CURRENT_DATE" // "CURRENT_TIMESTAMP" "DEFAULT" "DEFERRABLE" "DEFERRED" "DELETE" "DESC" @@ -6842,57 +5846,10 @@ const unsigned long Sqlite3Parser::_tokenSet_23_data_[] = { 4294410224UL, 419639 // EQUAL EQUAL2 GREATER GREATEREQUAL LOWER LOWEREQUAL UNEQUAL UNEQUAL2 // BITWISELEFT BITWISERIGHT SLASH PERCENT const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Parser::_tokenSet_23(_tokenSet_23_data_,8); -const unsigned long Sqlite3Parser::_tokenSet_24_data_[] = { 1024UL, 268714024UL, 0UL, 406847200UL, 0UL, 0UL, 0UL, 0UL }; +const unsigned long Sqlite3Parser::_tokenSet_24_data_[] = { 1024UL, 268714024UL, 0UL, 29359840UL, 0UL, 0UL, 0UL, 0UL }; // "OR" "GLOB" "LIKE" "IS" "MATCH" "REGEXP" PLUS MINUS STAR AMPERSAND BITOR // OROP EQUAL EQUAL2 GREATER GREATEREQUAL LOWER LOWEREQUAL UNEQUAL UNEQUAL2 // BITWISELEFT BITWISERIGHT SLASH PERCENT const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Parser::_tokenSet_24(_tokenSet_24_data_,8); -const unsigned long Sqlite3Parser::_tokenSet_25_data_[] = { 4294408176UL, 4263504376UL, 503318911UL, 33554799UL, 0UL, 0UL, 0UL, 0UL }; -// "ABORT" "ACTION" "AUTOINCREMENT" "AS" "ASC" "AND" "OR" "CASCADE" "CASE" -// "CAST" "CREATE" "COLLATE" "CONFLICT" "CURRENT_TIME" "CURRENT_DATE" "CURRENT_TIMESTAMP" -// "DEFAULT" "DEFERRABLE" "DEFERRED" "DELETE" "DESC" "ELSE" "END" "ESCAPE" -// "FAIL" "GLOB" "KEY" "LIKE" "TABLE" "IF" "IGNORE" "INITIALLY" "IMMEDIATE" -// "IS" "NO" "NOT" "NULL" "MATCH" "EXISTS" "ON" "RAISE" "RANGE" "REFERENCES" -// "REGEXP" "REPLACE" "RESTRICT" "ROLLBACK" "ROWID" "ROWS" "SET" "TEMPORARY" -// "TEMP" "THEN" "UNBOUNDED" "UPDATE" "WHEN" ID QUOTEDID QUOTEDLITERAL -// NUMERIC STRINGLITERAL LPAREN RPAREN COMMA PLUS MINUS TILDE CURRENT -const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Parser::_tokenSet_25(_tokenSet_25_data_,8); -const unsigned long Sqlite3Parser::_tokenSet_26_data_[] = { 4294410226UL, 4271893498UL, 520096127UL, 524287999UL, 0UL, 0UL, 0UL, 0UL }; -// EOF "ABORT" "ACTION" "AUTOINCREMENT" "AS" "ASC" "AND" "OR" "BETWEEN" -// "CASCADE" "CASE" "CAST" "CREATE" "COLLATE" "CONFLICT" "CURRENT_TIME" -// "CURRENT_DATE" "CURRENT_TIMESTAMP" "DEFAULT" "DEFERRABLE" "DEFERRED" -// "DELETE" "DESC" "ELSE" "END" "ESCAPE" "FAIL" "FOLLOWING" "GLOB" "KEY" -// "LIKE" "TABLE" "IF" "IGNORE" "IN" "INITIALLY" "IMMEDIATE" "IS" "NO" -// "NOT" "NULL" "MATCH" "EXISTS" "ON" "PRECEDING" "RAISE" "RANGE" "REFERENCES" -// "REGEXP" "REPLACE" "RESTRICT" "ROLLBACK" "ROWID" "ROWS" "SET" "TEMPORARY" -// "TEMP" "THEN" "UNBOUNDED" "UPDATE" "WHEN" DOT ID QUOTEDID QUOTEDLITERAL -// NUMERIC STRINGLITERAL LPAREN RPAREN COMMA SEMI PLUS MINUS STAR TILDE -// AMPERSAND BITOR OROP EQUAL EQUAL2 GREATER GREATEREQUAL LOWER LOWEREQUAL -// UNEQUAL UNEQUAL2 BITWISELEFT BITWISERIGHT ORDER CURRENT ROW SLASH PERCENT -const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Parser::_tokenSet_26(_tokenSet_26_data_,8); -const unsigned long Sqlite3Parser::_tokenSet_27_data_[] = { 4294410224UL, 4204784632UL, 520096061UL, 406847459UL, 0UL, 0UL, 0UL, 0UL }; -// "ABORT" "ACTION" "AUTOINCREMENT" "AS" "ASC" "AND" "OR" "BETWEEN" "CASCADE" -// "CASE" "CAST" "CREATE" "COLLATE" "CONFLICT" "CURRENT_TIME" "CURRENT_DATE" -// "CURRENT_TIMESTAMP" "DEFAULT" "DEFERRABLE" "DEFERRED" "DELETE" "DESC" -// "ELSE" "END" "ESCAPE" "FAIL" "GLOB" "KEY" "LIKE" "TABLE" "IF" "IGNORE" -// "IN" "INITIALLY" "IMMEDIATE" "IS" "NO" "NOT" "NULL" "MATCH" "EXISTS" -// "ON" "PRECEDING" "RAISE" "REFERENCES" "REGEXP" "REPLACE" "RESTRICT" -// "ROLLBACK" "ROWID" "SET" "TEMPORARY" "TEMP" "THEN" "UPDATE" "WHEN" DOT -// ID QUOTEDID QUOTEDLITERAL NUMERIC STRINGLITERAL LPAREN PLUS MINUS STAR -// TILDE AMPERSAND BITOR OROP EQUAL EQUAL2 GREATER GREATEREQUAL LOWER LOWEREQUAL -// UNEQUAL UNEQUAL2 BITWISELEFT BITWISERIGHT SLASH PERCENT -const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Parser::_tokenSet_27(_tokenSet_27_data_,8); -const unsigned long Sqlite3Parser::_tokenSet_28_data_[] = { 4294410224UL, 4196396026UL, 520096061UL, 406847459UL, 0UL, 0UL, 0UL, 0UL }; -// "ABORT" "ACTION" "AUTOINCREMENT" "AS" "ASC" "AND" "OR" "BETWEEN" "CASCADE" -// "CASE" "CAST" "CREATE" "COLLATE" "CONFLICT" "CURRENT_TIME" "CURRENT_DATE" -// "CURRENT_TIMESTAMP" "DEFAULT" "DEFERRABLE" "DEFERRED" "DELETE" "DESC" -// "ELSE" "END" "ESCAPE" "FAIL" "FOLLOWING" "GLOB" "KEY" "LIKE" "TABLE" -// "IF" "IGNORE" "IN" "INITIALLY" "IMMEDIATE" "IS" "NO" "NOT" "NULL" "MATCH" -// "EXISTS" "ON" "RAISE" "REFERENCES" "REGEXP" "REPLACE" "RESTRICT" "ROLLBACK" -// "ROWID" "SET" "TEMPORARY" "TEMP" "THEN" "UPDATE" "WHEN" DOT ID QUOTEDID -// QUOTEDLITERAL NUMERIC STRINGLITERAL LPAREN PLUS MINUS STAR TILDE AMPERSAND -// BITOR OROP EQUAL EQUAL2 GREATER GREATEREQUAL LOWER LOWEREQUAL UNEQUAL -// UNEQUAL2 BITWISELEFT BITWISERIGHT SLASH PERCENT -const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Parser::_tokenSet_28(_tokenSet_28_data_,8); diff --git a/src/grammar/Sqlite3Parser.hpp b/src/grammar/Sqlite3Parser.hpp index a892d127a..c9c4ee1a2 100644 --- a/src/grammar/Sqlite3Parser.hpp +++ b/src/grammar/Sqlite3Parser.hpp @@ -66,11 +66,7 @@ class CUSTOM_API Sqlite3Parser : public ANTLR_USE_NAMESPACE(antlr)LLkParser, pub public: void castexpr(); public: void caseexpr(); public: void raisefunction(); - public: void windowfunc(); public: void suffixexpr(); - public: void windowdefn(); - public: void orderingterm(); - public: void framespec(); public: void like_operator(); public: void between_subexpr(); public: @@ -84,10 +80,10 @@ class CUSTOM_API Sqlite3Parser : public ANTLR_USE_NAMESPACE(antlr)LLkParser, pub private: static const char* tokenNames[]; #ifndef NO_STATIC_CONSTS - static const int NUM_TOKENS = 125; + static const int NUM_TOKENS = 121; #else enum { - NUM_TOKENS = 125 + NUM_TOKENS = 121 }; #endif @@ -141,14 +137,6 @@ class CUSTOM_API Sqlite3Parser : public ANTLR_USE_NAMESPACE(antlr)LLkParser, pub static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_23; static const unsigned long _tokenSet_24_data_[]; static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_24; - static const unsigned long _tokenSet_25_data_[]; - static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_25; - static const unsigned long _tokenSet_26_data_[]; - static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_26; - static const unsigned long _tokenSet_27_data_[]; - static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_27; - static const unsigned long _tokenSet_28_data_[]; - static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_28; }; #endif /*INC_Sqlite3Parser_hpp_*/ diff --git a/src/grammar/sqlite3.g b/src/grammar/sqlite3.g index 924aa2f64..28df9011c 100644 --- a/src/grammar/sqlite3.g +++ b/src/grammar/sqlite3.g @@ -454,7 +454,7 @@ subexpr | EXISTS LPAREN (expr | selectstmt) RPAREN | caseexpr | raisefunction - | windowfunc +// | windowfunc ) (suffixexpr)? ; @@ -469,6 +469,7 @@ caseexpr CASE_T (expr)? (WHEN expr THEN expr)+ (ELSE_T expr)? END ; +/* windowfunc : functionname LPAREN (STAR | (expr (COMMA expr)*))? RPAREN (FILTER LPAREN WHERE expr RPAREN)? OVER @@ -516,6 +517,7 @@ framespec | (expr FOLLOWING) ) ; +*/ like_operator : diff --git a/src/grammar/sqlite3TokenTypes.hpp b/src/grammar/sqlite3TokenTypes.hpp index a8077852e..38dc5c17c 100644 --- a/src/grammar/sqlite3TokenTypes.hpp +++ b/src/grammar/sqlite3TokenTypes.hpp @@ -127,12 +127,8 @@ struct CUSTOM_API sqlite3TokenTypes { BITWISELEFT = 116, BITWISERIGHT = 117, SELECT = 118, - BY = 119, - ORDER = 120, - CURRENT = 121, - ROW = 122, - SLASH = 123, - PERCENT = 124, + SLASH = 119, + PERCENT = 120, NULL_TREE_LOOKAHEAD = 3 }; #ifdef __cplusplus From a9699075d9bd3214ab1fb412daf41412dbd33114 Mon Sep 17 00:00:00 2001 From: mgrojo Date: Tue, 18 Dec 2018 22:53:56 +0100 Subject: [PATCH 094/127] Change the maximum size of the SQL results pane to a more flexible approach Set a default equal to the previous maximum, but allow user to grow this pane to any value, permitted by the other widgets. See issue #1670 --- src/SqlExecutionArea.ui | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/SqlExecutionArea.ui b/src/SqlExecutionArea.ui index 57d5e7537..2fb1b085b 100644 --- a/src/SqlExecutionArea.ui +++ b/src/SqlExecutionArea.ui @@ -198,11 +198,11 @@ - - - 16777215 - 120 - + + + 0 + 120 + From 77a7b461a45f92c114363041ef03d88b68066212 Mon Sep 17 00:00:00 2001 From: mgr Date: Wed, 13 Feb 2019 21:43:53 +0100 Subject: [PATCH 095/127] Fix text detection check Truncating the text in bytes boundaries for the quick test was breaking the text detection for Russian and probably any script encoded in more than one byte. The problem occurred probably when a multibyte character was truncated at the 512 boundary. This is a bit improbable in latin-based languages like German or Spanish, whose most characters are a byte, but very easy in other scripts, like Cyrillic, whose characters are encoded in more than one. The new approach is based in QTextCodec finding invalid characters using the current encoding, which seems immune to the truncation problem. According to callgrind, it has also better performance, probably because it does not involve memory comparison. See issue #1731 # Conflicts: # src/Data.cpp --- src/Data.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/Data.cpp b/src/Data.cpp index c61a50075..425891e31 100644 --- a/src/Data.cpp +++ b/src/Data.cpp @@ -1,6 +1,7 @@ #include "Data.h" #include +#include // Note that these aren't all possible BOMs. But they are probably the most common ones. // The size is needed at least for the ones with character zero in them. @@ -17,15 +18,11 @@ bool isTextOnly(QByteArray data, const QString& encoding, bool quickTest) return true; // Truncate to the first couple of bytes for quick testing - if(quickTest) - data = data.left(512); - - // Convert to Unicode if necessary - if(!encoding.isEmpty()) - data = QTextCodec::codecForName(encoding.toUtf8())->toUnicode(data).toUtf8(); - - // Perform check - return QString(data).toUtf8() == data; + int testSize = quickTest? std::min(512, data.size()) : data.size(); + QTextCodec::ConverterState state; + QTextCodec *codec = encoding.isEmpty()? QTextCodec::codecForName("UTF-8") : QTextCodec::codecForName(encoding.toUtf8()); + const QString text = codec->toUnicode(data.constData(), testSize, &state); + return state.invalidChars <= 0; } bool startsWithBom(const QByteArray& data) From 4e48b601562d164ffb4f6df2101963220ddbe970 Mon Sep 17 00:00:00 2001 From: Martin Kleusberg Date: Thu, 14 Feb 2019 13:45:18 +0100 Subject: [PATCH 096/127] Speed up the SQL import a bit This commit attempts to speed up the SQL import a bit by removing unnecessary conversions and counting of characters. It's still far from perfect though. See issue #1045. --- src/sqlitedb.cpp | 61 +++++++++++++++++++++++++++++++----------------- src/sqlitedb.h | 2 +- 2 files changed, 41 insertions(+), 22 deletions(-) diff --git a/src/sqlitedb.cpp b/src/sqlitedb.cpp index 283798fe9..87ca4f9a7 100644 --- a/src/sqlitedb.cpp +++ b/src/sqlitedb.cpp @@ -911,7 +911,7 @@ bool DBBrowserDB::executeSQL(QString statement, bool dirtyDB, bool logsql) } } -bool DBBrowserDB::executeMultiSQL(const QString& statement, bool dirty, bool log) +bool DBBrowserDB::executeMultiSQL(QString query, bool dirty, bool log) { waitForDbRelease(); if(!_db) @@ -920,13 +920,11 @@ bool DBBrowserDB::executeMultiSQL(const QString& statement, bool dirty, bool log return false; } - QString query = statement.trimmed(); - // Check if this SQL containts any transaction statements QRegExp transactionRegex("^\\s*BEGIN TRANSACTION;|COMMIT;\\s*$"); if(query.contains(transactionRegex)) { - // If so remove them anc create a savepoint instead by overriding the dirty parameter + // If so remove them and create a savepoint instead by overriding the dirty parameter query.remove(transactionRegex); dirty = true; } @@ -944,43 +942,64 @@ bool DBBrowserDB::executeMultiSQL(const QString& statement, bool dirty, bool log } // Show progress dialog - int statement_size = query.size(); QProgressDialog progress(tr("Executing SQL..."), - tr("Cancel"), 0, statement_size); + tr("Cancel"), 0, 100); progress.setWindowModality(Qt::ApplicationModal); progress.show(); // Execute the statement by looping until SQLite stops giving back a tail string sqlite3_stmt* vm; QByteArray utf8Query = query.toUtf8(); - const char *tail = utf8Query.data(); + const char *tail = utf8Query.constData(); + const char * const tail_start = tail; + const char * const tail_end = tail + utf8Query.size() + 1; + size_t total_tail_length = static_cast(tail_end - tail_start); int res = SQLITE_OK; unsigned int line = 0; bool structure_updated = false; + int last_progress_value = -1; while(tail && *tail != 0 && (res == SQLITE_OK || res == SQLITE_DONE)) { line++; - size_t tail_length = strlen(tail); - // Update progress dialog, keep UI responsive - progress.setValue(statement_size - tail_length); - qApp->processEvents(); - if(progress.wasCanceled()) + // Update progress dialog, keep UI responsive. Make sure to not spend too much time updating the progress dialog in case there are many small statements. + int progress_value = static_cast(static_cast(tail - tail_start) / total_tail_length * 100.0f); + if(progress_value > last_progress_value) { - lastErrorMessage = tr("Action cancelled."); - return false; + progress.setValue(progress_value); + qApp->processEvents(); + if(progress.wasCanceled()) + { + lastErrorMessage = tr("Action cancelled."); + return false; + } + last_progress_value = progress_value; } // Check whether the DB structure is changed by this statement - QString qtail = QString(tail); - if(!dontCheckForStructureUpdates && !structure_updated && (qtail.startsWith("ALTER", Qt::CaseInsensitive) || - qtail.startsWith("CREATE", Qt::CaseInsensitive) || - qtail.startsWith("DROP", Qt::CaseInsensitive) || - qtail.startsWith("ROLLBACK", Qt::CaseInsensitive))) - structure_updated = true; + if(!dontCheckForStructureUpdates && !structure_updated) + { + // Ignore all whitespace at the start of the current tail + const char* tail_ptr = tail; + while(std::isspace(*tail_ptr)) + tail_ptr++; + + // Convert the first couple of bytes of the tail to a C++ string for easier handling. We only need the first 8 bytes (in cae it's a ROLLBACK + // statement), so no need to convert the entire tail. If the tail is less than 8 bytes long, make sure not to read past its end. + size_t length = std::min(static_cast(tail_end - tail + 1), static_cast(8)); + std::string next_statement(tail_ptr, length); + std::transform(next_statement.begin(), next_statement.end(), next_statement.begin(), ::toupper); + + // Check if it's a modifying statement + if(next_statement.compare(0, 5, "ALTER") == 0 || + next_statement.compare(0, 6, "CREATE") == 0 || + next_statement.compare(0, 4, "DROP") == 0 || + next_statement.compare(0, 8, "ROLLBACK") == 0) + structure_updated = true; + } // Execute next statement - res = sqlite3_prepare_v2(_db, tail, tail_length, &vm, &tail); + res = sqlite3_prepare_v2(_db, tail, tail_end - tail + 1, &vm, &tail); if(res == SQLITE_OK) { switch(sqlite3_step(vm)) diff --git a/src/sqlitedb.h b/src/sqlitedb.h index b6a7138af..ccdbcf620 100644 --- a/src/sqlitedb.h +++ b/src/sqlitedb.h @@ -95,7 +95,7 @@ class DBBrowserDB : public QObject bool dump(const QString& filename, const QStringList& tablesToDump, bool insertColNames, bool insertNew, bool exportSchema, bool exportData, bool keepOldSchema); bool executeSQL(QString statement, bool dirtyDB = true, bool logsql = true); - bool executeMultiSQL(const QString& statement, bool dirty = true, bool log = false); + bool executeMultiSQL(QString query, bool dirty = true, bool log = false); QVariant querySingleValueFromDb(const QString& statement, bool log = true); const QString& lastError() const { return lastErrorMessage; } From eabf5d7b98521ee37c816c306528f9ce01c121e1 Mon Sep 17 00:00:00 2001 From: Martin Kleusberg Date: Thu, 14 Feb 2019 17:35:12 +0100 Subject: [PATCH 097/127] Fix build on some platforms Fix build issues caused by 13a8a1f282b334bbaff15505b38d07122cef574e. --- src/sqlitedb.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sqlitedb.cpp b/src/sqlitedb.cpp index 87ca4f9a7..ba71c1c63 100644 --- a/src/sqlitedb.cpp +++ b/src/sqlitedb.cpp @@ -18,6 +18,7 @@ #include #include #include +#include QStringList DBBrowserDB::Datatypes = QStringList() << "INTEGER" << "TEXT" << "BLOB" << "REAL" << "NUMERIC"; From 180fb51ae27494ff4e29f5e1ad57581ffe9a40f3 Mon Sep 17 00:00:00 2001 From: Martin Kleusberg Date: Thu, 14 Feb 2019 18:01:20 +0100 Subject: [PATCH 098/127] Further performance improvements in the SQL import This eliminates some unneeded conversions in the SQL import code which should speed up the import and reduce its memory consumption. See issue #1045. --- src/sqlitedb.cpp | 26 +++++++++++++++----------- src/sqlitedb.h | 2 +- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/sqlitedb.cpp b/src/sqlitedb.cpp index ba71c1c63..3175fec1c 100644 --- a/src/sqlitedb.cpp +++ b/src/sqlitedb.cpp @@ -165,7 +165,7 @@ bool DBBrowserDB::open(const QString& db, bool readOnly) // Execute default SQL if(!isReadOnly) { - QString default_sql = Settings::getValue("db", "defaultsqltext").toString(); + QByteArray default_sql = Settings::getValue("db", "defaultsqltext").toByteArray(); if(!default_sql.isEmpty()) executeMultiSQL(default_sql, false, true); } @@ -580,7 +580,7 @@ bool DBBrowserDB::create ( const QString & db) loadExtensionsFromSettings(); // Execute default SQL - QString default_sql = Settings::getValue("db", "defaultsqltext").toString(); + QByteArray default_sql = Settings::getValue("db", "defaultsqltext").toByteArray(); if(!default_sql.isEmpty()) executeMultiSQL(default_sql, false, true); @@ -912,7 +912,7 @@ bool DBBrowserDB::executeSQL(QString statement, bool dirtyDB, bool logsql) } } -bool DBBrowserDB::executeMultiSQL(QString query, bool dirty, bool log) +bool DBBrowserDB::executeMultiSQL(QByteArray query, bool dirty, bool log) { waitForDbRelease(); if(!_db) @@ -921,12 +921,17 @@ bool DBBrowserDB::executeMultiSQL(QString query, bool dirty, bool log) return false; } - // Check if this SQL containts any transaction statements - QRegExp transactionRegex("^\\s*BEGIN TRANSACTION;|COMMIT;\\s*$"); - if(query.contains(transactionRegex)) + // Check if this SQL containts any transaction statements. If so remove them and create a savepoint instead by overriding the dirty parameter. + // TODO This should check for 'END TRANSACTION' too. It should be case insensitive and it should work with any amounts of whitespace etc. "Good" news + // is that none of this was ever done correctly before. + if(query.contains("BEGIN TRANSACTION;")) { - // If so remove them and create a savepoint instead by overriding the dirty parameter - query.remove(transactionRegex); + query.replace("BEGIN TRANSACTION;", " "); + dirty = true; + } + if(query.contains("COMMIT;")) + { + query.replace("COMMIT;", " "); dirty = true; } @@ -950,10 +955,9 @@ bool DBBrowserDB::executeMultiSQL(QString query, bool dirty, bool log) // Execute the statement by looping until SQLite stops giving back a tail string sqlite3_stmt* vm; - QByteArray utf8Query = query.toUtf8(); - const char *tail = utf8Query.constData(); + const char *tail = query.constData(); const char * const tail_start = tail; - const char * const tail_end = tail + utf8Query.size() + 1; + const char * const tail_end = tail + query.size() + 1; size_t total_tail_length = static_cast(tail_end - tail_start); int res = SQLITE_OK; unsigned int line = 0; diff --git a/src/sqlitedb.h b/src/sqlitedb.h index ccdbcf620..84fb0ef39 100644 --- a/src/sqlitedb.h +++ b/src/sqlitedb.h @@ -95,7 +95,7 @@ class DBBrowserDB : public QObject bool dump(const QString& filename, const QStringList& tablesToDump, bool insertColNames, bool insertNew, bool exportSchema, bool exportData, bool keepOldSchema); bool executeSQL(QString statement, bool dirtyDB = true, bool logsql = true); - bool executeMultiSQL(QString query, bool dirty = true, bool log = false); + bool executeMultiSQL(QByteArray query, bool dirty = true, bool log = false); QVariant querySingleValueFromDb(const QString& statement, bool log = true); const QString& lastError() const { return lastErrorMessage; } From 6827cde5c315cbcaaaf23089503c0fd076cbd664 Mon Sep 17 00:00:00 2001 From: Martin Kleusberg Date: Tue, 12 Feb 2019 10:38:45 +0100 Subject: [PATCH 099/127] sqlcipher: Fix editing the encryption for SQLCipher4 With SQLCipher4 the encryption was not working as expected because the KDF and HMAC algorithms were not set properly. This is fixed in this commit so it should work now with SQLCipher4 as well as SQLCipher3. See issues #1690 and #1732. --- src/CipherDialog.cpp | 4 ++-- src/MainWindow.cpp | 4 ++-- src/sqlitedb.cpp | 12 ++++++------ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/CipherDialog.cpp b/src/CipherDialog.cpp index b8f35954d..7fdff1335 100644 --- a/src/CipherDialog.cpp +++ b/src/CipherDialog.cpp @@ -70,8 +70,8 @@ CipherSettings CipherDialog::getCipherSettings() const cipherSettings.setPassword(password); cipherSettings.setPageSize(pageSize); cipherSettings.setKdfIterations(ui->spinKdfIterations->value()); - cipherSettings.setHmacAlgorithm(ui->comboHmacAlgorithm->currentText()); - cipherSettings.setKdfAlgorithm(ui->comboKdfAlgorithm->currentText()); + cipherSettings.setHmacAlgorithm(QString("HMAC_") + ui->comboHmacAlgorithm->currentText()); + cipherSettings.setKdfAlgorithm(QString("PBKDF2_HMAC_") + ui->comboKdfAlgorithm->currentText()); return cipherSettings; } diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index b17872efc..937b20ce5 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -2958,12 +2958,12 @@ void MainWindow::editEncryption() qApp->processEvents(); if(ok) ok = db.executeSQL(QString("PRAGMA sqlitebrowser_edit_encryption.cipher_page_size = %1").arg(cipherSettings.getPageSize()), false, false); - if(ok) - ok = db.executeSQL(QString("PRAGMA sqlitebrowser_edit_encryption.kdf_iter = %1").arg(cipherSettings.getKdfIterations()), false, false); if(ok) ok = db.executeSQL(QString("PRAGMA sqlitebrowser_edit_encryption.cipher_hmac_algorithm = %1").arg(cipherSettings.getHmacAlgorithm()), false, false); if(ok) ok = db.executeSQL(QString("PRAGMA sqlitebrowser_edit_encryption.cipher_kdf_algorithm = %1").arg(cipherSettings.getKdfAlgorithm()), false, false); + if(ok) + ok = db.executeSQL(QString("PRAGMA sqlitebrowser_edit_encryption.kdf_iter = %1").arg(cipherSettings.getKdfIterations()), false, false); // Export the current database to the new one qApp->processEvents(); diff --git a/src/sqlitedb.cpp b/src/sqlitedb.cpp index 3175fec1c..0149d5e09 100644 --- a/src/sqlitedb.cpp +++ b/src/sqlitedb.cpp @@ -128,8 +128,8 @@ bool DBBrowserDB::open(const QString& db, bool readOnly) executeSQL(QString("PRAGMA key = %1").arg(cipherSettings->getPassword()), false, false); executeSQL(QString("PRAGMA cipher_page_size = %1;").arg(cipherSettings->getPageSize()), false, false); executeSQL(QString("PRAGMA kdf_iter = %1;").arg(cipherSettings->getKdfIterations()), false, false); - executeSQL(QString("PRAGMA cipher_hmac_algorithm = HMAC_%1;").arg(cipherSettings->getHmacAlgorithm()), false, false); - executeSQL(QString("PRAGMA cipher_kdf_algorithm = PBKDF2_HMAC_%1;").arg(cipherSettings->getKdfAlgorithm()), false, false); + executeSQL(QString("PRAGMA cipher_hmac_algorithm = %1;").arg(cipherSettings->getHmacAlgorithm()), false, false); + executeSQL(QString("PRAGMA cipher_kdf_algorithm = %1;").arg(cipherSettings->getKdfAlgorithm()), false, false); } #endif delete cipherSettings; @@ -245,12 +245,12 @@ bool DBBrowserDB::attach(const QString& filePath, QString attach_as) QMessageBox::warning(nullptr, qApp->applicationName(), lastErrorMessage); return false; } - if(!executeSQL(QString("PRAGMA %1.cipher_hmac_algorithm = HMAC_%2").arg(sqlb::escapeIdentifier(attach_as)).arg(cipherSettings->getHmacAlgorithm()), false)) + if(!executeSQL(QString("PRAGMA %1.cipher_hmac_algorithm = %2").arg(sqlb::escapeIdentifier(attach_as)).arg(cipherSettings->getHmacAlgorithm()), false)) { QMessageBox::warning(nullptr, qApp->applicationName(), lastErrorMessage); return false; } - if(!executeSQL(QString("PRAGMA %1.cipher_kdf_algorithm = PBKDF2_HMAC_%2").arg(sqlb::escapeIdentifier(attach_as)).arg(cipherSettings->getKdfAlgorithm()), false)) + if(!executeSQL(QString("PRAGMA %1.cipher_kdf_algorithm = %2").arg(sqlb::escapeIdentifier(attach_as)).arg(cipherSettings->getKdfAlgorithm()), false)) { QMessageBox::warning(nullptr, qApp->applicationName(), lastErrorMessage); return false; @@ -404,9 +404,9 @@ bool DBBrowserDB::tryEncryptionSettings(const QString& filePath, bool* encrypted if(cipherSettings->getKdfIterations() != enc_default_kdf_iter) sqlite3_exec(dbHandle, QString("PRAGMA kdf_iter = %1;").arg(cipherSettings->getKdfIterations()).toUtf8(), nullptr, nullptr, nullptr); if(cipherSettings->getHmacAlgorithm() != enc_default_hmac_algorithm) - sqlite3_exec(dbHandle, QString("PRAGMA cipher_hmac_algorithm = HMAC_%1;").arg(cipherSettings->getHmacAlgorithm()).toUtf8(), nullptr, nullptr, nullptr); + sqlite3_exec(dbHandle, QString("PRAGMA cipher_hmac_algorithm = %1;").arg(cipherSettings->getHmacAlgorithm()).toUtf8(), nullptr, nullptr, nullptr); if(cipherSettings->getKdfAlgorithm() != enc_default_kdf_algorithm) - sqlite3_exec(dbHandle, QString("PRAGMA cipher_kdf_algorithm = PBKDF2_HMAC_%1;").arg(cipherSettings->getKdfAlgorithm()).toUtf8(), nullptr, nullptr, nullptr); + sqlite3_exec(dbHandle, QString("PRAGMA cipher_kdf_algorithm = %1;").arg(cipherSettings->getKdfAlgorithm()).toUtf8(), nullptr, nullptr, nullptr); *encrypted = true; #else From 08cacd1fb45364193979401ce347ee817e95cad4 Mon Sep 17 00:00:00 2001 From: Martin Kleusberg Date: Fri, 15 Feb 2019 12:27:55 +0100 Subject: [PATCH 100/127] Make early network accesses more reliable when using WLAN The automatic update check is performed early during the application start. It turns out that, when using a Wifi connection, the Qt networking code is not ready yet at this point which leads to an "Network inaccessible" error. This commit delays the automatic update check until the network configuration is loaded completely. See issue #1595. --- src/MainWindow.cpp | 9 --------- src/RemoteDatabase.cpp | 13 +++++++++++++ src/RemoteDatabase.h | 2 ++ 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 937b20ce5..a2ddf7ada 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -399,15 +399,6 @@ void MainWindow::init() // Load all settings reloadSettings(); -#ifdef CHECKNEWVERSION - // Check for a new version if automatic update check aren't disabled in the settings dialog - if(Settings::getValue("checkversion", "enabled").toBool()) - { - m_remoteDb->fetch("https://download.sqlitebrowser.org/currentrelease", - RemoteDatabase::RequestTypeNewVersionCheck); - } -#endif - #ifndef ENABLE_SQLCIPHER // Only show encryption menu action when SQLCipher support is enabled ui->actionEncryption->setVisible(false); diff --git a/src/RemoteDatabase.cpp b/src/RemoteDatabase.cpp index a79459b5c..a634357e6 100644 --- a/src/RemoteDatabase.cpp +++ b/src/RemoteDatabase.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -21,9 +22,21 @@ RemoteDatabase::RemoteDatabase() : m_manager(new QNetworkAccessManager), + m_configurationManager(new QNetworkConfigurationManager), m_progress(nullptr), m_dbLocal(nullptr) { + // Update network configurations + connect(m_configurationManager, &QNetworkConfigurationManager::updateCompleted, [this]() { + m_manager->setConfiguration(m_configurationManager->defaultConfiguration()); + +#ifdef CHECKNEWVERSION + // Check for a new version if automatic update check aren't disabled in the settings dialog + if(Settings::getValue("checkversion", "enabled").toBool()) + fetch("https://download.sqlitebrowser.org/currentrelease", RemoteDatabase::RequestTypeNewVersionCheck); +#endif + }); + // Set up SSL configuration m_sslConfiguration = QSslConfiguration::defaultConfiguration(); m_sslConfiguration.setPeerVerifyMode(QSslSocket::VerifyPeer); diff --git a/src/RemoteDatabase.h b/src/RemoteDatabase.h index 2bef65a8f..41d6a960b 100644 --- a/src/RemoteDatabase.h +++ b/src/RemoteDatabase.h @@ -5,6 +5,7 @@ #include class QNetworkAccessManager; +class QNetworkConfigurationManager; class QString; class QNetworkReply; class QSslError; @@ -88,6 +89,7 @@ class RemoteDatabase : public QObject void clearAccessCache(const QString& clientCert); QNetworkAccessManager* m_manager; + QNetworkConfigurationManager* m_configurationManager; QProgressDialog* m_progress; QSslConfiguration m_sslConfiguration; QMap m_clientCertFiles; From e96fa49a59ceb207687c931f928880af2deeec30 Mon Sep 17 00:00:00 2001 From: mgr Date: Sun, 17 Feb 2019 14:33:49 +0100 Subject: [PATCH 101/127] Don't show misleading "determining row count" message in empty db When no table is selected in the Browse Data tab, either because the current database is empty or because no database is opened, we would forever show the "determining row count" message even though nothing is to be determined at this point. This commit makes sure to show a better "0 - 0 of 0" message as we did before. See issue #1654. # Conflicts: # src/sqlitetablemodel.cpp --- src/MainWindow.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index a2ddf7ada..3fa36d891 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -914,9 +914,16 @@ void MainWindow::setRecordsetLabel() // Update the validator of the goto row field gotoValidator->setRange(0, total); + // When there is no query for this table (i.e. no table is selected), there is no row count query either which in turn means + // that the row count query will never finish. And because of this the row count will be forever unknown. To avoid always showing + // a misleading "determining row count" text in the UI we set the row count status to complete here for empty queries. + auto row_count_available = m_browseTableModel->rowCountAvailable(); + if(m_browseTableModel->query().isEmpty()) + row_count_available = SqliteTableModel::RowCount::Complete; + // Update the label showing the current position QString txt; - switch(m_browseTableModel->rowCountAvailable()) + switch(row_count_available) { case SqliteTableModel::RowCount::Unknown: txt = tr("determining row count..."); From be20f626a3d432f39a68cfabc1cfe4af4c5c833c Mon Sep 17 00:00:00 2001 From: mgr Date: Sun, 17 Feb 2019 15:15:15 +0100 Subject: [PATCH 102/127] Make the Edit Cell Dock to update with the selected cell in SQL results The same connection done for the Browse Data table is done for the SQL results table so they behave in the same way. See issue #481 # Conflicts: # src/MainWindow.cpp --- src/MainWindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 3fa36d891..dda168754 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -1503,7 +1503,7 @@ void MainWindow::executeQuery() sqlWidget->finishExecution(statusMessage, ok); attachPlot(sqlWidget->getTableResult(), sqlWidget->getModel()); - connect(sqlWidget->getTableResult(), &ExtendedTableWidget::activated, this, &MainWindow::dataTableSelectionChanged); + connect(sqlWidget->getTableResult()->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(dataTableSelectionChanged(QModelIndex))); connect(sqlWidget->getTableResult(), SIGNAL(doubleClicked(QModelIndex)), this, SLOT(doubleClickTable(QModelIndex))); // If the DB structure was changed by some command in this SQL script, update our schema representations From 8f36d1ba7226f7006412e0602c430874c4fa6351 Mon Sep 17 00:00:00 2001 From: Martin Kleusberg Date: Tue, 25 Dec 2018 19:42:55 +0100 Subject: [PATCH 103/127] Show current platform and destination platform information Add the destination platform from the compilation process and the platform we are running on to the About dialog and the Bug Report template text. See issue #1660. --- src/AboutDialog.cpp | 1 + src/MainWindow.cpp | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/AboutDialog.cpp b/src/AboutDialog.cpp index b3907ddf3..c38ea72ad 100644 --- a/src/AboutDialog.cpp +++ b/src/AboutDialog.cpp @@ -19,6 +19,7 @@ AboutDialog::AboutDialog(QWidget *parent) : sqlite_version = tr("SQLCipher Version ") + sqlcipher_version + tr(" (based on SQLite %1)").arg(sqlite_version); ui->label_version->setText(tr("Version ") + Application::versionString() + "\n\n" + + tr("Built for ") + QSysInfo::buildAbi() + ", running on " + QSysInfo::currentCpuArchitecture() + "\n\n" + tr("Qt Version ") + QT_VERSION_STR + "\n\n" + sqlite_version ); diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index dda168754..da35e81d4 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -2354,6 +2354,7 @@ void MainWindow::on_actionBug_report_triggered() const QString kernelType = QSysInfo::kernelType(); const QString kernelVersion = QSysInfo::kernelVersion(); const QString arch = QSysInfo::currentCpuArchitecture(); + const QString built_for = QSysInfo::buildAbi(); QString sqlite_version, sqlcipher_version; DBBrowserDB::getSqliteVersion(sqlite_version, sqlcipher_version); @@ -2370,10 +2371,10 @@ void MainWindow::on_actionBug_report_triggered() "#### What did you see instead?\n\n\n" "Useful extra information\n" "-------------------------\n" - "> DB4S v%1 on %2 (%3/%4) [%5]\n" - "> using %6\n" - "> and Qt %7") - .arg(version, os, kernelType, kernelVersion, arch, sqlite_version, QT_VERSION_STR); + "> DB4S v%1 [built for %2] on %3 (%4/%5) [%6]\n" + "> using %7\n" + "> and Qt %8") + .arg(version, built_for, os, kernelType, kernelVersion, arch, sqlite_version, QT_VERSION_STR); QUrlQuery query; query.addQueryItem("labels", "bug"); From 1af0a5021859348e5ba7fab34fc970bfc00fa2bc Mon Sep 17 00:00:00 2001 From: mgrojo Date: Mon, 11 Feb 2019 23:04:07 +0100 Subject: [PATCH 104/127] Class 'NullLineEdit' lacks Q_OBJECT macro Qt Creator and lupdate are giving warnings about this class lacking the Q_OBJECT macro. Although it seems to not be needed, adding it will silence the warnings without drawbacks. See issue #1740. --- src/AddRecordDialog.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/AddRecordDialog.cpp b/src/AddRecordDialog.cpp index 86dc6b605..a6421dc7d 100644 --- a/src/AddRecordDialog.cpp +++ b/src/AddRecordDialog.cpp @@ -12,6 +12,7 @@ #include class NullLineEdit: public QLineEdit { + Q_OBJECT private: bool m_isNull; @@ -336,3 +337,5 @@ void AddRecordDialog::on_buttonBox_clicked(QAbstractButton* button) populateFields(); } } + +#include "AddRecordDialog.moc" From 64d6b22077227cf0e68844ca2ad570d8369c3eb3 Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Mon, 18 Feb 2019 16:18:04 +1100 Subject: [PATCH 105/127] Regenerated translation .ts files for the 3.11.1 release --- src/translations/sqlb_ar_SA.ts | 295 ++++++++++++++++---------------- src/translations/sqlb_cs.ts | 233 ++++++++++++------------- src/translations/sqlb_de.ts | 295 ++++++++++++++++---------------- src/translations/sqlb_en_GB.ts | 297 ++++++++++++++++---------------- src/translations/sqlb_es_ES.ts | 236 +++++++++++++------------- src/translations/sqlb_fr.ts | 295 ++++++++++++++++---------------- src/translations/sqlb_it.ts | 233 ++++++++++++------------- src/translations/sqlb_ko_KR.ts | 297 ++++++++++++++++---------------- src/translations/sqlb_pl.ts | 297 ++++++++++++++++---------------- src/translations/sqlb_pt_BR.ts | 233 ++++++++++++------------- src/translations/sqlb_ru.ts | 297 ++++++++++++++++---------------- src/translations/sqlb_tr.ts | 297 ++++++++++++++++---------------- src/translations/sqlb_uk_UA.ts | 297 ++++++++++++++++---------------- src/translations/sqlb_zh.ts | 295 ++++++++++++++++---------------- src/translations/sqlb_zh_TW.ts | 299 +++++++++++++++++---------------- 15 files changed, 2165 insertions(+), 2031 deletions(-) diff --git a/src/translations/sqlb_ar_SA.ts b/src/translations/sqlb_ar_SA.ts index 78a915d94..3cda43a36 100644 --- a/src/translations/sqlb_ar_SA.ts +++ b/src/translations/sqlb_ar_SA.ts @@ -34,6 +34,11 @@ + Built for + + + + Qt Version إصدارة كيوت: @@ -96,40 +101,40 @@ <p>سيُرسل زرّ <span style=" font-weight:600;">احفظ</span> إفادة SQL الظاهرة إلى قاعدة البيانات لإدراج السجلّ الجديد.</p><p>سيستعيد زرّ <span style=" font-weight:600;">استعد المبدئيات</span> القيمة الأولية في عمود ”<span style=" font-weight:600;">القيمة</span>“.</p><p>سيُغلق زرّ <span style=" font-weight:600;">ألغِ</span> هذا الحواريّ دون تنفيذ الاستعلام.</p> - + Auto-increment زيادة آليّة - + Unique constraint قيد ”فريد“ - + Check constraint: %1 قيد الفحص: %L1 - + Foreign key: %1 المفتاح الأجنبي: %L1 - + Default value: %1 القيمة المبدئية: %L1 - + Error adding record. Message from database engine: %1 @@ -138,7 +143,7 @@ %L1 - + Are you sure you want to restore all the entered values to their defaults? أمتأكّد من استعادة كلّ القيم المُدخلة إلى مبدئياتها؟ @@ -428,38 +433,38 @@ If any of the other settings were altered for this database file you need to pro DBBrowserDB - + Please specify the database name under which you want to access the attached database من فضلك اختر اسم قاعدة البيانات حيث تريد أن تصل إلى قاعدة البيانات المرفقة - + Invalid file format تنسيق الملف غير صالح - + Do you want to save the changes made to the database file %1? أتريد حفظ التعديلات المُجراة على ملف قاعدة البيانات %L1؟ - + Exporting database to SQL file... يصدّر قاعدة البيانات إلى ملف SQL... - - + + Cancel ألغِ - + Executing SQL... ينفّذ SQL... - + Action cancelled. أُلغي الإجراء. @@ -474,89 +479,99 @@ Aborting execution. ‏renameColumn: تعذّر إيجاد الجدول %1. - + This database has already been attached. Its schema name is '%1'. أُرفقت قاعدة البيانات هذه بالفعل. اسم المخطّط هو ”%L1“. - + Do you really want to close this temporary database? All data will be lost. أمتأكّد من إغلاق قاعدة البيانات المؤقّتة هذه؟ ستفقد كلّ البيانات. - + The database is currently busy: قاعدة البيانات مشغولة حاليًا: - + Do you want to abort that other operation? أتريد إجهاض العملية الأخرى؟ - - + + No database file opened لم يُفتح ملف قاعدة بيانات - - + + Error in statement #%1: %2. Aborting execution%3. خطأ في الإفادة رقم %L1: %L2. سأُجهض التنفيذ%L3. - - + + and rolling back وأُرجع ما كان موجودًا. - + + didn't receive any output from %1 + + + + + could not execute command: %1 + + + + Cannot delete this object تعذّر حذف هذا الكائن - + Cannot set data on this object تعذّر ضبط البيانات على هذا الكائن - + A table with the name '%1' already exists in schema '%2'. هناك جدول بنفس الاسم ”%L1“ بالفعل في المخطّط ”%L2“. - + renameColumn: cannot find column %1. ‏renameColumn: تعذّر العثور على العمود %L1. - + renameColumn: creating savepoint failed. DB says: %1 ‏renameColumn: فشل إنشاء نقطة الحفظ. تقول قاعدة البيانات: %L1 - + renameColumn: creating new table failed. DB says: %1 ‏renameColumn: فشل إنشاء جدول جديد. تقول قاعدة البيانات: %L1 - + renameColumn: copying data to new table failed. DB says: %1 ‏renameColumn: فشل نسخ البيانات إلى جدول جديد. تقول قاعدة البيانات: %L1 - + renameColumn: deleting old table failed. DB says: %1 ‏renameColumn: فشل حذف الجدول القديم. تقول قاعدة البيانات: %L1 - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -565,34 +580,34 @@ Aborting execution%3. - + renameColumn: releasing savepoint failed. DB says: %1 ‏renameColumn: فشل إطلاق نقطة الحفظ. تقول قاعدة البيانات: %L1 - + Error renaming table '%1' to '%2'.Message from database engine: %3 خطأ أثناء تغيير اسم الجدول ”%L1“ إلى ”%L2“. الرسالة من محرّك قواعد البيانات: %L3 - + ... <string can not be logged, contains binary data> ... ... <لا يمكن تسجيل السلسلة النصّية، فهي تحتوي على بيانات ثنائيّة> ... - + could not get list of databases: %1 تعذّر جلب قائمة قواعد البيانات: %L1 - + Error loading extension: %1 خطأ أثناء تحميل الامتداد: %L1 - + could not get column information تعذّر جلب معلومات العمود @@ -601,7 +616,7 @@ Aborting execution%3. نوع الكائن %1 مجهول - + could not get list of db objects: %1, %2 تعذّر جلب قائمة بكائنات قاعدة البيانات: %L1، ‏%L2 @@ -610,23 +625,23 @@ Aborting execution%3. تعذّر جلب الأنواع - + didn't receive any output from pragma %1 حافظ المكان بالإنجليزية ولا يُترجم لم أستقبل أيّ خرج من pragma %L1 - + could not execute pragma command: %1, %2 تعذّر تنفيذ أمر pragma:‏ %L1، ‏%L2 - + Error setting pragma %1 to %2: %3 تعذّر ضبط pragma %L1 إلى %L2:‏ %L3 - + File not found. تعذّر العثور على الملف. @@ -2380,9 +2395,8 @@ You can drag SQL statements from an object row and drop them into other applicat - التحديد الطبيعي وعمليات النسخ واللصق. - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - <p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p> + <p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p> @@ -2486,7 +2500,7 @@ You can drag SQL statements from an object row and drop them into other applicat - + New Record سجلّ جديد @@ -2501,7 +2515,7 @@ You can drag SQL statements from an object row and drop them into other applicat - + Delete Record احذف السجلّ @@ -3042,7 +3056,6 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - Ctrl+O Ctrl+O @@ -3483,122 +3496,122 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed يحفظ هذا الزرّ الإعداد الحالي للجدول المتصفّح (المرشّحات وتنسيقات العرض وعمود الفرز) في منظور SQL يمكنك تصفّحه لاحقًا أو استخدامه في إفادات SQL. - + Insert Values... أدرِج قيم... + - Open a dialog for inserting values in a new record افتح حواريّ لإدراج القيم في سجلّ جديد + - Insert new record using default values in browsed table أدرِج سجلًا جديدًا مستخدمًا القيم المبدئية في الجدول المتصفّح - + New In-&Memory Database قاعدة بيانات جديدة في ال&ذاكرة - + Drag && Drop Qualified Names اسحب وأسقِط الأسماء المؤهّلة + - Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor استخدم الأسماء المؤهّلة (مثل ‎"Table"."Field"‎) عند سحب الكائنات وإسقاطها في المحرّر. - + Drag && Drop Enquoted Names اسحب وأسقِط الأسماء مقتبسةً + - Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor استخدم المُعرّفات مهرّبة (مثلًا "Table1") عند سحب الكائنات وإسقاطها في المحرّر - + &Integrity Check فحص ال&سلامة - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. يُشغّل integrity_check pragma على قاعدة البيانات المفتوحة ويُعيد النتائج في لسان ”نفّذ SQL“. يُجري pragma فحص سلامة على قاعدة البيانات كاملةً. - + &Foreign-Key Check فحص الم&فتاح الأجنبي - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab يُشغّل foreign_key_check pragma على قاعدة البيانات المفتوحة ويُعيد النتائج في لسان ”نفّذ SQL“ - + &Quick Integrity Check فحص سلام&ة سريع - + Run a quick integrity check over the open DB يُشغّل فحص سلامة سريع على قاعدة البيانات المفتوحة - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. يُشغّل quick_check pragma على قاعدة البيانات المفتوحة ويُعيد النتائج في لسان ”نفّذ SQL“. يُجري هذا الأمر أغلب ما تُجريه PRAGMA integrity_check إلّا أنّه أسرع. - + &Optimize ح&سّن - + Attempt to optimize the database حاوِل تحسين قاعدة البيانات - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. يُشغّل optimize pragma على قاعدة البيانات المفتوحة. قد تؤدّي pragma تحسينات تُحسّن من أداء الاستعلامات مستقبلًا. - - + + Print اطبع - + Print text from current SQL editor tab [Ctrl+P] اطبع النصّ من لسان محرّر SQL الحالي [Ctrl+P] - + Open a dialog for printing the text in the current SQL editor tab افتح حواريّ لطباعة النصّ في لسان محرّر SQL الحالي - + Print the structure of the opened database [Ctrl+P] اطبع بنية قاعدة البيانات المفتوحة [Ctrl+P] - + Open a dialog for printing the structure of the opened database افتح حواريّ لطباعة بنية قاعدة البيانات المفتوحة @@ -3791,7 +3804,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - + Set encoding اضبط الترميز @@ -3811,7 +3824,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed غيّر الترميز المبدئي المفترض في كلّ جداول قاعدة البيانات - + Duplicate record كرّر السّجلّ @@ -3826,7 +3839,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Ctrl+L - + Ctrl+P Ctrl+P @@ -3866,8 +3879,8 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed ترميز قاعدة البيانات - - + + Choose a database file اختر ملف قاعدة بيانات @@ -3876,9 +3889,9 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed نسق الملفّ غير صالح. - + - + Choose a filename to save under اختر اسمًا للملف لحفظه به @@ -3889,25 +3902,25 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - + Error deleting record: %1 خطأ أثناء حذف السجلّ: %L1 - + Please select a record first من فضلك اختر سجلًا أوّلًا - + %1 - %2 of %3 ‏%L1 - ‏%L2 من أصل %L3 - - + + There is no database opened. Please open or create a new database file. لا قواعد بيانات مفتوحة. من فضلك افتح ملف قاعدة بيانات أو أنشِئ واحدًا جديدًا. @@ -4051,27 +4064,27 @@ If you answer no we will attempt to import the data in the SQL file to the curre - + Choose a project file to open اختر ملف مشروع لفتحه - + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. يستخدم ملف المشروع هذا نسق ملفات قديم لأنه أُنشأ باستخدام «متصفّح قواعد بيانات SQLite» بإصدارة ٣٫١٠ أو أقل. تحميل نسق الملفات هذا مدعوم بشكل كلي حتى الآن، إلا أننا ننصحك بتحويل كل ملفات المشاريع لديك لتستخدم النسق الجديد لأن دعم النسق القديمة قد ينتهي في المستقبل. يمكنك تحويل ملفاتك بفتحها وإعادة حفظها فحسب. - + Duplicate records كرّر السجلّات - + Ctrl+" Ctrl+" - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. من فضلك أدخِل مفتاحًا أساسيًا زائفًا (pseudo) لتفعيل التحرير في هذا المنظور. يجب أن يكون المفتاح اسمًا لأحد الأعمدة الفريدة في المنظور. @@ -4083,90 +4096,90 @@ Are you sure? أمتأكّد؟ - + Could not open database file. Reason: %1 تعذّر فتح ملف قاعدة البيانات. السبب: %L1 - + In-Memory database قاعدة بيانات في الذاكرة - + determining row count... يحدّد عدد الصفوف... - + %1 - %2 of >= %3 ‏%L1 - ‏%L2 من أصل >= ‏%L3 - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. أمتأكّد من حذف الجدول ”%L1“؟ ستفقد كلّ البيانات المرتبطة بالجدول. - + Are you sure you want to delete the view '%1'? أمتأكّد من حذف المنظور ”%L1“؟ - + Are you sure you want to delete the trigger '%1'? أمتأكّد من حذف المحفّز ”%L1“؟ - + Are you sure you want to delete the index '%1'? أمتأكّد من حذف الفهرس ”%L1“؟ - + Error: could not delete the table. خطأ: تعذّر حذف الجدول. - + Error: could not delete the view. خطأ: تعذّر حذف المنظور. - + Error: could not delete the trigger. خطأ: تعذّر حذف المحفّز. - + Error: could not delete the index. خطأ: تعذّر حذف الفهرس. - + Message from database engine: %1 الرسالة من محرّك قواعد البيانات: %L1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? تحرير الجدول يطلب حفظ كلّ التغييرات المرجأة الآن. أمتأكّد من حفظ قاعدة البيانات؟ - + Error checking foreign keys after table modification. The changes will be reverted. خطأ أثناء فحص المفاتيح الأجنبية بعد تعديل الجدول. ستُعكس التغييرات. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. لم يمرّ الجدول من فحص المفتاح الأجنبي.<br/>عليك تشغيل ”أدوات -> فحص المفتاح الأجنبي“ وإصلاح المشاكل المبلّغ عنها. @@ -4278,7 +4291,7 @@ Are you sure? - + Don't show again لا تعرض ثانيةً @@ -4293,12 +4306,12 @@ Are you sure? تتوفّر إصدارة جديدة من «متصفّح قواعد بيانات SQLite» ‏(%L1٫‏%L2٫‏%L3).<br/><br/>من فضلك نزّلها من <a href='%4'>%L4</a>. - + Collation needed! Proceed? التجميع مطلوب! أنتابع؟ - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -4307,52 +4320,52 @@ Create a backup! خُذ نسخة احتياطيّة! - + creating collation يُنشئ تجميعة - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. ضع اسمًا جديدًا للسان SQL. استخدم محرف ”&&“ ليُتاح استخدام المحرف الذي يليه كاختصار لوحة مفاتيح. - + Please specify the view name من فضلك حدّد اسم المنظور - + There is already an object with that name. Please choose a different name. هناك كائن بنفس الاسم. من فضلك اختر اسمًا آخر. - + View successfully created. نجح إنشاء المنظور. - + Error creating view: %1 خطأ أثناء إنشاء المنظور: %L1 - + There is no filter set for this table. View will not be created. لا مرشّح مضبوط لهذا الجدول. لن يُنشأ المنظور. - + Delete Records احذف السجلّات - + This action will open a new SQL tab for running: سيفتح هذا الإجراء لسان SQL جديد لتشغيل: - + Press Help for opening the corresponding SQLite reference page. انقر ”مساعدة“ لفتح صفحة SQLite المرجعية المناسبة. @@ -4369,30 +4382,30 @@ Create a backup! اختر ملفًا لفتحه - - + + DB Browser for SQLite project file (*.sqbpro) ملف مشروع «متصفّح قواعد بيانات SQLite» ‏(*.sqbpro) - + Please choose a new encoding for this table. من فضلك اختر ترميزًا جديدًا لهذا الجدول. - + Please choose a new encoding for all tables. من فضلك اختر ترميزًا جديدًا لكلّ الجداول. - + %1 Leave the field empty for using the database encoding. %L1 اترك الحقل فارغًا لاستخدام ترميز قاعدة البيانات. - + This encoding is either not valid or not supported. إمّا أنّ هذا الترميز غير صالح أو أنّه غير مدعوم. @@ -4404,12 +4417,12 @@ Leave the field empty for using the database encoding. NullLineEdit - + Set to NULL اضبطه على NULL - + Alt+Del Alt+Del @@ -5410,50 +5423,50 @@ Create a backup! RemoteDatabase - + Error when connecting to %1. %2 خطأ أثناء الاتصال بِ‍ %L1. %L2 - + Error opening remote file at %1. %2 خطأ أثناء فتح الملف البعيد في %L1. %L2 - + Error: Invalid client certificate specified. خطأ: حُدّدت شهادة عميل غير صالحة. - + Please enter the passphrase for this client certificate in order to authenticate. من فضلك أدخِل عبارة السر لشهادة العميل لإجراء الاستيثاق. - + Cancel ألغِ - + Uploading remote database to %1 يرفع قاعدة البيانات البعيدة إلى %L1 - + Downloading remote database from %1 ينزّل قاعدة البيانات البعيدة من %L1 - + The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. لم تُحدّث أيّة قاعدة بيانات منذ آخر عمليّة جلب/checkout. أتريد تحديث قاعدة البيانات المحلية إلى أحدث إصدارة؟ لاحظ بأنّ هذا سيُهمل أيّ تغيير أجريته محليًا! إن لم ترد فقد هذه التغييرات المُجراة محليًا، فانقر ”لا“ لفتح النسخة المحلية. @@ -5470,25 +5483,25 @@ Create a backup! %L1. - - + + Error: The network is not accessible. خطأ: تعذّر الوصول إلى الشبكة. - + Error: Cannot open the file for sending. خطأ: تعذّر فتح الملف لإرساله. - + Error opening local databases list. %1 خطأ أثناء فتح قائمة قواعد البيانات المحلية. %L1 - + Error creating local databases list. %1 خطأ أثناء إنشاء قائمة قواعد البيانات المحلية. diff --git a/src/translations/sqlb_cs.ts b/src/translations/sqlb_cs.ts index fab364bfc..4c1f1b158 100644 --- a/src/translations/sqlb_cs.ts +++ b/src/translations/sqlb_cs.ts @@ -34,6 +34,11 @@ + Built for + + + + Qt Version verze Qt @@ -96,44 +101,44 @@ - + Auto-increment - + Unique constraint - + Check constraint: %1 - + Foreign key: %1 - + Default value: %1 - + Error adding record. Message from database engine: %1 - + Are you sure you want to restore all the entered values to their defaults? @@ -415,38 +420,38 @@ If any of the other settings were altered for this database file you need to pro DBBrowserDB - + Please specify the database name under which you want to access the attached database Prosím specifikujte jméno databáze, pod kterým chcete přistupovat k připojené databázi - + Invalid file format Neplatný formát souboru - + Do you want to save the changes made to the database file %1? Chcete uložit změny provedené do databázového souboru %1? - + Exporting database to SQL file... Exportuji databázi do souboru SQL... - - + + Cancel Zrušit - + Executing SQL... Provádím SQL... - + Action cancelled. Akce zrušena. @@ -461,132 +466,132 @@ Ruším provedení. renameColumn: nemohu nalézt tabulku %1. - + This database has already been attached. Its schema name is '%1'. - + Do you really want to close this temporary database? All data will be lost. - + The database is currently busy: Databáze je právě zaneprázdněná: - + Do you want to abort that other operation? - - + + No database file opened - - + + Error in statement #%1: %2. Aborting execution%3. - - + + and rolling back - + didn't receive any output from %1 - + could not execute command: %1 - + Cannot delete this object Nemohu smazat tento objekt - + Cannot set data on this object - + A table with the name '%1' already exists in schema '%2'. - + renameColumn: cannot find column %1. renameColumn: nemohu nalézt sloupec %1. - + renameColumn: creating savepoint failed. DB says: %1 renameColumn: vytváření bodu obnovy selhalo. DB říká: %1 - + renameColumn: creating new table failed. DB says: %1 renameColumn: vytváření nové tabulky selhalo. DB říká: %1 - + renameColumn: copying data to new table failed. DB says: %1 renameColumn: kopírování dat do nové tabulky selhalo. DB říká: %1 - + renameColumn: deleting old table failed. DB says: %1 renameColumn: smazání staré tabulky selhalo. DB říká: %1 - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: - + renameColumn: releasing savepoint failed. DB says: %1 renameColumn: uvolňování bodu obnovy selhalo. DB říká: %1 - + Error renaming table '%1' to '%2'.Message from database engine: %3 Chyba při přejmenování tabulky '%1' to '%2'.Zpráva z databáze: %3 - + ... <string can not be logged, contains binary data> ... ... <string nemůže být zaznamenán, obsahuje binární data> ... - + could not get list of databases: %1 - + Error loading extension: %1 Chyba při načítání přípony: %1 - + could not get column information @@ -595,7 +600,7 @@ Aborting execution%3. neznámý typ objektu %1 - + could not get list of db objects: %1, %2 nemohu získat seznam objektů db: %1, %2 @@ -604,22 +609,22 @@ Aborting execution%3. nemohu získat typy - + didn't receive any output from pragma %1 - + could not execute pragma command: %1, %2 nemohu provést příkaz pragma: %1, %2 - + Error setting pragma %1 to %2: %3 Chyba při nastavování pragma %1 na %2: %3 - + File not found. Soubor nebyl nalezen. @@ -2335,7 +2340,7 @@ x~y Range: values between x and y - + Delete Record Smazat záznam @@ -2644,7 +2649,7 @@ x~y Range: values between x and y - + Set encoding Nastavit kódování @@ -3705,8 +3710,8 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Databáze je šifrována přes SQLCipher - - + + Choose a database file Vyberte soubor databáze @@ -3715,9 +3720,9 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Nesprávný formát souboru. - + - + Choose a filename to save under Vyberte název souboru pro uložení @@ -3728,25 +3733,25 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - + Error deleting record: %1 Chyba při mazání záznamu: %1 - + Please select a record first Prosím vyberte záznam jako první - + %1 - %2 of %3 %1 - %2 z %3 - - + + There is no database opened. Please open or create a new database file. Žádná databáze není otevřena. Otevřete nebo vytvořte nový soubor databáze, prosím. @@ -3887,32 +3892,32 @@ If you answer no we will attempt to import the data in the SQL file to the curre - + Choose a project file to open Vybrat soubor projektu k otevření - + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - + Duplicate records - + Duplicate record - + Ctrl+" Ctrl+ - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. @@ -3923,75 +3928,75 @@ Are you sure? - + Could not open database file. Reason: %1 - + In-Memory database - + determining row count... - + %1 - %2 of >= %3 - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. - + Are you sure you want to delete the view '%1'? - + Are you sure you want to delete the trigger '%1'? - + Are you sure you want to delete the index '%1'? - + Error: could not delete the table. - + Error: could not delete the view. - + Error: could not delete the trigger. - + Error: could not delete the index. - + Message from database engine: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? @@ -4098,7 +4103,7 @@ Are you sure? - + Don't show again Znovu nezobrazovat @@ -4113,64 +4118,64 @@ Are you sure? Nová verze DB Browseru pro SQLite je nyní dostupná (%1.%2.%3).<br/><br/>Stáhněte ji prosím na <a href='%4'>%4</a>. - + Collation needed! Proceed? Je potřeba provést collation! Potvrdit? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! - + creating collation - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. - + Please specify the view name Specifikujte název pohledu, prosím - + There is already an object with that name. Please choose a different name. Objekt s tímto názvem již existuje. Vyberte jiný název, prosím. - + View successfully created. Pohled byl úspěšně vytvořen. - + Error creating view: %1 Chyba při vytváření pohledu: %1 - + There is no filter set for this table. View will not be created. - + Delete Records - + This action will open a new SQL tab for running: - + Press Help for opening the corresponding SQLite reference page. @@ -4199,40 +4204,40 @@ Create a backup! Vyberte soubor k otevření - - + + DB Browser for SQLite project file (*.sqbpro) DB Browser pro SQLite project file (*.sqbpro) - + Please choose a new encoding for this table. Vyberte nové kódování pro tuto tabulku, prosím. - + Please choose a new encoding for all tables. Vyberte nové kódování pro všechny tabulky, prosím. - + Error checking foreign keys after table modification. The changes will be reverted. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. - + %1 Leave the field empty for using the database encoding. %1 Pro použití kódování databáze ponechte pole prázdné. - + This encoding is either not valid or not supported. Toto kódování není buď platné, nebo podporováno. @@ -4248,12 +4253,12 @@ Pro použití kódování databáze ponechte pole prázdné. NullLineEdit - + Set to NULL Nastavit na NULL - + Alt+Del Alt+Del @@ -5231,49 +5236,49 @@ All your preferences will be lost and default values will be used. %2 - + Error when connecting to %1. %2 Chyba při připojování k %1. %2 - + Error opening remote file at %1. %2 - + Error: Invalid client certificate specified. - + Please enter the passphrase for this client certificate in order to authenticate. - + Cancel Zrušit - + Uploading remote database to %1 Nahrávám vzdálenou databázi do %1. {1?} - + Downloading remote database from %1 Stahuji vzdálenou databázi z %1. {1?} - + The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. @@ -5290,24 +5295,24 @@ All your preferences will be lost and default values will be used. %1. - - + + Error: The network is not accessible. Chyba: síť není dostupná. - + Error: Cannot open the file for sending. Chyba: Nemohu otevřít soubor k odeslání. - + Error opening local databases list. %1 - + Error creating local databases list. %1 diff --git a/src/translations/sqlb_de.ts b/src/translations/sqlb_de.ts index ebfb25213..0b127871d 100644 --- a/src/translations/sqlb_de.ts +++ b/src/translations/sqlb_de.ts @@ -46,6 +46,11 @@ + Built for + + + + Qt Version Qt-Version @@ -108,38 +113,38 @@ <html><head/><body><p><span style=" font-weight:600;">Speichern</span> wird das dargestellte SQL-Statement zum Einfügen des neuen Eintrags an die Datenbank übermitteln.</p><p><span style=" font-weight:600;">Voreinstellungen</span> wird die ursprünglichen Werte der <span style=" font-weight:600;">Wert</span>-Spalte wiederherstellen.</p><p><span style=" font-weight:600;">Abbrechen</span> schließt diesen Dialog, ohne die Query auszuführen.</p></body></html> - + Auto-increment Auto-Inkrement - + Unique constraint Unique-Constraint - + Check constraint: %1 Prüfungsconstraint: %1 - + Foreign key: %1 Fremdschlüssel: %1 - + Default value: %1 Standardwert: %1 - + Error adding record. Message from database engine: %1 @@ -148,7 +153,7 @@ %1 - + Are you sure you want to restore all the entered values to their defaults? Sind Sie sicher, dass Sie alle eingegebenen Werte auf deren Standardwerte zurücksetzen möchten? @@ -442,38 +447,38 @@ Falls weitere Einstellungen für diese Datenbank-Datei vorgenommen worden sind, DBBrowserDB - + Please specify the database name under which you want to access the attached database Geben Sie bitte einen Datenbanknamen an, mit dem Sie auf die anhängte Datenbank zugreifen möchten - + Invalid file format Ungültiges Dateiformat - + Do you want to save the changes made to the database file %1? Sollen die getätigten Änderungen an der Datenbank-Datei %1 gespeichert werden? - + Exporting database to SQL file... Datenbank in SQL-Datei exportieren... - - + + Cancel Abbrechen - + Executing SQL... SQL ausführen... - + Action cancelled. Vorgang abgebrochen. @@ -488,89 +493,99 @@ Ausführung wird abgebrochen. Spalte umbenennen: Tabelle %1 nicht gefunden. - + This database has already been attached. Its schema name is '%1'. Diese Datenbank wurde bereits angehängt. Ihr Schemaname ist '%1'. - + Do you really want to close this temporary database? All data will be lost. Möchten Sie diese temporäre Datenbank wirklich schließen? Alle Daten gehen damit verloren. - + The database is currently busy: Die Datenbank ist zur Zeit beschäfigt: - + Do you want to abort that other operation? Möchten Sie die andere Operation abbrechen? - - + + No database file opened Keine Datenbankdatei geöffnet - - + + Error in statement #%1: %2. Aborting execution%3. Fehler im Statement #%1: %2. Ausführung wird abgebrochen %3. - - + + and rolling back und der Zustand zurückgesetzt - + + didn't receive any output from %1 + + + + + could not execute command: %1 + + + + Cannot delete this object Dieses Objekt kann nicht gelöscht werden - + Cannot set data on this object Daten können für dieses Objekt nicht gesetzt werden - + A table with the name '%1' already exists in schema '%2'. Es existiert eine Tabelle mit dem Namen '%1' im Schema '%2'. - + renameColumn: cannot find column %1. Spalte umbennen: Spalte %1 nicht gefunden. - + renameColumn: creating savepoint failed. DB says: %1 Spalte umbenennen: Anlegen von Speicherpunkt fehlgeschlagen. DB meldet: %1 - + renameColumn: creating new table failed. DB says: %1 Spalte umbenennen: Erstellen neuer Tabelle fehlgeschlagen. DB meldet: %1 - + renameColumn: copying data to new table failed. DB says: %1 Spalte umbenennen: Kopieren der Daten in neue Tabelle fehlgeschlagen. DB meldet: %1 - + renameColumn: deleting old table failed. DB says: %1 Spalte umbenennen: Löschen der alten Tabelle fehlgeschlagen. DB meldet: %1 - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -579,34 +594,34 @@ Ausführung wird abgebrochen %3. - + renameColumn: releasing savepoint failed. DB says: %1 Spalte umbenennen: Freigeben des Speicherpunktes fehlgeschlagen. DB meldet: %1 - + Error renaming table '%1' to '%2'.Message from database engine: %3 Fehler beim Umbenennen der Tabelle '%1' zu '%2'. Meldung von Datenbank: %3 - + ... <string can not be logged, contains binary data> ... ... <String kann nicht geloggt werden, enthält binäre Daten> ... - + could not get list of databases: %1 konnte keine Datenbankliste abrufen: %1 - + Error loading extension: %1 Fehler beim Laden der Erweiterung: %1 - + could not get column information Spalteninformationen konnten nicht errmittelt werden @@ -615,7 +630,7 @@ Ausführung wird abgebrochen %3. unbekannter Objekttyp %1 - + could not get list of db objects: %1, %2 Liste mit DB-Ojekten konnte nicht bezogen werden: %1, %2 @@ -624,22 +639,22 @@ Ausführung wird abgebrochen %3. Typen konnten nicht bezogen werden - + didn't receive any output from pragma %1 keine Ausgabe erhalten von Pragma %1 - + could not execute pragma command: %1, %2 Pragma-Kommando konnte nicht ausgeführt werden: %1, %2 - + Error setting pragma %1 to %2: %3 Fehler beim Setzen des Pragmas %1 auf %2: %3 - + File not found. Datei nicht gefunden. @@ -2442,7 +2457,7 @@ x~y Bereich: Werte zwischen x und y - + New Record Neue Zeile @@ -2457,7 +2472,7 @@ x~y Bereich: Werte zwischen x und y - + Delete Record Zeile löschen @@ -2810,122 +2825,122 @@ Sie können SQL-Statements aus einer Objektzeile fassen und in anderen Anwendung Dieser Button speichert die aktuellen Einstellungen der ausgewählten Tabelle (Filter, Anzeigeformate und Spaltenreihenfolge) als SQL-View, welche Sie später durchsuchen oder in SQL-Statements verwenden können. - + Insert Values... Werte einfügen... + - Open a dialog for inserting values in a new record Einen Dialog zum Einfügen von Werten in eine neue Zeile öffnen + - Insert new record using default values in browsed table Eine neue Zeile mit den Standardwerten in den ausgewählte Tabelle einfügen - + New In-&Memory Database Neue In-&Memory-Datenbank - + Drag && Drop Qualified Names Drag && Drop qualifizierter Namen + - Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor Qualifizierte Namen (z.B. "Tabelle."Feld") verwenden, wenn die Objekte gefasst und im Editor abgelegt werden - + Drag && Drop Enquoted Names Drag && Drop zitierter Namen + - Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor Geschützte Identifier (z.B. "Tabelle1") verwenden, wenn die Objekte gefasst und im Editor abgelegt werden - + &Integrity Check &Integritätsprüfung - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. Führt das integrity_check-Pragma auf der geöffneten Datenbank aus und gibt die Ergebnisse im SQL-Tab zurück. Dieses Pragma führt eine Integritätsprüfung der gesamten Datenbank durch. - + &Foreign-Key Check &Fremdschlüssel-Prüfung - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab Führt das foreign_key_check-Pragma auf der geöffneten Datenbank aus und gibt die Ergebnisse im SQL-Tab zurück - + &Quick Integrity Check &Schnelle Integritätsprüfung - + Run a quick integrity check over the open DB Führt eine schnelle Integritätsprüfung der geöffneten DB aus - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. Führt das quick_check-Pragma auf der geöffneten Datenbank aus und gibt die Ergebnisse im SQL-Tab zurück. Dieser Befehl führt einen Großteil der Prüfung des integrity_check-Pragmas aus, ist aber deutlich schneller. - + &Optimize &Optimieren - + Attempt to optimize the database Versuchen, die Datenbank zu optimieren - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. Führt das optimize-Pragma auf der geöffneten Datenbank aus. Dieses Pragma führt möglicherweise Optimierungen durch, die die Performanz zukünftiger Queries verbessern. - - + + Print Drucken - + Print text from current SQL editor tab [Ctrl+P] Den Text aus dem aktuellen SQL-Editortab drucken [Strg+P] - + Open a dialog for printing the text in the current SQL editor tab Einen Dialog zum Drucken des Textes im aktuellen SQL-Editortab öffnen - + Print the structure of the opened database [Ctrl+P] Die Struktur der geöffneten Datenbank drucken [Strg+P] - + Open a dialog for printing the structure of the opened database Einen Dialog zum Drucken der Struktur der geöffneten Datenbank öffnen @@ -3285,7 +3300,7 @@ Sie können SQL-Statements aus der Schemaspalte nehmen und in den SQL-Editor ode - + Set encoding Codierung setzen @@ -3305,7 +3320,7 @@ Sie können SQL-Statements aus der Schemaspalte nehmen und in den SQL-Editor ode Voreingestellte Kodierung für alle Tabellen in der Datenbank ändern - + Duplicate record Zeile duplizieren @@ -3497,7 +3512,6 @@ Sie können SQL-Statements aus der Schemaspalte nehmen und in den SQL-Editor ode - Ctrl+O Strg+O @@ -3734,9 +3748,8 @@ Sie können SQL-Statements aus der Schemaspalte nehmen und in den SQL-Editor ode Pragmas bearbeiten - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> + <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> @@ -3959,7 +3972,7 @@ Sie können SQL-Statements aus der Schemaspalte nehmen und in den SQL-Editor ode Strg+L - + Ctrl+P Strg+P @@ -3969,8 +3982,8 @@ Sie können SQL-Statements aus der Schemaspalte nehmen und in den SQL-Editor ode Datenbank-Kodierung - - + + Choose a database file Eine Datenbankdatei auswählen @@ -4010,15 +4023,15 @@ Sie können SQL-Statements aus der Schemaspalte nehmen und in den SQL-Editor ode Zugriff auf Datenbank nur lesend. Bearbeiten der Datenbank ist deaktiviert. - + Could not open database file. Reason: %1 Datenbankdatei konnte nicht geöffnet werden. Grund: %1 - + - + Choose a filename to save under Dateinamen zum Speichern auswählen @@ -4029,25 +4042,25 @@ Reason: %1 - + Error deleting record: %1 Fehler beim Löschen der Zeile: %1 - + Please select a record first Bitte zuerst eine Zeile auswählen - + %1 - %2 of %3 %1 - %2 von %3 - - + + There is no database opened. Please open or create a new database file. Es ist keine Datenbank geöffnet. Bitte eine Datenbank-Datei öffnen oder eine neue erstellen. @@ -4099,28 +4112,28 @@ Alle mit %1 verbundenen Daten gehen verloren. Bitte die URL der zu speichernden Datenbankdatei eingeben. - - + + DB Browser for SQLite project file (*.sqbpro) DB Browser für SQLite Projektdatei (*.sqbpro) - + Please choose a new encoding for this table. Bitte wählen Sie eine neue Kodierung für diese Tabelle. - + Please choose a new encoding for all tables. Bitte wählen Sie eine neue Kodierung für alle Tabellen. - + Error checking foreign keys after table modification. The changes will be reverted. Fehler beim Prüfen von Fremdschlüsseln nach der Änderung an der Tabelle. Die Änderungen werden rückgängig gemacht. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. Diese Tabelle hat die Fremdschlüsselprüfung nicht bestanden.<br/>Sie sollten 'Werkzeuge | Fremdschlüssel-Prüfng' ausführen und die gemeldeten Probleme beheben. @@ -4130,14 +4143,14 @@ Alle mit %1 verbundenen Daten gehen verloren. Erweiterungen(*.so *.dylib *.dll);;Alle Dateien(*) - + %1 Leave the field empty for using the database encoding. %1 Lassen Sie das Feld leer, um die Datenbankodierung zu verwenden. - + This encoding is either not valid or not supported. Diese Kodierung ist entweder nicht gültig oder nicht unterstützt. @@ -4264,71 +4277,71 @@ Sind Sie sicher? Ausführung durch Benutzer abgebrochen - + In-Memory database In-Memory-Datenbank - + determining row count... bestimmte Zeilenanzahl... - + %1 - %2 of >= %3 %1 - %2 von >= %3 - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. Möchten Sie die Tabelle '%1' wirklich löschen? Alle mit dieser Tabelle verbundenen Daten gehen verloren. - + Are you sure you want to delete the view '%1'? Möchten Sie die Ansicht '%1' wirklich löschen? - + Are you sure you want to delete the trigger '%1'? Möchten Sie den Trigger '%1' wirklich löschen? - + Are you sure you want to delete the index '%1'? Möchten Sie den Index '%1' wirklich löschen? - + Error: could not delete the table. Fehler: Tabelle konnte nicht gelöscht werden. - + Error: could not delete the view. Fehler: Ansicht konnte nicht gelöscht werden. - + Error: could not delete the trigger. Fehler: Trigger konnte nicht gelöscht werden. - + Error: could not delete the index. Fehler: Index konnte nicht gelöscht werden. - + Message from database engine: %1 Nachricht von Datenbank-Engine: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? Das Bearbeiten der Tabelle setzt das Speichern aller ausstehenden Änderungen voraus. @@ -4457,7 +4470,7 @@ Sind Sie sich sicher? - + Don't show again Nicht wieder anzeigen @@ -4467,37 +4480,37 @@ Sind Sie sich sicher? Neue Version verfügbar. - + Choose a project file to open Wählen Sie die zu öffnende Projektdatei - + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. Diese Projektdatei verwendet ein altes Dateiformat, da es mit DB-Browser für SQLite Version 3.10 oder niedriger erstellt wurde. Das Laden dieses Dateiformats wird noch vollständig unterstützt, wird empfehlen Ihnen allerdings, alle Ihre Projektdateien in das neue Dateiformat zu überführen, da die Unterstützung für ältere Formate in Zukunft möglicherweise entfernt wird. Sie können Ihre Dateien einfach durch Öffnen und Neuspeichern umwandeln. - + Duplicate records Doppelte Einträge - + Ctrl+" Strg+" - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. Bitte einen Pseudo-Primärschlüssel eingeben, um die Bearbeitung dieser Ansicht zu ermöglichen. Dies sollte der Name der eindeutigen Spalte dieser Ansicht sein. - + Collation needed! Proceed? Kollation notwendig! Fortführen? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -4506,52 +4519,52 @@ Wenn Sie fortfahren, sollten Sie im Hinterkopf behalten, dass mit Ihrer Datenban Erstellen Sie ein Backup! - + creating collation erstelle Kollation - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. Vergeben Sie einen Namen für den SQL-Tab. Verwenden Sie das '&&'-Zeichen, um das folgende Zeichen als Tastaturkürzel zu verwenden. - + Please specify the view name Geben Sie bitte einen Namen für Ansicht an - + There is already an object with that name. Please choose a different name. Es gibt bereits ein Objekt mit diesem Namen. Bitte wählen Sie einen anderen aus. - + View successfully created. Ansicht erfolgreich erstellt. - + Error creating view: %1 Fehler beim Erstellen der Ansicht: %1 - + There is no filter set for this table. View will not be created. Es gibt kein Filterset für diese Tabelle. Die Ansicht wird nicht erstellt. - + Delete Records Einträge löschen - + This action will open a new SQL tab for running: Diese Aktion öffnet einen neuen SQL-Tab zur Ausführung: - + Press Help for opening the corresponding SQLite reference page. Drücken Sie auf 'Hilfe', um die entsprechende SQLite-Referenzseite zu öffnen. @@ -4583,12 +4596,12 @@ Erstellen Sie ein Backup! NullLineEdit - + Set to NULL Auf NULL setzen - + Alt+Del Alt+Entf @@ -5707,50 +5720,50 @@ Erstellen Sie ein Backup! RemoteDatabase - + Error when connecting to %1. %2 Fehler beim Verbinden zu %1. %2 - + Error opening remote file at %1. %2 Fehler beim Öffnen der entfernten Datei unter %1. %2 - + Error: Invalid client certificate specified. Fehler: Ungültiges Benutzerzertifikat angegeben. - + Please enter the passphrase for this client certificate in order to authenticate. Bitte die Passphrase für diese Benutzerzertifikat eingeben, um die Authentifizierung durchzuführen. - + Cancel Abbrechen - + Uploading remote database to %1 Entfernte Datenbank wird hochgeladen zu %1 - + Downloading remote database from %1 Entfernte Datenbank wird heruntergeladen von %1 - + The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. Die entfernte Datenbank wurde seit dem letzten Checkout verändert. Möchten Sie die lokale Datenbank mit der neuesten Version aktualisieren? Beachten Sie, dass dies alle Ihre lokalen Änderungen verwirft! Falls Sie Ihre lokalen Änderungen nicht verlieren möchten, klicken Sie auf Nein, um die lokale Version zu öffnen. @@ -5767,25 +5780,25 @@ Erstellen Sie ein Backup! %1. - - + + Error: The network is not accessible. Fehler: Netzwerkzugriff nicht möglich. - + Error: Cannot open the file for sending. Fehler: Öffnen der Datei zum Senden nicht möglich. - + Error opening local databases list. %1 Fehler beim Öffnen der lokalen Datenbankliste. %1 - + Error creating local databases list. %1 Fehler beim Erstellen der lokalen Datenbankliste. diff --git a/src/translations/sqlb_en_GB.ts b/src/translations/sqlb_en_GB.ts index 0a30c2e61..99604f899 100644 --- a/src/translations/sqlb_en_GB.ts +++ b/src/translations/sqlb_en_GB.ts @@ -30,6 +30,11 @@ + Built for + + + + Qt Version @@ -92,44 +97,44 @@ - + Auto-increment - + Unique constraint - + Check constraint: %1 - + Foreign key: %1 - + Default value: %1 - + Error adding record. Message from database engine: %1 - + Are you sure you want to restore all the entered values to their defaults? @@ -406,181 +411,191 @@ If any of the other settings were altered for this database file you need to pro DBBrowserDB - + Please specify the database name under which you want to access the attached database - + Invalid file format - + Do you really want to close this temporary database? All data will be lost. - + Do you want to save the changes made to the database file %1? - + The database is currently busy: - + Do you want to abort that other operation? - + Exporting database to SQL file... - - + + Cancel - - + + No database file opened - + Executing SQL... - + Action cancelled. - - + + Error in statement #%1: %2. Aborting execution%3. - - + + and rolling back - + + didn't receive any output from %1 + + + + + could not execute command: %1 + + + + Cannot delete this object - + Cannot set data on this object - + A table with the name '%1' already exists in schema '%2'. - + renameColumn: cannot find column %1. - + renameColumn: creating savepoint failed. DB says: %1 - + renameColumn: creating new table failed. DB says: %1 - + renameColumn: copying data to new table failed. DB says: %1 - + renameColumn: deleting old table failed. DB says: %1 - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: - + renameColumn: releasing savepoint failed. DB says: %1 - + Error renaming table '%1' to '%2'.Message from database engine: %3 - + ... <string can not be logged, contains binary data> ... - + could not get list of databases: %1 - + Error loading extension: %1 - + could not get column information - + could not get list of db objects: %1, %2 - + This database has already been attached. Its schema name is '%1'. - + didn't receive any output from pragma %1 - + could not execute pragma command: %1, %2 - + Error setting pragma %1 to %2: %3 - + File not found. @@ -2144,7 +2159,7 @@ x~y Range: values between x and y - + New Record @@ -2155,7 +2170,7 @@ x~y Range: values between x and y - + Delete Record @@ -2321,7 +2336,7 @@ x~y Range: values between x and y - + Set encoding @@ -2458,11 +2473,6 @@ You can drag SQL statements from an object row and drop them into other applicat Edit Pragmas - - - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - - Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. @@ -2569,7 +2579,6 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - Ctrl+O @@ -2924,122 +2933,122 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - + Insert Values... + - Open a dialog for inserting values in a new record + - Insert new record using default values in browsed table - + New In-&Memory Database - + Drag && Drop Qualified Names + - Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor - + Drag && Drop Enquoted Names + - Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor - + &Integrity Check - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. - + &Foreign-Key Check - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab - + &Quick Integrity Check - + Run a quick integrity check over the open DB - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. - + &Optimize - + Attempt to optimize the database - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. - - + + Print - + Print text from current SQL editor tab [Ctrl+P] - + Open a dialog for printing the text in the current SQL editor tab - + Print the structure of the opened database [Ctrl+P] - + Open a dialog for printing the structure of the opened database @@ -3255,7 +3264,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - + Ctrl+P @@ -3295,47 +3304,47 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - - + + Choose a database file - + - + Choose a filename to save under - + Error deleting record: %1 - + Please select a record first - + %1 - %2 of %3 - - + + There is no database opened. Please open or create a new database file. - + Error checking foreign keys after table modification. The changes will be reverted. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. @@ -3446,32 +3455,32 @@ If you answer no we will attempt to import the data in the SQL file to the curre - + Choose a project file to open - + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - + Duplicate records - + Duplicate record - + Ctrl+" - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. @@ -3482,75 +3491,75 @@ Are you sure? - + Could not open database file. Reason: %1 - + In-Memory database - + determining row count... - + %1 - %2 of >= %3 - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. - + Are you sure you want to delete the view '%1'? - + Are you sure you want to delete the trigger '%1'? - + Are you sure you want to delete the index '%1'? - + Error: could not delete the table. - + Error: could not delete the view. - + Error: could not delete the trigger. - + Error: could not delete the index. - + Message from database engine: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? @@ -3647,7 +3656,7 @@ Are you sure you want to save the database? - + Don't show again @@ -3662,64 +3671,64 @@ Are you sure you want to save the database? - + Collation needed! Proceed? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! - + creating collation - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. - + Please specify the view name - + There is already an object with that name. Please choose a different name. - + View successfully created. - + Error creating view: %1 - + There is no filter set for this table. View will not be created. - + Delete Records - + This action will open a new SQL tab for running: - + Press Help for opening the corresponding SQLite reference page. @@ -3728,29 +3737,29 @@ Create a backup! Choose an axis colour - - + + DB Browser for SQLite project file (*.sqbpro) - + Please choose a new encoding for this table. - + Please choose a new encoding for all tables. - + %1 Leave the field empty for using the database encoding. - + This encoding is either not valid or not supported. @@ -3758,12 +3767,12 @@ Leave the field empty for using the database encoding. NullLineEdit - + Set to NULL - + Alt+Del @@ -4674,68 +4683,68 @@ All your preferences will be lost and default values will be used. RemoteDatabase - + Error when connecting to %1. %2 - + Error opening remote file at %1. %2 - + Error: Invalid client certificate specified. - + Please enter the passphrase for this client certificate in order to authenticate. - + Cancel - + Uploading remote database to %1 - + Downloading remote database from %1 - + The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. - - + + Error: The network is not accessible. - + Error: Cannot open the file for sending. - + Error opening local databases list. %1 - + Error creating local databases list. %1 diff --git a/src/translations/sqlb_es_ES.ts b/src/translations/sqlb_es_ES.ts index 009ca629c..8032c0acf 100644 --- a/src/translations/sqlb_es_ES.ts +++ b/src/translations/sqlb_es_ES.ts @@ -41,6 +41,11 @@ + Built for + + + + Qt Version Versión de Qt @@ -103,42 +108,42 @@ <html><head/><body><p><span style=" font-weight:600;">Guardar</span> enviará a la base de datos la sentencia SQL mostrada para insertar el nuevo registro.</p><p><span style=" font-weight:600;">Restituir valores por Defecto</span> restituirá los valores iniciales en la columna <span style=" font-weight:600;">Valor</span></p><p><span style=" font-weight:600;">Cancelar</span> cierra este diálogo sin ejecutar la consulta.</p></body></html> - + Auto-increment Auto-incremento - + Unique constraint Restricción UNIQUE - + Check constraint: %1 Restricción CHECK: %1 - + Foreign key: %1 Clave foránea: %1 - + Default value: %1 Valor por defecto: %1 - + Error adding record. Message from database engine: %1 @@ -147,7 +152,7 @@ %1 - + Are you sure you want to restore all the entered values to their defaults? ¿Está seguro de que quiere restaurar todos los valores introducidos a sus valores por defecto? @@ -453,38 +458,38 @@ Si se modificaron cualquiera de los otros ajustes para este archivo de base de d Sin errores - + Please specify the database name under which you want to access the attached database Por favor, especifique el nombre con el que acceder a la base de datos anexada - + Invalid file format Formato de archivo inválido - + Do you want to save the changes made to the database file %1? ¿Guardar los cambios hechos al archivo de base de datos «%1»? - + Exporting database to SQL file... Exportando base de datos a un archivo SQL... - - + + Cancel Cancelar - + Executing SQL... Ejecutando SQL... - + Action cancelled. Acción cancelada. @@ -499,99 +504,99 @@ Abortando ejecución. renameColumn: no se puede encontrar la tabla %1. - + This database has already been attached. Its schema name is '%1'. Esta base de datos ya ha sido anexada. Su nombre de esquema es «%1». - + Do you really want to close this temporary database? All data will be lost. ¿Está seguro de que quiere cerrar esta base de datos temporal? Todos los datos se perderán. - + The database is currently busy: La base de datos está actualmente ocupada: - + Do you want to abort that other operation? ¿Desea abortar la otra operación? - - + + No database file opened No hay una base de datos abierta - - + + Error in statement #%1: %2. Aborting execution%3. Error en la sentencia #%1: %2. Abortando ejecución%3. - - + + and rolling back y deshaciendo cambios - + didn't receive any output from %1 no se recibió ninguna salida de «%1» - + could not execute command: %1 no se pudo ejecutar el comando: «%1» - + Cannot delete this object No se puede borrar este objeto - + Cannot set data on this object No se pueden poner datos en este objeto - + A table with the name '%1' already exists in schema '%2'. Una tabla con el nombre «%1» ya existe en el esquema «%2». - + renameColumn: cannot find column %1. renameColumn: no se puede encontrar la columna «%1». - + renameColumn: creating savepoint failed. DB says: %1 renameColumn: creación del savepoint fallido. La base de datos dice: %1 - + renameColumn: creating new table failed. DB says: %1 renameColumn: creación de la nueva tabla fallida. La base de datos dice: %1 - + renameColumn: copying data to new table failed. DB says: %1 renameColumn: copia de datos a la nueva table fallida. La base de datos dice: %1 - + renameColumn: deleting old table failed. DB says: %1 renameColumn: borrado de tabla fallido. La base de datos dice: %1 - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -600,34 +605,34 @@ Abortando ejecución%3. - + renameColumn: releasing savepoint failed. DB says: %1 renameColumn: liberación del savepoint fallido. La base de datos dice: %1 - + Error renaming table '%1' to '%2'.Message from database engine: %3 Error renombrando la tabla «%1» a «%2». Mensaje de la base de datos: «%3» - + ... <string can not be logged, contains binary data> ... ... <la cadena no se puede registrar; contiene datos binarios> ... - + could not get list of databases: %1 no se pudo obtener lista de bases de datos: %1 - + Error loading extension: %1 Error cargando la extensión: %1 - + could not get column information No se pudo obtener información de la columna @@ -636,7 +641,7 @@ Abortando ejecución%3. tipo de objeto desconocido %1 - + could not get list of db objects: %1, %2 No se pudo obtener la lista de objetos de la base de datos: %1, %2 @@ -645,22 +650,22 @@ Abortando ejecución%3. No se pudieron obtener los tipos - + didn't receive any output from pragma %1 No se obtuvo ninguna salida del pragma %1 - + could not execute pragma command: %1, %2 No se pudo ejecutar el comando pragma: %1, %2 - + Error setting pragma %1 to %2: %3 Error definiendo pragma %1 como %2: %3 - + File not found. Archivo no encontrado. @@ -2950,7 +2955,7 @@ Usted puede arrastrar sentencias SQL desde una fila de objeto y soltarlas en otr - + Delete Record Borrar registro @@ -3399,7 +3404,7 @@ Puede arrastrar sentencias SQL desde la columna Esquema y soltarlas en el editor - + Set encoding Definir codificación @@ -3419,7 +3424,7 @@ Puede arrastrar sentencias SQL desde la columna Esquema y soltarlas en el editor Cambia la codificación por defecto para todas las tablas en la base de datos - + Duplicate record Duplicar registro @@ -3857,9 +3862,8 @@ Puede arrastrar sentencias SQL desde la columna Esquema y soltarlas en el editor Editar pragmas - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Like sensible a mayúsculas</a></p></body></html> + <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Like sensible a mayúsculas</a></p></body></html> @@ -4110,8 +4114,8 @@ Puede arrastrar sentencias SQL desde la columna Esquema y soltarlas en el editor La base de datos está cifrada usando SQLCipher - - + + Choose a database file Seleccione un archivo de base de datos @@ -4124,9 +4128,9 @@ Puede arrastrar sentencias SQL desde la columna Esquema y soltarlas en el editor Formato de archivo inválido. - + - + Choose a filename to save under Seleccione un nombre de archivo en el que guardar @@ -4137,25 +4141,25 @@ Puede arrastrar sentencias SQL desde la columna Esquema y soltarlas en el editor - + Error deleting record: %1 Error borrando registro: %1 - + Please select a record first Por favor, antes seleccione un registro - + %1 - %2 of %3 %1 - %2 de %3 - - + + There is no database opened. Please open or create a new database file. No hay una base de datos abierta. Por favor, abra o cree un nuevo archivo de base de datos. @@ -4308,37 +4312,37 @@ Si responde no se intentarán importar los datos del archivo SQL en la base de d Extensiones (*.so *.dylib *.dll);;Todos los archivos (*) - + Choose a project file to open Seleccione un archivo de proyecto para abrir - + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. Este archivo de proyecto está usando un formato antiguo porque fue creado usando una versión 3.10 o inferior de «DB Browser for SQLite». La carga de este archivo aún está completamente soportada pero le recomendamos convertir todos sus archivos de proyecto al nuevo formato porque el soporte de formatos antiguos podría ser descartado en algún momento futuro. Usted puede convertir sus archivos simplemente abriéndolos y guardándolos de nuevo. - + Duplicate records Duplicar registros - + Ctrl+" Ctrl+" - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. Introduzca una clave pseudo-primaria para activar la edición en esta vista. Esta debería ser el nombre de una columna única en la vista. - + Collation needed! Proceed? ¡Es necesaria una función de comparación! ¿Proceder? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -4355,78 +4359,78 @@ Are you sure? ¿Está seguro? - + Could not open database file. Reason: %1 No se pudo abrir el archivo de base de datos. Razón: %1 - + In-Memory database Base de datos en memoria - + determining row count... determinando nº de filas... - + %1 - %2 of >= %3 %1 - %2 de >= %3 - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. ¿Está seguro de que quiere borrar la tabla «%1»? Se perderán todos los datos asociados con la tabla. - + Are you sure you want to delete the view '%1'? ¿Está seguro de que quiere borrar la vista «%1»? - + Are you sure you want to delete the trigger '%1'? ¿Está seguro de que quiere borrar el disparador «%1»? - + Are you sure you want to delete the index '%1'? ¿Está seguro de que quiere borrar el índice «%1»? - + Error: could not delete the table. Error: no se pudo borrar la tabla. - + Error: could not delete the view. Error: no se pudo borrar la vista. - + Error: could not delete the trigger. Error: no se pudo borrar el disparador. - + Error: could not delete the index. Error: no se pudo borrar el índice. - + Message from database engine: %1 Mensaje de la base de datos: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? Para editar la tabla es necesario guardar antes todos los cambios pendientes. @@ -4540,7 +4544,7 @@ Are you sure? - + Don't show again No volver a mostrar @@ -4555,52 +4559,52 @@ Are you sure? Hay disponible una nueva versión de «DB Browser for SQLite» (%1.%2.%3).<br/><br/>Por favor, descárguela de <a href='%4'>%4</a>. - + creating collation creando comparación - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. Establezca el nuevo nombre para la pestaña SQL. Use el carácter «&&» para permitir usar el carácter siguiente como un atajo de teclado. - + Please specify the view name Por favor, especifique el nombre de la vista - + There is already an object with that name. Please choose a different name. Ya hay un objeto con ese nombre. Por favor, elija un nombre diferente. - + View successfully created. Vista creada con éxito. - + Error creating view: %1 Error creando la vista: %1 - + There is no filter set for this table. View will not be created. No existe un filtro para esta tabla. La vista no será creada. - + Delete Records Borrar registros - + This action will open a new SQL tab for running: Esta acción abrirá una nueva pestaña SQL para ejecutar: - + Press Help for opening the corresponding SQLite reference page. Pulse Ayuda para abrir la página correspondiente de la referencia de SQLite. @@ -4629,40 +4633,40 @@ Are you sure? Seleccione un archivo para abrir - - + + DB Browser for SQLite project file (*.sqbpro) Archivo de proyecto de «DB Browser for SQLite» (*.sqbpro) - + Please choose a new encoding for this table. Por favor, elija una nueva codificación para esta tabla. - + Please choose a new encoding for all tables. Por favor, elija una nueva codificación para todas las tablas. - + Error checking foreign keys after table modification. The changes will be reverted. Error comprobando las claves foráneas tras la modificación de la tabla. Los cambios se desharán. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. Esta tabla no ha pasado la comprobación de claves foráneas.<br/>Debería ejecutar 'Herramientas | Comprobar Claves foráneas' y arreglar los problemas mostrados. - + %1 Leave the field empty for using the database encoding. %1 Deje este campo vacío para usar la codificación de la base de datos. - + This encoding is either not valid or not supported. Esta codificación no es válida o no está soportada. @@ -4678,12 +4682,12 @@ Deje este campo vacío para usar la codificación de la base de datos. NullLineEdit - + Set to NULL Poner a NULL - + Alt+Del @@ -5719,50 +5723,50 @@ Si decide continuar, está avisado de que la base de datos se puede dañar. %2 - + Error when connecting to %1. %2 Error conectando a %1. %2 - + Error opening remote file at %1. %2 Error abriendo el archivo remoto en %1. %2 - + Error: Invalid client certificate specified. Error: El certificado del cliente es inválido. - + Please enter the passphrase for this client certificate in order to authenticate. Por favor, introduzca la clave de este certificado de cliente para autenticarse. - + Cancel Cancelar - + Uploading remote database to %1 Subiendo base de datos remota a %1 - + Downloading remote database from %1 Descargando base de datos remota desde %1 - + The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. La base de datos remota ha cambiado desde la última sincronización. ¿Desea actualizar la base de datos local a la versión más reciente? ¡Tenga en cuenta que esto descartará cualquier cambio que haya hecho localmente! Si no desea perder cambios locales, pulse «No» para abrir la versión local. @@ -5779,25 +5783,25 @@ Si decide continuar, está avisado de que la base de datos se puede dañar. %1. - - + + Error: The network is not accessible. Error: La red no es accesible. - + Error: Cannot open the file for sending. Error: No se puede abrir el archivo para enviar. - + Error opening local databases list. %1 Error abriendo la lista de bases de datos locales. %1 - + Error creating local databases list. %1 Error creando la lista de bases de datos locales. diff --git a/src/translations/sqlb_fr.ts b/src/translations/sqlb_fr.ts index 9a49c7012..dd83c8d0f 100644 --- a/src/translations/sqlb_fr.ts +++ b/src/translations/sqlb_fr.ts @@ -51,6 +51,11 @@ + Built for + + + + Qt Version Version de Qt @@ -113,37 +118,37 @@ <html><head/><body><p><span style=" font-weight:600;">Enregistrer</span> soumettra l'instruction SQL affichée à la base de données pour créer le nouvel enregistrement..</p><p><span style=" font-weight:600;">Restaurer les valeurs par défaut</span> restaurera les valeurs par défaut dans la <span style=" font-weight:600;">colonne</span> Valeur.</p><p><span style=" font-weight:600;">Annuler</span> fermera cette boîte de dialogue sans exécuter la requête.</p></body></html> - + Auto-increment Incrément automatique - + Unique constraint Contrainte unique - + Check constraint: %1 Vérifier les contraintes : %1 - + Foreign key: %1 Clé étrangère : %1 - + Default value: %1 Valeur par défaut : %1 - + Error adding record. Message from database engine: %1 @@ -152,7 +157,7 @@ %1 - + Are you sure you want to restore all the entered values to their defaults? Êtes-vous sûr de vouloir restaurer toutes les valeurs saisies à leurs valeurs par défaut ? @@ -451,38 +456,38 @@ Il sera appliqué à chaque valeur avant son affichage. DBBrowserDB - + Please specify the database name under which you want to access the attached database Veuillez spécifier le nom de la Base de Données sous laquelle vous voulez accéder à la Base de Données attachée - + Invalid file format Format de fichier invalide - + Do you want to save the changes made to the database file %1? Voulez-vous enregistrer les changements effectués dans la Base de Données %1 ? - + Exporting database to SQL file... Exporter la base de données dans un fichier SQL... - - + + Cancel Annuler - + Executing SQL... Exécution du SQL... - + Action cancelled. Action annulée. @@ -497,93 +502,103 @@ L'exécution est abandonnée. Renommer les Colonnes : La table %1 n'a pas été trouvée. - + This database has already been attached. Its schema name is '%1'. Cette base de données a déjà été attachée. Son nom de schéma est '%1'. - + Do you really want to close this temporary database? All data will be lost. Voulez-vous vraiment fermer cette base de données temporaire ? Toutes les données seront perdues. - + The database is currently busy: La base de données est actuellement occupée : - + Do you want to abort that other operation? Voulez-vous annuler cette autre opération ? - - + + No database file opened Aucun fichier de base de données ouvert - - + + Error in statement #%1: %2. Aborting execution%3. Erreur dans le traitement #%1 : %2. Exécution de %3 abandonnée. - - + + and rolling back et annulation des changements - + + didn't receive any output from %1 + + + + + could not execute command: %1 + + + + Cannot delete this object Impossible de supprimer cet objet - + Cannot set data on this object 170726 MVT Has to be checked in real context Définition des données impossible pour cet objet - + A table with the name '%1' already exists in schema '%2'. Une table portant le nom " %1 " existe déjà dans le schéma " %2 ". - + renameColumn: cannot find column %1. Renommer les Colonnes : La colonne %1 n'a pas été trouvée. - + renameColumn: creating savepoint failed. DB says: %1 Renommer les Colonnes : La création d'un point de sauvegarde a échoué. Message du moteur de base de données : %1 - + renameColumn: creating new table failed. DB says: %1 Renommer les Colonnes : La création de la table a échoué. Message du moteur de base de données : %1 - + renameColumn: copying data to new table failed. DB says: %1 Renommer les Colonnes : La copie des données dans une nouvelle table a échoué. Message du moteur de base de données : %1 - + renameColumn: deleting old table failed. DB says: %1 Renommer les Colonnes : La suppression de l'ancienne table a échoué. Message du moteur de base de données : %1 - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -591,35 +606,35 @@ Exécution de %3 abandonnée. - + renameColumn: releasing savepoint failed. DB says: %1 Renommer les Colonnes : La libération d'un point de sauvegarde a échoué. Message du moteur de base de données : %1 - + Error renaming table '%1' to '%2'.Message from database engine: %3 Erreur lors du changement de nom de la table %1 vers %2. Message du moteur de base de données : %3 - + ... <string can not be logged, contains binary data> ... ... <la Chaîne de caractère ne peut être journalisée. Elle contient des données binaires> ... - + could not get list of databases: %1 n'a pas pu obtenir la liste des bases de données : %1 - + Error loading extension: %1 Erreur lors du chargement de l'extension %1 - + could not get column information 170726 MVT Has to be checked in real context ne peut obtenir les informations sur la colonne @@ -629,7 +644,7 @@ Exécution de %3 abandonnée. Type d'objet %1 inconnu - + could not get list of db objects: %1, %2 la liste des objets de la base de données ne peut être obtenue : %1, %2 @@ -638,22 +653,22 @@ Exécution de %3 abandonnée. la liste des types ne peut être obtenue - + didn't receive any output from pragma %1 n'a pas reçu toutes les sorties du pragma %1 - + could not execute pragma command: %1, %2 ne peut pas exécuter les commandes du pragma : %1, %2 - + Error setting pragma %1 to %2: %3 Erreur dans les paramètres des pragma %1 à %2 : %3 - + File not found. Fichier non trouvé. @@ -2402,9 +2417,8 @@ x~y Plage : valeurs comprises entre x et y Ce bouton permet de rafraîchir les données de la table actuellement sélectionnée. - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> + <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> @@ -2469,7 +2483,7 @@ x~y Plage : valeurs comprises entre x et y - + New Record Nouvel Enregistrement @@ -2484,7 +2498,7 @@ x~y Plage : valeurs comprises entre x et y - + Delete Record Supprimer l'enregistrement @@ -2853,7 +2867,6 @@ x~y Plage : valeurs comprises entre x et y - Ctrl+O Ctrl+O @@ -3125,122 +3138,122 @@ x~y Plage : valeurs comprises entre x et y Ce bouton permet de sauvegarder les paramètres actuels de la table parcourue (filtres, formats d'affichage et colonne d'ordre) sous forme de vue SQL que vous pourrez ensuite parcourir ou utiliser dans les instructions SQL. - + Insert Values... Ajout de valeurs... + - Open a dialog for inserting values in a new record Ouvre une fenêtre de dialogue permettant l'insersion de valeurs dans un nouvel enregistrement + - Insert new record using default values in browsed table Insérer un nouvel enregistrement en utilisant les valeurs par défaut de la table parcourrue - + New In-&Memory Database Nouvelle base de données en &Mémoire - + Drag && Drop Qualified Names Glisser && Déposer les noms qualifiés + - Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor Utilisez des noms qualifiés (par ex. "Table", "Champ") lorsque vous faites glisser les objets et pour les déposez dans l'éditeur - + Drag && Drop Enquoted Names Glisser && Déposer les noms cités + - Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor Utiliser les identificateurs par défaut (par ex. "Table1") lors du glisser-déposer des objets dans l'éditeur - + &Integrity Check Vérifier l'&Intégrité - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. Exécute le pragma integrity_check sur la base de données ouverte et retourne les résultats dans l'onglet Exécuter SQL. Ce pragma effectue un contrôle d'intégrité de l'ensemble de la base de données. - + &Foreign-Key Check Vérifier les clés &Etrangères - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab Exécute le pragma foreign_key_check_check sur la base de données ouverte et retourne les résultats dans l'onglet Exécuter SQL - + &Quick Integrity Check Vérification &rapide de l'intégrité - + Run a quick integrity check over the open DB Effectuer un rapide contrôle d'intégrité sur la base de données ouverte - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. Exécute le pragma quick_check sur la base de données ouverte et retourne les résultats dans l'onglet Exécuter SQL. Cette commande effectue la plupart des vérifications de PRAGMA integrity_check mais s'exécute beaucoup plus rapidement. - + &Optimize &Optimiser - + Attempt to optimize the database Tente d'optimiser la base de données - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. Exécute le pragma d'optimisation sur la base de données ouverte. Ce pragma pourrait effectuer des optimisations qui amélioreront la performance des requêtes futures. - - + + Print Imprimer - + Print text from current SQL editor tab [Ctrl+P] Imprime le contenu de l'onglet en cours de l'éditeur SQL [Ctrp+P] - + Open a dialog for printing the text in the current SQL editor tab Ouvre une boite de dialogue pour imprimer le contenu de l'onglet en cours de l'éditeur SQL - + Print the structure of the opened database [Ctrl+P] Imprime la structure de la base de données ouverte [Ctrl+P] - + Open a dialog for printing the structure of the opened database Ouvre une boite de dialogue pour imprimer la structure de la base de données ouverte @@ -3967,7 +3980,7 @@ Vous pouvez faire glisser les instructions SQL d'une ligne d'objet et - + Set encoding Définir l'encodage @@ -4006,7 +4019,7 @@ Vous pouvez faire glisser les instructions SQL d'une ligne d'objet et Permet de dévérouiller la vue courante l'éditer. Cependant, vous aurez besoin de déclencheurs appropriés pour faire cela. - + Duplicate record Dupliquer l'enregistrement @@ -4044,7 +4057,7 @@ Vous pouvez faire glisser les instructions SQL d'une ligne d'objet et Ctrl+L - + Ctrl+P Ctrl+P @@ -4054,8 +4067,8 @@ Vous pouvez faire glisser les instructions SQL d'une ligne d'objet et Encodage de la base de données - - + + Choose a database file Choisir une base de données @@ -4095,16 +4108,16 @@ Vous pouvez faire glisser les instructions SQL d'une ligne d'objet et La Base de Données est en lecture seule. Il n'est pas possible de la modifier. - + Could not open database file. Reason: %1 La base de données ne peut être ouverte. Motif : %1 - + - + Choose a filename to save under Choisir un nom de fichier pour enregistrer sous @@ -4114,25 +4127,25 @@ Motif : %1 Erreur dans l'ajout d'un enregistrement : - + Error deleting record: %1 Erreur dans la suppression d'un enregistrement : %1 - + Please select a record first Veuillez sélectionner au préalable un enregistrement - + %1 - %2 of %3 %1 - %2 de %3 - - + + There is no database opened. Please open or create a new database file. Il n'y a pas de base de données ouverte. Veuillez ouvrir ou créer une nouvelle base de données. @@ -4184,28 +4197,28 @@ Toutes les données associées à %1 seront perdues. Veuillez saisir l'URL du fichier de base de données à enregistrer. - - + + DB Browser for SQLite project file (*.sqbpro) Projet DB Browser pour SQLite (*.sqbpro) - + Please choose a new encoding for this table. Veuillez choisir un nouvel encodage pour cette table. - + Please choose a new encoding for all tables. Veuillez choisir un nouvel encodage pour toutes les tables. - + Error checking foreign keys after table modification. The changes will be reverted. Erreur de vérification des clés étrangères après modification de la table. Les modifications seront annulées. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. Cette table n'a pas passé avec succès un contrôle de clé étrangère.<br/>Vous devez exécuter l'Outil | Contrôle des clés étrangères' et corriger les problèmes rapportés. @@ -4215,14 +4228,14 @@ Toutes les données associées à %1 seront perdues. - + %1 Leave the field empty for using the database encoding. %1 Laissez le champ vide pour utiliser l'encodage de la Base de Données. - + This encoding is either not valid or not supported. Cet encodage est invalide ou non supporté. @@ -4349,71 +4362,71 @@ Are you sure? Exécution annulée par l'utilisateur - + In-Memory database Base de données en mémoire - + determining row count... Détermination du nombre d'enregistrements... - + %1 - %2 of >= %3 %1 - %2 de >= %3 - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. Êtes vous sûr de vouloir supprimer la table %1 ? Toutes les données associées à la table seront perdues. - + Are you sure you want to delete the view '%1'? Êtes vous sûr de voulolir supprimer la vue %1 ? - + Are you sure you want to delete the trigger '%1'? Êtes vous sûr de voulolir supprimer le déclencheur %1 ? - + Are you sure you want to delete the index '%1'? Êtes vous sûr de voulolir supprimer l'index %1 ? - + Error: could not delete the table. Erreur : suppression de la table impossible. - + Error: could not delete the view. Erreur : suppression de la vue impossible. - + Error: could not delete the trigger. Erreur : suppression du déclencheur impossible. - + Error: could not delete the index. Erreur : suppression d el'index impossible. - + Message from database engine: %1 Message depuis el moteur de la base de données : %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? La modification de la table nécessite de sauvegarder toutes les modifications en attente maintenant. @@ -4542,7 +4555,7 @@ Are you sure? - + Don't show again Ne plus afficher @@ -4552,37 +4565,37 @@ Are you sure? Une nouvelle version est disponible. - + Choose a project file to open Coisir un fichier de projet à ouvrir - + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. Ce fichier de projet utilise un ancien format de fichier parce qu'il a été créé avec DB Browser pour SQLite version 3.10 ou inférieure. Le chargement de ce format de fichier est toujours entièrement pris en charge, mais nous vous conseillons de convertir tous vos fichiers de projet vers le nouveau format de fichier car la prise en charge des anciens formats pourrait être supprimée à un moment donné dans le futur. Vous pouvez convertir vos fichiers en les ouvrant et en les sauvegardant à nouveau. - + Duplicate records Enregistrement en double - + Ctrl+" Ctrl+" - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. Veuillez entrer une pseudo clé primaire pour permettre l'édition de la vue. Ce devrait être le nom d'une colonne unique dans la vue. - + Collation needed! Proceed? Classement nécessaire ! Continuer ? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -4591,52 +4604,52 @@ Si vous choisissez de continuer, ayez à l'esprit que des choses non souhai Faitez une sauvegarde ! - + creating collation Créer un classement - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. Définissez un nouveau nom pour l'onglet SQL. Utilisez le caractère '&&' pour permettre d'utiliser le caractère suivant comme raccourci clavier. - + Please specify the view name Veuillez spécifier le nom de la vue - + There is already an object with that name. Please choose a different name. Il existe déjà un objet avec ce nom. Veuillez choisir un autre nom. - + View successfully created. La vue a été crée avec succès. - + Error creating view: %1 Erreur lors de la création de la vue : %1 - + There is no filter set for this table. View will not be created. Il n'existe pas de filtre pour cette table. La vue ne sera pas crée. - + Delete Records Supprimer les enregistrements - + This action will open a new SQL tab for running: Cette action ouvrira un nouvel onglet SQL pour son exécution : - + Press Help for opening the corresponding SQLite reference page. Cliquez sur Aide pour ouvrir la page de référence correspondante de SQLite. @@ -4668,12 +4681,12 @@ Faitez une sauvegarde ! NullLineEdit - + Set to NULL Définir comme NULL - + Alt+Del Alt+Supp @@ -5798,50 +5811,50 @@ Faitez une sauvegarde ! RemoteDatabase - + Error when connecting to %1. %2 Erreur lors de la connexion à %1. %2 - + Error opening remote file at %1. %2 Erreur lors de l'ouverture du fichier distant %1. %2 - + Error: Invalid client certificate specified. Erreur : Le certificat du client spécifié est invalide. - + Please enter the passphrase for this client certificate in order to authenticate. Veuillez entrer la phrase secrète pour ce certificat client de façon à vous authentifier. - + Cancel Annuler - + Uploading remote database to %1 Téléchargement de la base distante dans %1 - + Downloading remote database from %1 Télécharger une base de données distante depuis %1 - + The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. La base de données distante a été mise à jour depuis la dernière commande. Voulez-vous mettre à jour la base de données locale vers la dernière version ? Notez que ceci annule toutes les modifications que vous avez faites localement ! Si vous ne voulez pas perdre les modifications locales, cliquez sur Non pour ouvrir la version locale. @@ -5858,25 +5871,25 @@ Faitez une sauvegarde ! %1. - - + + Error: The network is not accessible. Erreur : le réseau n'est pas accessible. - + Error: Cannot open the file for sending. Erreur : Ne peut ouvrir le fichier à envoyer. - + Error opening local databases list. %1 Erreur lors de l'ouverture de la liste des bases de données locales. %1 - + Error creating local databases list. %1 Erreur lors de la création de la liste des bases de données locales. diff --git a/src/translations/sqlb_it.ts b/src/translations/sqlb_it.ts index 06e9c9323..4edb868f3 100644 --- a/src/translations/sqlb_it.ts +++ b/src/translations/sqlb_it.ts @@ -40,6 +40,11 @@ + Built for + + + + Qt Version Versione Qt @@ -92,42 +97,42 @@ <html><head/><body><p><span style=" font-weight:600;">Salva</span> invia la richiesta SQL mostrata al database per inserire un nuovo record.</p><p><span style=" font-weight:600;">Ripristina Defaults</span> ripristinerà i valori iniziali della colonna <span style=" font-weight:600;">Valore</span>.</p><p><span style=" font-weight:600;">Annulla</span> chiuderà questa finestra di dialogo senza eseguire la query.</p></body></html> - + Auto-increment Auto-incrementale - + Unique constraint Restrizione univoco - + Check constraint: %1 Controlla restrizioni: %1 - + Foreign key: %1 Chiave esterna: %1 - + Default value: %1 Valore di default: %1 - + Error adding record. Message from database engine: %1 @@ -136,7 +141,7 @@ %1 - + Are you sure you want to restore all the entered values to their defaults? Sei sicuro di voler ripristinare tutti i valori inseriti ai loro valori di default? @@ -418,140 +423,140 @@ Se una qualunque altra impostazione è stata modificata per l'inserimento d DBBrowserDB - + This database has already been attached. Its schema name is '%1'. Questo database è già stato collegato. Il nome del suo schema è '%1'. - + Please specify the database name under which you want to access the attached database Si prega di specificare il nome del database con cui si vuol accedere al database collegato - + Invalid file format Formato file non valido - + Do you really want to close this temporary database? All data will be lost. Vuoi davvero chiudere questo database temporaneo? Tutti i dati andranno persi. - + Do you want to save the changes made to the database file %1? Vuoi salvare le modifiche effettuate al database %1? - + The database is currently busy: Il database è attualmente in uso: - + Do you want to abort that other operation? Vuoi annullare l'altra operazione? - + Exporting database to SQL file... Esportando il database in file SQL... - - + + Cancel Annulla - - + + No database file opened Nessun database aperto - + Executing SQL... Eseguendo SQL... - + Action cancelled. Azione annullata. - - + + Error in statement #%1: %2. Aborting execution%3. Errore nello statement #%1: %2. Annullo l'esecuzione %3. - - + + and rolling back e ripristino il db - + didn't receive any output from %1 non ho ricevuto alcun ouput da %1 - + could not execute command: %1 impossibile eseguire il comando: %1 - + Cannot delete this object Non posso cancellare questo oggetto - + Cannot set data on this object Non posso impostare i dati in questo oggetto - + A table with the name '%1' already exists in schema '%2'. Una tabella con il nome '%1' esiste già nello schema '%2'. - + renameColumn: cannot find column %1. renameColumn: Impossibile trovare la colonna %1. - + renameColumn: creating savepoint failed. DB says: %1 renameColumn: creazione salvataggio fallita. Messaggio DB : %1 - + renameColumn: releasing savepoint failed. DB says: %1 renameColumn: rilascio punto di salvataggio fallito. Messaggio DB: %1 - + renameColumn: creating new table failed. DB says: %1 renameColumn: creazione nuova tabella fallita. Messaggio DB: %1 - + renameColumn: copying data to new table failed. DB says: %1 renameColumn: copia dei dati a nuova tabella fallito. Messaggio DB: %1 - + renameColumn: deleting old table failed. DB says: %1 renameColumn: eliminazione vecchia tabella falita. Messaggio DB: %1 - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -560,54 +565,54 @@ Annullo l'esecuzione %3. - + Error renaming table '%1' to '%2'.Message from database engine: %3 Errore nel rinominare la tabella '%1' in '%2'.Messaggio dal database engine: %3 - + ... <string can not be logged, contains binary data> ... ... <la stringa non può essere loggata, contiene dati binari> ... - + could not get list of db objects: %1, %2 non è possibile ricavare la lista degli oggetti db: %1, %2 - + could not get list of databases: %1 non è possibile ricavare la lista dei database: %1 - + didn't receive any output from pragma %1 non ho ricevuto nessun output da pragma %1 - + could not execute pragma command: %1, %2 non è possibile eseguire il comando pragma: %1, %2 - + Error setting pragma %1 to %2: %3 Errore nell'impostare pragma %1 in %2: %3 - + File not found. File non trovato. - + Error loading extension: %1 Errore nel caricamento dell'estensione: %1 - + could not get column information non è possibile ricavare informazioni sulla colonna @@ -2244,7 +2249,7 @@ Puoi trascinare SQL da una riga oggetto e rilasciarli dentro altri applicativi o - + Delete Record Elimina Riga @@ -2986,7 +2991,7 @@ Puoi trascinare statement SQL dalla colonna Schema e rilasciarli dentro l'e - + Set encoding Imposta codifica @@ -3350,126 +3355,126 @@ Puoi trascinare statement SQL dalla colonna Schema e rilasciarli dentro l'e Codifica Database - - + + Choose a database file Seleziona un file di database - + Could not open database file. Reason: %1 Impossibile aprire il file di database. Motivo: %1 - + - + Choose a filename to save under Seleziona un nome file per il salvataggio - + In-Memory database Database In-Memoria - + Error deleting record: %1 Errore eliminando le righe: %1 - + Please select a record first Si prega di selezionare prima un record - + determining row count... determino il numero di righe... - + %1 - %2 of >= %3 %1 - %2 di >= %3 - + %1 - %2 of %3 %1 - %2 di %3 - - + + There is no database opened. Please open or create a new database file. Non c'è un database aperto. Si prega di aprire o creare un nuovo file di database. - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. Sei sicuro di voler eliminare la tabella '%1'? Tutti i dati associati alla tabella andranno perduti. - + Are you sure you want to delete the view '%1'? Sei sicuro di voler eliminare la vista '%1'? - + Are you sure you want to delete the trigger '%1'? Sei sicuro di voler eliminare il trigger '%1'? - + Are you sure you want to delete the index '%1'? Sei sicuro di voler eliminare l'indice '%1'? - + Error: could not delete the table. Errore: impssibile eliminare la tabella. - + Error: could not delete the view. Errore: impossibile eliminare la vista. - + Error: could not delete the trigger. Errore: impossibile eliminare il trigger. - + Error: could not delete the index. Errore: impossibile eliminare l'indice. - + Message from database engine: %1 Messaggio dal database: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? Per modificare la tabella bisogna salvare tutte le modifiche pendenti. Sei sicuro di voler salvare il database? - + Error checking foreign keys after table modification. The changes will be reverted. Errore nel controllo delle chiavi esterne dopo le modifiche alla tabella. Le modifiche saranno eliminate. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. Questa tabella non ha passato il controllo sulle chiavi esterne.<br/>Dovresti avviare 'Strumenti | Controllo Chiavi Esterne' e correggere i problemi riportati. @@ -3687,7 +3692,7 @@ Sei sicuro? - + Don't show again Non mostrare di nuovo @@ -3702,70 +3707,70 @@ Sei sicuro? Una nuova versione di DB Browser for SQLite è disponibile (%1.%2.%3).<br/><br/>Si prega di scaricarla da <a href='%4'>%4</a>. - + Choose a project file to open Seleziona un file di progetto da aprire - - + + DB Browser for SQLite project file (*.sqbpro) File di progetto DB Browser for SQLite (*.sqbpro) - + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. Questo file di progetto utilizza un vecchio formato poiché è stato creato con la versione 3.10 o antecedente. Il caricamento di questo formato è ancora supportato, ma ti suggeriamo di convertire tutti i tuoi files di progetto al nuovo formato poiché il supporto ai formati precedenti potrebbe essere eliminato in futuro. Puoi convertire i tuoi file semplicemente aprendoli e salvandoli nuovamente. - + Duplicate records Duplica i records - + Duplicate record Duplica il record - + Ctrl+" - + Please choose a new encoding for all tables. Si prega di scegliere una nuova codifica per tutte le tabelle. - + Please choose a new encoding for this table. Si prega di scegliere una nuova codifica per questa tabella. - + %1 Leave the field empty for using the database encoding. %1 Lasciare il campo vuoto per utilizzare la codifica del database. - + This encoding is either not valid or not supported. Questa codifica non è valida o non è supportata. - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. Si prega d'inserire una pseudo-chiave primaria in modo da abilitare le modifiche su questa vista. Deve corrispondere al nome di una colonna univoca nella vista. - + Collation needed! Proceed? Necessario confronto! Procedo? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -3774,52 +3779,52 @@ Se scegli di proseguire, sappi che potrebbero generarsi problemi nel tuo databas Crea un backup! - + creating collation creo confronto - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. Imposta un nuovo nome per la scheda SQL. Usa il carattere '&&' per utilizzare il carattere succesivo come scorciatoia da tastiera. - + Please specify the view name Si prega di specificare il nome della vista - + There is already an object with that name. Please choose a different name. Esiste già un oggetto con quel nome. Si prega di scegliere un nome diverso. - + View successfully created. Vista creata con successo. - + Error creating view: %1 Errore nella creazione della vista: %1 - + There is no filter set for this table. View will not be created. Non c'è filtro impostato per questa tabella. La vista non sarà creata. - + Delete Records Elimina i Records - + This action will open a new SQL tab for running: Questa azione aprirà una nuova scheda SQL per eseguire: - + Press Help for opening the corresponding SQLite reference page. Premi Aiuto per aprire la pagina di riferimento SQLite corrispondente. @@ -3827,12 +3832,12 @@ Crea un backup! NullLineEdit - + Set to NULL Imposta a NULL - + Alt+Del Alt+Canc @@ -4749,75 +4754,75 @@ Tutte le tue preferenze andranno perse e verranno utilizzati i valori predefinit RemoteDatabase - + Error when connecting to %1. %2 Errore nella connessione a %1. %2 - + Error opening remote file at %1. %2 Errore aprendo il file remoto a %1. %2 - + Error: Invalid client certificate specified. Errore: specificato certificato invalido per il client. - + Please enter the passphrase for this client certificate in order to authenticate. Si prega d'inserire la passphrase per questo certificato di client in modo da permetterne l'autenticazione. - + Cancel Annulla - + Uploading remote database to %1 Carico il database remoto in %1 - + Downloading remote database from %1 Scarico il database remoto da %1 - - + + Error: The network is not accessible. Errore: Rete non disponibile. - + Error: Cannot open the file for sending. Errore:Impossibile aprire il file per l'invio. - + Error opening local databases list. %1 Errore nell'apertura della lista di database locale. %1 - + Error creating local databases list. %1 Errore nella creazione della lista di database locale. %1 - + The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. Il database remoto è stato aggiornato dall'ultima verifica. Vuoi aggiornare la copia locale del database alla versione più recente? Nota che questo eliminerà tutte le modifiche che puoi aver effettuato localmente! Se non vuoi perdere le modifiche locali, clicca su "No" per aprire la versione locale. diff --git a/src/translations/sqlb_ko_KR.ts b/src/translations/sqlb_ko_KR.ts index aba6af221..36772f802 100644 --- a/src/translations/sqlb_ko_KR.ts +++ b/src/translations/sqlb_ko_KR.ts @@ -35,6 +35,11 @@ + Built for + + + + Qt Version Qt 버전 @@ -97,44 +102,44 @@ - + Auto-increment - + Unique constraint - + Check constraint: %1 - + Foreign key: %1 - + Default value: %1 - + Error adding record. Message from database engine: %1 - + Are you sure you want to restore all the entered values to their defaults? @@ -432,38 +437,38 @@ If any of the other settings were altered for this database file you need to pro 에러 없음 - + Please specify the database name under which you want to access the attached database 데이터베이스 연결(attach)을 위해 불러올 데이터베이스의 별명을 지정해주세요 - + Invalid file format 잘못된 파일 포맷입니다 - + Do you want to save the changes made to the database file %1? %1 데이터베이스 파일을 생성하기 위해 변경사항을 저장하겠습니까? - + Exporting database to SQL file... 데이터베이스를 SQL 파일로 내보내기 중... - - + + Cancel 취소 - + Executing SQL... SQL 실행중... - + Action cancelled. 실행 취소되었습니다. @@ -478,87 +483,97 @@ Aborting execution. 필드이름 변경: %1 테이블을 발견할 수 없습니다. - + This database has already been attached. Its schema name is '%1'. - + Do you really want to close this temporary database? All data will be lost. - + The database is currently busy: - + Do you want to abort that other operation? - - + + No database file opened - - + + Error in statement #%1: %2. Aborting execution%3. #%1: %2 구문에 에러가 있어 실행을 중단했습니다%3. - - + + and rolling back 그리고 롤백 합니다 - + + didn't receive any output from %1 + + + + + could not execute command: %1 + + + + Cannot delete this object - + Cannot set data on this object 이 객체에는 데이터를 저장할 수 없습니다 - + A table with the name '%1' already exists in schema '%2'. - + renameColumn: cannot find column %1. 필드이름 변경: %1 필드를 발견할 수 없습니다. - + renameColumn: creating savepoint failed. DB says: %1 필드이름 변경: 세이브포인트를 생성하는데 실패했습니다. 데이터베이스 메시지: %1 - + renameColumn: creating new table failed. DB says: %1 필드이름 변경: 새 테이블을 생성하는데 실패했습니다. 데이터베이스 메시지: %1 - + renameColumn: copying data to new table failed. DB says: %1 필드이름 변경: 새 테이블로 데이터를 복사하는데 실패했습니다. 데이터베이스 메시지: %1 - + renameColumn: deleting old table failed. DB says: %1 필드이름 변경: 이전 테이블을 삭제하는데 실패했습니다. 데이터베이스 메시지: %1 - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -567,34 +582,34 @@ Aborting execution%3. - + renameColumn: releasing savepoint failed. DB says: %1 필드이름 변경: 세이브포인트를 해제하는데 실패했습니다. 데이터베이스 메시지: %1 - + Error renaming table '%1' to '%2'.Message from database engine: %3 테이블명을 '%1'에서 '%2'로 변경하는데 에러가 발생했습니다. 데이베이스 메시지: %3 - + ... <string can not be logged, contains binary data> ... ... <문자열이 바이너리 데이터를 포함하여 로깅될 수 없습니다.> ... - + could not get list of databases: %1 - + Error loading extension: %1 확장기능을 불러오기 에러: %1 - + could not get column information 컬럼(열) 정보를 가져올 수 없습니다 @@ -603,7 +618,7 @@ Aborting execution%3. %1 은(는) 알 수 없는 객체 타입입니다 - + could not get list of db objects: %1, %2 데이터베이스 객체 목록을 가져올 수 없습니다: %1, %2 @@ -612,22 +627,22 @@ Aborting execution%3. 타입을 얻어올 수 없습니다 - + didn't receive any output from pragma %1 pragma %1 에서 출력결과를 받아올 수 없습니다 - + could not execute pragma command: %1, %2 pragma 명령을 실행할 수 없습니다: %1, %2 - + Error setting pragma %1 to %2: %3 pragma 세팅을 %1에서 %2로 변경하는데 에러: %3 - + File not found. 파일이 없습니다. @@ -2419,7 +2434,7 @@ x~y Range: values between x and y - + New Record 새 레코드 @@ -2434,7 +2449,7 @@ x~y Range: values between x and y - + Delete Record 레코드 삭제 @@ -2813,7 +2828,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - + Set encoding 인코딩 지정하기 @@ -2833,7 +2848,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed 데이터베이스 안에 있는 모든 테이블의 기본 인코딩을 변경합니다 - + Duplicate record 레코드 복제하기 @@ -3025,7 +3040,6 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - Ctrl+O Ctrl+O @@ -3335,11 +3349,6 @@ You can drag SQL statements from an object row and drop them into other applicat Edit Pragmas Pragma 수정 - - - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - - Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. @@ -3571,122 +3580,122 @@ You can drag SQL statements from an object row and drop them into other applicat - + Insert Values... + - Open a dialog for inserting values in a new record + - Insert new record using default values in browsed table - + New In-&Memory Database - + Drag && Drop Qualified Names + - Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor - + Drag && Drop Enquoted Names + - Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor - + &Integrity Check - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. - + &Foreign-Key Check - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab - + &Quick Integrity Check - + Run a quick integrity check over the open DB - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. - + &Optimize - + Attempt to optimize the database - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. - - + + Print - + Print text from current SQL editor tab [Ctrl+P] - + Open a dialog for printing the text in the current SQL editor tab - + Print the structure of the opened database [Ctrl+P] - + Open a dialog for printing the structure of the opened database @@ -3927,7 +3936,7 @@ You can drag SQL statements from an object row and drop them into other applicat Ctrl+L - + Ctrl+P Ctrl+P @@ -3967,8 +3976,8 @@ You can drag SQL statements from an object row and drop them into other applicat 데이터베이스는 SQLCipher를 사용해서 암호화됩니다 - - + + Choose a database file 데이터베이스 파일을 선택하세요 @@ -3981,9 +3990,9 @@ You can drag SQL statements from an object row and drop them into other applicat 올바르지 않은 파일 포맷입니다. - + - + Choose a filename to save under 저장하려는 파일명을 고르세요 @@ -3993,25 +4002,25 @@ You can drag SQL statements from an object row and drop them into other applicat 레코드 추가 에러: - + Error deleting record: %1 레코드 추가 에러: %1 - + Please select a record first 레코드를 먼저 선택하세요 - + %1 - %2 of %3 %1 - %2 of %3 - - + + There is no database opened. Please open or create a new database file. 데이터베이스가 열려있지 않습니다. 데이터베이스를 열던가 새 데이터베이스 파일을 생성하세요. @@ -4163,27 +4172,27 @@ If you answer no we will attempt to import the data in the SQL file to the curre - + Choose a project file to open - + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - + Duplicate records - + Ctrl+" - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. 이 뷰에서 수정을 활성화하기 위하여 pseudo-primary key를 입력하시기 바랍니다. 이것은 뷰에서 유일한 이름이어야 합니다. @@ -4195,76 +4204,76 @@ Are you sure? 동의하십니까? - + Could not open database file. Reason: %1 데이터베이스 파일을 열 수 없습니다. 원인: %1 - + In-Memory database - + determining row count... - + %1 - %2 of >= %3 - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. - + Are you sure you want to delete the view '%1'? - + Are you sure you want to delete the trigger '%1'? - + Are you sure you want to delete the index '%1'? - + Error: could not delete the table. - + Error: could not delete the view. - + Error: could not delete the trigger. - + Error: could not delete the index. - + Message from database engine: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? @@ -4371,7 +4380,7 @@ Are you sure? - + Don't show again 다시 보지 않기 @@ -4386,12 +4395,12 @@ Are you sure? 이용 가능한 새 버전이 있습니다 (%1.%2.%3).<br/><br/><a href='%4'>%4</a>에서 다운로드하세요. - + Collation needed! Proceed? 콜레이션이 필요합니다! 진행할까요? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -4400,52 +4409,52 @@ Create a backup! 백업을 생성하세요! - + creating collation - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. - + Please specify the view name 뷰 이름을 지정해주세요 - + There is already an object with that name. Please choose a different name. 이지 같은 이름의 객체가 존재합니다. 다른 이름을 고르세요. - + View successfully created. 뷰 생성 성공. - + Error creating view: %1 뷰 생성 에러: %1 - + There is no filter set for this table. View will not be created. - + Delete Records - + This action will open a new SQL tab for running: - + Press Help for opening the corresponding SQLite reference page. @@ -4466,39 +4475,39 @@ Create a backup! 불러올 파일을 선택하세요 - - + + DB Browser for SQLite project file (*.sqbpro) DB Browser for SQLite 프로젝트 파일 (*.sqbpro) - + Please choose a new encoding for this table. 이 테이블에 적용할 새 인코딩을 선택하세요 - + Please choose a new encoding for all tables. 모든 테이블에 설정 할 새 인코딩을 선택하세요 - + Error checking foreign keys after table modification. The changes will be reverted. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. - + %1 Leave the field empty for using the database encoding. 데이터베이스 인코딩을 사용하기위해 필드를 비워둡니다 - + This encoding is either not valid or not supported. 이 인코딩은 올바르지 않거나 지원되지 않습니다. @@ -4510,12 +4519,12 @@ Leave the field empty for using the database encoding. NullLineEdit - + Set to NULL NULL로 변경하기 - + Alt+Del @@ -5527,46 +5536,46 @@ Create a backup! RemoteDatabase - + Error when connecting to %1. %2 %1 에 연결할 때 에러가 발생했습니다. - + Error opening remote file at %1. %2 %1 에 있는 원격 파일을 열 때 에러가 발생했습니다. - + Error: Invalid client certificate specified. 에러: 올바르지 않은 클라이언트 인증서입니다. - + Please enter the passphrase for this client certificate in order to authenticate. 인증을 위한 클라이언트 인증서 암호를 입력해주세요. - + Cancel 취소 - + Uploading remote database to %1 %2 로 원격 데이터베이스 업로드 중입니다. {1?} - + Downloading remote database from %1 %1 에서 원격 데이터베이스 다운로드 중입니다. {1?} - + The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. @@ -5581,24 +5590,24 @@ Create a backup! %1 에서 원격 데이터베이스 다운로드 중입니다. - - + + Error: The network is not accessible. 에러: 네트워크가 접근할 수 없습니다. - + Error: Cannot open the file for sending. 에러: 보낼 파일을 열 수 없습니다. - + Error opening local databases list. %1 지역 데이터베이스 목록을 열 때 에러가 발생했습니다. %1 - + Error creating local databases list. %1 지역 데이터베이스 목록을 생성할 때 에러가 발생했습니다. %1 diff --git a/src/translations/sqlb_pl.ts b/src/translations/sqlb_pl.ts index 391a6df00..19383688e 100644 --- a/src/translations/sqlb_pl.ts +++ b/src/translations/sqlb_pl.ts @@ -30,6 +30,11 @@ + Built for + + + + Qt Version Wersja Qt @@ -92,41 +97,41 @@ <html><head/><body><p><span style=" font-weight:600;">Zapisz</span> przekarze wyświetlone zapytanie SQL do bazy danych w celu zapisania nowego rekordu</p><p><span style=" font-weight:600;">Przywróć domyślne</span> przywróci wstępne wartości domyślne w kolumnie<span style=" font-weight:600;">Wartość</span></p><p><span style=" font-weight:600;">Anuluj</span> zamyka to okno bez robienia zmian.</p></body></html> - + Auto-increment - + Unique constraint Unikat - + Check constraint: %1 Weryfikator: %1 - + Foreign key: %1 Klucz obcy: %1 - + Default value: %1 Wartość domyślna: %1 - + Error adding record. Message from database engine: %1 @@ -135,7 +140,7 @@ %1 - + Are you sure you want to restore all the entered values to their defaults? Jesteś pewien że chcesz przywrócić domyślne wartości dla wszystich wpisów? @@ -417,125 +422,135 @@ Jeśli zostały zmienione jakiekolwiek dodatkowe ustawienia dla pliku tej bazy d DBBrowserDB - + This database has already been attached. Its schema name is '%1'. Baza danych została już załączona. Nazwa jej schematu to '%1'. - + Please specify the database name under which you want to access the attached database Proszę podaj nazwę bazy danych za pomocą której chcesz uzyskać dostęp do załączonej bazy - + Invalid file format Nieprawidłowy format pliku - + Do you really want to close this temporary database? All data will be lost. Czy na pewno chcesz zamknąć tę tymczasową bazę danych? Wszelkie zmiany bedą zapomniane. - + Do you want to save the changes made to the database file %1? Czy na pewno chcesz zapisać zmiany dokonane w pliku bazy danych %1? - + The database is currently busy: Baza danych jest obecnie zajęta: - + Do you want to abort that other operation? Czy na pewno chcesz przerwać tą inną operację? - + Exporting database to SQL file... Eksportowanie bazy danych do pliku SQL… - - + + Cancel Anuluj - - + + No database file opened Plik z bazą danych nie jest obecnie otwarty - + Executing SQL... Wykonywanie SQL… - + Action cancelled. Anulowano akcję. - - + + Error in statement #%1: %2. Aborting execution%3. Błąd w poleceniu #%1: %2. Przerywam wykonywanie%3. - - + + and rolling back i przywracam - + + didn't receive any output from %1 + + + + + could not execute command: %1 + + + + Cannot delete this object Nie można usunąć tego obiektu - + Cannot set data on this object Nie można ustawić danych na tym objekcie - + A table with the name '%1' already exists in schema '%2'. Tabela o nazwie '%1' już istnieje w schemacie '%2'. - + renameColumn: cannot find column %1. renameColumn(zmiana nazwy kolumny): nie można odnaleźć kolumny %1. - + renameColumn: creating savepoint failed. DB says: %1 renameColumn(zmiana nazwy kolumny): błąd przy zapisie. Baza Danych zwraca: %1 - + renameColumn: creating new table failed. DB says: %1 renameColumn(zmiana nazwy kolumny): tworzenie nowej tabeli nie powiodło się. Baza danych zwróciła: %1 - + renameColumn: copying data to new table failed. DB says: %1 renameColumn(zmiana nazwy kolumny): kopiowanie danych do nowej tabeli nie powiodło się. Baza danych zwróciła: %1 - + renameColumn: deleting old table failed. DB says: %1 renameColumn(zmiana nazwy kolumny): usuwanie starej tabeli nie powiodło się. Baza danych zwróciła: %1 - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -544,59 +559,59 @@ Przerywam wykonywanie%3. - + renameColumn: releasing savepoint failed. DB says: %1 renameColumn(zmiana nazwy kolumny): Wystąpił błąd podczas odłączenia punktu zapisu. Baza danych podała następujący komunikat: %1 - + Error renaming table '%1' to '%2'.Message from database engine: %3 Błąd podczas zmiany nazwy tabeli '%1' na '%2'. Wiadomość z silnika bazy danych: %3 - + ... <string can not be logged, contains binary data> ... ... <string nie można zalogować zawiera dane w postaci binarnej> ... - + could not get list of db objects: %1, %2 nie mogę pobrać listy obiektów bazy danych: %1, %2 - + could not get list of databases: %1 nie mogę odczytać listy baz danych: %1 - + didn't receive any output from pragma %1 nie otrzymałem żadnego wyniku od pragmy %1 - + could not execute pragma command: %1, %2 nie mogłem wykonać polecenia pragmy: %1, %2 - + Error setting pragma %1 to %2: %3 Błąd przy ustawianiu pragmy %1 do %2: %3 - + File not found. Nie znaleziono pliku. - + Error loading extension: %1 Wystąpił błąd przy ładownaniu rozszerzenia: %1 - + could not get column information nie można uzyskać informacji o kolumnie @@ -2164,11 +2179,6 @@ x~y Range: values between x and y - Standard selection and copy/paste operations. - - - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - - Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. @@ -2252,7 +2262,7 @@ You can drag SQL statements from an object row and drop them into other applicat - + New Record Nowy rekord @@ -2268,7 +2278,7 @@ You can drag SQL statements from an object row and drop them into other applicat - + Delete Record Usuń rekord @@ -2563,7 +2573,6 @@ You can drag SQL statements from an object row and drop them into other applicat - Ctrl+O Ctrl+O @@ -2872,122 +2881,122 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - + Insert Values... + - Open a dialog for inserting values in a new record + - Insert new record using default values in browsed table - + New In-&Memory Database - + Drag && Drop Qualified Names + - Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor - + Drag && Drop Enquoted Names + - Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor - + &Integrity Check - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. - + &Foreign-Key Check - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab - + &Quick Integrity Check - + Run a quick integrity check over the open DB - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. - + &Optimize - + Attempt to optimize the database - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. - - + + Print - + Print text from current SQL editor tab [Ctrl+P] - + Open a dialog for printing the text in the current SQL editor tab - + Print the structure of the opened database [Ctrl+P] - + Open a dialog for printing the structure of the opened database @@ -3180,7 +3189,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - + Set encoding Ustaw kodowanie @@ -3378,7 +3387,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Ctrl+L - + Ctrl+P Ctrl+P @@ -3423,22 +3432,22 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Kodowanie bazy danych - - + + Choose a database file Wybierz plik bazy danych - + Could not open database file. Reason: %1 Nie można otworzyć pliku bazy danych. Powód: %1 - + - + Choose a filename to save under Wybierz nazwę pliku do zapisu @@ -3449,35 +3458,35 @@ Powód: %1 - + Error deleting record: %1 Błąd podczas usuwania rekordu: %1 - + Please select a record first Najpierw wybierz rekord - + determining row count... określanie liczby rzędów… - + %1 - %2 of >= %3 %1 - %2 z >= %3 - + %1 - %2 of %3 %1 - %2 z %3 - - + + There is no database opened. Please open or create a new database file. Brak otwartych baz danych. Otwórz lub utwórz nowy plik bazy danych. @@ -3515,70 +3524,70 @@ Are you sure? - + In-Memory database - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. - + Are you sure you want to delete the view '%1'? - + Are you sure you want to delete the trigger '%1'? - + Are you sure you want to delete the index '%1'? - + Error: could not delete the table. - + Error: could not delete the view. - + Error: could not delete the trigger. - + Error: could not delete the index. - + Message from database engine: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? - + Error checking foreign keys after table modification. The changes will be reverted. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. @@ -3769,7 +3778,7 @@ Are you sure? - + Don't show again Nie pokazuj ponownie @@ -3784,121 +3793,121 @@ Are you sure? - + Choose a project file to open Wybierz plik projektu do otworzenia - - + + DB Browser for SQLite project file (*.sqbpro) Plik projektu Przeglądarki baz danych SQLite (*.sqbpro) - + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - + Duplicate records - + Duplicate record - + Ctrl+" Ctrl+" - + Please choose a new encoding for all tables. Wybierz nowe kodowanie dla wszystkich tabel. - + Please choose a new encoding for this table. Wybierz kodowanie dla tej tabeli - + %1 Leave the field empty for using the database encoding. - + This encoding is either not valid or not supported. To kodowanie jest nieprawidłowe lub nieobsługiwane - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. - + Collation needed! Proceed? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! - + creating collation - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. - + Please specify the view name Określ nazwę widoku - + There is already an object with that name. Please choose a different name. - + View successfully created. Pomyślnie utworzono widok. - + Error creating view: %1 Błąd tworzenia widoku: %1 - + There is no filter set for this table. View will not be created. Nie ustawiono filtru dla tej tabeli. Widok nie zostanie utworzony. - + Delete Records Usuń rekordy - + This action will open a new SQL tab for running: - + Press Help for opening the corresponding SQLite reference page. @@ -3906,12 +3915,12 @@ Create a backup! NullLineEdit - + Set to NULL Ustaw jako NULL - + Alt+Del Alt+Del @@ -4827,70 +4836,70 @@ All your preferences will be lost and default values will be used. RemoteDatabase - + Error when connecting to %1. %2 Wystąpił błąd podczas łączenia z %1. %2 - + Error opening remote file at %1. %2 Wystąpił błąd podczas otwierania zdalnego pliku w %1. %2 - + Error: Invalid client certificate specified. - + Please enter the passphrase for this client certificate in order to authenticate. - + Cancel Anuluj - + Uploading remote database to %1 - + Downloading remote database from %1 - - + + Error: The network is not accessible. - + Error: Cannot open the file for sending. - + Error opening local databases list. %1 - + Error creating local databases list. %1 - + The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. diff --git a/src/translations/sqlb_pt_BR.ts b/src/translations/sqlb_pt_BR.ts index 1fc9df3ff..6a71cd105 100644 --- a/src/translations/sqlb_pt_BR.ts +++ b/src/translations/sqlb_pt_BR.ts @@ -24,6 +24,11 @@ + Built for + + + + Qt Version Versão do Qt @@ -96,42 +101,42 @@ <html><head/><body><p><span style=" font-weight:600;">Salvar</span> irá enviar o comando SQL exibido para o banco de dados para a inserção do novo registro.</p><p><span style=" font-weight:600;">Restaurar Padrões</span> irá restaurar os valores iniciais na coluna <span style=" font-weight:600;">Valor</span>.</p><p><span style=" font-weight:600;">Cancelar</span> irá fechar esse diálogo sem executar a consulta.</p></body></html> - + Auto-increment Auto-incremento - + Unique constraint Restrição de unicidade - + Check constraint: %1 Restrição de condição %1 - + Foreign key: %1 Chave estrangeira: %1 - + Default value: %1 Valor padrão: %1 - + Error adding record. Message from database engine: %1 @@ -140,7 +145,7 @@ %1 - + Are you sure you want to restore all the entered values to their defaults? Você tem certeza que deseja restaurar todos os valores inseridos para os seus valores padrão? @@ -444,33 +449,33 @@ O processo de encriptação pode demorar alguns minutos e você deve ter um back Nenhum erro - + Please specify the database name under which you want to access the attached database Por favor, especifique o nome do banco de dados sob o qual você quer acessar o banco de dados anexado - + Do you want to save the changes made to the database file %1? Você quer salvar as alterações feitas ao arquivo de banco de dados %1? - + Exporting database to SQL file... Exportando banco de dados para arquivo SQL... - - + + Cancel Cancelar - + Executing SQL... Executando SQL... - + Action cancelled. Ação cancelada. @@ -485,33 +490,33 @@ Abortando execução. renameColumn: não consegue encontrar a tabela %1. - + renameColumn: cannot find column %1. renameColumn: não consegue encontrar a coluna %1. - + renameColumn: creating savepoint failed. DB says: %1 renameColumn: criação de savepoint falhou. Banco de dados diz: %1 - + renameColumn: creating new table failed. DB says: %1 renameColumn: criação de nova tabela falhou. Banco de dados diz: %1 - + renameColumn: copying data to new table failed. DB says: %1 renameColumn: cópia de dados para nova tabela falhou. Banco de dados diz: %1 - + renameColumn: deleting old table failed. DB says: %1 renameColumn: deleção de tabela falhou. Banco de dados diz: %1 - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -520,19 +525,19 @@ Abortando execução. - + renameColumn: releasing savepoint failed. DB says: %1 renameColumn: liberar savepoint falhou. Banco de dados diz: %1 - + Error renaming table '%1' to '%2'.Message from database engine: %3 Erro renomeando tabela '%1' para '%2'. Mensagem do banco de dados: %3 - + ... <string can not be logged, contains binary data> ... ... <string não pode ser logada, contém dados binários> ... @@ -541,7 +546,7 @@ Abortando execução. Tipo de objeto desconhecido %1 - + could not get list of db objects: %1, %2 Não pôde obter lista de objetos de banco de dados: %1, %2 @@ -550,107 +555,107 @@ Abortando execução. Não pôde obter tipos - + didn't receive any output from pragma %1 Não recebeu qualquer saída do pragma %1 - + could not execute pragma command: %1, %2 Não conseguiu executar comando pragma: %1, %2 - + Error setting pragma %1 to %2: %3 Erro definindo pragma %1 para %2: %3 - + File not found. Arquivo não encontrado. - + Invalid file format Formato de arquivo inválido - - + + Error in statement #%1: %2. Aborting execution%3. Erro no comando #%1: %2. Aborting execution%3. - - + + and rolling back e revertendo - + Cannot set data on this object Não se pode definir dados nesse objeto - + could not get column information não pôde obter informação sobre a coluna - + This database has already been attached. Its schema name is '%1'. Esse banco de dados já foi anexado. O seu nome de esquema e '%1'. - + Do you really want to close this temporary database? All data will be lost. Você realmente quer fechar esse banco de dados temporário? Todos os dados serão perdidos. - + The database is currently busy: O banco de dados está ocupado: - + Do you want to abort that other operation? Você quer abortar a outra operação? - - + + No database file opened Não há um arquivo de banco de dados aberto - + didn't receive any output from %1 - + could not execute command: %1 - + Cannot delete this object Não pode deletar esse objeto - + A table with the name '%1' already exists in schema '%2'. Uma tabela com o nome '%1' já existe no esquema '%2'. - + could not get list of databases: %1 não pôde obter a lista de bancos de dados: %1 - + Error loading extension: %1 Erro carregado extensão: %1 @@ -2442,7 +2447,7 @@ x~y Intervalo: valores entre x e y - + Delete Record Deletar registro @@ -3160,8 +3165,8 @@ x~y Intervalo: valores entre x e y Banco de dados encriptado usando SQLCipher - - + + Choose a database file Escolha um arquivo de banco de dados @@ -3174,9 +3179,9 @@ x~y Intervalo: valores entre x e y Formato de arquivo inválido. - + - + Choose a filename to save under Escolha um nome de arquivo para salvar @@ -3187,24 +3192,24 @@ x~y Intervalo: valores entre x e y - + Error deleting record: %1 Erro adicionando registro: %1 - + Please select a record first Por favor, selecione um registro primeiro - + %1 - %2 of %3 %1 - %2 de %3 - - + + There is no database opened. Please open or create a new database file. Não há banco de dados aberta. Por favor, abra ou crie um novo arquivo de banco de dados. @@ -3346,7 +3351,7 @@ Você tem certeza? - + Don't show again Não mostrar novamente @@ -3373,8 +3378,8 @@ Você tem certeza? Escolha um arquivo para abrir - - + + DB Browser for SQLite project file (*.sqbpro) Arquivo de projeto DB Browser para SQLite (*.sqbpro) @@ -3582,7 +3587,7 @@ Você tem certeza? - + Set encoding Definir codificação @@ -3602,7 +3607,7 @@ Você tem certeza? Modificar a codificação padrão assumida para todas as tabelas no banco de dados - + Duplicate record Duplicar registro @@ -3635,24 +3640,24 @@ Você tem certeza? Consulta executada com sucesso: %1 (durou %2ms%3) - + Please choose a new encoding for this table. Por favor, escolha uma nova codificação para essa tabela. - + Please choose a new encoding for all tables. Por favor, escolha uma nova codificação para todas tabelas. - + %1 Leave the field empty for using the database encoding. %1 Deixe o campo em branco para usar a codificação do banco de dados. - + This encoding is either not valid or not supported. Essa codificação é inválida ou não é suportada. @@ -3778,7 +3783,7 @@ Deixe o campo em branco para usar a codificação do banco de dados.Isso libera a vista atual para edição. Todavia, você vai precisar dos gatilhos apropriados para editar. - + Could not open database file. Reason: %1 Não pôde abrir arquivo do banco de dados. @@ -3825,7 +3830,7 @@ Motivo: %1 Não pôde salvar arquivo: %1. - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. Por favor, entre uma pseudo-chave primária para habilitar edição nessa vista. Isso deveria ser o nome de uma coluna única na vista. @@ -4341,71 +4346,71 @@ Você pode arrastar comandos SQL da coluna Esquema e largá-los no editor SQL ou Abre um diálogo para imprimir a estrutura do banco de dados aberto - + In-Memory database Banco de dados em memória - + determining row count... determinando número de linhas... - + %1 - %2 of >= %3 %1 - %2 de >= %3 - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. Você tem certeza de que deseja deletar a tabela '%1'? Todos os dados associados com a tabela serão perdidos. - + Are you sure you want to delete the view '%1'? Você tem certeza que deseja deletar a vista '%1'? - + Are you sure you want to delete the trigger '%1'? Você tem certeza que deseja deletar o gatilho '%1'? - + Are you sure you want to delete the index '%1'? Você tem certeza que deseja deletar o índice '%1'? - + Error: could not delete the table. Erro: não pôde deletar a tabela. - + Error: could not delete the view. Erro: não pôde deletar a vista. - + Error: could not delete the trigger. Erro: não pôde deletar o gatilho. - + Error: could not delete the index. Erro: não pôde deletar o índice. - + Message from database engine: %1 Mensagem do banco de dados: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? Editar a tabela requer salvar todas as mudanças pendentes agora. @@ -4462,32 +4467,32 @@ Você tem certeza que quer salvar o banco de dados? Importação completa. Algumas chaves estrangeiras são violadas. Por favor corrija-as antes de salvar. - + Choose a project file to open Escolha um arquivo de projeto para abrir - + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. Esse arquivo de projeto está usando um formato de arquivo mais velho porque ele foi criado usando DB Browser para SQLite versão 3.10 ou menor. Esse arquivo é suportado mas nós aconselhamos converter todos os projetos para o novo formato de arquivos porque o suporte para arquivos antigos pode ser abandonado no futuro. Você pode converter seus arquivos simplesmente abrindo e salvando eles. - + Duplicate records Duplicar registros - + Ctrl+" Ctrl+" - + Collation needed! Proceed? Função de comparação necessária! Proceder? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -4496,52 +4501,52 @@ So você optar por proceder, esteja avisado de que coisas ruins podem acontecer Faça um backup! - + creating collation criando função de comparação - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. Defina um novo nome para a aba de SQL. Use o caractere '&&' para poder usar o seguinte caractere como um atalho de teclado. - + Please specify the view name Por favor, especifique o nome da vista - + There is already an object with that name. Please choose a different name. Já existe um objeto com esse nome. Por favor, escolha um nome diferente. - + View successfully created. Vista criada com sucesso. - + Error creating view: %1 Erro criando vista: %1 - + There is no filter set for this table. View will not be created. Não há filtro para essa tabela. Vista não será criada. - + Delete Records Deletar Registros - + This action will open a new SQL tab for running: Essa ação irá abrir uma nova aba SQL para rodar: - + Press Help for opening the corresponding SQLite reference page. Pressione Help para abrir a página de referência SQL correspondente. @@ -4556,12 +4561,12 @@ Faça um backup! Imprimir dados da tabela atual. Imprime a seleção se mais de uma célula está selecionada. - + Error checking foreign keys after table modification. The changes will be reverted. Erro verificando as chaves estrangeiras após modificação. Mudanças serão revertidas. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. Essa tabela não passou um teste de chave estrangeira.<br/>Você deveria rodar 'Ferramentas | Teste de Chave Estrangeira| e corrigir os problemas reportados. @@ -4574,12 +4579,12 @@ Faça um backup! NullLineEdit - + Set to NULL Definir como NULL - + Alt+Del Alt+Del @@ -5600,17 +5605,17 @@ Faça um backup! RemoteDatabase - + Error: Invalid client certificate specified. Erro: Certificado de cliente inválido especificado. - + Please enter the passphrase for this client certificate in order to authenticate. Por favor entre a frase chave para esse certificado de cliente para se autenticar. - + Cancel Cancelar @@ -5627,60 +5632,60 @@ Faça um backup! %1. - - + + Error: The network is not accessible. Erro: A rede não é acessível. - + Error: Cannot open the file for sending. Erro: Não pôde abrir o arquivo para envio. - + Error when connecting to %1. %2 Erro quando conectando com %1. %2 - + Error opening remote file at %1. %2 Erro abrindo arquivo remoto em %1. %2 - + Error opening local databases list. %1 Erro abrindo lista local de bancos de dados. %1 - + Error creating local databases list. %1 Erro criando lista local de bancos de dados. %1 - + Uploading remote database to %1 Enviando banco de dados remoto para %1 - + Downloading remote database from %1 Baixando banco de dados remoto de %1 - + The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. O banco de dados remoto foi atualizado desde o último checkout. Você deseja atualizar o banco de dados local para a versão mais nova? Note que isso descarta quaisquer mudanças que você fez localmente! Se você não quer perder essas alterações, clique Não para abrir a versão local. diff --git a/src/translations/sqlb_ru.ts b/src/translations/sqlb_ru.ts index 6ba7ab6c2..a42950cd2 100644 --- a/src/translations/sqlb_ru.ts +++ b/src/translations/sqlb_ru.ts @@ -34,6 +34,11 @@ + Built for + + + + Qt Version Версия Qt @@ -96,42 +101,42 @@ <html><head/><body><p><span style=" font-weight:600;">Сохранение</span> отправит показанный оператор SQL в БД для вставки новой записи.</p><p><span style=" font-weight:600;">Восстановить значения по умолчанию</span> восстановит исходные значения в колонке <span style=" font-weight:600;">Значение</span>.</p><p><span style=" font-weight:600;">Отмена</span> закрывает этот диалог без выполнения запросов.</p></body></html> - + Auto-increment Авто-увеличение - + Unique constraint Уникальнось - + Check constraint: %1 Проверка: %1 - + Foreign key: %1 Внешний ключ: %1 - + Default value: %1 Значение по умолчанию: %1 - + Error adding record. Message from database engine: %1 @@ -140,7 +145,7 @@ %1 - + Are you sure you want to restore all the entered values to their defaults? Вы действительно хотите восстановить все введенные значения по умолчанию? @@ -425,38 +430,38 @@ If any of the other settings were altered for this database file you need to pro DBBrowserDB - + Please specify the database name under which you want to access the attached database - + Invalid file format Ошибочный формат файла - + Do you want to save the changes made to the database file %1? Сохранить сделанные изменения в файле базы данных %1? - + Exporting database to SQL file... Экспорт базы данных в файл SQL... - - + + Cancel Отменить - + Executing SQL... Выполнить код SQL... - + Action cancelled. Действие отменено. @@ -470,89 +475,99 @@ Aborting execution. переименованиеСтолбца: невозможно найти таблицу %1. - + This database has already been attached. Its schema name is '%1'. Эта БД уже присоединена. Имя ее схемы - '%1'. - + Do you really want to close this temporary database? All data will be lost. Вы действительно хотите закрыть эту временную БД? Все данные будут потеряны. - + The database is currently busy: БД занята: - + Do you want to abort that other operation? Вы хотите отменить эту операцию? - - + + No database file opened Файл БД не открыт - - + + Error in statement #%1: %2. Aborting execution%3. Ошибка в выражении #%1: %2. Прерываем выполнение%3. - - + + and rolling back и отменяем - + + didn't receive any output from %1 + + + + + could not execute command: %1 + + + + Cannot delete this object Не удается удалить этот объект - + Cannot set data on this object Невозможно назначить данные для этого объекта - + A table with the name '%1' already exists in schema '%2'. Таблица с именем '%1' уже существует в схеме '%2'. - + renameColumn: cannot find column %1. переименованиеСтолбца: невозможно найти столбец %1. - + renameColumn: creating savepoint failed. DB says: %1 переименованиеСтолбца: ошибка создания точки сохранения. БД говорит: %1 - + renameColumn: creating new table failed. DB says: %1 переименованиеСтолбца: ошибка создания новой таблицы. БД говорит: %1 - + renameColumn: copying data to new table failed. DB says: %1 переименованиеСтолбца: ошибка копирования данных в новую таблицу. БД говорит: %1 - + renameColumn: deleting old table failed. DB says: %1 переименованиеСтолбца: ошибка удаления старой таблицы. БД говорит: %1 - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -561,34 +576,34 @@ Aborting execution%3. - + renameColumn: releasing savepoint failed. DB says: %1 переименованиеСтолбца: ошибока освобождения точки сохранения. БД говорит: %1 - + Error renaming table '%1' to '%2'.Message from database engine: %3 Ошибка переименования программы '%1' в '%2'.Сообщение от движка БД: %3 - + ... <string can not be logged, contains binary data> ... ... <строка не может быть залогирована, содержит двоичные данные> ... - + could not get list of databases: %1 не могу получить список БД: %1 - + Error loading extension: %1 Ошибка загрузки расширения: %1 - + could not get column information не могу полчить информацию о колонке @@ -597,7 +612,7 @@ Aborting execution%3. неизвестный тип объекта %1 - + could not get list of db objects: %1, %2 невозможно получить список объекто БД: %1, %2 @@ -606,22 +621,22 @@ Aborting execution%3. невозможно получить типы - + didn't receive any output from pragma %1 не принято ни одного выхода из прагмы %1 - + could not execute pragma command: %1, %2 невозможно выполнить комманду-прагму: %1, %2 - + Error setting pragma %1 to %2: %3 Ошибка установки прагмы %1 в %2: %3 - + File not found. Файл не найден. @@ -2383,11 +2398,6 @@ x~y Диапазон: значения между x и y <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> <html><head/><body><p>Нажатие этой кнопки перемещает одну страницу записей вниз в виде таблицы выше.</p></body></html> - - - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - - Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. @@ -2688,122 +2698,122 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Эта кнопка сохраняет текущие настройки просматриваемой таблицы (фильтры, форматы отображения и столбец сортировки) в виде представления SQL, которое вы можете впоследствии просмотреть или использовать в операторах SQL. - + Insert Values... Вставить Значения... + - Open a dialog for inserting values in a new record Открывает диалоговое окно для вставки значений в новую запись + - Insert new record using default values in browsed table Вставляет новую запись, используя значения по умолчанию в просматриваемой таблице - + New In-&Memory Database Новая БД в &Памяти - + Drag && Drop Qualified Names Квалифицированные имена при перетакскивании + - Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor Квалифицированные имена (например, "Table"."Field") при перетаскивании объектов в редактор - + Drag && Drop Enquoted Names Экранированные имена при перетаскивании + - Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor Экранировать имена идентификаторов (например, "Table1"), когда перетаскиваются объекты в редактор - + &Integrity Check Проверка &Целостности - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. Выполняет прагму integrity_check для открытой БД и возвращает результаты во вкладке "SQL". Эта прагма выполняет проверку целостности всей базы данных. - + &Foreign-Key Check Проверка &Внешних ключей - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab Запускает прагму foreign_key_check для открытой БД и возвращает результаты во вкладке "SQL" - + &Quick Integrity Check &Быстрая Проверка Целостности - + Run a quick integrity check over the open DB Запуск быстрой проверки целостности для открытый БД - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. Запускает прагму quick_check для открытой БД и возвращает результаты во вкладке "SQL". Эта команда выполняет большую часть проверки PRAGMA integrity_check, но работает намного быстрее. - + &Optimize &Оптимизация - + Attempt to optimize the database Попытка оптимизации БД - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. Выполняет прагму optimize для открытой БД. Эта прагма может выполнять оптимизацию, которая улучшит производительность будущих запросов. - - + + Print Печать - + Print text from current SQL editor tab [Ctrl+P] Печать текста изтекущей вкладки редактора SQL [Ctrl+P] - + Open a dialog for printing the text in the current SQL editor tab Открывает диалоговое окно для печати текста из текущей вкладки редактора SQL - + Print the structure of the opened database [Ctrl+P] Печать структуры открытой БД [Ctrl+P] - + Open a dialog for printing the structure of the opened database Открывает диалоговое окно для печати структуры текущей БД @@ -2823,7 +2833,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - + New Record Добавить запись @@ -2838,7 +2848,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - + Delete Record Удалить запись @@ -3156,7 +3166,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - + Set encoding Кодировка @@ -3191,7 +3201,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Разблокировать текущий вид для редактирования. Однако для редактирования вам понадобятся соответствующие триггеры. - + Duplicate record Дубликат записи @@ -3413,7 +3423,6 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - Ctrl+O Ctrl+O @@ -3797,7 +3806,7 @@ You can drag SQL statements from an object row and drop them into other applicat Ctrl+L - + Ctrl+P Ctrl+P @@ -3837,22 +3846,22 @@ You can drag SQL statements from an object row and drop them into other applicat База данных зашифрована с использованием SQLCipher - - + + Choose a database file Выбрать файл базы данных - + Could not open database file. Reason: %1 Не удалось открыть файл базы данных. Причина:%1 - + - + Choose a filename to save under Выбрать имя, под которым сохранить данные @@ -3862,24 +3871,24 @@ Reason: %1 Ошибка добавления записи: - + Error deleting record: %1 Ошибка удаления записи: %1 - + Please select a record first Сначала выберите запись - + %1 - %2 of %3 %1 - %2 из %3 - - + + There is no database opened. Please open or create a new database file. Нет открытой базы данных. Откройте или создайте файл новой базы данных. @@ -3904,8 +3913,8 @@ All data associated with the %1 will be lost. Вышла новая версия Обозревателя для SQLite (%1.%2.%3).<br/><br/>Она доступна для скачивания по адресу <a href='%4'>%4</a>. - - + + DB Browser for SQLite project file (*.sqbpro) Файл проекта Обозревателя для SQLite (*.sqbpro) @@ -4018,59 +4027,59 @@ If you answer no we will attempt to import the data in the SQL file to the curre - + Choose a project file to open Выберите файл проекта для открытия - + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. Этот файл проекта использует старый формат файла, потому что он был создан с использованием DB Browser для SQLite версии 3.10 или ниже. Загрузка этого формата по-прежнему полностью поддерживается, но мы советуем вам преобразовать все ваши файлы проекта в новый формат файла, поскольку поддержка более старых форматов может быть удалена в какой-то момент в будущем. Вы можете конвертировать ваши файлы, просто открывая и повторно сохраняя их. - + Duplicate records Дублированные записи - + Ctrl+" - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. Пожалуйста, введите псевдо-первичный ключ, чтобы разрешить редактирование в этом представлении. Это должно быть имя уникального столбца в представлении. - + Please choose a new encoding for this table. Пожалуйста выбирите новую кодировку для данной таблицы. - + Error checking foreign keys after table modification. The changes will be reverted. Ошибка проверки внешних ключей после изменения таблицы. Изменения будут отменены. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. Эта таблица не прошла проверку внешнего ключа. <br/> Вы должны запустить "Инструменты | Проверка внешнего ключа"и исправить сообщенные проблемы. - + Please choose a new encoding for all tables. Пожалуйста выбирите новую кодировку для всех таблиц. - + %1 Leave the field empty for using the database encoding. %1 Оставьте это поле пустым если хотите чтобы использовалась кодировка по умолчанию. - + This encoding is either not valid or not supported. Неверная кодировка либо она не поддерживается. @@ -4101,71 +4110,71 @@ Are you sure? Выполнение прервано пользователем - + In-Memory database БД в памяти - + determining row count... определяем количество строк... - + %1 - %2 of >= %3 %1 - %2 из >= %3 - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. Вы действительно хотите удалить таблицу '%1'? Все данные, связанные с таблицей, будут потеряны. - + Are you sure you want to delete the view '%1'? Вы действительно хотите удалить представление '%1'? - + Are you sure you want to delete the trigger '%1'? Вы действительно хотите удалить триггер '%1'? - + Are you sure you want to delete the index '%1'? Вы действительно хотите удалить индекс '%1'? - + Error: could not delete the table. Ошибка: не удалось удалить таблицу. - + Error: could not delete the view. Ошибка: не удалось удалить представление. - + Error: could not delete the trigger. Ошибка: не удалось удалить триггер. - + Error: could not delete the index. Ошибка: не удалось удалить индекс. - + Message from database engine: %1 Сообщение от СУБД: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? Для редактирования таблицы необходимо сохранить все ожидающие изменения сейчас. @@ -4284,7 +4293,7 @@ Are you sure? - + Don't show again Не показывать снова @@ -4294,12 +4303,12 @@ Are you sure? Доступна новая версия. - + Collation needed! Proceed? Нужно выполнить сопоставление! Продолжить? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -4308,52 +4317,52 @@ Create a backup! Создайте резервную копию! - + creating collation - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. Задайте новое имя для вкладки SQL. Используйте символ '&&', чтобы разрешить использование следующего символа в качестве сочетания клавиш. - + Please specify the view name Укажите имя представления - + There is already an object with that name. Please choose a different name. Объект с указанным именем уже существует. Выберите другое имя. - + View successfully created. Представление успешно создано. - + Error creating view: %1 Ошибка создания представления: %1 - + There is no filter set for this table. View will not be created. Для этой таблицы не установлен фильтр. Представление не будет создано. - + Delete Records Удалить Записи - + This action will open a new SQL tab for running: Это действие откроет новую вкладку SQL для запуска: - + Press Help for opening the corresponding SQLite reference page. Нажмите "Справка" для открытия соответствующей справочной страницы SQLite. @@ -4377,12 +4386,12 @@ Create a backup! NullLineEdit - + Set to NULL Установить в NULL - + Alt+Del @@ -5383,73 +5392,73 @@ Create a backup! RemoteDatabase - + Error when connecting to %1. %2 Ошибка во время подключения к %1. %2 - + Error opening remote file at %1. %2 Ошибка открытия файла %1. %2 - + Error: Invalid client certificate specified. Ошибка: Указан неверный сертификат клиента. - + Please enter the passphrase for this client certificate in order to authenticate. Пожалуйста введите ключевую фразу для этого сертификата клиента. - + Cancel Отменить - + Uploading remote database to %1 Загружается удаленная БД в %1 - + Downloading remote database from %1 Скачивается удаленная БД из %1 - + The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. Удаленная БД была обновлена со времени последней загрузки. Вы хотите обновить локальную базу данных до последней версии? Обратите внимание, что это отменяет любые изменения, внесенные вами локально! Если вы не хотите потерять локальные изменения, нажмите «Нет», чтобы открыть локальную версию. - - + + Error: The network is not accessible. Ошибка: сеть недоступна. - + Error: Cannot open the file for sending. Ошибка: не удается открыть файл для отправки. - + Error opening local databases list. %1 Ошибка при открытии списка локальных БД. %1 - + Error creating local databases list. %1 Ошибка при создании списка локальных БД. diff --git a/src/translations/sqlb_tr.ts b/src/translations/sqlb_tr.ts index 5e35419f9..63834d9d3 100644 --- a/src/translations/sqlb_tr.ts +++ b/src/translations/sqlb_tr.ts @@ -34,6 +34,11 @@ + Built for + + + + Qt Version Qt Versiyonu @@ -96,44 +101,44 @@ - + Auto-increment - + Unique constraint - + Check constraint: %1 - + Foreign key: %1 - + Default value: %1 - + Error adding record. Message from database engine: %1 - + Are you sure you want to restore all the entered values to their defaults? @@ -427,38 +432,38 @@ Bu veritabanı için herhangi bir başka ayar daha yapılmışsa, bu bilgileri d hata yok - + Please specify the database name under which you want to access the attached database Lütfen veritabanının ismini erişmek istediğiniz bağlı veritabanının altında belirtin - + Invalid file format - + Do you want to save the changes made to the database file %1? %1 veritabanı dosyasında yaptığınız değişiklikleri kaydetmek istiyor musunuz? - + Exporting database to SQL file... veritabanı SQL dosyası olarak dışa aktarılıyor... - - + + Cancel İptal - + Executing SQL... SQL yürütülüyor... - + Action cancelled. İşlem iptal edildi. @@ -472,87 +477,97 @@ Aborting execution. Sütunu Yeniden Adlandırma: %1 tablosu bulunamadı. - + This database has already been attached. Its schema name is '%1'. - + Do you really want to close this temporary database? All data will be lost. - + The database is currently busy: - + Do you want to abort that other operation? - - + + No database file opened - - + + Error in statement #%1: %2. Aborting execution%3. - - + + and rolling back - + + didn't receive any output from %1 + + + + + could not execute command: %1 + + + + Cannot delete this object - + Cannot set data on this object - + A table with the name '%1' already exists in schema '%2'. - + renameColumn: cannot find column %1. Sütunu Yeniden Adlandırma: %1 sütunu bulunamadı. - + renameColumn: creating savepoint failed. DB says: %1 Sütunu Yeniden Adlandırma: Kayıt noktası oluşturma başarısız. veritabanı mesajı: %1 - + renameColumn: creating new table failed. DB says: %1 Sütunu Yeniden Adlandırma: Yeni tablo oluşturma başarısız. veritabanı mesajı: %1 - + renameColumn: copying data to new table failed. DB says: %1 Sütunu Yeniden Adlandırma: Verileri yeni veritabanına kopyalama başarısız. veritabanı mesajı: %1 - + renameColumn: deleting old table failed. DB says: %1 Sütunu Yeniden Adlandırma: Eski veritabanı silme işlemi başarısız. veritabanı mesajı: %1 - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -561,33 +576,33 @@ Aborting execution%3. - + renameColumn: releasing savepoint failed. DB says: %1 Sütun Yeniden Adlandırma: Kayıt noktası işlemi sonlandırılırken hata oluştu. veritabanı mesajı: %1 - + Error renaming table '%1' to '%2'.Message from database engine: %3 Tablo '%1' isminden '%2' ismine yeniden adlandırılırken hata oluştu. veritabanı motorunun mesajı: %3 - + ... <string can not be logged, contains binary data> ... ... <dize ikili veri içeriyor, günlüğe yazılamadı> ... - + could not get list of databases: %1 - + Error loading extension: %1 Eklenti yüklenirken hata oluştu: %1 - + could not get column information @@ -596,7 +611,7 @@ Aborting execution%3. bilinmeyen nesne tipi %1 - + could not get list of db objects: %1, %2 veritabanı nesnelerinin listesi alınamadı: %1, %2 @@ -605,22 +620,22 @@ Aborting execution%3. tipler alınamadı - + didn't receive any output from pragma %1 %1 pragmasından herhangi bir çıktı alınamadı - + could not execute pragma command: %1, %2 pragma komutu yürütülemedi: %1, %2 - + Error setting pragma %1 to %2: %3 Belirtilen pragma ayarlanırken hata oluştu: %1 > %2: %3 - + File not found. Dosya bulunamadı. @@ -2336,7 +2351,7 @@ x~y Range: values between x and y - + New Record Yeni Kayıt @@ -2351,7 +2366,7 @@ x~y Range: values between x and y - + Delete Record Kaydı Sil @@ -2680,7 +2695,7 @@ x~y Range: values between x and y - + Set encoding @@ -2883,7 +2898,6 @@ x~y Range: values between x and y - Ctrl+O Ctrl+O @@ -3203,11 +3217,6 @@ You can drag SQL statements from an object row and drop them into other applicat Edit Pragmas - - - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - - Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. @@ -3510,122 +3519,122 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - + Insert Values... + - Open a dialog for inserting values in a new record + - Insert new record using default values in browsed table - + New In-&Memory Database - + Drag && Drop Qualified Names + - Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor - + Drag && Drop Enquoted Names + - Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor - + &Integrity Check - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. - + &Foreign-Key Check - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab - + &Quick Integrity Check - + Run a quick integrity check over the open DB - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. - + &Optimize - + Attempt to optimize the database - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. - - + + Print - + Print text from current SQL editor tab [Ctrl+P] - + Open a dialog for printing the text in the current SQL editor tab - + Print the structure of the opened database [Ctrl+P] - + Open a dialog for printing the structure of the opened database @@ -3815,7 +3824,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Ctrl+L - + Ctrl+P Ctrl+P @@ -3855,8 +3864,8 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Veritabanı SQLCipher kullanılırak şifrelendi - - + + Choose a database file Veritabanı dosyasını seçiniz @@ -3869,9 +3878,9 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Geçersiz dosya formatı - + - + Choose a filename to save under Kaydetmek için dosya ismi seçiniz @@ -3881,24 +3890,24 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Kayıt ekleme hatası: - + Error deleting record: %1 Kayıt silme hatası: - + Please select a record first Lütfen öncelikle kaydı seçiniz - + %1 - %2 of %3 %1 - %2 / %3 - - + + There is no database opened. Please open or create a new database file. Açılmış veritabanı bulunamadı. Lütfen veritabanı açın veya yeni bir veritabanı oluşturun. @@ -4039,32 +4048,32 @@ Eğer cevabınız hayır ise biz SQL dosyasındaki verileri geçerli veritabanı - + Choose a project file to open - + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - + Duplicate records - + Duplicate record - + Ctrl+" - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. @@ -4076,75 +4085,75 @@ Are you sure? Bunu yapmak istediğinize emin misiniz? - + Could not open database file. Reason: %1 - + In-Memory database - + determining row count... - + %1 - %2 of >= %3 - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. - + Are you sure you want to delete the view '%1'? - + Are you sure you want to delete the trigger '%1'? - + Are you sure you want to delete the index '%1'? - + Error: could not delete the table. - + Error: could not delete the view. - + Error: could not delete the trigger. - + Error: could not delete the index. - + Message from database engine: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? @@ -4251,7 +4260,7 @@ Are you sure? - + Don't show again Bir daha gös'terme @@ -4266,12 +4275,12 @@ Are you sure? Yeni bir SQLite DB Browser sürümü mevcut (%1.%2.%3).<br/><br/>Lütfen buradan indiriniz: <a href='%4'>%4</a> - + Collation needed! Proceed? Harmanlama gerekli! Devam edilsin mi? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -4279,52 +4288,52 @@ Create a backup! Daha fazla bilgi olmadan program bunu sağlayamaz. Eğer bu şekilde devam edecekseniz, veritabanınıza kötü şeyler olabileceğinin farkında olun ve yedek oluşturun. - + creating collation - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. - + Please specify the view name Lütfen görünümünün ismini belirtin - + There is already an object with that name. Please choose a different name. Bu isme sahip obje zaten mevcut. Lütfen farklı bir isim seçiniz. - + View successfully created. Görünüm başarıyla oluşturuldu. - + Error creating view: %1 Görünüm oluşturma hatası: %1 - + There is no filter set for this table. View will not be created. - + Delete Records - + This action will open a new SQL tab for running: - + Press Help for opening the corresponding SQLite reference page. @@ -4341,39 +4350,39 @@ Daha fazla bilgi olmadan program bunu sağlayamaz. Eğer bu şekilde devam edece Açmak için dosya seçiniz - - + + DB Browser for SQLite project file (*.sqbpro) SQLite DB Browser proje dosyası (*.sqbpro) - + Please choose a new encoding for this table. - + Please choose a new encoding for all tables. - + Error checking foreign keys after table modification. The changes will be reverted. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. - + %1 Leave the field empty for using the database encoding. - + This encoding is either not valid or not supported. @@ -4385,12 +4394,12 @@ Leave the field empty for using the database encoding. NullLineEdit - + Set to NULL - + Alt+Del @@ -5376,68 +5385,68 @@ Daha fazla bilgi olmadan program bunu sağlayamaz. Eğer bu şekilde devam edece RemoteDatabase - + Error when connecting to %1. %2 - + Error opening remote file at %1. %2 - + Error: Invalid client certificate specified. - + Please enter the passphrase for this client certificate in order to authenticate. - + Cancel İptal - + Uploading remote database to %1 - + Downloading remote database from %1 - + The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. - - + + Error: The network is not accessible. - + Error: Cannot open the file for sending. - + Error opening local databases list. %1 - + Error creating local databases list. %1 diff --git a/src/translations/sqlb_uk_UA.ts b/src/translations/sqlb_uk_UA.ts index 0872abebc..fc1f342ee 100644 --- a/src/translations/sqlb_uk_UA.ts +++ b/src/translations/sqlb_uk_UA.ts @@ -47,6 +47,11 @@ + Built for + + + + Qt Version Версія Qt @@ -109,44 +114,44 @@ - + Auto-increment - + Unique constraint - + Check constraint: %1 - + Foreign key: %1 - + Default value: %1 - + Error adding record. Message from database engine: %1 - + Are you sure you want to restore all the entered values to their defaults? @@ -455,132 +460,142 @@ If any of the other settings were altered for this database file you need to pro DBBrowserDB - + This database has already been attached. Its schema name is '%1'. - + Please specify the database name under which you want to access the attached database Будь ласка, вкажіть ім'я бази даних, під яким Ви хочете отримати доступ до під'єднаних баз даних - + Invalid file format Неправильний формат файлу - + Do you really want to close this temporary database? All data will be lost. - + Do you want to save the changes made to the database file %1? Зберегти зроблені зміни у файлі бази даних %1? - + The database is currently busy: - + Do you want to abort that other operation? - + Exporting database to SQL file... Експорт бази даних у файл SQL... - - + + Cancel Скасувати - - + + No database file opened - + Executing SQL... Виконати код SQL... - + Action cancelled. Дію скасовано. - - + + Error in statement #%1: %2. Aborting execution%3. Помилка в операторі #%1: %2. Виконання скасовано%3. - - + + and rolling back і відкочено - + + didn't receive any output from %1 + + + + + could not execute command: %1 + + + + Cannot delete this object - + Cannot set data on this object Не вдається встановити дані в цей об'єкт - + A table with the name '%1' already exists in schema '%2'. - + renameColumn: cannot find column %1. renameColumn: не вдається знайти стовпець %1. - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: Не вдалося скасувати видалення деяких об'єктів, асоційованих із цією таблицею. Найімовірніша причина цього - зміна імен деяких стовпців таблиці. Ось SQL оператор, який потрібно виправити і виконати вручну: - + Error renaming table '%1' to '%2'.Message from database engine: %3 Помилка перейменування таблиці '%1' в '%2'. Повідомлення від ядра БД: %3 - + ... <string can not be logged, contains binary data> ... ... <рядок не можна записати в лог-файл, який містить двійкові дані> ... - + could not get list of databases: %1 - + Error loading extension: %1 Помилка завантаження розширення: %1 - + could not get column information неможливо отримати інформацію про стовпець @@ -598,24 +613,24 @@ Aborting execution. renameColumn: неможливо знайти стовпець %1. - + renameColumn: creating savepoint failed. DB says: %1 renameColumn: помилка створення точки збереження. БД говорить: %1 - + renameColumn: creating new table failed. DB says: %1 renameColumn: помилка створення нової таблиці. БД говорить: %1 - + renameColumn: copying data to new table failed. DB says: %1 renameColumn: помилка копіювання даних у нову таблицю. БД говорить: %1 - + renameColumn: deleting old table failed. DB says: %1 renameColumn: помилка видалення старої таблиці. БД говорить: %1 @@ -625,7 +640,7 @@ Aborting execution. Не вдалося скасувати видалення деяких об'єктів, асоційованих із цією таблицею. Найбільш імовірна причина цього - зміна імен деяких стовпців таблиці. Ось SQL оператор, який потрібно виправити і виконати вручну: - + renameColumn: releasing savepoint failed. DB says: %1 renameColumn: помилка звільнення точки збереження. БД говорить: %1 @@ -644,7 +659,7 @@ Aborting execution. невідомий тип об'єкту %1 - + could not get list of db objects: %1, %2 неможливо отримати список об'єктів БД: %1, %2 @@ -653,22 +668,22 @@ Aborting execution. неможливо отримати типи - + didn't receive any output from pragma %1 не отримано жодного виходу з Прагма %1 - + could not execute pragma command: %1, %2 неможливо виконати комманду-прагму: %1, %2 - + Error setting pragma %1 to %2: %3 Помилка встановлення Прагми %1 в %2: %3 - + File not found. Файл не знайдено. @@ -2511,7 +2526,7 @@ x~y Range: values between x and y - + New Record Додати запис @@ -2526,7 +2541,7 @@ x~y Range: values between x and y - + Delete Record Видалити запис @@ -2862,7 +2877,7 @@ x~y Range: values between x and y - + Set encoding Кодування @@ -2882,7 +2897,7 @@ x~y Range: values between x and y Змінити кодування за замовчуванням для всіх таблиць у базі даних - + Duplicate record Дублікат запису @@ -3113,7 +3128,6 @@ x~y Range: values between x and y - Ctrl+O Ctrl+O @@ -3477,122 +3491,122 @@ x~y Range: values between x and y - + Insert Values... + - Open a dialog for inserting values in a new record + - Insert new record using default values in browsed table - + New In-&Memory Database - + Drag && Drop Qualified Names + - Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor - + Drag && Drop Enquoted Names + - Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor - + &Integrity Check - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. - + &Foreign-Key Check - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab - + &Quick Integrity Check - + Run a quick integrity check over the open DB - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. - + &Optimize - + Attempt to optimize the database - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. - - + + Print - + Print text from current SQL editor tab [Ctrl+P] - + Open a dialog for printing the text in the current SQL editor tab - + Print the structure of the opened database [Ctrl+P] - + Open a dialog for printing the structure of the opened database @@ -3713,11 +3727,6 @@ You can drag SQL statements from an object row and drop them into other applicat Edit Pragmas Редагувати прагму - - - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - - Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. @@ -3955,7 +3964,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Ctrl+L - + Ctrl+P Ctrl+P @@ -3995,22 +4004,22 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed База даних зашифрована з використанням SQLCipher - - + + Choose a database file Вибрати файл бази даних - + Could not open database file. Reason: %1 Неможливо відкрити файл бази даних. Причина: %1 - + - + Choose a filename to save under Вибрати ім'я, під яким зберегти дані @@ -4021,35 +4030,35 @@ Reason: %1 - + Error deleting record: %1 Помилка видалення запису: %1 - + Please select a record first Будь ласка, спочатку оберіть запис - + determining row count... - + %1 - %2 of >= %3 - + %1 - %2 of %3 %1 - %2 з %3 - - + + There is no database opened. Please open or create a new database file. Немає відкритої бази даних. Відкрийте або створіть файл нової бази даних. @@ -4075,8 +4084,8 @@ All data associated with the %1 will be lost. Вийшла нова версія оглядача для SQLite (%1.%2.%3).<br/><br/>Вона доступна для скачування за посиланням <a href='%4'>%4</a>. - - + + DB Browser for SQLite project file (*.sqbpro) Файл проекту оглядача для SQLite (*.sqbpro) @@ -4173,80 +4182,80 @@ If you answer no we will attempt to import the data in the SQL file to the curre Введіть URL файлу БД для його збереження. - + Please choose a new encoding for this table. Оберіть нову систему кодування для цієї таблиці. - + Please choose a new encoding for all tables. Оберіть нову систему кодування для всіх таблиць. - + In-Memory database - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. - + Are you sure you want to delete the view '%1'? - + Are you sure you want to delete the trigger '%1'? - + Are you sure you want to delete the index '%1'? - + Error: could not delete the table. - + Error: could not delete the view. - + Error: could not delete the trigger. - + Error: could not delete the index. - + Message from database engine: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? - + Error checking foreign keys after table modification. The changes will be reverted. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. @@ -4301,44 +4310,44 @@ Are you sure you want to save the database? - + Choose a project file to open - + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - + Duplicate records - + Ctrl+" - + %1 Leave the field empty for using the database encoding. %1 Залиште це поле порожнім якщо хочете, щоб використовувалося кодування за замовчуванням. - + This encoding is either not valid or not supported. Кодування невірне або не підтримується. - + Collation needed! Proceed? Потрібно виконати зіставлення! Продовжити? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -4347,52 +4356,52 @@ Create a backup! Створіть резервну копію! - + creating collation - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. - + Please specify the view name Вкажіть ім'я вигляду - + There is already an object with that name. Please choose a different name. Об'єкт із зазначеним ім'ям уже існує. Виберіть інше ім'я. - + View successfully created. Вигляд успішно створений. - + Error creating view: %1 Помилка створення вигляду: %1 - + There is no filter set for this table. View will not be created. - + Delete Records - + This action will open a new SQL tab for running: - + Press Help for opening the corresponding SQLite reference page. @@ -4530,7 +4539,7 @@ Are you sure? - + Don't show again Не показувати наступного разу @@ -4540,7 +4549,7 @@ Are you sure? Доступна нова версія. - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. Будь ласка, введіть псевдо-первинний ключ для можливості редагування у цьому виді. Це має бути і'мя унікального стовпця у виді @@ -4564,12 +4573,12 @@ Are you sure? NullLineEdit - + Set to NULL Встановити в NULL - + Alt+Del @@ -5581,50 +5590,50 @@ Create a backup! RemoteDatabase - + Error when connecting to %1. %2 Помилка під час під'єднання до %1. %2 - + Error opening remote file at %1. %2 Помилка під час відкривання віддаленого файлу %1. %2 - + Error: Invalid client certificate specified. Помилка: Вказано неправильний сертифікат клієнта. - + Please enter the passphrase for this client certificate in order to authenticate. Будь ласка, введіть парольну фразу для цього сертифіката клієнта, для автентифікації - + Cancel Скасувати - + Uploading remote database to %1 Вивантаження віддаленої бази даних до %1. {1?} - + Downloading remote database from %1 Завантаження віддаленої бази даних із %1. {1?} - + The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. @@ -5641,25 +5650,25 @@ Create a backup! %1. - - + + Error: The network is not accessible. Помилка: Мережа не доступна. - + Error: Cannot open the file for sending. Помилка: Неможливо відкрити файл для відправлення. - + Error opening local databases list. %1 Помилка відкривання списку локальних баз даних. %1 - + Error creating local databases list. %1 Помилка створення списку локальних баз даних. diff --git a/src/translations/sqlb_zh.ts b/src/translations/sqlb_zh.ts index c81c49de6..5e2394c3f 100644 --- a/src/translations/sqlb_zh.ts +++ b/src/translations/sqlb_zh.ts @@ -34,6 +34,11 @@ + Built for + + + + Qt Version Qt 版本 @@ -96,42 +101,42 @@ <html><head/><body><p><span style=" font-weight:600;">保存</span> 将会把显示的 SQL 语句提交到数据库以插入新记录。</p><p><span style=" font-weight:600;">恢复默认</span> 将会把 <span style=" font-weight:600;">值</span> 恢复成默认值。</p><p><span style=" font-weight:600;">取消</span> 将会关闭此界面,不执行 SQL 语句。</p></body></html> - + Auto-increment 自增 - + Unique constraint 唯一约束 - + Check constraint: %1 检查约束: %1 - + Foreign key: %1 外键: %1 - + Default value: %1 默认值: %1 - + Error adding record. Message from database engine: %1 @@ -140,7 +145,7 @@ %1 - + Are you sure you want to restore all the entered values to their defaults? 你确定要把输入的所有值都恢复成默认值吗? @@ -430,38 +435,38 @@ If any of the other settings were altered for this database file you need to pro DBBrowserDB - + Please specify the database name under which you want to access the attached database 请指明想要附加的数据库名 - + Invalid file format 无效的文件格式 - + Do you want to save the changes made to the database file %1? 您是否想保存对数据库文件 %1 做出的更改? - + Exporting database to SQL file... 正在导出数据库到 SQL 文件... - - + + Cancel 取消 - + Executing SQL... 正在执行 SQL... - + Action cancelled. 操作已取消。 @@ -476,89 +481,99 @@ Aborting execution. 重命名列: 不能查找表 %1。 - + This database has already been attached. Its schema name is '%1'. 此数据库已被附加。它的架构名是 '%1'. - + Do you really want to close this temporary database? All data will be lost. 你确定要关闭此临时数据库吗?所有数据都会丢失。 - + The database is currently busy: 数据库正忙: - + Do you want to abort that other operation? 确定要放弃操作吗? - - + + No database file opened 没有打开数据库文件 - - + + Error in statement #%1: %2. Aborting execution%3. 错误在语句 #%1: %2. 正在放弃执行%3. - - + + and rolling back 并回滚 - + + didn't receive any output from %1 + + + + + could not execute command: %1 + + + + Cannot delete this object 无法删除此对象 - + Cannot set data on this object 不能为此数据设置对象 - + A table with the name '%1' already exists in schema '%2'. 一个与 '%1' 同名的表已经存在于架构 '%2' 中。 - + renameColumn: cannot find column %1. 重命名列: 不能查找列 %1。 - + renameColumn: creating savepoint failed. DB says: %1 重命名列: 创建保存点时失败。DB 说: %1 - + renameColumn: creating new table failed. DB says: %1 重命名列: 创建新表时失败。DB 说: %1 - + renameColumn: copying data to new table failed. DB says: %1 重命名列: 复制数据到新表时失败。DB 说: %1 - + renameColumn: deleting old table failed. DB says: %1 重命名列: 删除旧表失败。DB 说: %1 - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -567,34 +582,34 @@ Aborting execution%3. - + renameColumn: releasing savepoint failed. DB says: %1 重命名列: 释放保存点时失败。DB 说: %1 - + Error renaming table '%1' to '%2'.Message from database engine: %3 重命名表 '%1' 为 '%2' 时失败。来自数据库引擎的消息: %3 - + ... <string can not be logged, contains binary data> ... ... <字符串不能记录,包含二进制数据> ... - + could not get list of databases: %1 无法获取数据库列表: %1 - + Error loading extension: %1 加载扩展时出错: %1 - + could not get column information 无法获取列信息 @@ -603,7 +618,7 @@ Aborting execution%3. 未知对象类型 %1 - + could not get list of db objects: %1, %2 不能获取数据库对象的列表: %1, %2 @@ -612,22 +627,22 @@ Aborting execution%3. 不能获取类型 - + didn't receive any output from pragma %1 没有接收到来自杂注 %1 的任何输出 - + could not execute pragma command: %1, %2 不能执行杂注命令: %1, %2 - + Error setting pragma %1 to %2: %3 设置杂注 %1 为 %2 时出错: %3 - + File not found. 文件找不到。 @@ -2425,7 +2440,7 @@ x~y 范围: 值在 x 和 y 之间 - + New Record 新建记录 @@ -2440,7 +2455,7 @@ x~y 范围: 值在 x 和 y 之间 - + Delete Record 删除记录 @@ -2797,7 +2812,7 @@ x~y 范围: 值在 x 和 y 之间 - + Set encoding 设置编码 @@ -2836,7 +2851,7 @@ x~y 范围: 值在 x 和 y 之间 解锁当前视图以编辑。然而,你需要合适的触发器来编辑。 - + Duplicate record 重复的记录 @@ -3034,7 +3049,6 @@ x~y 范围: 值在 x 和 y 之间 - Ctrl+O Ctrl+O @@ -3318,9 +3332,8 @@ You can drag SQL statements from an object row and drop them into other applicat 编辑杂注 - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">LIKE表达式的大小写敏感</a></p></body></html> + <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">LIKE表达式的大小写敏感</a></p></body></html> @@ -3540,122 +3553,122 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed 此按钮保存当前浏览表格的设置 (过滤,显示格式和列的顺序) 为SQL视图,之后可以再用SQL语句浏览。 - + Insert Values... 插入值... + - Open a dialog for inserting values in a new record 打开对话框以插入值到新记录中 + - Insert new record using default values in browsed table 用默认值插入一条新记录到当前浏览的表中 - + New In-&Memory Database 新建内存数据库(&M) - + Drag && Drop Qualified Names 拖拽限定名称 + - Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor 当拖拽对象到编辑器中时,使用限定名称 (例如 "Table"."Field") - + Drag && Drop Enquoted Names 拖拽引用名字 + - Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor 当拖拽对象到编辑器中时,使用转移标识符 (例如 "Table1") - + &Integrity Check 完全性检查(&I) - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. 对打开的数据库运行 integrity_check 杂注并在执行 SQL 标签页返回结果。此杂注对整个数据库进行完全性检查。 - + &Foreign-Key Check 外键检查(&F) - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab 对打开的数据库运行 foreign_key_check 杂注并在执行 SQL 标签页返回结果。 - + &Quick Integrity Check 快速完全性检查(&Q) - + Run a quick integrity check over the open DB 对打开的数据库执行快速完全性检查 - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. 对打开的数据库运行 quick_check 杂注并在执行 SQL 标签页返回结果。此命令会执行 integrity_check 的多数检查,但是要快得多。 - + &Optimize 优化(&O) - + Attempt to optimize the database 尝试优化数据库 - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. 对打开的数据库运行 optimize 杂注。可能会执行对未来查询性能有帮助的优化。 - - + + Print 打印 - + Print text from current SQL editor tab [Ctrl+P] 从当前的 SQL 编辑器标签页打印文本 [Ctrl+P] - + Open a dialog for printing the text in the current SQL editor tab 打开对话框以从当前的 SQL 编辑器标签页打印文 - + Print the structure of the opened database [Ctrl+P] 打印当前打开的数据库的结构 [Ctrl+P] - + Open a dialog for printing the structure of the opened database 打开对话框以打印当前打开的数据库的结构 @@ -3810,7 +3823,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Ctrl+L - + Ctrl+P Ctrl+P @@ -3820,8 +3833,8 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed 数据库编码 - - + + Choose a database file 选择一个数据库文件 @@ -3861,16 +3874,16 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed 数据库是只读的。编辑被禁止。 - + Could not open database file. Reason: %1 无法打开数据库文件。 原因: %1 - + - + Choose a filename to save under 选择一个文件名保存 @@ -3881,25 +3894,25 @@ Reason: %1 - + Error deleting record: %1 删除记录时出错: %1 - + Please select a record first 请首先选择一条记录 - + %1 - %2 of %3 %1 - %2 / %3 - - + + There is no database opened. Please open or create a new database file. 没有打开数据库。请打开或创建一个新的数据库文件。 @@ -3923,7 +3936,7 @@ Are you sure? 你确定吗? - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. 请输入一个伪主键以在当前视图启用编辑。这需要是视图中的一个满足唯一性的列的名字。 @@ -3963,28 +3976,28 @@ Are you sure? 请输入要保存的数据库文件的 URL. - - + + DB Browser for SQLite project file (*.sqbpro) DB Browser for SQLite 工程文件 (*.sqbpro) - + Please choose a new encoding for this table. 请为此表选择新的编码 - + Please choose a new encoding for all tables. 请为所有表选择新的编码 - + Error checking foreign keys after table modification. The changes will be reverted. 修改表格后的外键检查错误。修改会被回退。 - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. 此表格没有通过外键检查。<br/>你需要执行 '工具 | 外键检查' 并修复发现的问题。 @@ -3994,34 +4007,34 @@ Are you sure? - + Choose a project file to open 选择一个要打开的工程文件 - + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. 此工程文件使用了旧的文件格式,因为它是由 DB Browser for SQLite version 3.10 或更低版本创建的。加载此文件格式依然完全支持,但我们建议你把工程转换到新的格式,因为旧格式支持将来可能会失效。你可以通过打开并重新保存的方式来转换。 - + Duplicate records 重复记录 - + Ctrl+" - + %1 Leave the field empty for using the database encoding. %1 留空此字段以使用数据库默认编码。 - + This encoding is either not valid or not supported. 这种编码非法或者不支持。 @@ -4134,71 +4147,71 @@ Are you sure? 操作被用户终止 - + In-Memory database 内存数据库 - + determining row count... 正在决定行数... - + %1 - %2 of >= %3 - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. 你确定要删除表 '%1' 吗? 所有关联的数据都会丢失。 - + Are you sure you want to delete the view '%1'? 你确定要删除视图 '%1' 吗? - + Are you sure you want to delete the trigger '%1'? 你确定要删除触发器 '%1' 吗? - + Are you sure you want to delete the index '%1'? 你确定要删除索引 '%1' 吗? - + Error: could not delete the table. 错误: 无法删除表。 - + Error: could not delete the view. 错误: 无法删除视图。 - + Error: could not delete the trigger. 错误: 无法删除触发器。 - + Error: could not delete the index. 错误: 无法删除索引。 - + Message from database engine: %1 来自数据库引擎的消息: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? 编辑表格之前需要立刻保存所有修改。 @@ -4310,7 +4323,7 @@ Are you sure you want to save the database? - + Don't show again 不再显示 @@ -4320,12 +4333,12 @@ Are you sure you want to save the database? 新版本可用。 - + Collation needed! Proceed? 需要整理! 继续? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -4334,52 +4347,52 @@ Create a backup! 记得备份! - + creating collation 创建整理 - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. 为 SQL 标签页设置新名称。使用 '&&' 字符来允许它作为键盘快捷键。 - + Please specify the view name 请指定视图名称 - + There is already an object with that name. Please choose a different name. 已有同名的对象。请选择一个不同的名称。 - + View successfully created. 视图成功创建。 - + Error creating view: %1 创建视图时出错: %1 - + There is no filter set for this table. View will not be created. 此表没有过滤。视图不会被创建。 - + Delete Records 删除记录 - + This action will open a new SQL tab for running: 此动作会打开新的 SQL 标签页以运行: - + Press Help for opening the corresponding SQLite reference page. 按下帮助以打开对应的 SQLite 参考页。 @@ -4403,12 +4416,12 @@ Create a backup! NullLineEdit - + Set to NULL 设置为 NULL - + Alt+Del @@ -5412,50 +5425,50 @@ Create a backup! RemoteDatabase - + Error when connecting to %1. %2 连接到 %1 时出错. %2 - + Error opening remote file at %1. %2 在 %1 打开远程文件时出错. %2 - + Error: Invalid client certificate specified. 错误: 指定了错误的客户端证书。 - + Please enter the passphrase for this client certificate in order to authenticate. 请输入客户端证书的口令以进行身份认证。 - + Cancel 取消 - + Uploading remote database to %1 正在上传远程数据库到 %1. {1?} - + Downloading remote database from %1 正在下载远程数据库于 %1. {1?} - + The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. 从上次检入以后,远程数据库已更新。你想把本地数据库更新到最新版本吗?注意这将会丢弃你在本地做的所有修改!如果你不希望丢掉本地修改,选择否以使用本地版本。 @@ -5472,25 +5485,25 @@ Create a backup! %1. - - + + Error: The network is not accessible. 错误: 网络无法访问。 - + Error: Cannot open the file for sending. 错误: 无法打开文件用于发送。 - + Error opening local databases list. %1 打开本地数据库列表时出错。 %1 - + Error creating local databases list. %1 创建本地数据库列表时出错。 diff --git a/src/translations/sqlb_zh_TW.ts b/src/translations/sqlb_zh_TW.ts index 1f52201ea..a760a5f51 100644 --- a/src/translations/sqlb_zh_TW.ts +++ b/src/translations/sqlb_zh_TW.ts @@ -24,7 +24,7 @@ Qt Version - Qt 版本 + Qt 版本 SQLite Version @@ -46,6 +46,11 @@ + Built for + + + + Qt Version @@ -108,44 +113,44 @@ - + Auto-increment - + Unique constraint - + Check constraint: %1 - + Foreign key: %1 - + Default value: %1 - + Error adding record. Message from database engine: %1 - + Are you sure you want to restore all the entered values to their defaults? @@ -439,38 +444,38 @@ If any of the other settings were altered for this database file you need to pro DBBrowserDB - + Please specify the database name under which you want to access the attached database - + Invalid file format - + Do you want to save the changes made to the database file %1? 您是否想儲存對資料庫檔案 %1 做出的修改? - + Exporting database to SQL file... 正在匯出資料庫到 SQL 檔案... - - + + Cancel 取消 - + Executing SQL... 正在執行 SQL... - + Action cancelled. 操作已取消。 @@ -485,88 +490,98 @@ Aborting execution. renameColumn: 無法查閱資料資料表 %1。 - + This database has already been attached. Its schema name is '%1'. - + Do you really want to close this temporary database? All data will be lost. - + The database is currently busy: - + Do you want to abort that other operation? - - + + No database file opened - - + + Error in statement #%1: %2. Aborting execution%3. - - + + and rolling back - + + didn't receive any output from %1 + + + + + could not execute command: %1 + + + + Cannot delete this object - + Cannot set data on this object - + A table with the name '%1' already exists in schema '%2'. - + renameColumn: cannot find column %1. renameColumn: 無法查詢列 %1。 - + renameColumn: creating savepoint failed. DB says: %1 renameColumn: 建立保存點時失敗。DB 說: %1 - + renameColumn: creating new table failed. DB says: %1 renameColumn: 建立新資料表時失敗。DB 說: %1 - + renameColumn: copying data to new table failed. DB says: %1 renameColumn: 複製資料到新資料表時失敗。DB 說: %1 - + renameColumn: deleting old table failed. DB says: %1 renameColumn: 刪除舊資料表失敗。DB 說: %1 - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -575,34 +590,34 @@ Aborting execution%3. - + renameColumn: releasing savepoint failed. DB says: %1 renameColumn: 釋放保存點時失敗。DB 說: %1 - + Error renaming table '%1' to '%2'.Message from database engine: %3 重命名資料表 '%1' 為 '%2'時失敗。消息來自資料庫引擎: %3 - + ... <string can not be logged, contains binary data> ... ... <字串無法記錄,包含二進位資料> ... - + could not get list of databases: %1 - + Error loading extension: %1 載入擴充套件時出現錯誤: %1 - + could not get column information @@ -611,7 +626,7 @@ Aborting execution%3. 未知對象類型 %1 - + could not get list of db objects: %1, %2 無法取得資料庫物件的列表: %1, %2 @@ -620,22 +635,22 @@ Aborting execution%3. 無法取得類型 - + didn't receive any output from pragma %1 無法接受來自雜注 %1 的任何輸出 - + could not execute pragma command: %1, %2 無法執行雜注命令: %1, %2 - + Error setting pragma %1 to %2: %3 設定雜注 %1 為 %2 時出現錯誤: %3 - + File not found. 找不到檔案。 @@ -2316,7 +2331,7 @@ x~y Range: values between x and y - + New Record 新建記錄 @@ -2331,7 +2346,7 @@ x~y Range: values between x and y - + Delete Record 刪除記錄 @@ -2696,7 +2711,7 @@ x~y Range: values between x and y - + Set encoding @@ -2811,7 +2826,6 @@ x~y Range: values between x and y - Ctrl+O Ctrl+O @@ -3125,11 +3139,6 @@ You can drag SQL statements from an object row and drop them into other applicat Edit Pragmas - - - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - - Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. @@ -3442,122 +3451,122 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - + Insert Values... + - Open a dialog for inserting values in a new record + - Insert new record using default values in browsed table - + New In-&Memory Database - + Drag && Drop Qualified Names + - Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor - + Drag && Drop Enquoted Names + - Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor - + &Integrity Check - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. - + &Foreign-Key Check - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab - + &Quick Integrity Check - + Run a quick integrity check over the open DB - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. - + &Optimize - + Attempt to optimize the database - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. - - + + Print - + Print text from current SQL editor tab [Ctrl+P] - + Open a dialog for printing the text in the current SQL editor tab - + Print the structure of the opened database [Ctrl+P] - + Open a dialog for printing the structure of the opened database @@ -3707,7 +3716,7 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Ctrl+L - + Ctrl+P Ctrl+P @@ -3717,8 +3726,8 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed 資料庫編碼 - - + + Choose a database file 選擇一個資料庫檔案 @@ -3758,15 +3767,15 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - + Could not open database file. Reason: %1 - + - + Choose a filename to save under 選擇一個檔案名稱儲存 @@ -3777,25 +3786,25 @@ Reason: %1 - + Error deleting record: %1 刪除記錄時出現錯誤: %1 - + Please select a record first 請首先選擇一條記錄 - + %1 - %2 of %3 %1 - %2 / %3 - - + + There is no database opened. Please open or create a new database file. 沒有打開資料庫。請打開或建立一個新的資料庫檔案。 @@ -3838,39 +3847,39 @@ All data associated with the %1 will be lost. - - + + DB Browser for SQLite project file (*.sqbpro) - + Please choose a new encoding for this table. - + Please choose a new encoding for all tables. - + Error checking foreign keys after table modification. The changes will be reverted. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. - + %1 Leave the field empty for using the database encoding. - + This encoding is either not valid or not supported. @@ -3997,69 +4006,69 @@ Are you sure? - + In-Memory database - + determining row count... - + %1 - %2 of >= %3 - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. - + Are you sure you want to delete the view '%1'? - + Are you sure you want to delete the trigger '%1'? - + Are you sure you want to delete the index '%1'? - + Error: could not delete the table. - + Error: could not delete the view. - + Error: could not delete the trigger. - + Error: could not delete the index. - + Message from database engine: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? @@ -4181,7 +4190,7 @@ Are you sure? - + Don't show again 不再顯示 @@ -4191,94 +4200,94 @@ Are you sure? 新版本可用。 - + Choose a project file to open - + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - + Duplicate records - + Duplicate record - + Ctrl+" - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. - + Collation needed! Proceed? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! - + creating collation - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. - + Please specify the view name 請指定視圖名稱 - + There is already an object with that name. Please choose a different name. 已有相同名稱的對象。請選擇一個不同的名稱。 - + View successfully created. 成功建立視圖。 - + Error creating view: %1 建立視圖時出現錯誤: %1 - + There is no filter set for this table. View will not be created. - + Delete Records - + This action will open a new SQL tab for running: - + Press Help for opening the corresponding SQLite reference page. @@ -4310,12 +4319,12 @@ Create a backup! NullLineEdit - + Set to NULL - + Alt+Del @@ -5376,68 +5385,68 @@ Aborting execution. RemoteDatabase - + Error when connecting to %1. %2 - + Error opening remote file at %1. %2 - + Error: Invalid client certificate specified. - + Please enter the passphrase for this client certificate in order to authenticate. - + Cancel 取消 - + Uploading remote database to %1 - + Downloading remote database from %1 - + The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. - - + + Error: The network is not accessible. - + Error: Cannot open the file for sending. - + Error opening local databases list. %1 - + Error creating local databases list. %1 From 0f4f8df23b35a93e3962a2d8239f9382a7690ba2 Mon Sep 17 00:00:00 2001 From: Justin Clift Date: Mon, 18 Feb 2019 16:21:21 +1100 Subject: [PATCH 106/127] Update version number to 3.11.1 --- installer/windows/variables.wxi | 2 +- src/app.plist | 6 +++--- src/version.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/installer/windows/variables.wxi b/installer/windows/variables.wxi index 2bbd56825..09ab754f1 100644 --- a/installer/windows/variables.wxi +++ b/installer/windows/variables.wxi @@ -3,7 +3,7 @@ - + @@ -45,7 +45,7 @@ - +