@@ -877,51 +877,12 @@ class TKikimrIcGateway : public IKqpGateway {
877
877
return tablePromise.GetFuture ();
878
878
}
879
879
880
- TFuture<TGenericResult> CreateColumnTable (NYql::TKikimrTableMetadataPtr metadata, bool createDir) override {
881
- using TRequest = TEvTxUserProxy::TEvProposeTransaction;
882
-
883
- try {
884
- if (!CheckCluster (metadata->Cluster )) {
885
- return InvalidCluster<TGenericResult>(metadata->Cluster );
886
- }
887
-
888
- std::pair<TString, TString> pathPair;
889
- {
890
- TString error;
891
- if (!GetPathPair (metadata->Name , pathPair, error, createDir)) {
892
- return MakeFuture (ResultFromError<TGenericResult>(error));
893
- }
894
- }
895
-
896
- auto ev = MakeHolder<TRequest>();
897
- ev->Record .SetDatabaseName (Database);
898
- if (UserToken) {
899
- ev->Record .SetUserToken (UserToken->GetSerializedToken ());
900
- }
901
- auto & schemeTx = *ev->Record .MutableTransaction ()->MutableModifyScheme ();
902
- schemeTx.SetWorkingDir (pathPair.first );
903
-
904
- Ydb::StatusIds::StatusCode code;
905
- TString error;
906
-
907
- schemeTx.SetOperationType (NKikimrSchemeOp::ESchemeOpCreateColumnTable);
908
- NKikimrSchemeOp::TColumnTableDescription* tableDesc = schemeTx.MutableCreateColumnTable ();
909
-
910
- tableDesc->SetName (pathPair.second );
911
- FillColumnTableSchema (*tableDesc->MutableSchema (), *metadata);
912
-
913
- if (!FillCreateColumnTableDesc (metadata, *tableDesc, code, error)) {
914
- IKqpGateway::TGenericResult errResult;
915
- errResult.AddIssue (NYql::TIssue (error));
916
- errResult.SetStatus (NYql::YqlStatusFromYdbStatus (code));
917
- return MakeFuture (std::move (errResult));
918
- }
919
-
920
- return SendSchemeRequest (ev.Release ());
921
- }
922
- catch (yexception& e) {
923
- return MakeFuture (ResultFromException<TGenericResult>(e));
924
- }
880
+ TFuture<TGenericResult> CreateColumnTable (NYql::TKikimrTableMetadataPtr metadata,
881
+ bool createDir, bool existingOk) override {
882
+ Y_UNUSED (metadata);
883
+ Y_UNUSED (createDir);
884
+ Y_UNUSED (existingOk);
885
+ return NotImplemented<TGenericResult>();
925
886
}
926
887
927
888
TFuture<TGenericResult> AlterTable (const TString&, Ydb::Table::AlterTableRequest&&, const TMaybe<TString>&, ui64, NKikimrIndexBuilder::TIndexBuildSettings&&) override
@@ -1035,150 +996,33 @@ class TKikimrIcGateway : public IKqpGateway {
1035
996
1036
997
TFuture<TGenericResult> AlterColumnTable (const TString& cluster,
1037
998
const NYql::TAlterColumnTableSettings& settings) override {
1038
- using TRequest = TEvTxUserProxy::TEvProposeTransaction;
1039
-
1040
- try {
1041
- if (!CheckCluster (cluster)) {
1042
- return InvalidCluster<TGenericResult>(cluster);
1043
- }
1044
-
1045
- std::pair<TString, TString> pathPair;
1046
- {
1047
- TString error;
1048
- if (!GetPathPair (settings.Table , pathPair, error, false )) {
1049
- return MakeFuture (ResultFromError<TGenericResult>(error));
1050
- }
1051
- }
1052
-
1053
- auto ev = MakeHolder<TRequest>();
1054
- ev->Record .SetDatabaseName (Database);
1055
- if (UserToken) {
1056
- ev->Record .SetUserToken (UserToken->GetSerializedToken ());
1057
- }
1058
- auto & schemeTx = *ev->Record .MutableTransaction ()->MutableModifyScheme ();
1059
- schemeTx.SetWorkingDir (pathPair.first );
1060
-
1061
- schemeTx.SetOperationType (NKikimrSchemeOp::ESchemeOpAlterColumnTable);
1062
- NKikimrSchemeOp::TAlterColumnTable* alter = schemeTx.MutableAlterColumnTable ();
1063
- alter->SetName (settings.Table );
1064
-
1065
- return SendSchemeRequest (ev.Release ());
1066
- }
1067
- catch (yexception& e) {
1068
- return MakeFuture (ResultFromException<TGenericResult>(e));
1069
- }
999
+ Y_UNUSED (cluster);
1000
+ Y_UNUSED (settings);
1001
+ return NotImplemented<TGenericResult>();
1070
1002
}
1071
1003
1072
1004
TFuture<TGenericResult> CreateTableStore (const TString& cluster,
1073
- const NYql::TCreateTableStoreSettings& settings) override {
1074
- using TRequest = TEvTxUserProxy::TEvProposeTransaction;
1075
-
1076
- try {
1077
- if (!CheckCluster (cluster)) {
1078
- return InvalidCluster<TGenericResult>(cluster);
1079
- }
1080
-
1081
- std::pair<TString, TString> pathPair;
1082
- {
1083
- TString error;
1084
- if (!GetPathPair (settings.TableStore , pathPair, error, false )) {
1085
- return MakeFuture (ResultFromError<TGenericResult>(error));
1086
- }
1087
- }
1088
-
1089
- auto ev = MakeHolder<TRequest>();
1090
- ev->Record .SetDatabaseName (Database);
1091
- if (UserToken) {
1092
- ev->Record .SetUserToken (UserToken->GetSerializedToken ());
1093
- }
1094
- auto & schemeTx = *ev->Record .MutableTransaction ()->MutableModifyScheme ();
1095
- schemeTx.SetWorkingDir (pathPair.first );
1096
-
1097
- schemeTx.SetOperationType (NKikimrSchemeOp::ESchemeOpCreateColumnStore);
1098
- NKikimrSchemeOp::TColumnStoreDescription* storeDesc = schemeTx.MutableCreateColumnStore ();
1099
- storeDesc->SetName (pathPair.second );
1100
- storeDesc->SetColumnShardCount (settings.ShardsCount );
1101
-
1102
- NKikimrSchemeOp::TColumnTableSchemaPreset* schemaPreset = storeDesc->AddSchemaPresets ();
1103
- schemaPreset->SetName (" default" );
1104
- FillColumnTableSchema (*schemaPreset->MutableSchema (), settings);
1105
-
1106
- return SendSchemeRequest (ev.Release ());
1107
- }
1108
- catch (yexception& e) {
1109
- return MakeFuture (ResultFromException<TGenericResult>(e));
1110
- }
1005
+ const NYql::TCreateTableStoreSettings& settings,
1006
+ bool existingOk) override {
1007
+ Y_UNUSED (cluster);
1008
+ Y_UNUSED (settings);
1009
+ Y_UNUSED (existingOk);
1010
+ return NotImplemented<TGenericResult>();
1111
1011
}
1112
1012
1113
1013
TFuture<TGenericResult> AlterTableStore (const TString& cluster,
1114
1014
const NYql::TAlterTableStoreSettings& settings) override {
1115
- using TRequest = TEvTxUserProxy::TEvProposeTransaction;
1116
-
1117
- try {
1118
- if (!CheckCluster (cluster)) {
1119
- return InvalidCluster<TGenericResult>(cluster);
1120
- }
1121
-
1122
- std::pair<TString, TString> pathPair;
1123
- {
1124
- TString error;
1125
- if (!GetPathPair (settings.TableStore , pathPair, error, false )) {
1126
- return MakeFuture (ResultFromError<TGenericResult>(error));
1127
- }
1128
- }
1129
-
1130
- auto ev = MakeHolder<TRequest>();
1131
- ev->Record .SetDatabaseName (Database);
1132
- if (UserToken) {
1133
- ev->Record .SetUserToken (UserToken->GetSerializedToken ());
1134
- }
1135
- auto & schemeTx = *ev->Record .MutableTransaction ()->MutableModifyScheme ();
1136
- schemeTx.SetWorkingDir (pathPair.first );
1137
-
1138
- schemeTx.SetOperationType (NKikimrSchemeOp::ESchemeOpAlterColumnStore);
1139
- NKikimrSchemeOp::TAlterColumnStore* alter = schemeTx.MutableAlterColumnStore ();
1140
- alter->SetName (pathPair.second );
1141
-
1142
- return SendSchemeRequest (ev.Release ());
1143
- }
1144
- catch (yexception& e) {
1145
- return MakeFuture (ResultFromException<TGenericResult>(e));
1146
- }
1015
+ Y_UNUSED (cluster);
1016
+ Y_UNUSED (settings);
1017
+ return NotImplemented<TGenericResult>();
1147
1018
}
1148
1019
1149
1020
TFuture<TGenericResult> DropTableStore (const TString& cluster,
1150
- const NYql::TDropTableStoreSettings& settings) override {
1151
- using TRequest = TEvTxUserProxy::TEvProposeTransaction;
1152
-
1153
- try {
1154
- if (!CheckCluster (cluster)) {
1155
- return InvalidCluster<TGenericResult>(cluster);
1156
- }
1157
-
1158
- std::pair<TString, TString> pathPair;
1159
- {
1160
- TString error;
1161
- if (!GetPathPair (settings.TableStore , pathPair, error, false )) {
1162
- return MakeFuture (ResultFromError<TGenericResult>(error));
1163
- }
1164
- }
1165
-
1166
- auto ev = MakeHolder<TRequest>();
1167
- ev->Record .SetDatabaseName (Database);
1168
- if (UserToken) {
1169
- ev->Record .SetUserToken (UserToken->GetSerializedToken ());
1170
- }
1171
- auto & schemeTx = *ev->Record .MutableTransaction ()->MutableModifyScheme ();
1172
- schemeTx.SetWorkingDir (pathPair.first );
1173
-
1174
- schemeTx.SetOperationType (NKikimrSchemeOp::ESchemeOpDropColumnStore);
1175
- NKikimrSchemeOp::TDrop* drop = schemeTx.MutableDrop ();
1176
- drop->SetName (pathPair.second );
1177
- return SendSchemeRequest (ev.Release ());
1178
- }
1179
- catch (yexception& e) {
1180
- return MakeFuture (ResultFromException<TGenericResult>(e));
1181
- }
1021
+ const NYql::TDropTableStoreSettings& settings, bool missingOk) override {
1022
+ Y_UNUSED (cluster);
1023
+ Y_UNUSED (settings);
1024
+ Y_UNUSED (missingOk);
1025
+ return NotImplemented<TGenericResult>();
1182
1026
}
1183
1027
1184
1028
TFuture<TGenericResult> CreateExternalTable (const TString& cluster,
@@ -2328,27 +2172,6 @@ class TKikimrIcGateway : public IKqpGateway {
2328
2172
return result;
2329
2173
}
2330
2174
2331
- template <typename T>
2332
- static void FillColumnTableSchema (NKikimrSchemeOp::TColumnTableSchema& schema, const T& metadata)
2333
- {
2334
- Y_ENSURE (metadata.ColumnOrder .size () == metadata.Columns .size ());
2335
- for (const auto & name : metadata.ColumnOrder ) {
2336
- auto columnIt = metadata.Columns .find (name);
2337
- Y_ENSURE (columnIt != metadata.Columns .end ());
2338
-
2339
- TOlapColumnDescription& columnDesc = *schema.AddColumns ();
2340
- columnDesc.SetName (columnIt->second .Name );
2341
- columnDesc.SetType (columnIt->second .Type );
2342
- columnDesc.SetNotNull (columnIt->second .NotNull );
2343
- }
2344
-
2345
- for (const auto & keyColumn : metadata.KeyColumnNames ) {
2346
- schema.AddKeyColumnNames (keyColumn);
2347
- }
2348
-
2349
- schema.SetEngine (NKikimrSchemeOp::EColumnTableEngine::COLUMN_ENGINE_REPLACING_TIMESERIES);
2350
- }
2351
-
2352
2175
static void FillParameters (TQueryData::TPtr params, ::google::protobuf::Map<TBasicString<char >, Ydb::TypedValue>* output) {
2353
2176
if (!params) {
2354
2177
return ;
@@ -2358,59 +2181,6 @@ class TKikimrIcGateway : public IKqpGateway {
2358
2181
output->insert (paramsMap.begin (), paramsMap.end ());
2359
2182
}
2360
2183
2361
- static bool FillCreateColumnTableDesc (NYql::TKikimrTableMetadataPtr metadata,
2362
- NKikimrSchemeOp::TColumnTableDescription& tableDesc, Ydb::StatusIds::StatusCode& code, TString& error)
2363
- {
2364
- if (metadata->Columns .empty ()) {
2365
- tableDesc.SetSchemaPresetName (" default" );
2366
- }
2367
-
2368
- auto & hashSharding = *tableDesc.MutableSharding ()->MutableHashSharding ();
2369
-
2370
- for (const TString& column : metadata->TableSettings .PartitionBy ) {
2371
- if (!metadata->Columns .count (column)) {
2372
- code = Ydb::StatusIds::BAD_REQUEST;
2373
- error = TStringBuilder () << " Unknown column '" << column << " ' in partition by key" ;
2374
- return false ;
2375
- }
2376
-
2377
- hashSharding.AddColumns (column);
2378
- }
2379
-
2380
- if (metadata->TableSettings .PartitionByHashFunction ) {
2381
- if (to_lower (metadata->TableSettings .PartitionByHashFunction .GetRef ()) == " cloud_logs" ) {
2382
- hashSharding.SetFunction (NKikimrSchemeOp::TColumnTableSharding::THashSharding::HASH_FUNCTION_CLOUD_LOGS);
2383
- } else if (to_lower (metadata->TableSettings .PartitionByHashFunction .GetRef ()) == " consistency_hash_64" ) {
2384
- hashSharding.SetFunction (NKikimrSchemeOp::TColumnTableSharding::THashSharding::HASH_FUNCTION_CONSISTENCY_64);
2385
- } else if (to_lower (metadata->TableSettings .PartitionByHashFunction .GetRef ()) == " modulo_n" ) {
2386
- hashSharding.SetFunction (NKikimrSchemeOp::TColumnTableSharding::THashSharding::HASH_FUNCTION_MODULO_N);
2387
- } else {
2388
- code = Ydb::StatusIds::BAD_REQUEST;
2389
- error = TStringBuilder () << " Unknown hash function '"
2390
- << metadata->TableSettings .PartitionByHashFunction .GetRef () << " ' to partition by" ;
2391
- return false ;
2392
- }
2393
- } else {
2394
- hashSharding.SetFunction (NKikimrSchemeOp::TColumnTableSharding::THashSharding::HASH_FUNCTION_CONSISTENCY_64);
2395
- }
2396
-
2397
- if (metadata->TableSettings .MinPartitions ) {
2398
- tableDesc.SetColumnShardCount (*metadata->TableSettings .MinPartitions );
2399
- }
2400
-
2401
- if (metadata->TableSettings .TtlSettings .Defined () && metadata->TableSettings .TtlSettings .IsSet ()) {
2402
- const auto & inputSettings = metadata->TableSettings .TtlSettings .GetValueSet ();
2403
- auto & resultSettings = *tableDesc.MutableTtlSettings ();
2404
- resultSettings.MutableEnabled ()->SetColumnName (inputSettings.ColumnName );
2405
- resultSettings.MutableEnabled ()->SetExpireAfterSeconds (inputSettings.ExpireAfter .Seconds ());
2406
- if (inputSettings.ColumnUnit ) {
2407
- resultSettings.MutableEnabled ()->SetColumnUnit (static_cast <NKikimrSchemeOp::TTTLSettings::EUnit>(*inputSettings.ColumnUnit ));
2408
- }
2409
- }
2410
-
2411
- return true ;
2412
- }
2413
-
2414
2184
private:
2415
2185
TString Cluster;
2416
2186
const NKikimrKqp::EQueryType QueryType;
0 commit comments