From 1366ace11c223a7600ddce9586d852d226b1a073 Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Thu, 13 Mar 2014 04:58:45 +0000 Subject: [PATCH] Add a read-only tab for a potentially existing PARTITION clause of the table. Fixes issue #1692. --- out/locale/en/LC_MESSAGES/default.po | 6 +- res/icons/chart_pie.png | Bin 0 -> 918 bytes source/main.dfm | 86 +++++++++++++-------------- source/table_editor.dfm | 34 +++++++++++ source/table_editor.pas | 10 ++++ 5 files changed, 92 insertions(+), 44 deletions(-) create mode 100644 res/icons/chart_pie.png diff --git a/out/locale/en/LC_MESSAGES/default.po b/out/locale/en/LC_MESSAGES/default.po index d889c639..515b9866 100644 --- a/out/locale/en/LC_MESSAGES/default.po +++ b/out/locale/en/LC_MESSAGES/default.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: HeidiSQL\n" "POT-Creation-Date: 2012-11-05 21:40\n" -"PO-Revision-Date: 2014-02-27 13:48+0100\n" +"PO-Revision-Date: 2014-03-13 05:56+0100\n" "Last-Translator: Ansgar Becker \n" "Language-Team: English (http://www.transifex.com/projects/p/heidisql/" "language/en/)\n" @@ -687,6 +687,10 @@ msgstr "CREATE code" msgid "ALTER code" msgstr "ALTER code" +# Table editor +msgid "Partitions" +msgstr "Partitions" + #. frmExportGrid..Caption #: exportgrid.dfm:5 msgid "Export grid rows" diff --git a/res/icons/chart_pie.png b/res/icons/chart_pie.png new file mode 100644 index 0000000000000000000000000000000000000000..fe00fa050a833fade14de445c554b21ff2266632 GIT binary patch literal 918 zcmV;H18Mw;P) z)5~v^RUF3g=bd?{7w4U(okA~6ODQu&AyTU)qaihDP=g^ZV5Kfhx?#trq@YHED?=nm z8X{F=Fli(%K&l}`AXu0%WX=(eO^E>Cfm*WCSBpMff|A0@P&0}b- z@vu|b_butF9--78p(rVogpgvCg!(S1p8cR&zh3^)8!?W*Wjq8aNzH zSpmoJP*=GgH>dKrnER?fW_*%Wj@zr0*Zui{_|PN3iC>TI+Zak*tPO9#w7Q3JJCC3a zV5jvo&RzX%snXq-j2JJCCKFaPcWV{5XYKvx54R5jK;Xmiqfw#6K%KP_V|Ed#`y;sT ztRPX@g88|-V2s`i>)nU8)Kx_5YbwyzXn{x#yz=&N6aWHTQcq{~E~`XS$nyzsS73cG z3QL6WP3FRQEO`2wAm>1$IgG-LK(wkHZA}qNaO(LBV0(k1a%AlSlq*pcu+U!h1V)QL zgVw}BN1A;dn&m(!J1{?U7yV-=mn2ht$Ch6^GqI93 ze+WNbT38m_O&H+JhxUC)WkQh%K3KqM@|PRK9ha^TE=rQe56?E8-@O!mOY_{s^E~~+ zrER?s(gWuj#5~m2gfP8eLrE$<02qDwZRYF#Q&Vl1x2yzvG^f0?x!E#`zrkO#K}6uf z191&uyJ(I-hT*FvIFc>{fH_#|IIB4w*PKo}@s=_t-U8qAV2))0#vr+bkRFJD&g~Ht zCg+jKWo*w;eE?u;o0&f2Z>pWiGPkB0;zk~!#wPeSgJuLNI7oO%#KI^Pr%}w^geyh& z?9h=#00@LWKC|erv2Np98pst8YG{N{93Bxo5>O($wzBNzVh zg|)61U)Dl=s^Xhk-THM1{5S%=@JIV|JKj0xDM_xYzV}>pVm|e*{jX;NfaR@ES)NqA sTB$w0a+2D0+Z&ca0*O=8=#zfKm;e9(07*qoM6N<$f`+80v;Y7A literal 0 HcmV?d00001 diff --git a/source/main.dfm b/source/main.dfm index 7c716c2a..cbe15ad9 100644 --- a/source/main.dfm +++ b/source/main.dfm @@ -2767,7 +2767,7 @@ object MainForm: TMainForm Left = 504 Top = 104 Bitmap = { - 494C0101BA005001500310001000FFFFFFFF2110FFFFFFFFFFFFFFFF424D3600 + 494C0101BB005001680310001000FFFFFFFF2110FFFFFFFFFFFFFFFF424D3600 000000000000360000002800000040000000F0020000010020000000000000F0 0200000000000000000000000000000000000000000000000000000000000000 000000000000000000031B0B1A78000000000000000000000000000000000000 @@ -2782,120 +2782,120 @@ object MainForm: TMainForm 00000000000000000000000000000000000000000000D3D3D3E8FFFFFFFFFFFF FFFFDCCAB8FF764E26E100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 000C0A083B81140F91C91B13E8FF0000072D0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000033183090AF64A7FFA95FA2FF8A3B83FF82357AFF793074FF60235BEA3713 34B7130612700100011D0000000000000000532800E8643100FF643100FF9A77 56FFF3EDE7FF986431FF1F150A75000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000040411452926 + B6DE5654EBFF6A6BE7FF312BE9FF0000072D653215D2592A11C9231006810000 + 000C000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000002F18 2C84BC71B3FFD195C8FFCF93C7FFCD8EC5FFCA89C2FFC784C0FFBD78B6FFAC63 A5FF91498BFF30102EB00401043900000000381B00BF643100FF643100FF7649 1CFFFFFFFFFFC8AB90FF674521D3000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000008081A546060F3FF7B7D + EEFF9398EBFF8C90E9FF3935ECFF0100072D6D3619D2D68D60FFB76441FF6931 + 13DE0A0401480000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000361B 338AC377B9FFD79DCEFFD49ACBFFD296CAFFCF91C7FFCC8CC3FFCA87C1FFC178 B9FFC37CBCFFA35B9DFF321130B00100011D1F0F008F643100FF643100FF6431 00FFB8A089FFEDE5DCFF986431FF090603400000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000001155555E0F39498F2FFA4A9 + EEFF7980E6FF9699EBFF423EEFFF0101072D723B1DD2DB986EFFE6A37DFFCB7E + 55FFA5532FFF0E06025400000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00003E203B93C779BCFFC175B7FFAA52A0FFA24C99FF9A4792FFAB61A3FFC282 BAFFC986C0FFC581BEFF964E90FF140713700B050056643100FF643100FF6431 00FF7E542AFFFFFFFFFFB28B64FF986431FF986431FF986431FF986431FF7B51 - 28E65E3F1FCA26190C8100000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 28E65E3F1FCA26190C8100000000000000000000011126265A995C5CEDF98384 + F4FFA2A7EFFF9FA4EDFF4D4AF1FF0101072D794122D2DEA077FFDE8859FFE6A5 + 7DFFD0865AFF823D18F300000015000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000004925459F7E3F76D20000000000000000000000002F162D8D7434 6CE1C585BDFFC987C1FFB26DABFF3C1639B700000019532800E8643100FF6431 00FF643100FFD9CCBEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F0EBFFEADF - D5FFCDB299FF664321D1412B15A7000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + D5FFCDB299FF664321D1412B15A7000000000D1E0F7309170A660101021B1E1E + 4C8D5252E0F37A7CF3FF5756F4FF0101072D7D4827D2E1A780FFE09162FFD977 + 4AFFE7A783FFBD6E48FF26120784000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000001509146114091361130712611207 116111061061000000032C17297B000000000000000000000000000000002913 2783833C7CED863B7EF67F3678F8692A62E800000000391C00C0643100FF6431 00FF643100FF643100FF643100FF643100FF643100FF734517FF855B33FFB197 - 7CFFEDE3DAFFDCCAB8FF784F26E222160B7A0000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 7CFFEDE3DAFFDCCAB8FF784F26E222160B7A326C37CF8FBE92FF347B39EA0B1B + 0C720101021D1515397B4948D5ED0202072D844E2DD2E4AF8AFFE39B6BFFDD84 + 52FFE29565FFDA966BFF643115CF000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000853E7DE8904188F8863B7EF67331 6EED210D1F83000000000000000000000000000000001506157B00000003180C 1761170A1561160A15611509136113081261000000001F0F008F643100FF6431 00FF643100FF643100FF643100FF643100FF643100FF643100FF643100FF8156 - 2CFF9A7756FFF3EEE8FFCAAE94FF5C3D1EC80000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 2CFF9A7756FFF3EEE8FFCAAE94FF5C3D1EC84B9A53F0CAE8C8FFAED9AAFF91BE + 93FF317936ED0C1F0D7E0000011401010118895632D2E7B692FFE7A575FFE08F + 5BFFDE8D5AFFE6AC87FF934A23F3000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000572A52B7C27EB9FFCC8CC3FFC382 BCFF6B2E65E12710258D000000000000000000000000441641D2250B239F0000 000000000000000000000000000000000000000000000B050057643100FF6431 00FF643100FFA58768FFCBB8A7FFBAA38CFFA28363FF8E6843FF643100FF6431 - 00FF75481BFFB59C84FFE9DED3FF905E2FF80000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 00FF75481BFFB59C84FFE9DED3FF905E2FF85AAF65F9B5E0B0FF79CC6DFF91D2 + 88FFACD9A8FF88B78AFF1331159D18100A56C37E4CF6EFC8A8FFE6A571FFE29A + 65FFE29764FFE7B28EFF965027F0000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000022112070BE73B5FFD297C9FFCF93 C7FFC785BFFFA65C9FFF85377DFF7C3276FF742C6FFF8F4789FF8A4385FF200A 1F93000000000000000000000000000000000000000000000019532800E86431 00FF643100FF8E6843FFFFFFFFFFFFFFFFFFFFFFFFFFE3DAD1FF8B643EFF6431 - 00FF643100FF865D35FFFCFBF9FF946130FB0000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 00FF643100FF865D35FFFCFBF9FF946130FB437E4CCFB9DFB7FF78CC6BFF64C5 + 57FF70C864FFA7DAA2FF66A76BFF0307033C7E5435C3E6B48DFFF0CCABFFE5A5 + 6FFFE9B083FFE3AE87FF764021CF000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000201021D552B50B0C984BFFFD49A CBFFCE8EC4FFCF91C7FFCC8CC3FFCA87C1FFC582BDFFC37CBCFFC077BAFF8C45 87FF1D091C8A0000000000000000000000000000000000000000391C00C06431 00FF643100FF7A4F23FFD7C9BBFFFFFFFFFFFFFFFFFFFFFFFFFFAF9479FF6431 - 00FF643100FF683706FFFDFDFCFF52361BBC0000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 00FF643100FF683706FFFDFDFCFF52361BBC1E352184B2DAB4FFA1D899FF6BCA + 5DFF64C556FF7ECC73FFA2CEA2FF28602DCF08050332D38E5AFCF2D1B1FFEBB8 + 8CFFF0C9A9FFD89B6EFF321C0F84000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000009040839572C52B0C277 B8FFCA88C0FFD093C8FFD194C8FFCF8FC5FFCB8BC2FFC986C0FFC37EBCFF944C 8EFF1C0A1B8400000000000000000000000000000000000000001F0F008F6431 00FF643100FF6B3B0BFF9E7D5DFFFFFFFFFFFFFFFFFFFFFFFFFFA08060FF6431 - 00FF643100FF663403FFFFFFFFFF070502390000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 00FF643100FF663403FFFFFFFFFF070502390001001268B774F3BDE1BDFF93D4 + 88FF6CCA60FF6CC95EFF9DD696FF92C095FF0A190B694D352296E7B38DFFF3D3 + B4FFE9BA97FFB87243F300000012000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000201021D2311 21705C2E56B791478AEAA54E9BFF9D4995FF95438DFFA75E9FFFA1599AFF2710 25900000000000000000000000000000000000000000000000000B0500576F3F 11FF643100FF643100FF724315FFB59D85FFA98D70FF9A7756FF7D5227FF6431 - 00FF643100FF8A653EFE3129227F000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 00FF643100FF8A653EFE3129227F00000000000000000C140D519FD5A7FFB9E0 + BAFFA6DA9FFF7BCE6EFF7DCD71FFAFD9ACFF3E8A45ED02020123C08858EDEBC1 + 9DFFDDA171FF140D085100000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000662F61D23517329C0000 0000000000000000000000000000000000000000000000000000000000193018 00B1643100FF643100FF643100FF643100FF643100FF643100FF643100FF6637 - 06FD653608FB2E28227F00000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 06FD653608FB2E28227F00000000000000000000000000000000070C083F5A9B + 63DEB3DCB6FFBBE0B9FFB8E1B4FFCEEACBFFA3CEA5FF19371C96261B1269A978 + 4EDE0D09053F0000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000023102178000000030000 0000000000000000000000000000000000000000000000000000000000000E07 0061321800B5643100FF643100FF643100FF643100FF643100FF401F00CC2C15 00A90C06005A0000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 000C1D32207E44784BC666BD73FC5FB76BFC366D3DC61429167D000000030000 + 000A000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000006DFFFFFFFFFFFFFFFFFFFF diff --git a/source/table_editor.dfm b/source/table_editor.dfm index 6a06cfe8..21972634 100644 --- a/source/table_editor.dfm +++ b/source/table_editor.dfm @@ -683,6 +683,40 @@ object frmTableEditor: TfrmTableEditor FontSmoothing = fsmNone end end + object tabPartitions: TTabSheet + Caption = 'Partitions' + ImageIndex = 186 + object SynMemoPartitions: TSynMemo + Left = 0 + Top = 0 + Width = 593 + Height = 121 + SingleLineMode = False + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Courier New' + Font.Style = [] + PopupMenu = popupSQLmemo + TabOrder = 0 + Gutter.AutoSize = True + Gutter.DigitCount = 2 + Gutter.Font.Charset = DEFAULT_CHARSET + Gutter.Font.Color = clWindowText + Gutter.Font.Height = -11 + Gutter.Font.Name = 'Courier New' + Gutter.Font.Style = [] + Gutter.LeftOffset = 2 + Gutter.ShowLineNumbers = True + Highlighter = MainForm.SynSQLSyn1 + Lines.Strings = ( + 'SynMemoPartitions') + Options = [eoAutoIndent, eoDragDropEditing, eoEnhanceEndKey, eoGroupUndo, eoHideShowScrollbars, eoKeepCaretX, eoShowScrollHint, eoSmartTabDelete, eoSmartTabs, eoTabsToSpaces] + ReadOnly = True + FontSmoothing = fsmNone + end + end end object pnlColumnsTop: TPanel AlignWithMargins = True diff --git a/source/table_editor.pas b/source/table_editor.pas index f98cfb32..09064e84 100644 --- a/source/table_editor.pas +++ b/source/table_editor.pas @@ -88,6 +88,8 @@ type listForeignKeys: TVirtualStringTree; menuCopyColumns: TMenuItem; menuPasteColumns: TMenuItem; + tabPartitions: TTabSheet; + SynMemoPartitions: TSynMemo; procedure Modification(Sender: TObject); procedure btnAddColumnClick(Sender: TObject); procedure btnRemoveColumnClick(Sender: TObject); @@ -328,6 +330,12 @@ begin memoComment.Lines.Text := DBObject.Connection.UnescapeString(rx.Match[1]) else memoComment.Lines.Clear; + rx.Expression := '\b(PARTITION\s+.+)(\*/)'; + if rx.Exec(DBObject.CreateCode) then + SynMemoPartitions.Text := rx.Match[1] + else + SynMemoPartitions.Clear; + DBObject.Connection.ParseTableStructure(DBObject.CreateCode, FColumns, FKeys, FForeignKeys); end; listColumns.RootNodeCount := FColumns.Count; @@ -693,6 +701,8 @@ begin SQL := SQL + 'UNION=('+memoUnionTables.Text+')' + CRLF; if comboInsertMethod.Enabled and (comboInsertMethod.Text <> '') then SQL := SQL + 'INSERT_METHOD='+comboInsertMethod.Text + CRLF; + if SynMemoPartitions.GetTextLen > 0 then + SQL := SQL + '/*!50100 ' + SynMemoPartitions.Text + ' */'; Result := TSQLBatch.Create; Result.SQL := Trim(SQL); end;