diff --git a/res/icons/key_vector.png b/res/icons/key_vector.png new file mode 100644 index 00000000..83ae5ab0 Binary files /dev/null and b/res/icons/key_vector.png differ diff --git a/source/const.inc b/source/const.inc index 8484ce0a..9b4c3219 100644 --- a/source/const.inc +++ b/source/const.inc @@ -33,6 +33,7 @@ const ICONINDEX_UNIQUEKEY = 24; ICONINDEX_FULLTEXTKEY = 22; ICONINDEX_SPATIALKEY = 126; + ICONINDEX_VECTORKEY = 207; ICONINDEX_FOREIGNKEY = 136; ICONINDEX_SERVER = 36; ICONINDEX_DB = 5; diff --git a/source/dbconnection.pas b/source/dbconnection.pas index 5ce32d35..b31bd341 100644 --- a/source/dbconnection.pas +++ b/source/dbconnection.pas @@ -80,6 +80,7 @@ type UNIQUE = 'UNIQUE'; FULLTEXT = 'FULLTEXT'; SPATIAL = 'SPATIAL'; + VECTOR = 'VECTOR'; private FConnection: TDBConnection; function GetInsideCreateCode: Boolean; @@ -97,6 +98,7 @@ type function IsUnique: Boolean; function IsFulltext: Boolean; function IsSpatial: Boolean; + function IsVector: Boolean; function IsExpression(KeyPart: Integer): Boolean; procedure Modification(Sender: TObject); function SQLCode(TableName: String=''): String; @@ -6391,6 +6393,8 @@ begin NewKey.IndexType := TTableKey.FULLTEXT else if CompareText(KeyQuery.Col('Index_type'), TTableKey.SPATIAL) = 0 then NewKey.IndexType := TTableKey.SPATIAL + else if CompareText(KeyQuery.Col('Index_type'), TTableKey.VECTOR) = 0 then + NewKey.IndexType := TTableKey.VECTOR else NewKey.IndexType := TTableKey.KEY; NewKey.OldIndexType := NewKey.IndexType; @@ -11193,6 +11197,11 @@ begin Result := IndexType = SPATIAL; end; +function TTableKey.IsVector: Boolean; +begin + Result := IndexType = VECTOR; +end; + function TTableKey.IsExpression(KeyPart: Integer): Boolean; begin Result := Columns[KeyPart].StartsWith('('); @@ -11213,6 +11222,7 @@ begin else if IsUnique then Result := ICONINDEX_UNIQUEKEY else if IsFulltext then Result := ICONINDEX_FULLTEXTKEY else if IsSpatial then Result := ICONINDEX_SPATIALKEY + else if IsVector then Result := ICONINDEX_VECTORKEY else Result := -1; end; diff --git a/source/main.dfm b/source/main.dfm index dc8556be..e963f11e 100644 --- a/source/main.dfm +++ b/source/main.dfm @@ -17280,6 +17280,76 @@ object MainForm: TMainForm 3CB5F304692F364254B75D5235702FC6148542F1398690FF029A8D9B27B85043 410000000049454E44AE426082} end> + end + item + Name = 'icons8-key-100-pink' + SourceImages = < + item + Image.Data = { + 89504E470D0A1A0A0000000D494844520000006400000064080600000070E295 + 54000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 + 00097048597300000EC100000EC101B8916BED0000001874455874536F667477 + 617265005061696E742E4E455420352E312E36FCD1C7AF000000B66558496649 + 492A000800000005001A010500010000004A0000001B01050001000000520000 + 0028010300010000000200000031010200100000005A00000069870400010000 + 006A00000000000000D9760100E8030000D9760100E80300005061696E742E4E + 455420352E312E3600030000900700040000003032333001A003000100000001 + 00000005A0040001000000940000000000000002000100020004000000523938 + 00020007000400000030313030000000008CF53740E4EAF7DB00000684494441 + 54785EED9C5F8C1D6519879FF7DB026B410B3456531A2818439A81201AF14C51 + 88240AD1BB12B4DD6E132F4C30263424C6987883E28531D1C4849AA0912BDA6D + 43421B2F309AF897A87310A912185B8D01C28242CB22E05AAAED7EAF177B9A6E + DF0BB3E7CC3BA7DF9C9927996CF27BBF3DE74C9ECC9CF3FD1BE8E8E8E8E8E8E8 + E8E8F0476C90128F64FDCB227A45844D0A1B053609B256D177016B027269442F + 002E19FCCB62404E45F40DE0B4206F297A029807FE11E0A580BCFC99B2F74FF3 + 56C970DE85ECCDFA6BD7C096886E01B600D70EFE5E1D9077D8F61E44F46DE079 + E0087014381A9023A7E1C86CD93B61DB8F93B10AE9678FCAF36CEC297C04F810 + F041E0DA804CD9B6E783882E017F010E034F093C71357FEFF7CA3BD5B6AD8BB1 + 083998F52F3C89DE0D7C292057D97ACA44F405E03BD3C80FB695BDFFDABA37B5 + 0BD99F15372A3C1C90CCD69A44449F89B06BB6CC9FB6354F6A15B22F2B3E25F0 + 48402EB6B52612D145E0AE9932FF89AD79519B90FD59912BFC2C206B6DADC944 + F484C0AD3BCAFC0FB6E6412D420E64C5C5119E0DC8665B9B0422FA5C44AEAFE3 + 1759B0810711EE9D54190001B9660A76DBDC03F72BE481AC1FD6A3F301D9686B + 934444E71790CDF794BD686B5570173297153707E43736AF4A44FF031C078E05 + 4423FAE6F2C5C8A9802C0EDABC1358038480AC8BA8001B800D01B9D0BE665522 + FAD19932FFADCDAB508790FB02F2359BAF96881E077E073C093C2930BF04AFCE + 96F9EBB6ED30ECCD8ACB81F706D804DC047C18C803F26EDB76B544F4BE9932BF + DFE655A843C8E301F998CD5743441F9E463E3F8E0E18673BAC3F0CC82E5B5B0D + 117D7CA6CC6FB579155CBFD41FCA8A8B581E161995625C320006EF55D87C086E + DA9BF52FB061155C85AC85EBEBB857A74A40A6A7D0EB6C5E0557210A37DA6CD2 + D1E54152375C85D04221C0076C50056F21D7D860482EB7C118586F8321A97ACE + E7E02DE47D3618924FDA600CDC618321711D917013F240D60FC095361F8680DC + 329715B336AF8BB9ACD815909B6D3E24AE42DCFA2107B26203C8AB361F96889E + 06BE1960CFF6323F66EB1EECCD8AF784E5B1A8AF78CC569E46D757EDB89EC14D + C8FEACBF5996E7A93D7933A2AE63450109C03A9B57E4AAED65EF451B8E82DB2D + 6B308EE4CDBA805CE679D420C3F5DCDD8484B34B715A8782DB249C9B1071B817 + 379529E4229B8D8A9B1085459BB588B76D302A6E42585E21D84A14FE6DB35171 + 1312A0B542229A9E9088BC66B3B6A0C882CD46C54DC88EB27732A2AFD87CD289 + E882E7EA133721035EB0C1A41310D773F616F29C0D269D88BA8E4E780BF9B30D + 5AC0511B54C15588402DCB2B13E7B00DAAE02DE48F369B7402F294CDAAE02A64 + 7B991FF3BEA7A64C445FF11AE53D83AB90013FB7C104F32B1B54A513528D5FD8 + A02AEE42D6203F8DE8299B4F1A115505F78D3BEE42065B8E1FB3F904F2CB9D65 + 3E6FC3AAB80B6179F4F31BDE53AFA921E0BAC8FA0CB508D959E687816FDB7C52 + 88E8433BCAFCD736F7A0162100D3C85723FA239B379D883E11915A764F51A790 + 6D656F29227745744F44C7B6F1BE4E22FAE388DCEE39BA6B715B06F4FF98CB8A + 5B04B95FC0752FC5B888E83181AFBF863CE8BD85CD32162167D89715EF17F874 + 40B646746B40AEB06D52607045FF0DF83DF09820877694BD93B65D1D8C5588E5 + 40D6BF32A25B811B800CB80ED81C90B17DAE882E0C466C8F002570780AFEF4D9 + 327FCBB61D07633BF1D57230EB5F7212FD5640BE686B9E44742EC2BDB3657EDC + D6CE27B57DA98FCAB6B2B728C8AA3A5C11E5758E9F734456FDFBE1C5D46490A2 + 906159E2D43947D369BC9049A31392189D90C4E88424462B850C3A7EB53E196E + 545A276420E39E99323F606B29D02A212B647CCFD652A135429A2083360901BE + 9FBA0C5A26E473735951F52101B5D31A210199060EA52EA53542688894560961 + 85947D59719BADA540EB84309022F0099BA7402B85A44C272431DA2C64D5538B + E3A49542225A06F8AECD53A0754206326EABEB595C55699590D465D02621112D + 237C3C6519B44908F0D214F22F1BA6466B8404E476450FEDCFFAD3B69612AD11 + C2B2943B5297D22A2134404AEB847056CA976D9E02AD1432C0EDC1959EB45948 + 9274421223492111FD6B9DFB12BB857243B2B3CC0F02BBEB903278CDDDDD42B9 + 219929F33DDE5256C8D8636BA990AC109CA5344106A90BC1494A5364D0042154 + 94D22419344508234A699A0C9A248421A534510629EE535F0D7359F105E04E45 + A7DE60E18695B54B59FFB4204BC0A33365FEE0CA5A4747474747474747475BF9 + 1F7FA73D2F7ABAF21F0000000049454E44AE426082} + end> end> Left = 593 Top = 339 @@ -25573,6 +25643,34 @@ object MainForm: TMainForm 3CB5F304692F364254B75D5235702FC6148542F1398690FF029A8D9B27B85043 410000000049454E44AE426082} end> + end + item + Name = 'key_vector' + SourceImages = < + item + Image.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 + 00097048597300000EC300000EC301C76FA8640000001874455874536F667477 + 617265005061696E742E4E455420352E312E36FCD1C7AF000000B66558496649 + 492A000800000005001A010500010000004A0000001B01050001000000520000 + 0028010300010000000200000031010200100000005A00000069870400010000 + 006A00000000000000600000000100000060000000010000005061696E742E4E + 455420352E312E3600030000900700040000003032333001A003000100000001 + 00000005A0040001000000940000000000000002000100020004000000523938 + 0002000700040000003031303000000000C2087FD6D5255A4D0000013B494441 + 54384FDD8C4B4B026118858F635184BCD885124BDA77A1887E84AD8330C995E0 + 2E68DBB2458B685FEDFA01B58DA06D57BB29220C06038A1853605333A3BDC3E8 + F7B58B61C4DAFBEC0EE73907E86D3462A542BC6745DC078D38EDEFFFA544BC25 + E22CC59929C5ACA867C988FB9DAE68C419B1F4DD163B552992A67452425667B8 + 714AEABAD753BCC14B085841C2549077815803FD2DC6E4DCFBD0C2C0F4A1D7EB + 7AC0808A1705786D018F4D205F016E9BA8C1097ABD8E038D78D988B8F7D1D160 + 02D7365062A0EC007600575F139C778A19FFE6970AF1468DF8596C7F4811294A + 41055920DDBE091B7A366CE90774B7EADF04BCE133E6E628632E62BF0EA08D52 + DF70F3BCF5B419C4FC490883489BE396D7EFC08ABA5991D4A408AB521DD1AD23 + BA48F99D3FC9516DB73C65BCE5C6F4F2315DAEF9FB1EE50766138FD293CD4ECC + 0000000049454E44AE426082} + end> end> Left = 689 Top = 339